Статус: Участник
Группы: Участники
Зарегистрирован: 17.06.2020(UTC) Сообщений: 23
Сказал(а) «Спасибо»: 2 раз
|
Автор: Евгений Афанасьев Здравствуйте. Код:
cAdESSignature.addSigner(JCSP.PROVIDER_NAME // <- в примере выше стоит JCP, хотя был JCSP
и Код:
AdESConfig.setDefaultProvider(JCSP.PROVIDER_NAME...
в начале. AdESConfig провайдер устанавливается каждый запуск. с провайдером JCSP как раз пустые сертификаты в подписи. Вот какие провайдеры проставляются каждый запуск Цитата: override suspend fun initProviders() { if (Security.getProvider(JCSP.PROVIDER_NAME) == null) { Security.addProvider(JCSP()) }
if (Security.getProvider(Provider.PROVIDER_NAME) == null) { Security.addProvider(Provider()) }
cpSSLConfig.setDefaultSSLProvider(JCSP.PROVIDER_NAME) if (Security.getProvider(RevCheck.PROVIDER_NAME) == null) { Security.addProvider(RevCheck()) } AdESConfig.setDefaultProvider(JCSP.PROVIDER_NAME)
if (Security.getProvider("JTLS") == null) { Security.addProvider(Provider()) }
if (Security.getProvider("JCP") == null) { Security.addProvider(JCP()) }
cpSSLConfig.setDefaultSSLProvider("JCSP")
System.setProperty("ru.CryptoPro.CAdES.validate_tsp", "false") System.setProperty("com.sun.security.crl.timeout", "5") System.setProperty("ru.CryptoPro.crl.read_timeout", "5")
System.setProperty("com.sun.security.enableCRLDP", "true") System.setProperty("com.ibm.security.enableCRLDP", "true") System.setProperty("tls_prohibit_disabled_validation", "false") } Итоговый код подписи Цитата: val cAdESSignature = CAdESSignature(true) cAdESSignature.addSigner(JCSP.PROVIDER_NAME, keys[0], certificates, CAdESType.CAdES_BES, null, false) val signatureStream = ByteArrayOutputStream() cAdESSignature.open(signatureStream) cAdESSignature.update(data) cAdESSignature.close() return signatureStream.toByteArray() ASN1 файл, который генерируется Цитата: 0 NDEF: SEQUENCE { 2 9: OBJECT IDENTIFIER signedData (1 2 840 113549 1 7 2) : (PKCS #7) 13 NDEF: [0] { 15 NDEF: SEQUENCE { 17 1: INTEGER 1 20 14: SET { 22 12: SEQUENCE { 24 8: OBJECT IDENTIFIER '1 2 643 7 1 1 2 3' 34 0: NULL : } : } 36 NDEF: SEQUENCE { 38 9: OBJECT IDENTIFIER data (1 2 840 113549 1 7 1) : (PKCS #7) : } 51 694: SET { 55 690: SEQUENCE { 59 1: INTEGER 1 62 150: SEQUENCE { 65 127: SEQUENCE { 67 35: SET { 69 33: SEQUENCE { 71 9: OBJECT IDENTIFIER : emailAddress (1 2 840 113549 1 9 1) : (PKCS #9. Deprecated, use an altName extension instead) 82 20: IA5String 'support@cryptopro.ru' : } : } 104 11: SET { 106 9: SEQUENCE { 108 3: OBJECT IDENTIFIER countryName (2 5 4 6) : (X.520 DN component) 113 2: PrintableString 'RU' : } : } 117 15: SET { 119 13: SEQUENCE { 121 3: OBJECT IDENTIFIER localityName (2 5 4 7) : (X.520 DN component) 126 6: PrintableString 'Moscow' : } : } 134 23: SET { 136 21: SEQUENCE { 138 3: OBJECT IDENTIFIER organizationName (2 5 4 10) : (X.520 DN component) 143 14: PrintableString 'CRYPTO-PRO LLC' : } : } 159 33: SET { 161 31: SEQUENCE { 163 3: OBJECT IDENTIFIER commonName (2 5 4 3) : (X.520 DN component) 168 24: PrintableString 'CRYPTO-PRO Test Center 2' : } : } : } 194 19: INTEGER : 12 00 49 D8 82 4C AD 6B ..I..L.k : 2E 38 CF 2C D8 00 01 00 .8.,.... : 49 D8 82 I.. : } 215 12: SEQUENCE { 217 8: OBJECT IDENTIFIER '1 2 643 7 1 1 2 3' 227 0: NULL : } 229 373: [0] { 233 24: SEQUENCE { 235 9: OBJECT IDENTIFIER contentType (1 2 840 113549 1 9 3) : (PKCS #9) 246 11: SET { 248 9: OBJECT IDENTIFIER data (1 2 840 113549 1 7 1) : (PKCS #7) : } : } 259 79: SEQUENCE { 261 9: OBJECT IDENTIFIER messageDigest (1 2 840 113549 1 9 4) : (PKCS #9) 272 66: SET { 274 64: OCTET STRING : E5 4A 9B 27 47 88 44 85 .J.'G.D. : 6F AB 59 1D 1D 88 58 5F o.Y...X_ : A5 97 B6 FF F6 A8 F4 91 ........ : 13 F7 06 8E 25 47 D6 C6 ....%G.. : BC 6E 48 BE 3F 1B 02 3E .nH.?..> : C5 A2 77 7F 19 16 6C 48 ..w...lH : 34 BD 48 A7 B4 1A 46 AB 4.H...F. : 8D D4 49 78 17 45 D8 9D : } : } 340 262: SEQUENCE { 344 11: OBJECT IDENTIFIER : signingCertificateV2 (1 2 840 113549 1 9 16 2 47) : (S/MIME Authenticated Attributes) 357 246: SET { 360 243: SEQUENCE { 363 240: SEQUENCE { 366 237: SEQUENCE { 369 10: SEQUENCE { 371 8: OBJECT IDENTIFIER '1 2 643 7 1 1 2 3' : } 381 64: OCTET STRING : 33 12 92 5E D8 5A 3C 28 3..^.Z<( : 39 54 A6 9D 62 3A 61 FE 9T..b:a. : 26 B2 16 BE A0 5D EF 0F &....].. : 4B D7 64 3E D5 45 FD 60 K.d>.E.` : D2 A2 2F 2F C4 D3 2B 2E ..//..+. : 7A AE DD 66 B3 14 AE 13 z..f.... : 3C 6B 11 1C 26 C9 A1 79 <k..&..y : 50 EA E1 17 68 BA 10 E2 447 156: SEQUENCE { 450 132: SEQUENCE { 453 129: [4] { 456 127: SEQUENCE { 458 35: SET { 460 33: SEQUENCE { 462 9: OBJECT IDENTIFIER : emailAddress (1 2 840 113549 1 9 1) : (PKCS #9. Deprecated, use an altName extension instead) 473 20: IA5String 'support@cryptopro.ru' : } : } 495 11: SET { 497 9: SEQUENCE { 499 3: OBJECT IDENTIFIER : countryName (2 5 4 6) : (X.520 DN component) 504 2: PrintableString 'RU' : } : } 508 15: SET { 510 13: SEQUENCE { 512 3: OBJECT IDENTIFIER : localityName (2 5 4 7) : (X.520 DN component) 517 6: PrintableString 'Moscow' : } : } 525 23: SET { 527 21: SEQUENCE { 529 3: OBJECT IDENTIFIER : organizationName (2 5 4 10) : (X.520 DN component) 534 14: PrintableString 'CRYPTO-PRO LLC' : } : } 550 33: SET { 552 31: SEQUENCE { 554 3: OBJECT IDENTIFIER : commonName (2 5 4 3) : (X.520 DN component) 559 24: PrintableString 'CRYPTO-PRO Test Center 2' : } : } : } : } : } 585 19: INTEGER : 12 00 49 D8 82 4C AD 6B ..I..L.k : 2E 38 CF 2C D8 00 01 00 .8.,.... : 49 D8 82 I.. : } : } : } : } : } : } : } 606 10: SEQUENCE { 608 8: OBJECT IDENTIFIER '1 2 643 7 1 1 6 2' : } 618 128: OCTET STRING : 05 8A E8 F4 2E 10 BE 52 .......R : D4 33 64 BF 96 9E EA 7D .3d....} : 44 E4 47 8D A8 9E 07 C8 D.G..... : B7 FB 3E 91 77 83 F5 50 ..>.w..P : 05 5B D8 34 71 3E 0C 4D .[.4q>.M : 34 3F 7E B7 57 DF 15 1B 4?~.W... : 2F 40 FE 92 42 F6 D2 1C /@..B... : 64 65 8B 5A FE C2 04 5A de.Z...Z : E3 B7 4B B7 2D B5 EC 28 ..K.-..( : 29 61 C3 27 86 37 80 03 )a.'.7.. : AB 50 7D 35 6E 39 26 17 .P}5n9&. : 95 57 71 95 12 95 86 9F .Wq..... : 53 9A 2F A0 9F 9A 63 78 S./...cx : FE 02 DE BD 55 80 3C 7E ....U.<~ : 66 33 87 1F DC AD CE 08 f3...... : B5 D5 81 74 4B B8 25 14 : } : } : } : } : }
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,963 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
Провайдер на сертификаты не влияет, он только вычисляет хеш и подпись. Какой именно результат вы хотите получить? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 17.06.2020(UTC) Сообщений: 23
Сказал(а) «Спасибо»: 2 раз
|
Автор: Евгений Афанасьев Провайдер на сертификаты не влияет, он только вычисляет хеш и подпись. Какой именно результат вы хотите получить? Хочу чтобы сертификат подписанта был в подписи. Чтобы можно было проверить подпись сертификатом из неё же
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,963 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
У одной из версий addSigner есть параметр boolean addCertificateChain (последний), если он true, то в подпись будет добавлена цепочка сертификата подписи. Описание классов и функций есть в папке javadoc дистрибутива jcp. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close