public X509AsymmetricSignatureProvider(System.IdentityModel.Tokens.X509AsymmetricSecurityKey x509Key) { Utility.VerifyNonNullArgument("x509Key", x509Key); System.Security.Cryptography.RSACryptoServiceProvider rSACryptoServiceProvider = x509Key.GetAsymmetricAlgorithm("http://www.w3.org/2001/04/xmldsig-more#rsa-sha256", true) as System.Security.Cryptography.RSACryptoServiceProvider; if (rSACryptoServiceProvider == null) { throw new System.InvalidOperationException("Could not get algorithm from X509AsymmetricSecurityKey"); } this.Initialize(rSACryptoServiceProvider); }
public static SignatureProvider Create(System.IdentityModel.Tokens.SigningCredentials signingCredentials) { Utility.VerifyNonNullArgument("signingCredentials", signingCredentials); if (System.StringComparer.Ordinal.Compare(signingCredentials.DigestAlgorithm, "http://www.w3.org/2001/04/xmlenc#sha256") != 0) { throw new System.ArgumentException("signingCredentials.DigestAlgorithm must be SHA-256"); } System.IdentityModel.Tokens.X509AsymmetricSecurityKey x509AsymmetricSecurityKey = signingCredentials.SigningKey as System.IdentityModel.Tokens.X509AsymmetricSecurityKey; if (x509AsymmetricSecurityKey != null) { return(new X509AsymmetricSignatureProvider(x509AsymmetricSecurityKey)); } System.IdentityModel.Tokens.SymmetricSecurityKey symmetricSecurityKey = signingCredentials.SigningKey as System.IdentityModel.Tokens.SymmetricSecurityKey; if (symmetricSecurityKey != null) { return(new SymmetricSignatureProvider(symmetricSecurityKey)); } throw new System.ArgumentException("signingCredentials.SigningKey must be either X509AsymmetricSecurityKey or SymmetricSecurityKey"); }