Exemplo n.º 1
0
        public void DeserializeUnsignedUserIdCardTest()
        {
            //Create Factory
            SOSIFactory factory = CreateSOSIFactory(Global.MocesCprGyldig);

            //Create IdCard
            UserIdCard idCard = CreateMocesUserIdCard(factory);

            Assertion assertion = idCard.GetAssertion <Assertion>();

            UserIdCard deserializedCard = (UserIdCard)factory.DeserializeIdCard(assertion);

            //Assert they are equal
            Assert.True(idCard.CreatedDate == deserializedCard.CreatedDate);
            Assert.True(idCard.ExpiryDate == deserializedCard.ExpiryDate);
            Assert.True(idCard.IsValidInTime == deserializedCard.IsValidInTime);
            Assert.True(idCard.UserInfo.Equals(deserializedCard.UserInfo));
            Assert.True(idCard.AuthenticationLevel.Equals(deserializedCard.AuthenticationLevel));
            Assert.True(idCard.CertHash == deserializedCard.CertHash);
            Assert.True(idCard.AlternativeIdentifier == deserializedCard.AlternativeIdentifier);
            Assert.True(idCard.IdCardId == deserializedCard.IdCardId);
            Assert.True(idCard.Issuer == deserializedCard.Issuer);
            Assert.True(idCard.Username == deserializedCard.Username);
            Assert.True(idCard.Password == deserializedCard.Password);
            Assert.True(idCard.SystemInfo.ItSystemName == deserializedCard.SystemInfo.ItSystemName);
            Assert.True(idCard.SystemInfo.CareProvider.Equals(deserializedCard.SystemInfo.CareProvider));
            Assert.True(idCard.Version == deserializedCard.Version);
            Assert.Throws <ModelBuildException>(delegate { var cert = deserializedCard.SignedByCertificate; });
        }
Exemplo n.º 2
0
        public void DeserializeSignedSystemIdCardTest()
        {
            //Create Factory
            SOSIFactory factory = CreateSOSIFactory(Global.MocesCprGyldig);

            //Create IdCard
            SystemIdCard idCard = CreateVocesSystemIdCard(factory);

            idCard.Sign <Assertion>(factory.SignatureProvider);

            Assertion assertion = idCard.GetAssertion <Assertion>();

            SystemIdCard deserializedCard = (SystemIdCard)factory.DeserializeIdCard(assertion);

            //Assert they are equal
            Assert.True(idCard.CreatedDate == deserializedCard.CreatedDate);
            Assert.True(idCard.ExpiryDate == deserializedCard.ExpiryDate);
            Assert.True(idCard.IsValidInTime == deserializedCard.IsValidInTime);
            Assert.True(idCard.AuthenticationLevel.Equals(deserializedCard.AuthenticationLevel));
            Assert.True(idCard.CertHash == deserializedCard.CertHash);
            Assert.True(idCard.AlternativeIdentifier == deserializedCard.AlternativeIdentifier);
            Assert.True(idCard.IdCardId == deserializedCard.IdCardId);
            Assert.True(idCard.Issuer == deserializedCard.Issuer);
            Assert.True(idCard.Username == deserializedCard.Username);
            Assert.True(idCard.Password == deserializedCard.Password);
            Assert.True(idCard.SystemInfo.ItSystemName == deserializedCard.SystemInfo.ItSystemName);
            Assert.True(idCard.SystemInfo.CareProvider.Equals(deserializedCard.SystemInfo.CareProvider));
            Assert.True(idCard.Version == deserializedCard.Version);
            Assert.True(idCard.SignedByCertificate.Equals(deserializedCard.SignedByCertificate));
        }
Exemplo n.º 3
0
        public void SimpleChainTest()
        {
            //Create factory
            SOSIFactory factory    = CreateSOSIFactoryWithTestFederation(Global.MocesCprGyldig);
            bool        validation = factory.Federation.IsValidCertificate(Global.MocesCprGyldig);

            Assert.True(validation);
        }
Exemplo n.º 4
0
        public void InvalidChainSosiFederationTest()
        {
            X509Certificate2 newCert = new X509Certificate2(AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "\\Resources\\SelfSigned.pfx", "Test1234");

            SOSIFactory factory = CreateSOSIFactoryWithSosiFederation(Global.MocesCprGyldig);

            Assert.Throws <CryptographicException>(delegate { factory.Federation.IsValidCertificate(newCert); });
        }
