我正在尝试实现API。 (https://www.loxone.com/dede/wp-content/uploads/sites/2/2016/08/0903_Communicating-with-the-Miniserver.pdf)
当您转到第5页时,您将在2.b)下看到我需要以以下格式存储公钥:ANS.1中的X.509编码密钥。
问题是我不知道如何在C#中执行此操作...
有人可以帮我解决这个问题吗:)
谢谢!
这是我得到的publicKey的示例:
----- BEGIN CERTIFICATE ----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC393RoCVFixg3cZicByw05GYqlIkmqfx1lylJqBaF7BMI / FffD5BBoFpFurj4N1pDdMF / QhBEj1Pb3XGOkrHFCinYc0lCMbSjreE + QPjmnWnZeaPd3mtBfdcTSF6hYH0regFU8nvFVgLsoBUCMjuhfsvuaW4sLylU6KhZ9hCqVQwIDAQAB ----- END CERTIFICATE -----
答案 0 :(得分:0)
我认为您需要将此公钥导出为X.509,编码为ANS.1,可以是.pem文件。
PEM本身不是证书,它只是一种编码数据的方式。 X.509证书是通常使用PEM编码的一种数据。
PEM是X.509证书(其结构是使用ASN.1定义的),使用ASN.1 DER(可区分的编码规则)进行编码,然后通过Base64编码运行并停留在纯文本锚行之间(BEGIN证书)和END CERTIFICATE)。
您可以使用openssl制作一个符合ANS.1的.pem文件。
openssl req -new -x509 -days 365 -nodes -out ./cert.pem -keyout ./cert.pem
答案 1 :(得分:0)
大概,“ ANS.1”表示“ ASN.1”(抽象语法符号1),“ ASN.1”表示“ DER”(抽象语法符号1的编码规则)。
要将您当前的PEM证书转换为“ DER”证书,您可以a)openssl x509 -in cert.pem -out cert.der -outform der
或b)阅读“ ----- BEGIN CERTIFICATE -----”和“- --- END CERTIFICATE -----“,并将其转换为字节(例如Convert.FromBase64String
)。