Если вы сгенерировали ключи (открытый и закрытый) для RSA при помощи утилиты OpenSSL, то вы получите .pem файл в котором будет ключ в Base64 кодировке. Для конвертирования данного ключа в формат XML
<RSAKeyValue>
<Modulus>...</Modulus>
<Exponent>...</Exponent>
<P>...</P>
<Q>...</Q>
<DP>...</DP>
<DQ>...</DQ>
<InverseQ>...</InverseQ>
<D>...</D>
</RSAKeyValue>
Воспользуйтесь функцией OpenSSL
openssl rsa -in key.pem -text -noout
Там вы увидите составляющие:
modulus
publicExponent
publicExponent
prime1
prime2
exponent1
exponent2
coefficient
Теперь соответствие с RSAKeyValue:
modulus = <Modulus> (256 байт) первые 2 байта 00 игнорировать
publicExponent = <Exponent> AQAB
privateExponent = <D> (256 байт) первые 2 байта 00 игнорировать
prime1 = <P> (128 байт) первые 2 байта 00 игнорировать
prime2 = <Q> (128 байт) первые 2 байта 00 игнорировать
exponent1 = <DP> (128 байт) первые 2 байта 00 игнорировать
exponent2 = <DQ> (128 байт)
coefficient = <InverseQ> (128 байт)
Количество байт указано для ключа длинной 1024 байт. Сконвертируйте, полученный массив байтов для каждого составляющего компонента, в Base64 и внесите в соответствующий узел XML. Полученный ключ можно использовать в коде:
Dim rsa As System.Security.Cryptography.RSACryptoServiceProvider
Dim fileContents As String
fileContents = My.Computer.FileSystem.ReadAllText("c:\private_key.xml")
rsa.FromXmlString(fileContents)
Комментариев нет:
Отправить комментарий