Exemplo n.º 5
0
        public void RevokedCertificateTest()
        {
            X509Certificate2 newCert = new X509Certificate2(AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "\\Resources\\oces2\\PP\\MOCES_spaerret.p12", "Test1234");

            SOSIFactory factory    = CreateSOSIFactoryWithTestFederation(Global.MocesCprGyldig);
            bool        validation = factory.Federation.IsValidCertificate(newCert);

            Assert.False(validation);
        }
Exemplo n.º 6
0
        public void CreateIdCardTest()
        {
            //Create factory
            SOSIFactory factory = CreateSOSIFactory(Global.MocesCprGyldig);

            //Create IdCard
            SystemIdCard idCard = factory.CreateNewSystemIdCard("ItSystem", new CareProvider(SubjectIdentifierType.medcomitsystemname, "TestSystem", "Trifork"), AuthenticationLevel.UsernamePasswordAuthentication, "user", "test123", null, "alt");

            Assert.NotNull(idCard);
        }
Exemplo n.º 7
0
        public void IdCardNullCareProviderTest()
        {
            //Create factory
            SOSIFactory factory = CreateSOSIFactory(Global.MocesCprGyldig);

            //Create IdCard with missing UserInfo
            Assert.Throws <ModelException>(delegate {
                factory.CreateNewSystemIdCard("ItSystem", null, AuthenticationLevel.MocesTrustedUser, null, null, factory.GetCredentialVault().GetSystemCredentials(), "alt");
            });
        }
Exemplo n.º 8
0
        public void IdCardNullSystemInfoTest()
        {
            //Create factory
            SOSIFactory factory = CreateSOSIFactory(Global.MocesCprGyldig);

            //Create IdCard with missing UserInfo
            Assert.Throws <ModelException>(delegate {
                factory.CreateNewSystemIdCard("", new CareProvider(SubjectIdentifierType.medcomcvrnumber, "25520041", "TRIFORK SERVICES A/S // CVR:25520041"), AuthenticationLevel.MocesTrustedUser, null, null, factory.GetCredentialVault().GetSystemCredentials(), "alt");
            });
        }
Exemplo n.º 9
0
        public void ValidateSignatureTest()
        {
            SOSIFactory factory = CreateSOSIFactory(Global.MocesCprGyldig);
            UserIdCard  idCard  = CreateMocesUserIdCard(factory);

            idCard.Sign <Assertion>(factory.SignatureProvider);

            //This throws if you are not connected to VPN
            Assert.DoesNotThrow(delegate { idCard.ValidateSignatureAndTrust(factory.GetCredentialVault()); });
        }
Exemplo n.º 10
0
        public void IdCardValidatorTest()
        {
            //Create factory
            SOSIFactory factory = CreateSOSIFactory(Global.MocesCprGyldig);

            //Create IdCard with missing UserGivenName
            UserIdCard idCard = factory.CreateNewUserIdCard("ItSystem", new UserInfo("12345678", null, "Person", "*****@*****.**", "Tester", "Læge", "12345"), new CareProvider(SubjectIdentifierType.medcomcvrnumber, "25520041", "TRIFORK SERVICES A/S // CVR:25520041"), AuthenticationLevel.MocesTrustedUser, "", "", factory.GetCredentialVault().GetSystemCredentials(), "alt");

            //Try to sign the idCard
            Assert.Throws <ModelException>(delegate { idCard.Sign <Assertion>(factory.SignatureProvider); });
        }
Exemplo n.º 11
0
        //	private Federation getMockFederation()
        //	{
        //		return new SOSITestFederation(System.getProperties()) {
        //			@Override

        //			public boolean isValidSTSCertificate(X509Certificate certificate)
        //		{
        //			return vocesVault.getSystemCredentialPair().getCertificate().equals(certificate);
        //		}
        //	};
        //}

        //private UserInfo BuildUserInfo(OioSamlAssertionToIdCardRequest request)
        //	{
        //		var assertion = request.OioSamlAssertion;
        //		string cpr = "XXXXXXXX"; // Perform lookup based on assertion.getCvrNumberIdentifier() and assertion.getRidNumberIdentifier()
        //		string givenName;
        //		string surName;
        //		if (request.UserGivenName != null && request.UserSurName != null)
        //		{
        //			givenName = request.UserGivenName;
        //			surName = request.UserSurName;
        //		}
        //		else
        //		{
        //			// The IdP cannot split CommonName and neither should we (assertion.getSurName() returns null)
        //			givenName =
        //				assertion.CommonName;
        //			surName = "-";
        //		}
        //		//var email = assertion.GetAttributeValue("urn:oid:0.9.2342.19200300.100.1.3");
        //		var email = assertion.Email;
        //		string occupation = null;
        //		var role = "YYYYY"; // Lookup based on CPR, use request.getUserEducationCode() to pick the right one (or validate)
        //		var authorizationCode = "ZZZZZ";// Lookup based on CPR, use request.getUserAuthorizationCode() to pick the right one (or validate)
        //		return new UserInfo(cpr, givenName, surName, email, occupation, role, authorizationCode);
        //	}

        private UserIdCard CreateIdCard()
        {
            SOSIFactory  sosiFactory           = new SOSIFactory(null, new CredentialVaultSignatureProvider(mocesVault));
            CareProvider careProvider          = new CareProvider(SubjectIdentifierType.medcomcvrnumber, "30808460", "Lægehuset på bakken");
            UserInfo     userInfo              = new UserInfo("1111111118", "Hans", "Dampf", "", "", "7170", "341KY");
            String       alternativeIdentifier = new CertificateInfo(mocesVault.GetSystemCredentials()).ToString();
            var          userIdCard            = sosiFactory.CreateNewUserIdCard("IT-System", userInfo, careProvider, AuthenticationLevel.MocesTrustedUser, null, null, null, alternativeIdentifier);

            userIdCard.Sign <Assertion>(sosiFactory.SignatureProvider);
            return(userIdCard);
        }
