/// <summary>
        /// Verifies the digital signature.
        /// </summary>
        /// <remarks>
        /// Verifies the digital signature.
        /// </remarks>
        /// <returns><c>true</c> if the signature is valid; otherwise <c>false</c>.</returns>
        /// <exception cref="DigitalSignatureVerifyException">
        /// An error verifying the signature has occurred.
        /// </exception>
        public bool Verify()
        {
            if (valid.HasValue)
            {
                return(valid.Value);
            }

            if (vex != null)
            {
                throw vex;
            }

            if (SignerCertificate == null)
            {
                var message = string.Format("Failed to verify digital signature: missing certificate.");
                vex = new DigitalSignatureVerifyException(message);
                throw vex;
            }

            try {
                var certificate = ((SecureMimeDigitalCertificate)SignerCertificate).Certificate;
                valid = SignerInfo.Verify(certificate);
                return(valid.Value);
            } catch (Exception ex) {
                var message = string.Format("Failed to verify digital signature: {0}", ex.Message);
                vex = new DigitalSignatureVerifyException(message, ex);
                throw vex;
            }
        }
예제 #2
0
        /// <summary>
        /// Verifies the digital signature.
        /// </summary>
        /// <remarks>
        /// Verifies the digital signature.
        /// </remarks>
        /// <returns><c>true</c> if the signature is valid; otherwise <c>false</c>.</returns>
        /// <exception cref="DigitalSignatureVerifyException">
        /// An error verifying the signature has occurred.
        /// </exception>
        public bool Verify()
        {
            if (valid.HasValue)
            {
                return(valid.Value);
            }

            if (vex != null)
            {
                throw vex;
            }

            if (SignerCertificate == null)
            {
                var message = string.Format("Failed to verify digital signature: no public key found for {0}", Signature.KeyId);
                vex = new DigitalSignatureVerifyException(message);
                throw vex;
            }

            try {
                if (OnePassSignature != null)
                {
                    valid = OnePassSignature.Verify(Signature);
                }
                else
                {
                    valid = Signature.Verify();
                }
                return(valid.Value);
            } catch (Exception ex) {
                var message = string.Format("Failed to verify digital signature: {0}", ex.Message);
                vex = new DigitalSignatureVerifyException(message, ex);
                throw vex;
            }
        }
예제 #3
0
        /// <summary>
        /// Verifies the digital signature.
        /// </summary>
        /// <remarks>
        /// Verifies the digital signature.
        /// </remarks>
        /// <returns><c>true</c> if the signature is valid; otherwise <c>false</c>.</returns>
        /// <exception cref="DigitalSignatureVerifyException">
        /// An error verifying the signature has occurred.
        /// </exception>
        public bool Verify()
        {
            if (vex != null)
            {
                throw vex;
            }

            try {
                SignerInfo.CheckSignature(false);
                return(true);
            } catch (Exception ex) {
                var message = string.Format("Failed to verify digital signature: {0}", ex.Message);
                vex = new DigitalSignatureVerifyException(message, ex);
                throw vex;
            }
        }
		/// <summary>
		/// Verifies the digital signature.
		/// </summary>
		/// <remarks>
		/// Verifies the digital signature.
		/// </remarks>
		/// <returns><c>true</c> if the signature is valid; otherwise <c>false</c>.</returns>
		/// <exception cref="DigitalSignatureVerifyException">
		/// An error verifying the signature has occurred.
		/// </exception>
		public bool Verify ()
		{
			if (valid.HasValue)
				return valid.Value;

			if (vex != null)
				throw vex;

			if (SignerCertificate == null) {
				var message = string.Format ("Failed to verify digital signature: no public key found for {0}", Signature.KeyId);
				vex = new DigitalSignatureVerifyException (message);
				throw vex;
			}

			try {
				if (OnePassSignature != null)
					valid = OnePassSignature.Verify (Signature);
				else
					valid = Signature.Verify ();
				return valid.Value;
			} catch (Exception ex) {
				var message = string.Format ("Failed to verify digital signature: {0}", ex.Message);
				vex = new DigitalSignatureVerifyException (message, ex);
				throw vex;
			}
		}
		/// <summary>
		/// Verifies the digital signature.
		/// </summary>
		/// <remarks>
		/// Verifies the digital signature.
		/// </remarks>
		/// <returns><c>true</c> if the signature is valid; otherwise <c>false</c>.</returns>
		/// <exception cref="DigitalSignatureVerifyException">
		/// An error verifying the signature has occurred.
		/// </exception>
		public bool Verify ()
		{
			if (valid.HasValue)
				return valid.Value;

			if (vex != null)
				throw vex;

			if (SignerCertificate == null) {
				var message = string.Format ("Failed to verify digital signature: missing certificate.");
				vex = new DigitalSignatureVerifyException (message);
				throw vex;
			}

			try {
				var certificate = ((SecureMimeDigitalCertificate) SignerCertificate).Certificate;
				valid = SignerInfo.Verify (certificate);
				return valid.Value;
			} catch (Exception ex) {
				var message = string.Format ("Failed to verify digital signature: {0}", ex.Message);
				vex = new DigitalSignatureVerifyException (message, ex);
				throw vex;
			}
		}