Каков формат открытого ключа? - PullRequest
2 голосов
/ 27 июня 2011

Какой формат открытого ключа DSA? И все ли сертификаты хранятся в base64?

Ответы [ 2 ]

4 голосов
/ 03 июля 2011

Вы имеете в виду формат открытого ключа, используемый в сертификате?

Обычно открытый ключ в сертификате хранится в поле SubjectPublicKeyInfo (см. RFC 5280)

SubjectPublicKeyInfo  ::=  SEQUENCE  {
     algorithm            AlgorithmIdentifier,
     subjectPublicKey     BIT STRING  }

Особенности DSA можно найти в RFC 3370 . Обычно параметры AlgorithmIdentifier содержат экземпляр Dss-Parms, дающий вам p, k, g, а subjectPublicKey BIT STRING содержит открытый ключ y, закодированный как DER-кодированный INTEGER.

Относительно Base64: Строго говоря, сертификаты не закодированы в Base64, но используют его расширенную форму, формат PEM, простой текстовый формат, который является кодировкой Base64 сертификата X.509 (RFC5280) заключенный между строк

"-----BEGIN CERTIFICATE-----" 
...
"-----END CERTIFICATE-----" 

или

"-----BEGIN X509 CERTIFICATE----" 
...
"-----END X509 CERTIFICATE----". 

Сам сертификат является кодировкой DER структуры ASN.1, как описано в RFC 5280. Подробнее о DER (Правилах выделенного кодирования) см. X.690 .

Большинство сертификатов хранятся либо в формате PEM, либо непосредственно в необработанном виде в кодировке DER.

0 голосов
/ 27 июня 2011

На этой странице содержится множество информации и ссылок на технические характеристики. http://en.wikipedia.org/wiki/Digital_Signature_Algorithm

...