我正在按代码创建一个签名PDF,但由于某种原因,我收到此错误:
至少一个签名无效-文档签名后已被更改或损坏
我将DSS属性与VRI、Certs和CRL一起使用。重要的一点是,我使用的版本与我在讨论此过程的其他文章中看到的版本相同。所以我有第一部分的签名(内容<>和byterange[])和第二部分与他的孩子的DSS。我注意到,如果删除第二个生成的部分,Adobe Acrobat将给出:
已签名且所有签名均有效
因此,我假设contents/byterange工作良好,当Acrobat尝试使用第二部分的信息验证签名时,问题就出现了。
以下是两个示例:
仅第一部分(创建后手动删除第二部分)
%PDF-1.6
%âãÏÓ
5 0 obj
<<
/ProcSet [/PDF /ImageC /Text]
/Font
<<
/F10 6 0 R
>>
>>
endobj
4 0 obj
<<
/Type/Page
/Parent 2 0 R
/MediaBox [0 0 612.000 792.000]
/TrimBox [0 0 612.000 792.000]
/CropBox [0 0 612.000 792.000]
/BleedBox [0 0 612.000 792.000]
/Contents 7 0 R
/Resources 5 0 R
>>
endobj
7 0 obj
<<
/Length 689
>>
stream
1.000 g
q
0.750 0.000 0.000 -0.750 0.000 792.000 cm
0.000 g
/F10 13.333 Tf
0 Tr
0.000 Tc
BT
1 0 0 -1 67.200 77.506 Tm
[(\001)(\002)(\003)(\004)(\005)(\006)(\004)15(\007)(\006)]TJ
ET
Q
q
0.750 0.000 0.000 -0.750 0.000 792.000 cm
0.000 g
/F10 13.333 Tf
0 Tr
0.000 Tc
BT
1 0 0 -1 67.200 63.106 Tm
[(\005)]TJ
ET
Q
q
0.750 0.000 0.000 -0.750 0.000 792.000 cm
0.000 g
/F10 13.333 Tf
0 Tr
0.000 Tc
BT
1 0 0 -1 67.200 999.106 Tm
[(\005)]TJ
ET
Q
q
0.750 0.000 0.000 -0.750 0.000 792.000 cm
0.000 g
/F10 13.333 Tf
0 Tr
0.000 Tc
BT
1 0 0 -1 0.000 10.306 Tm
[(\005)]TJ
ET
Q
q
0.750 0.000 0.000 -0.750 0.000 792.000 cm
0.000 g
/F10 13.333 Tf
0 Tr
0.000 Tc
BT
1 0 0 -1 748.800 10.306 Tm
[(\005)]TJ
ET
Q
endstream
endobj
2 0 obj
<<
/Type/Pages
/Count 1
/Kids [4 0 R ]
>>
endobj
1 0 obj
<<
/Type /Catalog
/Pages 2 0 R
/AcroForm
<<
/DR
<<
/Font
<<
>>
>>
/Fields [ 8 0 R ]
/SigFlags 3
>>
/Version /1.6
>>
endobj
10 0 obj
<<
/Producer (þÿ\000\130\000\106\000\040\000\104\000\145\000\142\000\165\000\147\000\040\000\130\000\056\000\130\000\056\000\130\000\040\000\142\000\165\000\151\000\154\000\144\000\040\000\130\000\130\000\130\000\040\000\055\000\040\000\124\000\162\000\151\000\141\000\154\000\040\000\115\000\157\000\144\000\145)
/Creator (þÿ\000\130\000\106\000\040\000\104\000\145\000\142\000\165\000\147\000\040\000\130\000\056\000\130\000\056\000\130\000\040\000\142\000\165\000\151\000\154\000\144\000\040\000\130\000\130\000\130\000\040\000\055\000\040\000\124\000\162\000\151\000\141\000\154\000\040\000\115\000\157\000\144\000\145)
/Trapped /False
>>
endobj
11 0 obj
<<
/Type /Encoding
/Differences [
5 /space
4 /e
3 /m
2 /o
1 /s
6 /t
7 /x
]
>>
endobj
6 0 obj
<<
/Type /Font
/Subtype /Type1
/BaseFont /Times-Roman
/Encoding 11 0 R
/FirstChar 1
/LastChar 7
/Widths [389 500 778 444 250 278 500 ]
>>
endobj
8 0 obj
<<
/Type /Annot
/Subtype /Widget
/Rect [0.000 0.000 0.000 0.000]
/P 4 0 R
/T (TEST)
/FT /Sig
/V 3 0 R
>>
endobj
3 0 obj
<<
/Type /Sig
/Filter /Adobe.PPKMS
/SubFilter /adbe.pkcs7.detached
/Name (Test KeyStore)
/Location (RO Bucharest)
/Reason (debug sig)
/M (D:202002240829Z)
/Contents <30821c4306092a864886f70d010702a0821c3430821c30020101310f300d06092a864886f70d01010b0500300b06092a864886f70d010701a0820a36308204d0308203b8a003020102020107300d06092a864886f70d01010b0500308183310b30090603550406130255533110300e060355040813074172697a6f6e61311330110603550407130a53636f74747364616c65311a3018060355040a1311476f44616464792e636f6d2c20496e632e3131302f06035504031328476f20446164647920526f6f7420436572746966696361746520417574686f72697479202d204732301e170d3131303530333037303030305a170d3331303530333037303030305a3081b4310b30090603550406130255533110300e060355040813074172697a6f6e61311330110603550407130a53636f74747364616c65311a3018060355040a1311476f44616464792e636f6d2c20496e632e312d302b060355040b1324687474703a2f2f63657274732e676f64616464792e636f6d2f7265706f7369746f72792f313330310603550403132a476f2044616464792053656375726520436572746966696361746520417574686f72697479202d20473230820122300d06092a864886f70d01010105000382010f003082010a0282010100b9e0cb10d4af76bdd49362eb3064b881086cc304d962178e2fff3e65cf8fce62e63c521cda16454b55ab786b63836290ce0f696c99c81a148b4ccc4533ea88dc9ea3af2bfe80619d7957c4cf2ef43f303c5d47fc9a16bcc3379641518e114b54f828bed08cbef030381ef3b026f86647636dde7126478f384753d1461db4e3dc00ea45acbdbc71d9aa6f00dbdbcd303a794f5f4c47f81def5bc2c49d603bb1b24391d8a4334eeab3d6274fad258aa5c6f4d5d0a6ae7405645788b54455d42d2a3a3ef8b8bde9320a029464c4163a50f14aaee77933af0c20077fe8df0439c269026c6352fa77c11bc87487c8b993185054354b694ebc3bd3492e1fdcc1d252fb0203010001a382011a30820116300f0603551d130101ff040530030101ff300e0603551d0f0101ff040403020106301d0603551d0e0416041440c2bd278ecc348330a233d7fb6cb3f0b42c80ce301f0603551d230418301680143a9a8507106728b6eff6bd05416e20c194da0fde303406082b0601050507010104283026302406082b060105050730018618687474703a2f2f6f6373702e676f64616464792e636f6d2f30350603551d1f042e302c302aa028a0268624687474703a2f2f63726c2e676f64616464792e636f6d2f6764726f6f742d67322e63726c30460603551d20043f303d303b0604551d20003033303106082b06010505070201162568747470733a2f2f63657274732e676f64616464792e636f6d2f7265706f7369746f72792f300d06092a864886f70d01010b05000382010100087e6c9310c838b896a9904bffa15f4f04ef6c3e9c8806c9508fa673f757311bbebce42fdbf8bad35be0b4e7e679620e0ca2d76a637331b5f5a848a43b082da25d90d7b47c254f115630c4b6449d7b2c9de55ee6ef0c61aabfe42a1bee849eb8837dc143ce44a713700d911ff4c813ad8360d9d872a873241eb5ac220eca17896258441bab892501000fcdc41b62db51b4d30f512a9bf4bc73fc76ce36a4cdd9d82ceaae9bf52ab290d14d75188a3f8a4190237d5b4bfea403589b46b2c3606083f87d5041cec2a190c3bbef022fd21554ee4415d90aaea78a33edb12d763626dc04eb9ff7611f15dc876fee469628ada1267d0a09a72e04a38dbcf8bc0430013082055e30820446a00302010202087f6b7d96f19586bd300d06092a864886f70d01010b05003081b4310b30090603550406130255533110300e060355040813074172697a6f6e61311330110603550407130a53636f74747364616c65311a3018060355040a1311476f44616464792e636f6d2c20496e632e312d302b060355040b1324687474703a2f2f63657274732e676f64616464792e636f6d2f7265706f7369746f72792f313330310603550403132a476f2044616464792053656375726520436572746966696361746520417574686f72697479202d204732301e170d3137313230353139303030325a170d3230313230353139303030325a3065310b30090603550406130255533111300f060355040813084d6172796c616e643112301006035504071309526f636b76696c6c6531183016060355040a130f456372696f6e20536f6674776172653115301306035504030c0c2a2e656372696f6e2e636f6d30820122300d06092a864886f70d01010105000382010f003082010a0282010100a4dea85c57368f69bc1c1d109be2a8c6d92b2fac57662958573d282877283ad311a301cbabcb38a561f569afb33683a2c15bcd8f1409900645c03c392b78a08494a10a64c4ea75197881b67e94752c78894a4e251ad184e15e2ea4b516708e164461a07a898ffa7b0ee395a163bd3c159e05e770f22facf32b6c0983ee4a2197beb2bbd05f875660dfb8694d5f5f6a99d4074aa51b692436082a0fa3ec0987a8621b6d2cfab2ac029a4e071fa7eb7b22e5946a04e6d7782fe0b2a1148c2c3e6a1315308db21d58ef1b6b059aae1a785c5fc1ca111161a48e8deb05529de8635fc6e78fd75f7bfa83f9e0249d547c9c890e7cf70ff4fbb0306865364bd0fd45170203010001a38201c0308201bc300c0603551d130101ff0402300030290603551d250422302006082b0601050507030106082b06010505070302060a6086480186f84d010203300e0603551d0f0101ff0404030205a030350603551d1f042e302c302aa028a0268624687474703a2f2f63726c2e676f64616464792e636f6d2f676469673273322d372e63726c305d0603551d20045630543048060b6086480186fd6d010717023039303706082b06010505070201162b687474703a2f2f6365727469666963617465732e676f64616464792e636f6d2f7265706f7369746f72792f3008060667810c010202307606082b06010505070101046a3068302406082b060105050730018618687474703a2f2f6f6373702e676f64616464792e636f6d2f304006082b060105050730028634687474703a2f2f6365727469666963617465732e676f64616464792e636f6d2f7265706f7369746f72792f67646967322e637274301f0603551d2304183016801440c2bd278ecc348330a233d7fb6cb3f0b42c80ce30230603551d11041c301a820c2a2e656372696f6e2e636f6d820a656372696f6e2e636f6d301d0603551d0e041604140bbbb94ce4d3d34dedbb9048988a09ba46487ff7300d06092a864886f70d01010b0500038201010090590d747b4a415e6011b697f4a9f82e6a17eef62078b39891d5930012525051273dfa2dcb00b6f3eb4150f8e60bb3bb8e12ab84c1f03842c50d84d1e85038e9531092d19e532a5d6aebbca157de78e336bb2d49334dbfffef84905141cd39b375c978c10332c345d7e82413242465edfceb18276d06beffbbaa0efb76f73fc0b926ca817d1913d39da41115679a4b92ff019d43031cc16e276dabbd57a4df391ec66812a6edb61a6b8da55cd09262b420d6fa29f57603ba1cbceb6e208ca06e1fb23b02a09d9eba4ee0e2a5dce1904fbf8fcd73ba2d781e856ddf1a4dddb3ea2a3ab5639602f7ebb1e4bd4894f67677fdd24c88a38617827564633cc49f9fcda1820fe0308207db308207b5020101300906052b0e03021a0500308182310b30090603550406130255533110300e060355040813074172697a6f6e61311330110603550407130a53636f74747364616c65311a3018060355040a1311476f44616464792e636f6d2c20496e632e3130302e06035504031327476f20446164647920526f6f742056616c69646174696f6e20417574686f72697479202d204732170d3230303232333033303733335a170d3230303232343135303733335aa0820700308206fc308206d506092b06010505073001010101ff048206c3308206bf0a0100a08206b8308206b406092b0601050507300101048206a5308206a13081ffa18185308182310b30090603550406130255533110300e060355040813074172697a6f6e61311330110603550407130a53636f74747364616c65311a3018060355040a1311476f44616464792e636f6d2c20496e632e3130302e06035504031327476f20446164647920526f6f742056616c69646174696f6e20417574686f72697479202d204732180f32303230303232333033303733335a30643062303a300906052b0e03021a050004141d236f8e064b971fdddfa11523e1aee502be2b1b04143a9a8507106728b6eff6bd05416e20c194da0fde0201078000180f32303230303232333033303733335aa011180f32303230303232343135303733335a300d06092a864886f70d01010b0500038201010007b308d975ac6722c8d7c6cf71e85df4628d416c575c0f33bbf19d2063429a43e905ba594e84d14699c16de771d5fda7b4a37cce29663b84383af8afc832108077d85fe3b375c8daf746fab27735ae6feb673e66265ce923f327b48c4285fe878727273089b860a900cc0994c803986afe0d8a5c2c41d061384757bf805d65fcaf426ed23d824e09e701caaf16dffeebd224a5fd4fef66c2df22aaf5d2ab4479a5e2cec91d8e7f0f5f0e12243db3a6d4590083823809e9c93b2aefa506df619331d6dcb2cd835afa6eff9e52d08bd599968d64123052374b33c8c9419d84f79ae931ae2fe789c88a5b6dd2b13724a0d657aa49aeea89a27c3c8057ca53f89300a0820487308204833082047f30820367a003020102020900d7c62ffd9457b937300d06092a864886f70d01010b0500308183310b30090603550406130255533110300e060355040813074172697a6f6e61311330110603550407130a53636f74747364616c65311a3018060355040a1311476f44616464792e636f6d2c20496e632e3131302f06035504031328476f20446164647920526f6f7420436572746966696361746520417574686f72697479202d204732301e170d3139303931373037303030305a170d3230303931373037303030305a308182310b30090603550406130255533110300e060355040813074172697a6f6e61311330110603550407130a53636f74747364616c65311a3018060355040a1311476f44616464792e636f6d2c20496e632e3130302e06035504031327476f20446164647920526f6f742056616c69646174696f6e20417574686f72697479202d20473230820122300d06092a864886f70d01010105000382010f003082010a0282010100ae315133b92966adeb58ae591482e5966669b9d2648e95b6ed0fa6cb5c223dbc9f43973df2bbcf4daf997804a93b8974c7096f56cdcf5d8a795a31ec206da45a5b638228bc3edac18efb10125baf04e1b735a4e84609a39675214cd2f707b465dc17a47e585e47f0bf878d2a182a6c1a609eab3cbeae9ced94cc88063ca21f85f3044f0679dbde841ee8f7ab5cfa55f3f322f7f572d5c334443ce4de7666c98313d1247c29e21c39ee6ac5b390502912b1555f2eb88fb1e403c128054d7a933d6178050e31de7df620ee247b477bc7f3343e28119d99c620f0cda449f05c21145717025f11106a30e685376667b8d33647abaa38cfe4cdffac4fa58946204d550203010001a381f43081f1300c0603551d130101ff04023000300e0603551d0f0101ff0404030206c030130603551d25040c300a06082b06010505070309301d0603551d0e0416041467847e97197c025c2f95ebf8099c3392d22dd9ac300f06092b06010505073001050402050030400603551d1f043930373035a033a031862f687474703a2f2f63726c2e676f64616464792e636f6d2f7265706f7369746f72792f6764726f6f742d67322e63726c304a0603551d2004433041303f060b6086480186fd6d010717013030302e06082b060105050702011622687474703a2f2f63726c2e676f64616464792e636f6d2f7265706f7369746f72792f300d06092a864886f70d01010b05000382010100b666ac722d58947599118079aa07a9fd76bd25e55f7eab8de752fc11b88afeb2c879543592c7f214e6a5a67e4a5bb2b1cb2be8a47a7cc8650cc354816d0ce56316248848963ae1e91eda357138d9fd7fb08cf486e2b0494d23f004a832259a3d6a4b4ac3bb21d155cc12b347ebc1a7558808a92a4c985ba00235d77ff5102960c302cea74c20012214d6fb4ac42b13a8ea6b01df02c0bf5b72b4dbcfd21cd15fa0d4826f5f9bfd7d4804cc069db30732a25d3981bebe5e37f046c13b8ba2350324baf50a99a683f74d85e7a16a0e40babc362ec857de842ff6101ac8d452d44276881ac821bbb04156055d8bd9e9a58aef25fbeacb28112039e8cac6b335e1cb3021060a2b0601040182370a0b040101ff041096c25031bc0dc35cfba723731e1b4140300906052b0e03021a05000315005e1e114c2ae25f94b29d1486583c604dbe3ffc7a308207fd308207d7020101300906052b0e03021a05003078310b30090603550406130255533110300e060355040813074172697a6f6e61311330110603550407130a53636f74747364616c6531153013060355040a130c476f446164647920496e632e312b302906035504031322476f2044616464792056616c69646174696f6e20417574686f72697479202d204732170d3230303232333033343730395a170d3230303232343135343730395aa082072d308207293082070206092b06010505073001010101ff048206f0308206ec0a0100a08206e5308206e106092b0601050507300101048206d2308206ce3081faa17a3078310b30090603550406130255533110300e060355040813074172697a6f6e61311330110603550407130a53636f74747364616c6531153013060355040a130c476f446164647920496e632e312b302906035504031322476f2044616464792056616c69646174696f6e20417574686f72697479202d204732180f32303230303232333033343730395a306b30693041300906052b0e03021a05000414b6080d5f6c6b76eb13e438a5f8660ba85233344e041440c2bd278ecc348330a233d7fb6cb3f0b42c80ce02087f6b7d96f19586bd8000180f32303230303232333033343730395aa011180f32303230303232343135343730395a300d06092a864886f70d01010b0500038201010076d52ac469ec0f91eb81765aa99cb74b6970be767c5cb4acf09a3541e83c6a979390ec39c3e7e97bf1970311a180ae882718c7979a407cff9b5965475de59d08faec1dedd291fdc5fd8896616ad9b10969aec30fc07ec4eeeef07c077ef8920c71d78f4112d47ae71846e903733f3fba1a6611faa775dae284610f8fc8944c262a76aebc5d8fa27dcae52fa4b789744c15b56f6223b37c9409bac78b6d5f657b3368c2c2cb5b7da517ff79d46c1ea4de292bfb93e7a4df82c44ca280a3f754df1e091083f2ed4ce56527c4e57c94efcd3b04497ffbaa9ed1d700900cf880f5661d812fe48987f1c671685a85312e6fbe1441810e4ed9f329c9f3e17169811a55a08204b9308204b5308204b130820399a003020102020851c6445e37a11844300d06092a864886f70d01010b05003081b4310b30090603550406130255533110300e060355040813074172697a6f6e61311330110603550407130a53636f74747364616c65311a3018060355040a1311476f44616464792e636f6d2c20496e632e312d302b060355040b1324687474703a2f2f63657274732e676f64616464792e636f6d2f7265706f7369746f72792f313330310603550403132a476f2044616464792053656375726520436572746966696361746520417574686f72697479202d204732301e170d3139303931373037303030305a170d3230303931373037303030305a3078310b30090603550406130255533110300e060355040813074172697a6f6e61311330110603550407130a53636f74747364616c6531153013060355040a130c476f446164647920496e632e312b302906035504031322476f2044616464792056616c69646174696f6e20417574686f72697479202d20473230820122300d06092a864886f70d01010105000382010f003082010a0282010100ae315133b92966adeb58ae591482e5966669b9d2648e95b6ed0fa6cb5c223dbc9f43973df2bbcf4daf997804a93b8974c7096f56cdcf5d8a795a31ec206da45a5b638228bc3edac18efb10125baf04e1b735a4e84609a39675214cd2f707b465dc17a47e585e47f0bf878d2a182a6c1a609eab3cbeae9ced94cc88063ca21f85f3044f0679dbde841ee8f7ab5cfa55f3f322f7f572d5c334443ce4de7666c98313d1247c29e21c39ee6ac5b390502912b1555f2eb88fb1e403c128054d7a933d6178050e31de7df620ee247b477bc7f3343e28119d99c620f0cda449f05c21145717025f11106a30e685376667b8d33647abaa38cfe4cdffac4fa58946204d550203010001a38201003081fd300c0603551d130101ff04023000300e0603551d0f0101ff0404030206c030130603551d25040c300a06082b06010505070309301d0603551d0e0416041467847e97197c025c2f95ebf8099c3392d22dd9ac300f06092b060105050730010504020500304c0603551d1f044530433041a03fa03d863b687474703a2f2f63726c2e676f64616464792e636f6d2f7265706f7369746f72792f6d6173746572676f64616464793269737375696e672e63726c304a0603551d2004433041303f060b6086480186fd6d010717013030302e06082b060105050702011622687474703a2f2f63726c2e676f64616464792e636f6d2f7265706f7369746f72792f300d06092a864886f70d01010b0500038201010028f18e7deda37c09e926ff9b8227b420313fa692672ec3452bf8d76c543ca79328cce89f4f4d0be51a4a287da5bd7addcae336b6a3c95bb82a674475067925aa53628ad9335b7102f12f54548cd97a5e93a2c5fb8583c5a6e0a8b7160740f17966f0204306a790a16795455f248a3e6db38dc51977eb09a4395d4ff17362bedc23d5a04cc86b4554cb11332a2a505f7e42db7d816b8a379c40669aa33147a9e830b5d12c4d8d6f94aa3e11586c6844d8fb42ae1dbb10e2d3cfb6cb4108dafad6229d5bd5e60c2d51229438c3e94af97302e0f538f369876af98960f4059addcb4125afd70963834819e0f89e7102987b2fc43a567d456ab9382848d2eb75dff83021060a2b0601040182370a0b040101ff041029da1fe040af4bac014af2b8451e0f1b300906052b0e03021a050003150061ac55450dd5a5cddd8ad657761422ad4a9b8e06318201ed308201e90201013081c13081b4310b30090603550406130255533110300e060355040813074172697a6f6e61311330110603550407130a53636f74747364616c65311a3018060355040a1311476f44616464792e636f6d2c20496e632e312d302b060355040b1324687474703a2f2f63657274732e676f64616464792e636f6d2f7265706f7369746f72792f313330310603550403132a476f2044616464792053656375726520436572746966696361746520417574686f72697479202d20473202087f6b7d96f19586bd300d06092a864886f70d01010b0500300d06092a864886f70d010101050004820100659e5372b1aad6f11511908fccaa05396c6e5589f3fc92a65173fff20e4c7756676ca654532dc95e9fa142c333034c9a68eeadc2eebcea17161619e90120ae4b4d6decbfc6358ec9e8fd026e215f5f95f5938e52a0d3a8b20517c7365703c72a7ce6300c5ffc543b89967809970440d921e5b1a585e144e226159b8d37e3af0117509ff7cc6aaee3b22f9a6f573f16a747931119e683e3cc6515d739ca5c12071ce2abc5d71d6179331123cac6ca044ba59005b2d2a66ccb95dd55aeab69e10e11d1a9fcbbe8f519491f8ceffd085af8d10c77bed54d54b60528a9ac2a8ef31bc11537f723f6c350f135641ae02cf6cb927f70315fea089907c3657c110e79a4>
/ByteRange [0 2424 16904 451]
>>
endobj
xref
0 9
0000000000 65535 f
0000001093 00000 n
0000001036 00000 n
0000002251 00000 n
0000000089 00000 n
0000000015 00000 n
0000001978 00000 n
0000000294 00000 n
0000002131 00000 n
10 2
0000001225 00000 n
0000001884 00000 n
trailer
<<
/Size 12
/Info 10 0 R
/Root 1 0 R
/ID [<bb6dca6a7c5b7ebe832bb44e49d83efb><bb6dca6a7c5b7ebe832bb44e49d83efb>]
>>
startxref
16975
%%EOF
整个生成的文档(第一部分与上面的相同)
%PDF-1.6
%âãÏÓ
5 0 obj
<<
/ProcSet [/PDF /ImageC /Text]
/Font
<<
/F10 6 0 R
>>
>>
endobj
4 0 obj
<<
/Type/Page
/Parent 2 0 R
/MediaBox [0 0 612.000 792.000]
/TrimBox [0 0 612.000 792.000]
/CropBox [0 0 612.000 792.000]
/BleedBox [0 0 612.000 792.000]
/Contents 7 0 R
/Resources 5 0 R
>>
endobj
7 0 obj
<<
/Length 689
>>
stream
1.000 g
q
0.750 0.000 0.000 -0.750 0.000 792.000 cm
0.000 g
/F10 13.333 Tf
0 Tr
0.000 Tc
BT
1 0 0 -1 67.200 77.506 Tm
[(\001)(\002)(\003)(\004)(\005)(\006)(\004)15(\007)(\006)]TJ
ET
Q
q
0.750 0.000 0.000 -0.750 0.000 792.000 cm
0.000 g
/F10 13.333 Tf
0 Tr
0.000 Tc
BT
1 0 0 -1 67.200 63.106 Tm
[(\005)]TJ
ET
Q
q
0.750 0.000 0.000 -0.750 0.000 792.000 cm
0.000 g
/F10 13.333 Tf
0 Tr
0.000 Tc
BT
1 0 0 -1 67.200 999.106 Tm
[(\005)]TJ
ET
Q
q
0.750 0.000 0.000 -0.750 0.000 792.000 cm
0.000 g
/F10 13.333 Tf
0 Tr
0.000 Tc
BT
1 0 0 -1 0.000 10.306 Tm
[(\005)]TJ
ET
Q
q
0.750 0.000 0.000 -0.750 0.000 792.000 cm
0.000 g
/F10 13.333 Tf
0 Tr
0.000 Tc
BT
1 0 0 -1 748.800 10.306 Tm
[(\005)]TJ
ET
Q
endstream
endobj
2 0 obj
<<
/Type/Pages
/Count 1
/Kids [4 0 R ]
>>
endobj
1 0 obj
<<
/Type /Catalog
/Pages 2 0 R
/AcroForm
<<
/DR
<<
/Font
<<
>>
>>
/Fields [ 8 0 R ]
/SigFlags 3
>>
/Version /1.6
>>
endobj
10 0 obj
<<
/Producer (þÿ\000\130\000\106\000\040\000\104\000\145\000\142\000\165\000\147\000\040\000\130\000\056\000\130\000\056\000\130\000\040\000\142\000\165\000\151\000\154\000\144\000\040\000\130\000\130\000\130\000\040\000\055\000\040\000\124\000\162\000\151\000\141\000\154\000\040\000\115\000\157\000\144\000\145)
/Creator (þÿ\000\130\000\106\000\040\000\104\000\145\000\142\000\165\000\147\000\040\000\130\000\056\000\130\000\056\000\130\000\040\000\142\000\165\000\151\000\154\000\144\000\040\000\130\000\130\000\130\000\040\000\055\000\040\000\124\000\162\000\151\000\141\000\154\000\040\000\115\000\157\000\144\000\145)
/Trapped /False
>>
endobj
11 0 obj
<<
/Type /Encoding
/Differences [
5 /space
4 /e
3 /m
2 /o
1 /s
6 /t
7 /x
]
>>
endobj
6 0 obj
<<
/Type /Font
/Subtype /Type1
/BaseFont /Times-Roman
/Encoding 11 0 R
/FirstChar 1
/LastChar 7
/Widths [389 500 778 444 250 278 500 ]
>>
endobj
8 0 obj
<<
/Type /Annot
/Subtype /Widget
/Rect [0.000 0.000 0.000 0.000]
/P 4 0 R
/T (TEST)
/FT /Sig
/V 3 0 R
>>
endobj
3 0 obj
<<
/Type /Sig
/Filter /Adobe.PPKMS
/SubFilter /adbe.pkcs7.detached
/Name (Test KeyStore)
/Location (RO Bucharest)
/Reason (debug sig)
/M (D:202002240829Z)
/Contents <*same as above*>
/ByteRange [0 2424 16904 451]
>>
endobj
xref
0 9
0000000000 65535 f
0000001093 00000 n
0000001036 00000 n
0000002251 00000 n
0000000089 00000 n
0000000015 00000 n
0000001978 00000 n
0000000294 00000 n
0000002131 00000 n
10 2
0000001225 00000 n
0000001884 00000 n
trailer
<<
/Size 12
/Info 10 0 R
/Root 1 0 R
/ID [<bb6dca6a7c5b7ebe832bb44e49d83efb><bb6dca6a7c5b7ebe832bb44e49d83efb>]
>>
startxref
16975
%%EOF
14 0 obj
<<
/Length 1522
/Filter /FlateDecode
>>
stream
xÚ3hbÿkÐÄ~‰‘Ñ€“U›™IŠ•Á ÂÈeeaf
60àq8„Ù‹2«òó
…
A"ìÂ\ÁÉù%%Å)‰9©†¢Â A.a÷|—Ä””Jϼd=CmM0³°’{¾D<,1'3%±$3?OÁ±´$#¿(³¤RAWÁÝHœ×ÈÀÀÈÈØÀØÄÜÀ2
Ê514s4±ë]« ÄLlœÚlŒ¬¬ìŒ@🥉íƒAÛ.F†MlȮH
€²—€Bç-¬8ÏIð xÏ Û ÓÀ)àYD¶qðÆçd—½~b±ôG÷Š c?‡C{ÕûΘ4,2¾þ;gó‡-:
ç˜8ê³k§}œÚ¶·Ãä‚p!Xàð²qjµy´}çedäfe`nbdd(»ªu$ó
ÿÄ×eQ+çl÷Î,ØWV³e͇Y¦Ž/l²¦OžðÆòðó—Õ§3.lXס.q|ú,‡šÿ³#SÝcŸÎåøõFöí¥‰þ혖˜us#gæºÃüꎼ{÷¡†½îÇ$žÂëýŽBWªžK¸½d.¶·ß%•&økyéG-‰üý'¦ø¨i•ÛÛ¿¨öÔSý%Û;K|D·æ')o®™Â¹ëxwn|jµqÆ¡C§£k—Šÿ¯¼’#·äž¦öïÉÏ—Üo:⳨añ÷ûrœÍŸÞú<MU?ò´fÊû³Ö,žõ¿WÍ»xaφ¯i²úO:Û?+̈j5ÔËß'âØÈçwó³æÉÏ3¥B4±ì4hbÙ
Ä
š˜g.`fbdbâ<æg¾PÂ-È·•t¤$ IGštô’ósu éG×@$Ç-¬’QRR`¥¯ŸœZTR¬—žŸS¨_”Z_œY’_T©ohl`InZð䜚\Z”ªàÔ—™–™œX’Š–ìäÄy
-
,
Í
Ì
€ ’«ÜËMŒJÈaÌN–ü@q.&Pú\gh¼S3míëˆu‘"MO§¥eî¼”Ò7uÛ[þe§c”l÷Ìwžnûi÷yßõ3+XVZw–çÌ;{>¶«2ÊðBî’¨èä&=v·öýŠ^Ïòp»é’nœ‹§•*ú\úξ%õŽø’ºˆ8÷ûÛ{µ$´r¤æ¶Ù·nÎÛ)g:ØlÉ·~fñg«¼}¯EîÅ÷Õ1¿B?Vúþµèêa›'÷ÊÒN6_T©Ñ|$cù.ëèæ šBCãõvôo|Â|PƒÕ·j²mb+Ÿá½Úo
ïTªÝ«6±Óœ;ó˜Â‡³K<?Ä(Š„‹3Å
d<k5OKßqÙÌ}õ*‹óOÎþ_ã¿´ÓMÁ7”‰™‘qq#0éý5à†«¬0¨°c2` Ç‘,?ˆÇÂÌÄv ²ª,<\l‚™Ó@$ÈÇ"Æ"’ÞR7]²†)FêëœsŒ']Ò½¹Æ€QF²²0¸H½<‹«³ãû¶mÖ°TY”ƒ+Mæ&—¤A%2‹‹K3óÒõ€¼@¦)° Í2°gãNhó`lû›ËÈ.ÎLuz0W21Š)¶[á¥ñ±¯öíâΗjÿg7©oQ0´_6)]ï°«öë9!6Ë'kœy1ßß—û©”—FíÒ½UwO=6Û¶ødôt—R¶JÕUÁI]7£™>ꇄôܬŠ›¼èèïÖæ£Ë¬Ø.Æîð±2탂3Ûò Ó§ºÆ«tÙånî=*Yþšs‰e¬ÿÇâ¤}w”¯.ð9‘írZÐXK+ ¾Îévmcv—ù‡´Y‹
ÝW¾0ØzQÇ·7Ê*;Áˆœ—¿ÖÉîxtùü¶ÓŽ·~]Sš}õn Ò‹Ã/½~3=øjñ9³=ëggÂÖYwO;ª®¿Î™Üì!ùàǼB¦ÕúG¬Âj]³vZhx\z]zÿ‡"0Y›Ì¹¸Y@)A@ó–ü‡õÞk½>íp•ã—FªZ˜Eׄºò^]zön×µð2¥µ^³ûØ ±ÑÁÑ
endstream
endobj
16 0 obj
<<
/Length 1482
/Filter /FlateDecode
>>
stream
xÚ3hb¿mÐľ•‰‘Ñ€“U›™IŠ•Á ±ÉÈgeaf
60àq8„Ù‹2«òó
…
A"ìÂ\ÁÉù%%Å)‰9©†R A.aA÷|—Ä””J½äü\ϼd=C=³°º{¾XR!(?¿D!,1'3%±$3?OÁ±´$#¿(³¤RAWÁÝHœ×ÈÀÀÈÈØÀØÀÜØ8
Ê514s4±34±ýâ«lœÚlŒ¬¬ìŒ@🥉í0Pt?#Â&¶@æ$@Ù¥@¡…ÿ6¶
Jð xÕ Å ÉÀ
)>XDd•óûؼ§Ëß½¿PTùầLû´¥YD¬fµ²¤kl{ÿm/«cžÂÁ)·øï11²70`¹@.A^6N6¶ï¼ŒŒÜ¬ÌMŒŒì›9n–®IW:qýØù±_’zsÂcøwœ«ì4Ëù%ë®H¿–‹n3æ>/¼úwù–Å5ç4Ó¬[,¬~¬?a$ÐP~#þñæÒ·¾»ýÚTnº.ÿuº]šZÌKåÏê[zœZÿµ·««tîHXÉp†sÊ æYÿx»bt/$Z¸‡ïoˆMý³Þ)ï’m“çsÆSëÅîÿ{}Ieé_ÿ÷i‡î+úziµKåÒGçNÊöÕóÇó ©Øn^v%’¡¹É‚óåIk÷KÙî'N6¼vgÓÙæ¨_yÿç]è¾:sZoŠA¹·ñ‰“Žs[¾Ïzi¸Nÿy牮èÜKÍU\_å¹îU碛†ðSÁ?&K»AK3×41§/`fbdbâd¸~Lÿï”ðæhafÐØLõäch I>¨ÉÇ9µ¨$3-39±$-ýȉóZXš˜ $« ¸ƒ"‘41*!‡#8Åñó0#(é34Þ©™¶öuĺH‘¦§ÓÒ2w^J雺í-ÿ²Ó1J¶{æ;O·ý´û¼ïú™,+;KŽsæ‡=ÛUeøF!wITtr“Æ»[û~E¯gy¸ÝtÉ7ÎÅÓJ}.}gß’zG|I]Dœû‡ýí½ZZ9R óVÛì[7çí”3l6‹ä[?³ø³UÞ¾×"÷âûê˜_¡Ÿ?+}ÿZtõ°‰‹Í“{ei'›…/ªÔh>’±|—utó„ M¡¡ñz;ú7>a>¨Áê[5Ù6±‚•Ïð^í7…w*ÕîÕÇ?›ØiÎyLáÃÙ%žbEÂřⲞµš§¥ï¸læ¾z•Åù'gÿ¯ñ_Úé¦àÊÄÌÈÀ¸¸ñ‹AãG`ØÊ
ƒÊ2&pdÉòƒx,ÌLl„A|U.6H¹ÆÌi äccIo©›.Yã?õõÎ9Æ“.éÞ\cÀ(YY˜€)פ^žÅ˜FL/0lÓÏ())°Ò×O.ÊÑKÏOÅ·~QjA~qfI~Q¥~zJ0ŽuÓô€Š¼@&(°88سq'´y0¶ýÍedg4 %¨Ë˜Å”Œ(Ú–¶¦H7bJéLÁ†ÊUì+ÿ–íU}_·º÷yÐÁ]ÿ6¨1tü“ȳ¥Ëê¼¢7m<ýbIU͉TžÃ!¹<O“ÅT:<¦Y=|)wË´Ðâæßú
=_ÚmðôUþÀ²ÂHu–m–·×áÝŠCÏmv}pyhÇJ-ŸÑ˜L¯×ÐL8Ìtn¹£’ȵß^G´…W¼Êf¼Ït`tÑ–Ûç/É\Œ_p¥)?~ößZ–3ls7³-ŠµlÜ·/ÎüƒÛAëîE¦Ì*»¾rÍ\ÖüÝ·õùÂ,>‡]{ÌôN„ßkÑÿ& uâJЧ²©Š»78†±Ævß|¹´ë½êïW§5,_œ:¶ÙôáiE6.`²06™sq³€b_`Ú¡ Ã=¼‡c~/W.–“vt@ª!˜Eâä}´ÅOÙ4W¤-Â&ÁwŸýŸ* «²œ
endstream
endobj
20 0 obj
[
14 0 R
16 0 R
]
endobj
15 0 obj
<<
/Length 1147
/Filter /FlateDecode
>>
stream
xÚ3hb3hbq[ÀÌÄÈÄÄQŸ];íãÔ¶½¼lœZmmßy¹Y·rp²1‡²° 3…
ð8ÂìŽE™Uùy‰†Â‚ va®àäü’’â”ÄœTC) —° {¾KbJJ¥^r~®Ž‚g^²ž¡®6HŽ[X%£¤¤ÀJ_?9µ¨¤X/=?¦P¿(µ ¿8³$¿¨RßÐØÀ¤œYXË=_l–BpjriQª‚3P_fZfrbIª‚ciIF~QfI¥‚®‚»‘œ8¯¡¹¡‘©¡¥Q”8¯‘× ÕW‚ü_qø&Uæ$æ¥
@¼Å”Ÿœ]–™ô•„ÄWü®ÉE™ùy
Áùi%å‰E©†¢Â`Gòðh饂å@þ0hbTBPFVæ&F~ 8S##Ã’{+bÂÍú3÷ÈÈ
Ì~´âØMmý5áišá¶åV—3ž^}Úbiâ×Ìõ›ÍšŒ>Û/Â9Íõ€¥vÅ‚–)¹RŽ¼*•¬hÜV7¥T§¢ÓËOUêbËÃ8½%[Å
úÄ\Tuöÿªæ{<uaò^Ñy¬Ï>é¯ù¬ÃÙüÎKqú¾M»/Ä·‡%Üß‘éŸ5ó
»×RéL3-þÅo8ÛW$IçêüÚ´†i–»üò×ÕJO§d±<»^¡ÿ`ÓB‘»,aQƒÞM²ï¥³Yg“ªˆ‰?xJP0qI_ïkÖ ¹/’ã=ï¿_ý«ù畹!5s:ùj¾óù½Á #ÕÌûÂ_Wq&fFÆÅMŒ€!²Ç€„²ÂŒŒÿY˜4A<U%6m6FVVvfF8‹‰+¡Íƒ±í‡/#38IÊòƒ4²03±.00ñåYôt´h,Pkƒ§´¢”t–ž’™nTl¤k®”1ˆiS` 31ð`ã›ÿ7—‘]œÉÀÒÀf5£˜6Rº…¦?œÉ×€ƒ-½‘˜ÅÊ`F02²dd¨ÀøŒmP#ó“‹PŒ2p€«bj3!Áb°×€Þ*1yK™˜xDíUï;cÒl°ÈøúïœÍ¶è4œ3P)d‘1jBI¾M\HIY¤ˆEŒE„{÷NŸ'—/û¾Ý=ÁcFç.7úïhÅ3(qOˆä-©örŒKÜ6ýËÊzYâï¾)Tlž1ñêd¡ €@uÛ_º§¶}~íðã÷æÝ}B«[~°p:ÊÛrñE€ÅË`IçkÅf½Þ³0ü^Åc³ÝºžÆ¾ûÿ¿o™èxÖrséÉŠƒÌF‡]¯¿PVQI}û組z.Û¾ÿ»Wñý.ûn`§Ú©ÆZIáËs—Š¦ÏòžôŸq®3³ÌÁ<õÜÕ{×ܷ”;–!´ìí6©ìÞ¥1&%mQ¸öKókó.™=¯ózäÉo²fZ0wÞ.¿–Þy8ÁÿÙâ]ºr¹÷¥|ïn~¥eµ5yÓ÷ןìõ˜ò¬üï%ŸŽÅmâM¥)É6GæÏ? ¸Íב
endstream
endobj
17 0 obj
<<
/Length 1008
/Filter /FlateDecode
>>
stream
xÚ3hb¹`Ðļc3##»/§V›GÛw^FFnVƒÆfCnN6æP6a¦Ð`C>‡C˜Ý±(³*?/ÑPØ@$Â.Ìœœ_RRœ’˜“j(e ätÏwILI©ÔKÎÏÕQðÌKÖ344ÐÉ1k¸ç+€%‚òóKœS‹J2Ó2“KRKK2ò‹2K*tÜäÄyÚL
Œ
Ì
€ Jœ×™kи…ê®Ô5ÐÉq«d””Xéë'W¬—žŸS¨_”Z_œY’_T©ohl`ñ”ÜSÁ©É¥E©ø¼ÕĨ„ÞŒ¬ÌMŒü@q.¦&FF†N\Y_¶÷Êä¤×);9r³ÜLïÓÿo—z¾ÿ\Ò3› ™[b®Þ¡«+²“›“&œãÏÌ™yBJ¤Û猫ñ«Ž;ó¯×þ×8·2üÈy½/ö6±îf‰í9l>Í1°OÐ;ä‡Æ¾=û>XÈ}Þ ö#Í=9÷^¡š{¿…{ðE7Ù-ï0¼r]³wOáÍUù·oŸ5°ªô÷qÿ!û>úБ¹ Ö79O¼±ÄØïÕækêþkU»–ûrõ²u%¬)á[]B¯èjYÙýر÷¥Ó””#bV½Ö=¯4^Ï£À^ÿâ>‹å¡L¦œä _å¥O”´ŸØ9Y" ÄÔ;ÓoõeO=ù;/ýfbfd`\ÜÄ(1~` Ë
32þga5`Rà8–å ° S/›,ˆÏÇ"Æ"âph¯zß“fƒEÆ×çlþ°E§áœ<HZ™EÂ@¬AÄjV+»@ºÆ¶÷ßö²:æ)œr‹ÿž ‡6#++;##‹†š
ŒoÀØ&MùÉÅ(‰ÀÀd¬<‹žŽÖjmðS”ƒ¢2=¥˜ÌuÓô€2n m
,ö¶Öl,@&ƒ(
AmdbSSL(á¡åWfP²á¨Ë™,pÂbÇ´•¼ÿ/Œ÷gyŸc7§ƒíd@ÿ²âïá†Òûö<Ñ¿ýc×åè[ž?«LâãYt=+¹Øpë×K¬9tÅN¸¾¥FÕ_0ÌàÈ6—¹Õ:sŸÆ={Ï“¸jÿ-éw-óv4×t>ç²\¸€w¢ü—Âk›nÞ(ZQ¬"·uß)ñΤéÕªŒügH'ÝÜr™?Pkö—=ÅÊΙ-9{ó†Î«u³¿jmšpÑ·T¢Ë¾Ëq‚rm´÷¿%̳Ý6NHhþQàxîР‡w¿gÒ¿$òÎEô&׺å]Æo7ê–™©Ýay=ÿ{¢¼èöüwnÓ4Ö.T«åâ\®Ç²¸wÏ=,Œ Lÿ±Õ
endstream
endobj
21 0 obj
[
15 0 R
17 0 R
]
endobj
12 0 obj
[
14 0 R
16 0 R
]
endobj
13 0 obj
[
15 0 R
17 0 R
]
endobj
18 0 obj
<<
/CRL 12 0 R
/Cert 13 0 R
>>
endobj
19 0 obj
<<
/671442037AB30797512E2AB3B61C015CF3A79DA4 18 0 R
>>
endobj
22 0 obj
<<
/VRI 19 0 R
/CRLs 20 0 R
/Certs 21 0 R
>>
endobj
1 0 obj
<<
/Type /Catalog
/Pages 2 0 R
/AcroForm
<<
/DR
<<
/Font
<<
>>
>>
/Fields [ 8 0 R ]
/SigFlags 3
>>
/Version /1.6
/DSS 22 0 R
/Extensions
<<
/ESIC
<<
/BaseVersion /1.7
/ExtensionLevel 5
>>
>>
>>
endobj
xref
0 2
0000000000 65535 f
0000023125 00000 n
12 11
0000022878 00000 n
0000022912 00000 n
0000017355 00000 n
0000020541 00000 n
0000018951 00000 n
0000021762 00000 n
0000022946 00000 n
0000022993 00000 n
0000020507 00000 n
0000022844 00000 n
0000023064 00000 n
trailer
<<
/Size 24
/Root 1 0 R
/Prev 16975
/ID [<bb6dca6a7c5b7ebe832bb44e49d83efb><7733472c6eca1171d8388b938109f336>]
>>
startxref
23335
%%EOF
解决方案
初始交叉引用必须是连续的,并且不能有空隙。Adobe Reader签名验证有时在这样的细节上很挑剔,特别是在验证以后的修订时
按mkl
我试图对pdf文件进行签名,但在Adobe中打开签名的pdf文件时,遇到“文档自签名后已被更改或损坏”错误。 这个错误不是那么描述性的,我不确定应该在哪里查看,因为代码对我来说似乎很好,但显然不是。。 我使用的代码是: 签名的哈希的Base64格式为(tmp文件sha_前缀): 签名(AMA)的Base64格式为: 有人能帮忙吗?
我正在使用PDFbox-1.8.8在PDF文件上做签名功能。 当我签署一份文件的时候 下面是我的代码:
对于一个关于签名数据被哈希两次的C#问题,我看到了一个类似的答复,但是我不知道为什么我的签名数据会出现在这里。 C#PKCS7 Smartchard数字签名损坏
当我使用带电子令牌的IText对PDF进行签名时,签名的PDF在Acrobat Adobe Reader中显示“至少一个签名无效”。我正在使用有效的电子代币。以下是签署Pdf的代码。
我正在为我的应用程序做一个PDF签名功能。以下是工作流程: PDF存储在服务器上。 我将所有必需的签名字段包含到文件中,并使用ZendPDF的扩展名为FaritPDF计算字节长度等。 我根据使用SHA256计算的字节长度计算哈希。 哈希将发送到客户端。 客户端使用PFX文件对哈希进行签名,并创建包含哈希的PKCS7对象。 将PKCS7对象发送到服务器。 PKCS7对象包含在PDF中,并呈现PDF。