// Reads the X.509 certificates contained within an IdP or SP SSO descriptor private static void ReadX509Certificates(RoleDescriptorType roleDescriptor) { foreach (KeyDescriptor keyDescriptor in roleDescriptor.KeyDescriptors) { KeyInfo keyInfo = new KeyInfo(); keyInfo.LoadXml(keyDescriptor.KeyInfo); IEnumerator enumerator = keyInfo.GetEnumerator(typeof(KeyInfoX509Data)); while (enumerator.MoveNext()) { KeyInfoX509Data keyInfoX509Data = (KeyInfoX509Data)enumerator.Current; foreach (X509Certificate2 x509Certificate in keyInfoX509Data.Certificates) { Console.WriteLine("X509 certificate: " + x509Certificate.ToString()); } } foreach (XmlElement xmlElement in keyDescriptor.EncryptionMethods) { Console.WriteLine("Encryption method: " + KeyDescriptor.GetEncryptionMethodAlgorithm(xmlElement)); } } }
protected void ProcessKeys(IMetadataConfiguration configuration, RoleDescriptorType Descriptor) { foreach (var k in configuration.Keys) { var certificate = _certificateManager.GetCertificate(k.SertificateFilePath, k.CertificatePassword); var keyDescriptor = new KeyDescriptor(); keyDescriptor.Use = k.Usage; var keyInfo = _xmlSignatureManager.CreateKeyInfo(certificate); var xElement = keyInfo.GetXml().OuterXml; keyDescriptor.KeyInfo = XElement.Parse(xElement); Descriptor.KeyDescriptors.Add(keyDescriptor); } }
protected virtual EntityDescriptor BuildEntityDesciptor(IMetadataConfiguration configuration, RoleDescriptorType descriptor) { var entityDescriptor = new EntityDescriptor() { EntityID = new EntityIDType { Uri = configuration.EntityId.AbsoluteUri }, ID = "84CCAA9F05EE4BA1B13F8943FDF1D320" }; AssignmentAction(entityDescriptor, (T)descriptor); return(entityDescriptor); }