Example #1
0
        public override void ValidateSignature(X509Certificate2 cert, bool requiredSignature)
        {
            if (requiredSignature && cert == null)
            {
                throw new InvalidOperationException("Saml2 Missing Cert for Validating Required Signature");
            }

            if (requiredSignature && this.Signature == null)
            {
                throw new IdentityProviderException("Saml2 Document Missing Required Signature");
            }

            if (this.Signature != null)
            {
                var valid = TextSigner.Validate(this.singingInput, this.Signature, cert.GetRSAPublicKey(), this.SignatureAlgorithm.Value, false);
                if (!valid)
                {
                    throw new IdentityProviderException(String.Format("Saml2 Document Signature Not Valid Query:{0} Signature:{1}", this.singingInput, this.Signature));
                }
            }
        }
Example #2
0
        public override void Sign(X509Certificate2 cert, bool requiredSignature)
        {
            if (requiredSignature && cert == null)
            {
                throw new InvalidOperationException("Saml2 Missing Cert for Required Signing");
            }

            if (this.Signature != null)
            {
                throw new InvalidOperationException("Saml2 Document is Already Signed");
            }

            if (this.SignatureAlgorithm == null)
            {
                this.SignatureAlgorithm = Cryptography.XmlSignatureAlgorithmType.RsaSha256;
            }

            var samlEncoded = EncodeSaml(this.Document.InnerXml);

            this.singingInput = BuildSignatureQueryString(samlEncoded);
            this.Signature    = TextSigner.GenerateSignatureString(this.singingInput, cert.GetRSAPrivateKey(), this.SignatureAlgorithm.Value, false);
        }