Exemplo n.º 12
0
        public void SelfSignedIdCardTest()
        {
            //Create factory
            SOSIFactory factory = CreateSOSIFactoryWithTestFederation(Global.MocesCprGyldig);

            //Create IdCard
            UserIdCard idCard = CreateIdCardForSTS(factory);

            //Sign IdCard
            idCard.Sign <Assertion>(factory.SignatureProvider);

            //Assert that selfsigned idCard fails
            Assert.Throws <ModelException>(delegate { idCard.ValidateSignatureAndTrust(factory.Federation); });
        }
Exemplo n.º 13
0
        public void IdCardSerializeStreamTest()
        {
            //Create factory
            SOSIFactory factory = CreateSOSIFactory(Global.MocesCprGyldig);

            //Create IdCard
            UserIdCard idCard = CreateMocesUserIdCard(factory);

            //Sign IdCard
            Assertion ass = idCard.Sign <Assertion>(factory.SignatureProvider);

            var idCardStream = IdCardSerializer.SerializeIdCardToStream <UserIdCard>(idCard);
            var newIdCard    = IdCardSerializer.DeserializeIdCard <UserIdCard>(idCardStream);

            Assertion.Equals(idCard, newIdCard);
        }
Exemplo n.º 14
0
        public void SosiFederationTest()
        {
            //Create factory
            SOSIFactory factory = CreateSOSIFactoryWithSosiFederation(Global.MocesCprGyldig);

            //Create IdCard
            UserIdCard idCard = CreateIdCardForSTS(factory);

            //Sign IdCard
            idCard.Sign <Assertion>(factory.SignatureProvider);

            UserIdCard idc = (UserIdCard)SealUtilities.SignIn(idCard, "NETS DANID A/S", Settings.Default.SecurityTokenService);

            //Assert that STS certificate fails due to mismatch in prefix/cvr
            Assert.Throws <ModelException>(delegate { idc.ValidateSignatureAndTrust(factory.Federation); });
        }
Exemplo n.º 15
0
        public void IsTrustedStsCertificateTest()
        {
            //Create factory
            SOSIFactory factory = CreateSOSIFactoryWithTestFederation(Global.MocesCprGyldig);

            //Create IdCard
            UserIdCard idCard = CreateIdCardForSTS(factory);

            //Sign IdCard
            idCard.Sign <Assertion>(factory.SignatureProvider);

            UserIdCard idc = (UserIdCard)SealUtilities.SignIn(idCard, "NETS DANID A/S", Settings.Default.SecurityTokenService);

            //Assert that STS certificate goes through
            Assert.DoesNotThrow(delegate { idc.ValidateSignatureAndTrust(factory.Federation); });
        }
Exemplo n.º 16
0
        public void IdCardUserNamePassTest()
        {
            //Create factory
            SOSIFactory factory = CreateSOSIFactory(Global.MocesCprGyldig);

            //Create IdCard with username/password
            UserIdCard idCard = CreateUserIdCard(factory, "user", "test123");

            //Get Assertion
            Assertion ass = idCard.GetAssertion <Assertion>();

            Assert.True(ass.Subject.SubjectConfirmation.SubjectConfirmationData.Item.GetType() == typeof(UsernameToken));

            //Assert assertion was created succesfully
            Assert.NotNull(ass);
            Assert.NotNull(idCard.Xassertion);
        }
