Subject: Re: Импорт закрытого ключа

From: Sergey Matveev <[email-masked]>
Date: Tue, 9 Nov 2021 17:30:39 +0300

Приветствую!

*** Alexey Ershov [2021-11-09 16:05]:
>Есть файл закрытого ключа в формате  pem.

PEM это просто способ кодирования, а внутри него могут быть какие угодно
структуры данных. Приватный ключ чаще бывает запакованным в PKCS#8 и
PKCS#12 структуры.

>А как его распаковать в структуру gost3410.PrivateKey ?

Судя по контексту, речь про GoGOST библиотеку и Go. GoGOST занимается
только криптографическими вычислениями, ничего не зная про структуры.
Это нужно делать какими-то сторонними способами. В Go из коробки уже
есть encoding/asn1 библиотека для работы с ASN.1 структурами.
Распакованный ключ в GoGOST можно будет загрузить используя
gost3410.NewPrivateKey(curve, rawPrivateKey).

Есть fork Go gostls13: http://www.gostls13.cypherpunks.ru/
в котором есть поддержка ГОСТов в родном crypto/x509.ParsePKCS8PrivateKey.
Можно из него или взять код для обработки PKCS#8 или использовать как есть.
PKCS#12 в Go я не пытался парсить/загружать.

-- 
Sergey Matveev (http://www.stargrave.org/)
OpenPGP: CF60 E89A 5923 1E76 E263  6422 AE1A 8109 E498 57EF