Co jest potrzebne do konwersji danych ASN.1 na klucz publiczny? na przykład Jak określić OID?

Ten kod dotyczyWeryfikacja podpisu DKIM używane w działaniach antyspamowych.

mambyte[] zs1024._domainkey.yahoo.com jest to kodowanie ASN.1, ale nie wiem, czy to samo zawiera wystarczającą ilość informacji, aby zmaterializować klucz publiczny.

Oparte nata klasawygląda na to, że mogę przekonwertować klucz ASN.1 na klucz publiczny X509Certificate, ale muszę podać parametry OID i niektóre kodowane ASN.1.

W tym przykładzie mam metadane, których kluczem ASN1 jest:

Klucz zakodowany RSA (kodowany ASN.1 DER [ITU-X660-1997] RSAPublicKey na RFC3447)Używany z algorytmami skrótu sha1 sha256Używa identyfikatora OID odnoszącego się do poniższej tabeli z sekcji A.2 RFC3447 (choć nie wiem, jak przekształcić te informacje w pełny 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}
 */

Próbka kodu

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);

Pytanie

Jakiego OID powinienem użyć?Jakie są przykłady parametrów ASN.1?

questionAnswers(2)

yourAnswerToTheQuestion