protected override void BuildInternal(RoleDescriptor descriptor, RoleDescriptorConfiguration configuration) { if (configuration.KeyDescriptors == null) { throw new ArgumentNullException("keyDescriptors"); } foreach (var key in configuration.KeyDescriptors) { var certConfiguration = new X509StoreCertificateConfiguration(key.CertificateContext); var certificate = certConfiguration.GetX509Certificate2(); var keyDescriptor = new KeyDescriptor(); KeyType keyType; if (!Enum.TryParse <KeyType>(key.Use.ToString(), out keyType)) { throw new InvalidCastException(String.Format("Parsing to type{0} failed. Value having been tried:{1}", typeof(KeyType), key.Use)); } keyDescriptor.Use = keyType; keyDescriptor.KeyInfo = new SecurityKeyIdentifier(new X509RawDataKeyIdentifierClause(certificate)); descriptor.Keys.Add(keyDescriptor); } }
public void X509CertStoreConfigurationTestTest_should_pass_subject_current_user_invalid_included() { //ARRANGE var certificateContext = new X509CertificateContext { StoreName = "TestCertStore", ValidOnly = false, StoreLocation = StoreLocation.CurrentUser }; certificateContext.SearchCriteria.Add(new CertificateSearchCriteria { SearchValue = "ApiraTestCertificate", SearchCriteriaType = X509FindType.FindBySubjectName }); var certConfiguration = new X509StoreCertificateConfiguration(certificateContext); //ACT X509Certificate2 cert = null; //ASSERT Assert.DoesNotThrow(() => cert = certConfiguration.GetX509Certificate2()); Assert.NotNull(cert); }
public void X509CertStoreConfigurationTestTest_should_fail_subject_localMachine_valid_only() { //ARRANGE var certificateContext = new X509CertificateContext { StoreName = "TestCertStore", ValidOnly = true, StoreLocation = StoreLocation.LocalMachine }; certificateContext.SearchCriteria.Add(new CertificateSearchCriteria { SearchValue = "ApiraTestCertificate", SearchCriteriaType = X509FindType.FindBySubjectName }); var certConfiguration = new X509StoreCertificateConfiguration(certificateContext); //ACT X509Certificate2 cert = null; //ASSERT Assert.Throws <InvalidOperationException>(() => cert = certConfiguration.GetX509Certificate2()); }