Что необходимо для преобразования данных ASN.1 в открытый ключ? например как определить OID?

Этот код относится кПроверка подписи DKIM используется в антиспаме.

у меня естьbyte[] отs1024._domainkey.yahoo.com он закодирован в ASN.1, но я не знаю, содержит ли он один достаточно информации для реализации открытого ключа.

На основеэтот классПохоже, я могу преобразовать ключ ASN.1 в открытый ключ X509Certificate, но мне нужно указать OID и некоторые параметры, закодированные в ASN.1.

В этом примере у меня есть метаданные, которые ключ ASN1:

An RSA encoded key (ASN.1 DER-encoded [ITU-X660-1997] RSAPublicKey per RFC3447) Used with either sha1 sha256 hash algorithms Uses an OID relating to the following table from section A.2 of RFC3447 (though I don't know how to turn this information into a full OID)
/*
 * 1.2.840.113549.1
 * 
    MD2 md2WithRSAEncryption    ::= {pkcs-1 2}
    MD5 md5WithRSAEncryption    ::= {pkcs-1 4}
    SHA-1 sha1WithRSAEncryption   ::= {pkcs-1 5}
    SHA-256 sha256WithRSAEncryption ::= {pkcs-1 11}
    SHA-384 sha384WithRSAEncryption ::= {pkcs-1 12}
    SHA-512 sha512WithRSAEncryption ::= {pkcs-1 13}
 */

Code sample

string pubkey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDrEee0Ri4Juz+QfiWYui/E9UGSXau/2P8LjnTD8V4Unn+2FAZVGE3kL23bzeoULYv4PeleB3gfmJiDJOKU3Ns5L4KJAUUHjFwDebt0NP+sBK0VKeTATL2Yr/S3bT/xhy+1xtj4RkdV7fVxTn56Lb4udUnwuxK4V5b5PdOKj/+XcwIDAQAB";
byte[] pubkeyByteArray = Convert.FromBase64String(pubkey);
AsnEncodedData aData = new AsnEncodedData(pubkeyByteArray);

// OID must not be null, but it is here.  What is it?
System.Security.Cryptography.X509Certificates.PublicKey pubKeyRdr = new System.Security.Cryptography.X509Certificates.PublicKey(aData.Oid, null, aData);

Question

What OID should I use? What are examples of ASN.1 parameters?

Ответы на вопрос(2)

Ваш ответ на вопрос