Статус: Новичок
Группы: Участники
Зарегистрирован: 22.09.2010(UTC) Сообщений: 6
|
Здравствуйте. Ситуация такая: есть большое веб-приложение (1), установленное в WebSphere 7.0.0.9, и маленькое десктоп-приложение(2), созданное для тестирования подписей. В плане подписей (1) и (2) имеют одинаковый исходный код: Код:
final KeyStore floppy = KeyStore.getInstance(STORE_TYPE);
floppy.load(null, null);
Certificate c = floppy.getCertificate("ZU");
System.out.println("DECODED:" + c.toString());
final ru.CryptoPro.JCP.ASN.PKIX1Explicit88.Certificate certificate =
new ru.CryptoPro.JCP.ASN.PKIX1Explicit88.Certificate();
final Asn1BerDecodeBuffer decodeBuffer = new Asn1BerDecodeBuffer(c.getEncoded());
certificate.decode(decodeBuffer);
Код немного упрощен (try-catch и т.п.). Проблема в том, что в веб-приложении, происходит падение на certificate.decode(decodeBuffer); , а в десктоп этого нет. Текст ошибки: Код:
java.lang.NullPointerException
at ru.CryptoPro.JCP.ASN.PKIX1Explicit88.AttributeTypeAndValue.checkTC(AttributeTypeAndValue.java:121)
at ru.CryptoPro.JCP.ASN.PKIX1Explicit88.AttributeTypeAndValue.decode(AttributeTypeAndValue.java:89)
at ru.CryptoPro.JCP.ASN.PKIX1Explicit88.RelativeDistinguishedName.decode(RelativeDistinguishedName.java:52)
at ru.CryptoPro.JCP.ASN.PKIX1Explicit88.RDNSequence.decode(RDNSequence.java:52)
at ru.CryptoPro.JCP.ASN.PKIX1Explicit88.Name.decode(Name.java:52)
at ru.CryptoPro.JCP.ASN.PKIX1Explicit88.TBSCertificate.decode(TBSCertificate.java:179)
at ru.CryptoPro.JCP.ASN.PKIX1Explicit88.Certificate.decode(Certificate.java:61)
Так вот, интерпретация загруженного происходит по разному у (1) и (2). Пример СистемАута в (1): Код:
[
Version: V3
Subject: OID.1.2.840.113549.1.9.2="FIRST_NAME=Иван$MIDDLE_NAME=Петрович$LAST_NAME=Андреенко$POSITION=Пользователь$ROLE=S$INN=7416919552$ORG_FULL_NAME=Войсковая часть 55059$ORG_OGRN=1441692483355$ORG_ADDRESS=Москва ул Новая 103$ORG_ROLE=C$ORG_OKOGU=13230$ORG_SUB_ID=1$ORG_TYPE_ID=1$ORG_COUNTRY_ID=643$ORG_IDENT_ID=1523523", CN=ZU, O=ORGO, C=RU
Signature Algorithm: 1.2.643.2.2.3, OID = 1.2.643.2.2.3
Key: ru.CryptoPro.JCP.Key.a
Validity: [From: Fri Jun 04 12:13:10 MSD 2010,
To: Sat Jun 04 12:23:10 MSD 2011]
Issuer: CN=Test Center CRYPTO-PRO, O=CRYPTO-PRO, C=RU, EMAILADDRESS=info@cryptopro.ru
SerialNumber: [149850414396404708434221]
Certificate Extensions: 6
[1]: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
DigitalSignature
Non_repudiation
Key_CertSign
]
[2]: ObjectId: 2.5.29.37 Criticality=false
ExtKeyUsage [
1.3.6.1.5.5.7.3.2]
[3]: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: f9 f9 4c 75 7a b2 77 fa a5 77 02 98 f6 eb 73 2b ..Luz.w..w....s.
0010: 9d 0b 0d 27 ....
]
]
[4]: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 6d 8f 5e 05 d9 5f ac 91 17 94 1e 95 9a 05 30 38 m.............08
0010: 37 7a 10 2a 7z..
]
]
[5]: ObjectId: 2.5.29.31 Criticality=false
CRLDistributionPoints [
1 CRL Distribution Points:
Distribution Point: [
Distribution Point Name: [URIName: http://www.cryptopro.ru/certenroll/Test%20Center%20CRYPTO-PRO(2).crl]
Reason Flags: null
Issuer: null
]
]
[6]: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
AuthorityInfoAccess [
[accessMethod: 1.3.6.1.5.5.7.48.1
accessLocation: URIName: http://www.cryptopro.ru/ocspnc/ocsp.srf, accessMethod: 1.3.6.1.5.5.7.48.2
accessLocation: URIName: http://www.cryptopro.ru/CertEnroll/Crypto_Test%20Center%20CRYPTO-PRO(2).crt]]
]
Algorithm: [1.2.643.2.2.3]
Signature:
0000: 5d 4e 60 4b ba 4b 60 c9 6d ef 60 1c 09 67 23 b4 .N.K.K..m....g..
0010: a6 17 df d5 16 60 30 98 1c 7b be 41 b6 2d 56 17 ......0....A..V.
0020: b7 27 6c 52 01 2e 17 f4 44 fe c3 28 ba 66 40 b6 ..lR....D....f..
0030: d1 71 c0 68 ce 9f 89 4a 5c 64 f6 81 28 32 e2 88 .q.h...J.d...2..
]
(2): Код:
[
Version: V3
Subject: OID.1.2.840.113549.1.9.2="FIRST_NAME=Иван$MIDDLE_NAME=Петрович$LAST_NAME=Андреенко$POSITION=Пользователь$ROLE=S$INN=7416919552$ORG_FULL_NAME=Войсковая часть 55059$ORG_OGRN=1441692483355$ORG_ADDRESS=Москва ул Новая 103$ORG_ROLE=C$ORG_OKOGU=13230$ORG_SUB_ID=1$ORG_TYPE_ID=1$ORG_COUNTRY_ID=643$ORG_IDENT_ID=1523523", CN=ZU, O=ORGO, C=RU
Signature Algorithm: 1.2.643.2.2.3, OID = 1.2.643.2.2.3
Key: ru.CryptoPro.JCP.Key.a
Validity: [From: Fri Jun 04 12:13:10 MSD 2010,
To: Sat Jun 04 12:23:10 MSD 2011]
Issuer: CN=Test Center CRYPTO-PRO, O=CRYPTO-PRO, C=RU, EMAILADDRESS=info@cryptopro.ru
SerialNumber: [ 1fbb6841 00020000 612d]
Certificate Extensions: 6
[1]: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: F9 F9 4C 75 7A B2 77 FA A5 77 02 98 F6 EB 73 2B ..Luz.w..w....s+
0010: 9D 0B 0D 27 ...'
]
]
[2]: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 6D 8F 5E 05 D9 5F AC 91 17 94 1E 95 9A 05 30 38 m.^.._........08
0010: 37 7A 10 2A 7z.*
]
]
[3]: ObjectId: 2.5.29.31 Criticality=false
CRLDistributionPoints [
[DistributionPoint:
[URIName: http://www.cryptopro.ru/certenroll/Test%20Center%20CRYPTO-PRO(2).crl]
]]
[4]: ObjectId: 2.5.29.37 Criticality=false
ExtendedKeyUsages [
clientAuth
]
[5]: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
DigitalSignature
Non_repudiation
Key_CertSign
]
[6]: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
AuthorityInfoAccess [
[accessMethod: 1.3.6.1.5.5.7.48.1
accessLocation: URIName: http://www.cryptopro.ru/ocspnc/ocsp.srf, accessMethod: 1.3.6.1.5.5.7.48.2
accessLocation: URIName: http://www.cryptopro.ru/CertEnroll/Crypto_Test%20Center%20CRYPTO-PRO(2).crt]
]
]
Algorithm: [1.2.643.2.2.3]
Signature:
0000: 5D 4E 60 4B BA 4B 60 C9 6D EF 60 1C 09 67 23 B4 ]N`K.K`.m.`..g#.
0010: A6 17 DF D5 16 60 30 98 1C 7B BE 41 B6 2D 56 17 .....`0....A.-V.
0020: B7 27 6C 52 01 2E 17 F4 44 FE C3 28 BA 66 40 B6 .'lR....D..(.f@.
0030: D1 71 C0 68 CE 9F 89 4A 5C 64 F6 81 28 32 E2 88 .q.h...J\d..(2..
]
Из найденных мной отличий: представление серийника: SerialNumber: [ 1fbb6841 00020000 612d] против SerialNumber: [149850414396404708434221] , Signature - заглавные буквы против строчных, и справа абракадабра меняется из-за этого. при этом, md5 хеш от с.getEncoded() одинаков у (1) и (2), т.е. raw представление, похоже, одинаковое. Загруженные сертификаты одинаковы - у них один и тот же серийник + raw представление. В общем, данная ошибка ставит меня в тупик, очень прошу помочь. Спасибо.
|