public static string CanonicalizeKey(string someKeyXml) { SimpleRSAPubKey newKey = new SimpleRSAPubKey(); newKey.exponent = SimpleRSAPubKey.GetExponent(someKeyXml); newKey.modulus = SimpleRSAPubKey.GetModulus(someKeyXml); return(newKey.ToString()); }
private static void GetKeyIdentifiers(X509Certificate2 certificate, out string kiCAPI, out string kiThumbprintSHA1, out string kiRFC3280, out string kiIssuerSerial, out bool onlyIssuerSerialIsDefined, out SimpleRSAPubKey publicKey) { const string SubjectKeyIdentifierOID = "2.5.29.14"; X509SubjectKeyIdentifierExtension extensionSKI = certificate.Extensions[SubjectKeyIdentifierOID] as X509SubjectKeyIdentifierExtension; onlyIssuerSerialIsDefined = extensionSKI != null; if (onlyIssuerSerialIsDefined) { kiIssuerSerial = ASNDecode(extensionSKI.RawData); kiCAPI = kiIssuerSerial; kiThumbprintSHA1 = kiIssuerSerial; kiRFC3280 = kiIssuerSerial; } else { kiIssuerSerial = String.Empty; PublicKey pk = certificate.PublicKey; X509SubjectKeyIdentifierExtension extensionCAPI = new X509SubjectKeyIdentifierExtension(pk, X509SubjectKeyIdentifierHashAlgorithm.CapiSha1, false); X509SubjectKeyIdentifierExtension extensionRfc3280 = new X509SubjectKeyIdentifierExtension(pk, X509SubjectKeyIdentifierHashAlgorithm.ShortSha1, false); kiCAPI = ASNDecode(extensionCAPI.RawData); kiThumbprintSHA1 = Convert.ToBase64String(certificate.GetCertHash()); kiRFC3280 = ASNDecode(extensionRfc3280.RawData); } publicKey = new SimpleRSAPubKey(certificate); }