Opc.Ua.SecurityPolicies.Sign C# (CSharp) Method

Sign() public static method

Signs the data using the SecurityPolicyUri and returns the signature.
public static Sign ( X509Certificate2 certificate, string securityPolicyUri, byte dataToSign ) : SignatureData
certificate X509Certificate2
securityPolicyUri string
dataToSign byte
return SignatureData
        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;
        }

Usage Example

コード例 #1
0
        /// <summary>
        /// Creates a signature with the token.
        /// </summary>
        public override SignatureData Sign(byte[] dataToSign, string securityPolicyUri)
        {
            X509Certificate2 certificate = m_certificate;

            if (certificate == null)
            {
                certificate = CertificateFactory.Create(m_certificateData, true);
            }

            SignatureData signatureData = SecurityPolicies.Sign(
                certificate,
                securityPolicyUri,
                dataToSign);

            m_certificateData = certificate.GetRawCertData();

            return(signatureData);
        }
All Usage Examples Of Opc.Ua.SecurityPolicies::Sign