public SignatureBuilder(ICertificateManager certificateManager, ILogProvider logProvider, IXmlSignatureManager xmlSignatureManager) { this._certificateManager = certificateManager; this._logProvider = logProvider; this._xmlSignatureManager = xmlSignatureManager; }
public MetadataGeneratorBase(IFederationMetadataWriter federationMetadataWriter, ICertificateManager certificateManager, IXmlSignatureManager xmlSignatureManager) { this._federationMetadataWriter = federationMetadataWriter; this._certificateManager = certificateManager; this._xmlSignatureManager = xmlSignatureManager; }
public ResponseSignatureRule(ILogProvider logProvider, ICertificateManager certificateManager, IXmlSignatureManager signatureManager) : base(logProvider) { this._certificateManager = certificateManager; this._signatureManager = signatureManager; }
public SPSSOMetadataProvider(IFederationMetadataWriter metadataWriter, ICertificateManager certificateManager, IXmlSignatureManager xmlSignatureManager) : base(metadataWriter, certificateManager, xmlSignatureManager) { }
public IdpSSOMetadataProvider(IFederationMetadataWriter metadataWriter, ICertificateManager certificateManager, IXmlSignatureManager xmlSignatureManager, IMetadataSerialiser <MetadataBase> serialiser, Func <IMetadataGenerator, IMetadataConfiguration> configuration) : base(metadataWriter, certificateManager, xmlSignatureManager, serialiser, configuration) { }
public static bool ValidateMessageSignature(SamlInboundMessageContext inboundContext, IXmlSignatureManager signatureManager) { var validated = false; var cspParams = new CspParameters(); cspParams.KeyContainerName = "XML_DSIG_RSA_KEY"; var rsaKey = new RSACryptoServiceProvider(cspParams); var doc = new XmlDocument { PreserveWhitespace = true }; doc.LoadXml(inboundContext.SamlMassage); var signEl = TokenHelper.GetAllElements("Signature", "http://www.w3.org/2000/09/xmldsig#", doc.DocumentElement) .FirstOrDefault(x => x.ParentNode == doc.DocumentElement); if (signEl == null) { return(true); } foreach (var k in inboundContext.Keys.SelectMany(x => x.KeyInfo)) { var binaryClause = k as BinaryKeyIdentifierClause; if (binaryClause == null) { throw new InvalidOperationException(String.Format("Expected type: {0} but it was: {1}", typeof(BinaryKeyIdentifierClause), k.GetType())); } var certContent = binaryClause.GetBuffer(); var cert = new X509Certificate2(certContent); validated = signatureManager.VerifySignature(doc, signEl, cert.PublicKey.Key); if (validated) { break; } } if (!validated) { var certEl = TokenHelper.GetElement("X509Certificate", "http://www.w3.org/2000/09/xmldsig#", signEl); if (certEl != null) { var dcert2 = new X509Certificate2(Convert.FromBase64String(certEl.InnerText)); validated = signatureManager.VerifySignature(doc, signEl, dcert2.PublicKey.Key);//signedXml.CheckSignature(dcert2, true); } } return(validated); }