RsaPkcs15Sha256_Sign() public static method

Computes an RSA/SHA256 PKCS#1 v1.5 signature.
public static RsaPkcs15Sha256_Sign ( ArraySegment dataToSign, X509Certificate2 signingCertificate ) : byte[]
dataToSign ArraySegment
signingCertificate System.Security.Cryptography.X509Certificates.X509Certificate2
return byte[]
コード例 #1
0
        /// <summary>
        /// Signs the data using the SecurityPolicyUri and returns the signature.
        /// </summary>
        public static SignatureData Sign(X509Certificate2 certificate, string securityPolicyUri, byte[] dataToSign)
        {
            SignatureData signatureData = new SignatureData();

            // check if nothing to do.
            if (dataToSign == null)
            {
                return(signatureData);
            }

            // nothing more to do if no encryption.
            if (String.IsNullOrEmpty(securityPolicyUri))
            {
                return(signatureData);
            }

            // sign data.
            switch (securityPolicyUri)
            {
            case SecurityPolicies.Basic256:
            case SecurityPolicies.Basic128Rsa15:
            {
                signatureData.Algorithm = SecurityAlgorithms.RsaSha1;
                signatureData.Signature = RsaUtils.RsaPkcs15Sha1_Sign(new ArraySegment <byte>(dataToSign), certificate);
                break;
            }

            case SecurityPolicies.Basic256Sha256:
            {
                signatureData.Algorithm = SecurityAlgorithms.RsaSha256;
                signatureData.Signature = RsaUtils.RsaPkcs15Sha256_Sign(new ArraySegment <byte>(dataToSign), certificate);
                break;
            }

            case SecurityPolicies.None:
            {
                signatureData.Algorithm = null;
                signatureData.Signature = null;
                break;
            }

            default:
            {
                throw ServiceResultException.Create(
                          StatusCodes.BadSecurityPolicyRejected,
                          "Unsupported security policy: {0}",
                          securityPolicyUri);
            }
            }

            return(signatureData);
        }