Статус: Участник
Группы: Участники
Зарегистрирован: 03.09.2013(UTC) Сообщений: 10 Откуда: Татарстан
|
Здравствуйте, прошу откликнуться знающих людей: Необходимо создать открепленную подпись. В примерах в samples_src.jar в пакете с Криптопро JCP нашел такую функцию: Код:
public static byte[] createCMS(byte[] buffer, byte[] sign, Certificate cert,
boolean detached)
throws Exception {
final ContentInfo all = new ContentInfo();
all.contentType = new Asn1ObjectIdentifier(
new OID(CMStools.STR_CMS_OID_SIGNED).value);
final SignedData cms = new SignedData();
all.content = cms;
cms.version = new CMSVersion(1);
// digest
cms.digestAlgorithms = new DigestAlgorithmIdentifiers(1);
final DigestAlgorithmIdentifier a = new DigestAlgorithmIdentifier(
new OID(CMStools.DIGEST_OID).value);
a.parameters = new Asn1Null();
cms.digestAlgorithms.elements[0] = a;
if (detached)
cms.encapContentInfo = new EncapsulatedContentInfo(
new Asn1ObjectIdentifier(
new OID(CMStools.STR_CMS_OID_DATA).value), null);
else
cms.encapContentInfo =
new EncapsulatedContentInfo(new Asn1ObjectIdentifier(
new OID(CMStools.STR_CMS_OID_DATA).value),
new Asn1OctetString(buffer));
// certificate
cms.certificates = new CertificateSet(1);
final ru.CryptoPro.JCP.ASN.PKIX1Explicit88.Certificate certificate =
new ru.CryptoPro.JCP.ASN.PKIX1Explicit88.Certificate();
final Asn1BerDecodeBuffer decodeBuffer =
new Asn1BerDecodeBuffer(cert.getEncoded());
certificate.decode(decodeBuffer);
cms.certificates.elements = new CertificateChoices[1];
cms.certificates.elements[0] = new CertificateChoices();
cms.certificates.elements[0].set_certificate(certificate);
// signer info
cms.signerInfos = new SignerInfos(1);
cms.signerInfos.elements[0] = new SignerInfo();
cms.signerInfos.elements[0].version = new CMSVersion(1);
cms.signerInfos.elements[0].sid = new SignerIdentifier();
final byte[] encodedName = ((X509Certificate) cert).getIssuerX500Principal()
.getEncoded();
final Asn1BerDecodeBuffer nameBuf = new Asn1BerDecodeBuffer(encodedName);
final Name name = new Name();
name.decode(nameBuf);
final CertificateSerialNumber num = new CertificateSerialNumber(
((X509Certificate) cert).getSerialNumber());
cms.signerInfos.elements[0].sid.set_issuerAndSerialNumber(
new IssuerAndSerialNumber(name, num));
cms.signerInfos.elements[0].digestAlgorithm =
new DigestAlgorithmIdentifier(new OID(CMStools.DIGEST_OID).value);
cms.signerInfos.elements[0].digestAlgorithm.parameters = new Asn1Null();
cms.signerInfos.elements[0].signatureAlgorithm =
new SignatureAlgorithmIdentifier(new OID(CMStools.SIGN_OID).value);
cms.signerInfos.elements[0].signatureAlgorithm.parameters = new Asn1Null();
cms.signerInfos.elements[0].signature = new SignatureValue(sign);
cms.signerInfos.elements[0].signedAttrs = new SignedAttributes();
// encode
// final Asn1BerEncodeBuffer asnBuf = new Asn1BerEncodeBuffer();
final Asn1DerEncodeBuffer asnBuf = new Asn1DerEncodeBuffer();
all.encode(asnBuf, true);
return asnBuf.getMsgCopy();
}
При этом создается электронная подпись такого состава: Код:
<?xml version="1.0" encoding="UTF-8"?>
<!-- XML document generated by ASN1VE v2.3.3
(http://www.obj-sys.com). Copyright 2004-2013, All Rights Reserved -->
<!-- message 1 -->
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 840 113549 1 7 2 }</OBJECT_IDENTIFIER>
<CONTEXT_0>
<SEQUENCE>
<INTEGER>1</INTEGER>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 2 2 9 }</OBJECT_IDENTIFIER>
<NULL/>
</SEQUENCE>
</SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 840 113549 1 7 1 }</OBJECT_IDENTIFIER>
</SEQUENCE>
<CONTEXT_0>
<SEQUENCE>
<SEQUENCE>
<CONTEXT_0>
<INTEGER>2</INTEGER>
</CONTEXT_0>
<INTEGER>171387535008336063761909</INTEGER>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 2 2 3 }</OBJECT_IDENTIFIER>
</SEQUENCE>
<SEQUENCE>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 100 1 }</OBJECT_IDENTIFIER>
<NUMERICSTRING>1091690014712</NUMERICSTRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 3 131 1 1 }</OBJECT_IDENTIFIER>
<NUMERICSTRING>001655174024</NUMERICSTRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 9 }</OBJECT_IDENTIFIER>
<UTF8STRING>Петербургская 52</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 840 113549 1 9 1 }</OBJECT_IDENTIFIER>
<IA5STRING>ca@tatar.ru</IA5STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 6 }</OBJECT_IDENTIFIER>
<PRINTABLESTRING>RU</PRINTABLESTRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 8 }</OBJECT_IDENTIFIER>
<UTF8STRING>16 Республика Татарстан</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 7 }</OBJECT_IDENTIFIER>
<UTF8STRING>Казань</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 10 }</OBJECT_IDENTIFIER>
<UTF8STRING>ГУП "Центр информационных технологий РТ"</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 11 }</OBJECT_IDENTIFIER>
<UTF8STRING>Удостоверяющий центр</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 3 }</OBJECT_IDENTIFIER>
<PRINTABLESTRING>CIT RT CA</PRINTABLESTRING>
</SEQUENCE>
</SET>
</SEQUENCE>
<SEQUENCE>
<UTCTIME>130605103100Z</UTCTIME>
<UTCTIME>140905104100Z</UTCTIME>
</SEQUENCE>
<SEQUENCE>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 100 3 }</OBJECT_IDENTIFIER>
<NUMERICSTRING>11944238056</NUMERICSTRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 100 1 }</OBJECT_IDENTIFIER>
<NUMERICSTRING>1047702026701</NUMERICSTRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 3 131 1 1 }</OBJECT_IDENTIFIER>
<NUMERICSTRING>007710474375</NUMERICSTRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 840 113549 1 9 1 }</OBJECT_IDENTIFIER>
<IA5STRING>Anna.dudnikova@tatar.ru</IA5STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 6 }</OBJECT_IDENTIFIER>
<PRINTABLESTRING>RU</PRINTABLESTRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 8 }</OBJECT_IDENTIFIER>
<UNIVERSAL_30>77 Москва</UNIVERSAL_30>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 7 }</OBJECT_IDENTIFIER>
<UNIVERSAL_30>Москва</UNIVERSAL_30>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 10 }</OBJECT_IDENTIFIER>
<UNIVERSAL_30>ООО "Системы документооборота - Дистрибуция"</UNIVERSAL_30>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 3 }</OBJECT_IDENTIFIER>
<UNIVERSAL_30>Серова Анна Андреевна</UNIVERSAL_30>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 12 }</OBJECT_IDENTIFIER>
<UNIVERSAL_30>Менеджер</UNIVERSAL_30>
</SEQUENCE>
</SET>
</SEQUENCE>
<SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 2 2 19 }</OBJECT_IDENTIFIER>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 2 2 36 0 }</OBJECT_IDENTIFIER>
<OBJECT_IDENTIFIER>{ 1 2 643 2 2 30 1 }</OBJECT_IDENTIFIER>
</SEQUENCE>
</SEQUENCE>
<BIT_STRING>
04 40 44 19 c4 0c d3 75
fe 21 ad b6 d4 0d 5b e6
07 83 e7 6e 4c c3 18 98
08 09 e8 c1 9d 12 48 bd
14 fd dd dc aa fe ac be
d0 09 3b 82 b6 60 87 28
9b e2 8e 34 a0 3c fe b4
26 cf 07 a7 64 ea 1b ae
73 c8
</BIT_STRING>
</SEQUENCE>
<CONTEXT_3>
<SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 29 15 }</OBJECT_IDENTIFIER>
<BOOLEAN>TRUE</BOOLEAN>
<OCTET_STRING>030204F0</OCTET_STRING>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 29 37 }</OBJECT_IDENTIFIER>
<OCTET_STRING>302706082B0601050507030406082A8503050310020106072A85030202220606082B06010505070302</OCTET_STRING>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 29 14 }</OBJECT_IDENTIFIER>
<OCTET_STRING>0414FCFC08DF957E7059512744E2915FE802F3BB1D2C</OCTET_STRING>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 29 35 }</OBJECT_IDENTIFIER>
<OCTET_STRING>308201A1801474DEE2CF197952CD0C5AF1AE2143AF538BE8E8CEA182017BA4820177308201733118301606052A85036401120D31303931363930303134373132311A301806082A85030381030101120C3030313635353137343032343126302406035504090C1DD09FD0B5D182D0B5D180D0B1D183D180D0B3D181D0BAD0B0D18F203532311A301806092A864886F70D010901160B63614074617461722E7275310B30090603550406130252553133303106035504080C2A313620D0A0D0B5D181D0BFD183D0B1D0BBD0B8D0BAD0B020D0A2D0B0D182D0B0D180D181D182D0B0D0BD3115301306035504070C0CD09AD0B0D0B7D0B0D0BDD18C31533051060355040A0C4AD093D0A3D09F2022D0A6D0B5D0BDD182D18020D0B8D0BDD184D0BED180D0BCD0B0D186D0B8D0BED0BDD0BDD18BD18520D182D0B5D185D0BDD0BED0BBD0BED0B3D0B8D0B920D0A0D0A2223130302E060355040B0C27D0A3D0B4D0BED181D182D0BED0B2D0B5D180D18FD18ED189D0B8D0B920D186D0B5D0BDD182D180311730150603550403130E43495420525420526F6F74204341820A1ABCF4F5000000000013</OCTET_STRING>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 29 31 }</OBJECT_IDENTIFIER>
<OCTET_STRING>30819A304BA049A0478645687474703A2F2F63726C312E74617461722E72752F6364702F373464656532636631393739353263643063356166316165323134336166353338626538653863652E63726C304BA049A0478645687474703A2F2F63726C322E74617461722E72752F6364702F373464656532636631393739353263643063356166316165323134336166353338626538653863652E63726C</OCTET_STRING>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 3 6 1 5 5 7 1 1 }</OBJECT_IDENTIFIER>
<OCTET_STRING>306E303506082B060105050730028629687474703A2F2F63726C312E74617461722E72752F6364702F636974727463615F76315F312E637274303506082B060105050730028629687474703A2F2F63726C322E74617461722E72752F6364702F636974727463615F76315F312E637274</OCTET_STRING>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 29 16 }</OBJECT_IDENTIFIER>
<OCTET_STRING>3022800F32303133303630353130333130305A810F32303134303630353130333130305A</OCTET_STRING>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 29 32 }</OBJECT_IDENTIFIER>
<OCTET_STRING>3014300806062A8503647101300806062A8503647102</OCTET_STRING>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 100 111 }</OBJECT_IDENTIFIER>
<OCTET_STRING>0C35D09AD180D0B8D0BFD182D0BED09FD180D0BE2043535020332E362E312028D098D181D0BFD0BED0BBD0BDD0B5D0BDD0B8D0B5203829</OCTET_STRING>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 100 112 }</OBJECT_IDENTIFIER>
<OCTET_STRING>3081D40C2B22D09AD180D0B8D0BFD182D0BED09FD180D0BE20435350222028D0B2D0B5D180D181D0B8D18F20332E36290C5322D0A3D0B4D0BED181D182D0BED0B2D0B5D180D18FD18ED189D0B8D0B920D186D0B5D0BDD182D1802022D09AD180D0B8D0BFD182D0BED09FD180D0BE20D0A3D0A62220D0B2D0B5D180D181D0B8D18F20312E350C27D0A1D0A42F3132312D3138353920D0BED18220313720D0B8D18ED0BDD18F203230313220D0B32E0C27D0A1D0A42F3132382D3138323220D0BED18220303120D0B8D18ED0BDD18F203230313220D0B32E</OCTET_STRING>
</SEQUENCE>
</SEQUENCE>
</CONTEXT_3>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 2 2 3 }</OBJECT_IDENTIFIER>
</SEQUENCE>
<BIT_STRING>
0e 5f a1 1e e2 34 33 26
62 f0 7d e7 4e c9 30 6b
24 80 44 0e 48 39 93 51
59 18 31 8b b4 40 49 84
6a c1 3f 98 15 39 4c 22
70 93 5e 2e 5e 62 40 da
10 66 09 18 38 24 f1 ea
7f a6 a1 6f f5 56 1a fc
</BIT_STRING>
</SEQUENCE>
</CONTEXT_0>
<SET>
<SEQUENCE>
<INTEGER>1</INTEGER>
<SEQUENCE>
<SEQUENCE>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 100 1 }</OBJECT_IDENTIFIER>
<NUMERICSTRING>1091690014712</NUMERICSTRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 3 131 1 1 }</OBJECT_IDENTIFIER>
<NUMERICSTRING>001655174024</NUMERICSTRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 9 }</OBJECT_IDENTIFIER>
<UTF8STRING>Петербургская 52</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 840 113549 1 9 1 }</OBJECT_IDENTIFIER>
<IA5STRING>ca@tatar.ru</IA5STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 6 }</OBJECT_IDENTIFIER>
<PRINTABLESTRING>RU</PRINTABLESTRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 8 }</OBJECT_IDENTIFIER>
<UTF8STRING>16 Республика Татарстан</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 7 }</OBJECT_IDENTIFIER>
<UTF8STRING>Казань</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 10 }</OBJECT_IDENTIFIER>
<UTF8STRING>ГУП "Центр информационных технологий РТ"</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 11 }</OBJECT_IDENTIFIER>
<UTF8STRING>Удостоверяющий центр</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 3 }</OBJECT_IDENTIFIER>
<PRINTABLESTRING>CIT RT CA</PRINTABLESTRING>
</SEQUENCE>
</SET>
</SEQUENCE>
<INTEGER>171387535008336063761909</INTEGER>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 2 2 9 }</OBJECT_IDENTIFIER>
<NULL/>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 2 2 19 }</OBJECT_IDENTIFIER>
<NULL/>
</SEQUENCE>
<OCTET_STRING>A1B7295C43EB3FED67197B6E5CFD303DAE11A2FF727B4AE5A4212600643F85CCC8E0728EE7590B68F8283EB6A8C111DBEDDC7AD10132CD0ED8A121CE28560570</OCTET_STRING>
</SEQUENCE>
</SET>
</SEQUENCE>
</CONTEXT_0>
</SEQUENCE>
Продолжение в следующем сообщении.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 03.09.2013(UTC) Сообщений: 10 Откуда: Татарстан
|
Однако, очень нужно, чтобы ЭП соответствовала такому составу: Код:
<?xml version="1.0" encoding="UTF-8"?>
<!-- XML document generated by ASN1VE v2.3.3
(http://www.obj-sys.com). Copyright 2004-2013, All Rights Reserved -->
<!-- message 1 -->
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 840 113549 1 7 2 }</OBJECT_IDENTIFIER>
<CONTEXT_0>
<SEQUENCE>
<INTEGER>1</INTEGER>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 2 2 9 }</OBJECT_IDENTIFIER>
<NULL/>
</SEQUENCE>
</SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 840 113549 1 7 1 }</OBJECT_IDENTIFIER>
</SEQUENCE>
<CONTEXT_0>
<SEQUENCE>
<SEQUENCE>
<CONTEXT_0>
<INTEGER>2</INTEGER>
</CONTEXT_0>
<INTEGER>171387535008336063761909</INTEGER>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 2 2 3 }</OBJECT_IDENTIFIER>
</SEQUENCE>
<SEQUENCE>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 100 1 }</OBJECT_IDENTIFIER>
<NUMERICSTRING>1091690014712</NUMERICSTRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 3 131 1 1 }</OBJECT_IDENTIFIER>
<NUMERICSTRING>001655174024</NUMERICSTRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 9 }</OBJECT_IDENTIFIER>
<UTF8STRING>Петербургская 52</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 840 113549 1 9 1 }</OBJECT_IDENTIFIER>
<IA5STRING>ca@tatar.ru</IA5STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 6 }</OBJECT_IDENTIFIER>
<PRINTABLESTRING>RU</PRINTABLESTRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 8 }</OBJECT_IDENTIFIER>
<UTF8STRING>16 Республика Татарстан</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 7 }</OBJECT_IDENTIFIER>
<UTF8STRING>Казань</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 10 }</OBJECT_IDENTIFIER>
<UTF8STRING>ГУП "Центр информационных технологий РТ"</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 11 }</OBJECT_IDENTIFIER>
<UTF8STRING>Удостоверяющий центр</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 3 }</OBJECT_IDENTIFIER>
<PRINTABLESTRING>CIT RT CA</PRINTABLESTRING>
</SEQUENCE>
</SET>
</SEQUENCE>
<SEQUENCE>
<UTCTIME>130605103100Z</UTCTIME>
<UTCTIME>140905104100Z</UTCTIME>
</SEQUENCE>
<SEQUENCE>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 100 3 }</OBJECT_IDENTIFIER>
<NUMERICSTRING>11944238056</NUMERICSTRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 100 1 }</OBJECT_IDENTIFIER>
<NUMERICSTRING>1047702026701</NUMERICSTRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 3 131 1 1 }</OBJECT_IDENTIFIER>
<NUMERICSTRING>007710474375</NUMERICSTRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 840 113549 1 9 1 }</OBJECT_IDENTIFIER>
<IA5STRING>Anna.dudnikova@tatar.ru</IA5STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 6 }</OBJECT_IDENTIFIER>
<PRINTABLESTRING>RU</PRINTABLESTRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 8 }</OBJECT_IDENTIFIER>
<UNIVERSAL_30>77 Москва</UNIVERSAL_30>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 7 }</OBJECT_IDENTIFIER>
<UNIVERSAL_30>Москва</UNIVERSAL_30>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 10 }</OBJECT_IDENTIFIER>
<UNIVERSAL_30>ООО "Системы документооборота - Дистрибуция"</UNIVERSAL_30>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 3 }</OBJECT_IDENTIFIER>
<UNIVERSAL_30>Серова Анна Андреевна</UNIVERSAL_30>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 12 }</OBJECT_IDENTIFIER>
<UNIVERSAL_30>Менеджер</UNIVERSAL_30>
</SEQUENCE>
</SET>
</SEQUENCE>
<SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 2 2 19 }</OBJECT_IDENTIFIER>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 2 2 36 0 }</OBJECT_IDENTIFIER>
<OBJECT_IDENTIFIER>{ 1 2 643 2 2 30 1 }</OBJECT_IDENTIFIER>
</SEQUENCE>
</SEQUENCE>
<BIT_STRING>
04 40 44 19 c4 0c d3 75
fe 21 ad b6 d4 0d 5b e6
07 83 e7 6e 4c c3 18 98
08 09 e8 c1 9d 12 48 bd
14 fd dd dc aa fe ac be
d0 09 3b 82 b6 60 87 28
9b e2 8e 34 a0 3c fe b4
26 cf 07 a7 64 ea 1b ae
73 c8
</BIT_STRING>
</SEQUENCE>
<CONTEXT_3>
<SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 29 15 }</OBJECT_IDENTIFIER>
<BOOLEAN>TRUE</BOOLEAN>
<OCTET_STRING>030204F0</OCTET_STRING>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 29 37 }</OBJECT_IDENTIFIER>
<OCTET_STRING>302706082B0601050507030406082A8503050310020106072A85030202220606082B06010505070302</OCTET_STRING>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 29 14 }</OBJECT_IDENTIFIER>
<OCTET_STRING>0414FCFC08DF957E7059512744E2915FE802F3BB1D2C</OCTET_STRING>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 29 35 }</OBJECT_IDENTIFIER>
<OCTET_STRING>308201A1801474DEE2CF197952CD0C5AF1AE2143AF538BE8E8CEA182017BA4820177308201733118301606052A85036401120D31303931363930303134373132311A301806082A85030381030101120C3030313635353137343032343126302406035504090C1DD09FD0B5D182D0B5D180D0B1D183D180D0B3D181D0BAD0B0D18F203532311A301806092A864886F70D010901160B63614074617461722E7275310B30090603550406130252553133303106035504080C2A313620D0A0D0B5D181D0BFD183D0B1D0BBD0B8D0BAD0B020D0A2D0B0D182D0B0D180D181D182D0B0D0BD3115301306035504070C0CD09AD0B0D0B7D0B0D0BDD18C31533051060355040A0C4AD093D0A3D09F2022D0A6D0B5D0BDD182D18020D0B8D0BDD184D0BED180D0BCD0B0D186D0B8D0BED0BDD0BDD18BD18520D182D0B5D185D0BDD0BED0BBD0BED0B3D0B8D0B920D0A0D0A2223130302E060355040B0C27D0A3D0B4D0BED181D182D0BED0B2D0B5D180D18FD18ED189D0B8D0B920D186D0B5D0BDD182D180311730150603550403130E43495420525420526F6F74204341820A1ABCF4F5000000000013</OCTET_STRING>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 29 31 }</OBJECT_IDENTIFIER>
<OCTET_STRING>30819A304BA049A0478645687474703A2F2F63726C312E74617461722E72752F6364702F373464656532636631393739353263643063356166316165323134336166353338626538653863652E63726C304BA049A0478645687474703A2F2F63726C322E74617461722E72752F6364702F373464656532636631393739353263643063356166316165323134336166353338626538653863652E63726C</OCTET_STRING>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 3 6 1 5 5 7 1 1 }</OBJECT_IDENTIFIER>
<OCTET_STRING>306E303506082B060105050730028629687474703A2F2F63726C312E74617461722E72752F6364702F636974727463615F76315F312E637274303506082B060105050730028629687474703A2F2F63726C322E74617461722E72752F6364702F636974727463615F76315F312E637274</OCTET_STRING>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 29 16 }</OBJECT_IDENTIFIER>
<OCTET_STRING>3022800F32303133303630353130333130305A810F32303134303630353130333130305A</OCTET_STRING>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 29 32 }</OBJECT_IDENTIFIER>
<OCTET_STRING>3014300806062A8503647101300806062A8503647102</OCTET_STRING>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 100 111 }</OBJECT_IDENTIFIER>
<OCTET_STRING>0C35D09AD180D0B8D0BFD182D0BED09FD180D0BE2043535020332E362E312028D098D181D0BFD0BED0BBD0BDD0B5D0BDD0B8D0B5203829</OCTET_STRING>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 100 112 }</OBJECT_IDENTIFIER>
<OCTET_STRING>3081D40C2B22D09AD180D0B8D0BFD182D0BED09FD180D0BE20435350222028D0B2D0B5D180D181D0B8D18F20332E36290C5322D0A3D0B4D0BED181D182D0BED0B2D0B5D180D18FD18ED189D0B8D0B920D186D0B5D0BDD182D1802022D09AD180D0B8D0BFD182D0BED09FD180D0BE20D0A3D0A62220D0B2D0B5D180D181D0B8D18F20312E350C27D0A1D0A42F3132312D3138353920D0BED18220313720D0B8D18ED0BDD18F203230313220D0B32E0C27D0A1D0A42F3132382D3138323220D0BED18220303120D0B8D18ED0BDD18F203230313220D0B32E</OCTET_STRING>
</SEQUENCE>
</SEQUENCE>
</CONTEXT_3>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 2 2 3 }</OBJECT_IDENTIFIER>
</SEQUENCE>
<BIT_STRING>
0e 5f a1 1e e2 34 33 26
62 f0 7d e7 4e c9 30 6b
24 80 44 0e 48 39 93 51
59 18 31 8b b4 40 49 84
6a c1 3f 98 15 39 4c 22
70 93 5e 2e 5e 62 40 da
10 66 09 18 38 24 f1 ea
7f a6 a1 6f f5 56 1a fc
</BIT_STRING>
</SEQUENCE>
</CONTEXT_0>
<SET>
<SEQUENCE>
<INTEGER>1</INTEGER>
<SEQUENCE>
<SEQUENCE>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 100 1 }</OBJECT_IDENTIFIER>
<NUMERICSTRING>1091690014712</NUMERICSTRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 3 131 1 1 }</OBJECT_IDENTIFIER>
<NUMERICSTRING>001655174024</NUMERICSTRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 9 }</OBJECT_IDENTIFIER>
<UTF8STRING>Петербургская 52</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 840 113549 1 9 1 }</OBJECT_IDENTIFIER>
<IA5STRING>ca@tatar.ru</IA5STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 6 }</OBJECT_IDENTIFIER>
<PRINTABLESTRING>RU</PRINTABLESTRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 8 }</OBJECT_IDENTIFIER>
<UTF8STRING>16 Республика Татарстан</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 7 }</OBJECT_IDENTIFIER>
<UTF8STRING>Казань</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 10 }</OBJECT_IDENTIFIER>
<UTF8STRING>ГУП "Центр информационных технологий РТ"</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 11 }</OBJECT_IDENTIFIER>
<UTF8STRING>Удостоверяющий центр</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 3 }</OBJECT_IDENTIFIER>
<PRINTABLESTRING>CIT RT CA</PRINTABLESTRING>
</SEQUENCE>
</SET>
</SEQUENCE>
<INTEGER>171387535008336063761909</INTEGER>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 2 2 9 }</OBJECT_IDENTIFIER>
<NULL/>
</SEQUENCE>
<CONTEXT_0>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 25 313731 5229867 6461865 }</OBJECT_IDENTIFIER>
<SET>
<INTEGER>1</INTEGER>
</SET>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 840 113549 1 9 3 }</OBJECT_IDENTIFIER>
<SET>
<OBJECT_IDENTIFIER>{ 1 2 840 113549 1 7 1 }</OBJECT_IDENTIFIER>
</SET>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 840 113549 1 9 5 }</OBJECT_IDENTIFIER>
<SET>
<UTCTIME>130910060544Z</UTCTIME>
</SET>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 840 113549 1 9 4 }</OBJECT_IDENTIFIER>
<SET>
<OCTET_STRING>84B7A3A2664C9CEE8B0183BD78E6D106F3651A983FB9DBABB04A6C4B3A919018</OCTET_STRING>
</SET>
</SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 840 113549 1 9 16 2 47 }</OBJECT_IDENTIFIER>
<SET>
<SEQUENCE>
<SEQUENCE>
<SEQUENCE>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 2 2 9 }</OBJECT_IDENTIFIER>
</SEQUENCE>
<OCTET_STRING>84DE7CF8B29511A3F72ABCECC1A84D89D2FAB7C11B1F2EE6D31F73F4494A5E89</OCTET_STRING>
<SEQUENCE>
<SEQUENCE>
<CONTEXT_4>
<SEQUENCE>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 100 1 }</OBJECT_IDENTIFIER>
<NUMERICSTRING>1091690014712</NUMERICSTRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 3 131 1 1 }</OBJECT_IDENTIFIER>
<NUMERICSTRING>001655174024</NUMERICSTRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 9 }</OBJECT_IDENTIFIER>
<UTF8STRING>Петербургская 52</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 840 113549 1 9 1 }</OBJECT_IDENTIFIER>
<IA5STRING>ca@tatar.ru</IA5STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 6 }</OBJECT_IDENTIFIER>
<PRINTABLESTRING>RU</PRINTABLESTRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 8 }</OBJECT_IDENTIFIER>
<UTF8STRING>16 Республика Татарстан</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 7 }</OBJECT_IDENTIFIER>
<UTF8STRING>Казань</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 10 }</OBJECT_IDENTIFIER>
<UTF8STRING>ГУП "Центр информационных технологий РТ"</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 11 }</OBJECT_IDENTIFIER>
<UTF8STRING>Удостоверяющий центр</UTF8STRING>
</SEQUENCE>
</SET>
<SET>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 2 5 4 3 }</OBJECT_IDENTIFIER>
<PRINTABLESTRING>CIT RT CA</PRINTABLESTRING>
</SEQUENCE>
</SET>
</SEQUENCE>
</CONTEXT_4>
</SEQUENCE>
<INTEGER>171387535008336063761909</INTEGER>
</SEQUENCE>
</SEQUENCE>
</SEQUENCE>
</SEQUENCE>
</SET>
</SEQUENCE>
</CONTEXT_0>
<SEQUENCE>
<OBJECT_IDENTIFIER>{ 1 2 643 2 2 19 }</OBJECT_IDENTIFIER>
<NULL/>
</SEQUENCE>
<OCTET_STRING>BFC78194A55366FC6AE6EA7A064BAD2BA6272C1B9357F9C23F9C8A8518D929A4315A2CADCBD9820A1CFE22D74DA297299F2C6C0D7FE42EA401D3F5953C0C543A</OCTET_STRING>
</SEQUENCE>
</SET>
</SEQUENCE>
</CONTEXT_0>
</SEQUENCE>
Т.е. не хватает узла <CONTEXT_0> который в целевой ЭП на 327 строке. Какие поля или методы заполнить в функции createCMS, чтобы генерируемая ЭП соответствовала примеру?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 24.11.2009(UTC) Сообщений: 965 Откуда: Crypto-Pro
Сказал(а) «Спасибо»: 3 раз Поблагодарили: 174 раз в 152 постах
|
Вас интересуют подписанные атрибуты. Пример их добавления есть в файле samples/src/main/java/CMS_samples/CMSSign.java. Код:
public static byte[] createhashCMS(byte[] data, boolean isExternalDigest,
PrivateKey[] keys, Certificate[] certs, String path, boolean detached,
boolean addSignCertV2) throws Exception {
PS: при выкладывании подписи лучше прикреплять файлы а не выкладывать asn1dump ввиде текста - крайне неудобно читать. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 03.09.2013(UTC) Сообщений: 10 Откуда: Татарстан
|
Спасибо за ответ. Ну вот, например, идентификатор 1 2 840 113549 1 9 16 2 47, означающий id-aa-signingCertificateV2, как его добавить? В примере не нашел. Нашел такой класс SigningCertificateV2, а как его проинициализировать правильно? Отредактировано пользователем 12 сентября 2013 г. 12:24:15(UTC)
| Причина: Не указана
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 03.09.2013(UTC) Сообщений: 10 Откуда: Татарстан
|
И просто странно, почему подписи созданные createCMS, signCMS, createhashCMS не проходят валидацию в csptest -keyset -verfy GOST ? В них нет атрибутов, соответствующих госту? И вот еще магический идентификатор 2 25 313731 5229867 6461865 , информации о котором я так и не нашел... Отредактировано пользователем 12 сентября 2013 г. 12:15:36(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,962 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
Автор: cross Вас интересуют подписанные атрибуты. Пример их добавления есть в файле samples/src/main/java/CMS_samples/CMSSign.java. Код:
public static byte[] createhashCMS(byte[] data, boolean isExternalDigest,
PrivateKey[] keys, Certificate[] certs, String path, boolean detached,
boolean addSignCertV2) throws Exception {
Посмотрите в коде, addSignCertV2 - опция, позволяющая добавить ссылку на сертификат в подписываемые атрибуты. Отредактировано пользователем 12 сентября 2013 г. 12:19:49(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 03.09.2013(UTC) Сообщений: 10 Откуда: Татарстан
|
Да, спасибо, кажется, мы уже близко к тому, чтобы создать нужную CMS. не нашел функции с такими параметрами Автор: afev Автор: cross Вас интересуют подписанные атрибуты. Пример их добавления есть в файле samples/src/main/java/CMS_samples/CMSSign.java. Код:
public static byte[] createhashCMS(byte[] data, boolean isExternalDigest,
PrivateKey[] keys, Certificate[] certs, String path, boolean detached,
boolean addSignCertV2) throws Exception {
Посмотрите в коде, addSignCertV2 - опция, позволяющая добавить ссылку на сертификат в подписываемые атрибуты. Может быть у меня старые примеры? То есть если решится вопрос с этой функцией, мне не будет нужно это Автор: i1211 Спасибо за ответ. Ну вот, например, идентификатор 1 2 840 113549 1 9 16 2 47, означающий id-aa-signingCertificateV2, как его добавить? В примере не нашел.
Нашел такой класс SigningCertificateV2, а как его проинициализировать правильно? И последний вопрос про Автор: i1211 И вот еще магический идентификатор 2 25 313731 5229867 6461865 , информации о котором я так и не нашел...
Спасибо за ответы:) Отредактировано пользователем 12 сентября 2013 г. 12:37:39(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,962 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
Функция называется createhashCMS(), а addSignCertV2 - ее параметр. Функция находится в классе CMSSign в samples-sources.jar. Если в вашем samples-sources.jar нет такой функции, то скачайте архив jcp 2.0, посмотрите в его samples-sources.jar. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,962 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
2 25 313731 5229867 6461865 - возможно, это сгенерированный идентификатор, о нем нам неизвестно. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 03.09.2013(UTC) Сообщений: 10 Откуда: Татарстан
|
Спасибо, не посмотрел на параметры функции в вашем сообщении Автор: afev Автор: cross Вас интересуют подписанные атрибуты. Пример их добавления есть в файле samples/src/main/java/CMS_samples/CMSSign.java. Код:
public static byte[] createhashCMS(byte[] data, boolean isExternalDigest,
PrivateKey[] keys, Certificate[] certs, String path, boolean detached,
boolean addSignCertV2) throws Exception {
Посмотрите в коде, addSignCertV2 - опция, позволяющая добавить ссылку на сертификат в подписываемые атрибуты. У меня была первая jcp, там её не было, вот и ступил. Теперь вопросов, кроме этого злополучного 2 25 313731 5229867 6461865 у меня не осталось. Спасибо за ответы.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close