static SamlFubuApplication() { var location = AppDomain.CurrentDomain.BaseDirectory; var certPath = location.AppendPath("cert2.pfx"); if (!File.Exists(certPath)) { throw new InvalidOperationException("Couldn't find path " + certPath); } var cert = new X509Certificate2(certPath, new SecureString(), X509KeyStorageFlags.Exportable); Certificate = new X509Certificate2(cert); var store = new X509Store(StoreName.My, StoreLocation.LocalMachine); store.Open(OpenFlags.ReadWrite); store.Add(Certificate); SamlCertificate = new SamlCertificate { Issuer = "fake:saml:issuer", CertificateIssuer = Certificate.Issuer, SerialNumber = Certificate.SerialNumber, Thumbprint = Certificate.Thumbprint }; }
public void returns_null_if_no_cert_can_be_found_for_that_issuer() { var issuer = new SamlCertificate { Thumbprint = Guid.NewGuid().ToString(), Issuer = "foo:bar" }; MockFor <ISamlCertificateRepository>().Stub(x => x.Find(issuer.Issuer)) .Return(issuer); ClassUnderTest.LoadCertificate(issuer.Issuer) .ShouldBeNull(); }
public void find_all_known() { var issuers = new SamlCertificate[] { new SamlCertificate { Issuer = "foo:bar1" }, new SamlCertificate { Issuer = "foo:bar2" }, new SamlCertificate { Issuer = "foo:bar3" } }; var repository = new BasicSamlCertificateRepository(issuers); repository.AllKnownCertificates().ShouldHaveTheSameElementsAs(issuers); }
public void formats_and_load_via_string() { var cert1 = new SamlCertificate { Issuer = "foo:bar1", SerialNumber = "12345", CertificateIssuer = "DN=Foo", Thumbprint = "ab cd ef" }; var cert2 = new SamlCertificate(cert1.ToString()); cert2.ShouldNotBeTheSameAs(cert1); cert2.Issuer.ShouldBe(cert1.Issuer); cert2.SerialNumber.ShouldBe(cert1.SerialNumber); cert2.CertificateIssuer.ShouldBe(cert1.CertificateIssuer); cert2.Thumbprint.ShouldBe(cert1.Thumbprint); }
public void load_certificate_when_it_can_be_found() { var issuer = new SamlCertificate { Thumbprint = Guid.NewGuid().ToString(), Issuer = "foo:bar" }; var cert = ObjectMother.Certificate2(); MockFor <ICertificateLoader>().Stub(x => x.Load(issuer.Thumbprint)) .Return(cert); MockFor <ISamlCertificateRepository>().Stub(x => x.Find(issuer.Issuer)) .Return(issuer); ClassUnderTest.LoadCertificate(issuer.Issuer) .ShouldBeTheSameAs(cert); }
public void find_by_issuer() { var issuers = new SamlCertificate[] { new SamlCertificate { Issuer = "foo:bar1" }, new SamlCertificate { Issuer = "foo:bar2" }, new SamlCertificate { Issuer = "foo:bar3" } }; var repository = new BasicSamlCertificateRepository(issuers); repository.Find(issuers[0].Issuer).ShouldBeTheSameAs(issuers[0]); repository.Find(issuers[1].Issuer).ShouldBeTheSameAs(issuers[1]); repository.Find(issuers[2].Issuer).ShouldBeTheSameAs(issuers[2]); }
public void SetUp() { samlResponse = ObjectMother.Response(); samlResponse.ShouldNotBeNull(); samlResponse.Status.ShouldNotBeNull(); cert = ObjectMother.Certificate2(); samlCert = ObjectMother.SamlCertificateMatching(samlResponse.Issuer, new X509CertificateWrapper(cert)); var store = new X509Store(StoreName.My, StoreLocation.LocalMachine); store.Open(OpenFlags.ReadWrite); store.Add(cert); var certificates = new InMemoryCertificateService(samlCert, cert); var xml = new SamlResponseWriter(certificates, new SamlResponseXmlSigner(), new AssertionXmlEncryptor()).Write(samlResponse); readResponse = new SamlResponseReader(certificates, new AssertionXmlDecryptor()).Read(xml); }
public InMemoryCertificateService(SamlCertificate certificate, X509Certificate2 realCertificate) { _certificate = certificate; _realCertificate = realCertificate; }