Re: Rutoken-S и терминал Байкал

snussi пишет:

3F00/0000/0000/0002/1003/4001 - 1308 байт

вот это сертификат
то, что расположено в этом файле соответствует структуре функции CryptSetKeyParam (… KP_CERTIFICATE …)

Re: Rutoken-S и терминал Байкал

Кирилл Мещеряков пишет:
snussi пишет:

3F00/0000/0000/0002/1003/4001 - 1308 байт

вот это сертификат
то, что расположено в этом файле соответствует структуре функции CryptSetKeyParam (… KP_CERTIFICATE …)

Гм, тогда немного странно. В описании функции сказано:

KP_CERTIFICATE - pbData is the address of a buffer that contains the X.509 certificate that has been encoded by using Distinguished Encoding Rules (DER). The public key in the certificate must match the corresponding signature or exchange key.

т.е., проще говоря, файл содержит сертификат x509 в DER-формате.
При этом, OpenSSL его не воспринимает:

> openssl x509 -text -noout -inform DER -in ./3F00_0000_0000_0002_1003_4001
unable to load certificate
2009290776:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1199:
2009290776:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:374:Type=X509

На форумах пишут, что "This error is due to an invalid certificate format installed".

Я также попробовал

> openssl asn1parse -in ./3F00_0000_0000_0002_1003_4001 -inform DER
    0:d=0  hl=2 l= 116 prim: appl [ 3 ]        
  118:d=0  hl=2 l=  32 cons: appl [ 22 ]       
Error in encoding
2010339352:error:0D07209B:asn1 encoding routines:ASN1_get_object:too long:asn1_lib.c:147:

что не сильно совпадает с DER-структурой. Возможно ли, что OpenSSL и CryptoAPI используют разные DER-форматы?

Re: Rutoken-S и терминал Байкал

помимо DER закодированного сертификата там есть еще поля, если вы их уберете - как раз и получите сертификат

Re: Rutoken-S и терминал Байкал

Кирилл Мещеряков пишет:

помимо DER закодированного сертификата там есть еще поля, если вы их уберете - как раз и получите сертификат

Ок, спасибо, буду пробовать!