Example #1
0
        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
            };
        }
Example #2
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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]);
        }
Example #7
0
        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);
        }
Example #8
0
 public InMemoryCertificateService(SamlCertificate certificate, X509Certificate2 realCertificate)
 {
     _certificate     = certificate;
     _realCertificate = realCertificate;
 }