/// <summary> /// Initializes an instance of <see cref="KeyInfo"/>. /// </summary> /// <param name="key">the <see cref="SecurityKey"/>to populate the <see cref="KeyInfo"/>.</param> public KeyInfo(SecurityKey key) { if (key is X509SecurityKey x509Key) { var data = new X509Data(); data.Certificates.Add(Convert.ToBase64String(x509Key.Certificate.RawData)); X509Data.Add(data); } else if (key is RsaSecurityKey rsaKey) { var rsaParameters = rsaKey.Parameters; // Obtain parameters from the RSA if the rsaKey does not contain a valid value for RSAParameters if (rsaKey.Parameters.Equals(default(RSAParameters))) { rsaParameters = rsaKey.Rsa.ExportParameters(false); } RSAKeyValue = new RSAKeyValue(Convert.ToBase64String(rsaParameters.Modulus), Convert.ToBase64String(rsaParameters.Exponent)); } }
/// <summary> /// Initializes an instance of <see cref="KeyInfo"/>. /// </summary> /// <param name="certificate">the <see cref="X509Certificate2"/>to populate the X509Data.</param> public KeyInfo(X509Certificate2 certificate) { var data = new X509Data(certificate); X509Data.Add(data); }