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

Verify() public static method

Verifies the signature using the SecurityPolicyUri and return true if valid.
public static Verify ( X509Certificate2 certificate, string securityPolicyUri, byte dataToVerify, SignatureData signature ) : bool
certificate X509Certificate2
securityPolicyUri string
dataToVerify byte
signature SignatureData
return bool
        public static bool Verify(X509Certificate2 certificate, string securityPolicyUri, byte[] dataToVerify, SignatureData signature)
        {
            // check if nothing to do.
            if (signature == null)
            {
                return true;
            }

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

            // decrypt data.
            switch (securityPolicyUri)
            {
                case SecurityPolicies.Basic256:
                case SecurityPolicies.Basic128Rsa15:
                    {
                        if (signature.Algorithm == SecurityAlgorithms.RsaSha1)
                        {
                            return RsaUtils.RsaPkcs15Sha1_Verify(new ArraySegment<byte>(dataToVerify), signature.Signature, certificate);
                        }

                        break;
                    }

                case SecurityPolicies.Basic256Sha256:
                    {
                        if (signature.Algorithm == SecurityAlgorithms.RsaSha256)
                        {
                            return RsaUtils.RsaPkcs15Sha256_Verify(new ArraySegment<byte>(dataToVerify), signature.Signature, certificate);
                        }

                        break;
                    }

                // always accept signatures if security is not used.
                case SecurityPolicies.None:
                    {
                        return true;
                    }

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

            throw ServiceResultException.Create(
                StatusCodes.BadSecurityChecksFailed,
                "Unexpected signature algorithm : {0}",
                signature.Algorithm);
        }
        #endregion

Usage Example

コード例 #1
0
        /// <summary>
        /// Verifies a signature created with the token.
        /// </summary>
        public override bool Verify(byte[] dataToVerify, SignatureData signatureData, string securityPolicyUri)
        {
            try
            {
                X509Certificate2 certificate = m_certificate;

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

                bool valid = SecurityPolicies.Verify(
                    certificate,
                    securityPolicyUri,
                    dataToVerify,
                    signatureData);

                m_certificateData = certificate.RawData;

                return(valid);
            }
            catch (Exception e)
            {
                throw ServiceResultException.Create(StatusCodes.BadIdentityTokenInvalid, e, "Could not verify user signature!");
            }
        }
All Usage Examples Of Opc.Ua.SecurityPolicies::Verify