Оказывается, этот файл фактически является блоком EC PARAMETERS
для ключа ЕС, а не сертификатом. Я нашел это, сбросив структуры ASN.1 и сравнив его с другим ключом EC, который я сгенерировал.
$ openssl asn1parse -in test.pem -i -dump
0:d=0 hl=3 l= 146 cons: SEQUENCE
3:d=1 hl=2 l= 1 prim: INTEGER :01
6:d=1 hl=2 l= 40 cons: SEQUENCE
8:d=2 hl=2 l= 7 prim: OBJECT :prime-field
17:d=2 hl=2 l= 29 prim: INTEGER :FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFE56D
48:d=1 hl=2 l= 6 cons: SEQUENCE
50:d=2 hl=2 l= 1 prim: OCTET STRING
0001 - <SPACES/NULS>
53:d=2 hl=2 l= 1 prim: OCTET STRING
0000 - 05 .
56:d=1 hl=2 l= 57 prim: OCTET STRING
0000 - 04 a1 45 5b 33 4d f0 99-df 30 fc 28 a1 69 a4 67 ..E[3M...0.(.i.g
0010 - e9 e4 70 75 a9 0f 7e 65-0e b6 b7 a4 5c 7e 08 9f ..pu..~e....\~..
0020 - ed 7f ba 34 42 82 ca fb-d6 f7 e3 19 f7 c0 b0 bd ...4B...........
0030 - 59 e2 ca 4b db 55 6d 61-a5 Y..K.Uma.
115:d=1 hl=2 l= 29 prim: INTEGER :010000000000000000000000000001DCE8D2EC6184CAF0A971769FB1F7
146:d=1 hl=2 l= 1 prim: INTEGER :01
Закрепление заголовков позволяет читать файл, как это:
$ openssl ecparam -in test.pem -text
Field Type: prime-field
Prime:
00:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:
ff:ff:ff:ff:ff:ff:ff:ff:ff:fe:ff:ff:e5:6d
A: 0
B: 5 (0x5)
Generator (uncompressed):
04:a1:45:5b:33:4d:f0:99:df:30:fc:28:a1:69:a4:
67:e9:e4:70:75:a9:0f:7e:65:0e:b6:b7:a4:5c:7e:
08:9f:ed:7f:ba:34:42:82:ca:fb:d6:f7:e3:19:f7:
c0:b0:bd:59:e2:ca:4b:db:55:6d:61:a5
Order:
01:00:00:00:00:00:00:00:00:00:00:00:00:00:01:
dc:e8:d2:ec:61:84:ca:f0:a9:71:76:9f:b1:f7
Cofactor: 1 (0x1)
-----BEGIN EC PARAMETERS-----
MIGSAgEBMCgGByqGSM49AQECHQD///////////////////////////////7//+Vt
MAYEAQAEAQUEOQShRVszTfCZ3zD8KKFppGfp5HB1qQ9+ZQ62t6Rcfgif7X+6NEKC
yvvW9+MZ98CwvVniykvbVW1hpQIdAQAAAAAAAAAAAAAAAAAB3OjS7GGEyvCpcXaf
sfcCAQE=
-----END EC PARAMETERS-----
Что более красиво отформатирована версия предыдущего выпуска. Обратите внимание на правильный BEGIN EC PARAMETERS
вместо BEGIN CERTIFICATE
. Основной блок показан в выводе выше.
Представленное вами содержимое не является цифровым сертификатом. Это похоже на детали параметров, связанных с конкретной кривой (структура ASN.1 ECParameter). – Crypt32
Это часть домашней работы о цифровых подписях. В нем говорится, что мне нужно выполнить некоторую операцию с простым числом p, которое можно найти в файле с расширением .der. Мне удалось преобразовать расширение .der в .crt, и я получил этот текст, но я не могу понять это, ведь это p из-за разделителя '/'. – student
На самом деле это байтовый массив с кодировкой Base64 параметров ключа эллиптической кривой, закодированных DER-кодированием, поэтому слэши не являются разделителями. С помощью OpenSSL вы можете попробовать эту команду в отношении вашего файла: 'openssl ecparam -in secp256k1.pem -text -param_enc explicit -noout', где' secp256k1.pem' - ваш .der-файл. – Crypt32