Статус: Активный участник
Группы: Участники
Зарегистрирован: 04.10.2011(UTC) Сообщений: 74 Откуда: Moscow
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 1 раз в 1 постах
|
похоже обнаружил причину. она в различии значения хеша открытого ключа издателя сертификата в стурктуре ответа от OCSA: BasicOCSPResponse.tbsResponseData.responses.certID.issuerKeyHash. в моей подписи значение одно, в той что формирует КриптоАРМ и плагин - другое. rfc: Цитата:CertID ::= SEQUENCE { hashAlgorithm AlgorithmIdentifier, issuerNameHash OCTET STRING, -- Hash of Issuer's DN issuerKeyHash OCTET STRING, -- Hash of Issuers public key serialNumber CertificateSerialNumber }
issuerNameHash is the hash of the Issuer's distinguished name. The hash shall be calculated over the DER encoding of the issuer's name field in the certificate being checked. issuerKeyHash is the hash of the Issuer's public key. The hash shall be calculated over the value (excluding tag and length) of the subject public key field in the issuer's certificate. The hash algorithm used for both these hashes, is identified in hashAlgorithm. serialNumber is the serial number of the certificate for which status is being requested. код(формирование запроса к OCSA): Код:private _SeqOfRequest createRequestList(X509Certificate userCert, X509Certificate caCert) throws Exception {
_SeqOfRequest requestList = new _SeqOfRequest(1);
CertID certID = new CertID();
certID.hashAlgorithm = getHashAlgId();
certID.issuerNameHash = new Asn1OctetString(digestm(caCert.getSubjectX500Principal().getEncoded(), JCP.GOST_DIGEST_NAME));
certID.issuerKeyHash = new Asn1OctetString(digestm(caCert.getPublicKey().getEncoded(), JCP.GOST_DIGEST_NAME));
certID.serialNumber = new CertificateSerialNumber(userCert.getSerialNumber());
ReqCert reqCert = new ReqCert();
reqCert.set_certID(certID);
requestList.elements[0] = new Request(reqCert);
return requestList;
}
public static byte[] digestm(byte[] bytes, String digestAlgorithmName) throws Exception {
final MessageDigest digest = MessageDigest.getInstance(digestAlgorithmName);
digest.update(bytes);
return digest.digest();
}
Вложение(я): ocsp_resp.JPG (263kb) загружен 15 раз(а).У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 924 Откуда: Крипто-Про Поблагодарили: 99 раз в 95 постах
|
В приведенной Вами цитате из RFC все написано - нужно брать только значение открытого ключа как оно лежит в сертификате издателя, без тега и длины.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 04.10.2011(UTC) Сообщений: 74 Откуда: Moscow
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 1 раз в 1 постах
|
SubjectPublicKeyInfo ключ к разгадке
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close