C # Store Public-Key X.509 кодированный ключ в ANS.1 - PullRequest
0 голосов
/ 28 июня 2018

я пытаюсь реализовать API. (https://www.loxone.com/dede/wp-content/uploads/sites/2/2016/08/0903_Communicating-with-the-Miniserver.pdf)

Когда вы перейдете на страницу 5, вы увидите в разделе 2.b), что мне нужно хранить открытый ключ в формате: кодированный ключ X.509 в ANS.1.

Проблема в том, что я понятия не имею, как это сделать в C # ...

Может кто-нибудь, пожалуйста, помогите мне с этой проблемой:)

Заранее спасибо!

Вот пример для publicKey, который я получаю:

----- BEGIN CERTIFICATE ----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC393RoCVFixg3cZicByw05GYqlIkmqfx1lylJqBaF7BMI / FffD5BBoFpFurj4N1pDdMF / QhBEj1Pb3XGOkrHFCinYc0lCMbSjreE + QPjmnWnZeaPd3mtBfdcTSF6hYH0regFU8nvFVgLsoBUCMjuhfsvuaW4sLylU6KhZ9hCqVQwIDAQAB ----- END CERTIFICATE -----

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Предположительно, под "ANS.1" они имели в виду "ASN.1" (абстрактная синтаксическая нотация 1), а под "ASN.1" они имели в виду "DER" (отличительные правила кодирования для абстрактного синтаксического обозначения 1).

Чтобы преобразовать ваш текущий сертификат PEM в сертификат «DER», вы либо а) openssl x509 -in cert.pem -out cert.der -outform der, либо б) прочитаете строку base64 между «----- BEGIN CERTIFICATE -----» и «----» -END CERTIFICATE ----- "и преобразовать его в байты (например, Convert.FromBase64String).

0 голосов
/ 28 июня 2018

Я думаю, вам нужно экспортировать этот открытый ключ как X.509, закодированный как ANS.1, который может быть файлом .pem.

С https://serverfault.com/questions/9708/what-is-a-pem-file-and-how-does-it-differ-from-other-openssl-generated-key-file/9717#9717:

PEM сам по себе не является сертификатом, это просто способ кодирования данных. Сертификаты X.509 - это один тип данных, который обычно кодируется с использованием PEM.

PEM - это сертификат X.509 (структура которого определена с использованием ASN.1), закодированный с использованием ASN.1 DER (отличительные правила кодирования), затем проходит через кодирование Base64 и застревает между линиями привязки простого текста (BEGIN CERTIFICATE) и КОНЕЦ СЕРТИФИКАТА).

Вы можете использовать openssl для создания файла .pem, совместимого с ANS.1.

openssl req -new -x509 -days 365 -nodes -out ./cert.pem -keyout ./cert.pem
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...