Exemplo n.º 17
0
        public SOSIFactory CreateSOSIFactory(X509Certificate2 cert)
        {
            GenericCredentialVault vault = new GenericCredentialVault();

            //Make sure certStore is cleaned for testing
            RemoveAllCerts(vault);

            //Add test certificate to vault
            X509Certificate2 newCert = cert;

            //newCert.FriendlyName = vault.ALIAS_SYSTEM;
            vault.AddTrustedCertificate(newCert);

            CredentialVaultSignatureProvider sigProvider = new CredentialVaultSignatureProvider(vault);
            SOSIFactory factory = new SOSIFactory(null, sigProvider);

            return(factory);
        }
Exemplo n.º 18
0
        public void ValidateSignatureNegativeTest()
        {
            if (ConfigurationManager.AppSettings.AllKeys.Contains("CheckDate"))
            {
                ConfigurationManager.AppSettings["CheckDate"] = "True";
            }
            //Get invalid certificate
            X509Certificate2 newCert = new X509Certificate2(Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, "Resources", "oces2", "PP", "MOCES_udloebet.p12"), "Test1234");
            SOSIFactory      factory = CreateSOSIFactory(newCert);
            UserIdCard       idCard  = CreateMocesUserIdCard(factory);

            idCard.Sign <Assertion>(factory.SignatureProvider);

            Assert.Throws <ModelException>(delegate { idCard.ValidateSignatureAndTrust(factory.GetCredentialVault()); });
            if (ConfigurationManager.AppSettings.AllKeys.Contains("CheckDate"))
            {
                ConfigurationManager.AppSettings["CheckDate"] = "False";
            }
        }
Exemplo n.º 19
0
        public void IdCardMocesSignTest()
        {
            //Create factory
            SOSIFactory factory = CreateSOSIFactory(Global.MocesCprGyldig);

            //Create IdCard
            UserIdCard idCard = CreateMocesUserIdCard(factory);

            //Sign IdCard
            Assertion ass  = idCard.Sign <Assertion>(factory.SignatureProvider);
            Assertion ass2 = idCard.GetAssertion <Assertion>();

            //Assert assertion was created succesfully
            Assert.NotNull(ass);
            Assert.NotNull(idCard.Xassertion);

            //Make sure the assertion returned from Sign and Get are the same.
            Assert.True(ass.Signature.SignatureValue.ToString() == ass2.Signature.SignatureValue.ToString());
        }
Exemplo n.º 20
0
 public UserIdCard CreateIdCardForSTS(SOSIFactory factory)
 {
     return(factory.CreateNewUserIdCard("Sygdom.dk", new UserInfo("1802602810", "Stine", "Svendsen", "*****@*****.**", "læge", "7170", "ZXCVB"), new CareProvider(SubjectIdentifierType.medcomcvrnumber, "30808460", "Statens Serum Institut"), AuthenticationLevel.MocesTrustedUser, "", "", Global.MocesCprGyldig, ""));
 }
Exemplo n.º 21
0
 public SystemIdCard CreateVocesSystemIdCard(SOSIFactory factory)
 {
     return(factory.CreateNewSystemIdCard("ItSystem", new CareProvider(SubjectIdentifierType.medcomcvrnumber, "25520041", "TRIFORK SERVICES A/S // CVR:25520041"), AuthenticationLevel.VocesTrustedSystem, null, null, factory.GetCredentialVault().GetSystemCredentials(), "alt"));
 }
Exemplo n.º 22
0
 public UserIdCard CreateUserIdCard(SOSIFactory factory, string userName, string passWord)
 {
     return(factory.CreateNewUserIdCard("ItSystem", new UserInfo("12345678", "Test", "Person", "*****@*****.**", "Tester", "Læge", "12345"), new CareProvider(SubjectIdentifierType.medcomcvrnumber, "25520041", "TRIFORK SERVICES A/S // CVR:25520041"), AuthenticationLevel.UsernamePasswordAuthentication, userName, passWord, factory.GetCredentialVault().GetSystemCredentials(), "alt"));
 }
Exemplo n.º 23
0
 public UserIdCard CreateMocesUserIdCard(SOSIFactory factory)
 {
     return(factory.CreateNewUserIdCard("Sygdom.dk", new UserInfo("2408631478", "Amaja", "Christiansen", "*****@*****.**", "Læge", "5175", "5GXFR"), new CareProvider(SubjectIdentifierType.medcomcvrnumber, "25520041", "TRIFORK SERVICES A/S // CVR:25520041"), AuthenticationLevel.MocesTrustedUser, null, null, Global.MocesCprGyldig, null));
 }