/// <summary> /// Loads a certificate given both it's private and public keys - generally used to /// load keys provided on the OAuth wiki's for verification of implementation correctness. /// </summary> /// <param name="privateKey"></param> /// <param name="certificate"></param> /// <returns></returns> public static X509Certificate2 LoadCertificateFromStrings(string privateKey, string certificate) { var parser = new AsnKeyParser(Convert.FromBase64String(privateKey)); RSAParameters parameters = parser.ParseRSAPrivateKey(); var x509 = new X509Certificate2(Encoding.ASCII.GetBytes(certificate)); var provider = new RSACryptoServiceProvider(); provider.ImportParameters(parameters); x509.PrivateKey = provider; return x509; }
public AsymmetricAlgorithm GetConsumerPublicKey(IConsumer consumer) { if (_publicKeyAlgorithm == null) { var parser = new AsnKeyParser(Convert.FromBase64String(_publicKey)); RSAParameters parameters = parser.ParseRSAPublicKey(); var provider = new RSACryptoServiceProvider(); provider.ImportParameters(parameters); _publicKeyAlgorithm = provider; } return _publicKeyAlgorithm; }