public override void ReleaseSignatureProvider(SignatureProvider signatureProvider) { if (DisposeSignatureProvider) { base.ReleaseSignatureProvider(signatureProvider); } }
public void CanGetSignature() { var signatureProvider = new SignatureProvider(PrivateCertificate, PublicCertificate); var messageDigest = "2012-05-19T17:27:16.630Z1234567890"; Assert.AreEqual("YVS+Yrr280+ztQ44Qiwp0jYaRO5YJivg/HK7+/AdqUTDLYkPf2hqW6PO1n04LNOhGzAMgCgBmfkxV3fkEAnjmX/tcXU0mnwFxmQC8CjQJ/xpnXo/LDYJtkmfpaFLv0aJCWa2BSNB71Ygr8mtZQ/tach/jaaJwyWbpn+3wkUl7Zc=", signatureProvider.GetSignature(messageDigest)); }
public void when_signature_provider_initialized_with_accept_signature_it_always_allows() { var signatureProvider = new SignatureProvider(new AcceptSignatureAlgorithm()); var algorithm = signatureProvider.GetIssuer("Whatever"); Assert.IsTrue(algorithm.IssuerAlgorithm.Verify(null, null), "When SignatureProvider was initialized with AcceptSignatureAlgorithm it should accept signatures, which are not denied by other policies"); }
public void VerifySignatureTestSetup() { file = new Mock <FileWrapper>(); file.Setup(f => f.ReadAllBytes(It.IsAny <string>())) .Returns <string>(givenFile => files[givenFile]); console = new Mock <ConsoleWrapper>(); Container container = ContainerProvider.GetContainer(); container.Register <FileWrapper>(() => file.Object); container.Register <ConsoleWrapper>(() => console.Object); var asymmetricKeyPairGenerator = new AsymmetricKeyPairGenerator(new SecureRandomGenerator()); var primeMapper = new Rfc3526PrimeMapper(); var curveNameMapper = new FieldToCurveNameMapper(); rsaKeyProvider = new RsaKeyProvider(asymmetricKeyPairGenerator); dsaKeyProvider = new DsaKeyProvider(asymmetricKeyPairGenerator); ecKeyProvider = new EcKeyProvider(asymmetricKeyPairGenerator, curveNameMapper); elGamalKeyProvider = new ElGamalKeyProvider(asymmetricKeyPairGenerator, primeMapper); signatureProvider = new SignatureProvider(new SignatureAlgorithmIdentifierMapper(), new SecureRandomGenerator(), new SignerUtilitiesWrapper()); pkcs8PemFormatter = new Pkcs8PemFormattingProvider(new AsymmetricKeyProvider(new OidToCipherTypeMapper(), new KeyInfoWrapper(), rsaKeyProvider, dsaKeyProvider, ecKeyProvider, elGamalKeyProvider)); base64 = new Base64Wrapper(); encoding = new EncodingWrapper(); random = new SecureRandomGenerator(); }
public void SetUp() { underTest = new SignatureProvider(); time = DateTime.UtcNow; secret = "secret"; appId = "xf6tge1"; }
private void SignatureProvider_DisposeVariation(string testCase, SignatureProvider provider, ExpectedException expectedException) { try { if (testCase.StartsWith("Sign")) { provider.Sign(new byte[256]); } else if (testCase.StartsWith("Verify")) { provider.Verify(new byte[256], new byte[256]); } else if (testCase.StartsWith("Dispose")) { provider.Dispose(); } else { Assert.True(false, "Test case does not match any scenario"); } expectedException.ProcessNoException(); } catch (Exception ex) { expectedException.ProcessException(ex); } }
public void CanVerifySignature() { var signatureProvider = new SignatureProvider(PrivateCertificate, PublicCertificate); var messageDigest = "2012-05-19T17:31:18.000Z0000000000078330Success108429563"; var signature = "BXgUCWykw5I+4aDMC0gcJIY4crVfsPMt9NtTpLD9hzANEZB+gZIUOB6iIX2aS8AyxlDEikhM5eCA6UirtIbqcW94W4z0ekvtgBm0dUROACsZxHxqTuSRYDy22a+Qg92ei1eQ6GH0245BCAo3B4H48A91oFCOc963rJ43DrHd0x8="; Assert.IsTrue(signatureProvider.VerifySignature(signature, messageDigest)); }
private void WriteJwts(SecurityTokenDescriptor tokenDescriptor, SignatureProvider signatureProvider) { JwtSecurityTokenHandler tokenHandler = new JwtSecurityTokenHandler(); JwtSecurityToken jwt = new JwtSecurityToken(tokenDescriptor.TokenIssuerName, tokenDescriptor.AppliesToAddress, tokenDescriptor.Subject.Claims, tokenDescriptor.Lifetime, tokenDescriptor.SigningCredentials); MemoryStream ms = new MemoryStream(); XmlDictionaryWriter writer = XmlDictionaryWriter.CreateTextWriter(ms); tokenHandler.WriteToken(writer, jwt); }
public void returns_default_provider_when_issuer_provider_not_specified() { var defaultAlgorithm = new Mock <ISignatureAlgorithm>(); var signatureProvider = new SignatureProvider(defaultAlgorithm.Object); IssuerInformation provider = signatureProvider.GetIssuer("someone"); Assert.AreSame(defaultAlgorithm.Object, provider.IssuerAlgorithm, "When no vendor algorithm provided, default should be returned"); }
private void CreateJwts(SecurityTokenDescriptor tokenDescriptor, SignatureProvider signatureProvider) { JwtSecurityTokenHandler tokenHandler = new JwtSecurityTokenHandler(); tokenHandler.CreateToken(issuer: tokenDescriptor.TokenIssuerName, audience: tokenDescriptor.AppliesToAddress, subject: tokenDescriptor.Subject, signingCredentials: tokenDescriptor.SigningCredentials, signatureProvider: signatureProvider); }
public void Sign_And_Verify() { const string expected = "Some text"; var key = KeyGenerator.GenerateKeys().PrivateKey; var signature = SignatureProvider.CreateSignatureAsString(key, expected); var isValid = SignatureProvider.VerifySignature(key, expected, signature); Assert.True(isValid); }
public ValueResult <bool> Verify(string data, string signature, string key) { try { return(new ValueResult <bool>(SignatureProvider.Verify(data, signature, key), true)); } catch (Exception ex) { Logger.Error(ex, $"Can't verify signature: {ex.Message}"); return(new ValueResult <bool>(false, false).Error($"Can't verify signature: {ex.Message}", ex)); } }
public ValueResult <string> Sign(string data, string key) { try { return(new ValueResult <string>(SignatureProvider.Sign(data, key), true)); } catch (Exception ex) { Logger.Error(ex, $"Can't sign data: {ex.Message}"); return(new ValueResult <string>(null, false).Error($"Can't sign data: {ex.Message}", ex)); } }
public ValueResult <string> GenerateNewKey() { try { return(new ValueResult <string>(SignatureProvider.GenerateNewKey(), true)); } catch (Exception ex) { Logger.Error(ex, $"Can't generate new key: {ex.Message}"); return(new ValueResult <string>(null, false).Error($"Can't generate new key: {ex.Message}", ex)); } }
private void SignatureProvider_SignVariation(SignatureProvider provider, byte[] bytes, byte[] signature, ExpectedException expectedException) { try { provider.Sign(bytes); expectedException.ProcessNoException(); } catch (Exception ex) { expectedException.ProcessException(ex); } }
public override void ReleaseSignatureProvider(SignatureProvider signatureProvider) { ReleaseSignatureProviderCalled = true; if (CustomCryptoProvider != null) { CustomCryptoProvider.Release(signatureProvider); } else { signatureProvider.Dispose(); } }
public void ShouldReturnValidKey() { var algorithmMapper = new SignatureAlgorithmIdentifierMapper(); var secureRandom = new SecureRandomGenerator(); var signatureProvider = new SignatureProvider(algorithmMapper, secureRandom, new SignerUtilitiesWrapper()); byte[] data = secureRandom.NextBytes(100); IAsymmetricKey result = keyProvider.GetPrivateKey(rsaKeyPair.PrivateKey.Content); Signature signature = signatureProvider.CreateSignature(result, data); Assert.IsTrue(signatureProvider.VerifySignature(rsaKeyPair.PublicKey, signature)); }
public void SetupSignatureProviderTest() { algorithmIdentifierMapper = new SignatureAlgorithmIdentifierMapper(); secureRandomGenerator = new SecureRandomGenerator(); signatureProvider = new SignatureProvider(algorithmIdentifierMapper, secureRandomGenerator, new SignerUtilitiesWrapper()); content = secureRandomGenerator.NextBytes(2000); keys = new Dictionary <CipherType, IAsymmetricKeyPair>(); var rsaGenerator = new AsymmetricKeyPairGenerator(secureRandomGenerator); var rsaKeyProvider = new RsaKeyProvider(rsaGenerator); IAsymmetricKeyPair keyPair = rsaKeyProvider.CreateKeyPair(2048); keys.Add(keyPair.PrivateKey.CipherType, keyPair); }
/** * <p>Constructs an initialized instance of the receiver.</p> * * @throws RavenConfigurationException if the application's default settings do not * exist or cannot be found or if any mandatory parameters are missing */ public RavenSecureAPI() { this.rapiVersion = ConfigureParamAsValue("RAPIVersion", "RAVEN_RAPIVERSION", "2", true, CurrentValues.Instance.PacnetRAVEN_RAPIVERSION); this.site = ConfigureParam("RAVEN_GATEWAY", "RAVEN_GATEWAY", null, true, CurrentValues.Instance.PacnetRAVEN_GATEWAY); this.userName = ConfigureParamAsValue("UserName", "RAVEN_USERNAME", null, true, CurrentValues.Instance.PacnetRAVEN_USERNAME); this.secret = ConfigureParam("RAVEN_SECRET", "RAVEN_SECRET", null, true, CurrentValues.Instance.PacnetRAVEN_SECRET); this.prefix = ConfigureParam("RAVEN_PREFIX", "RAVEN_PREFIX", null, true, CurrentValues.Instance.PacnetRAVEN_PREFIX); try { signatureProvider = new SignatureProvider(this.secret); } catch (Exception e) { throw new RavenConfigurationException("Problem with secret or algorithm.", e); } }
public void ShouldReturnFalseWhenDataLengthExceptionIsThrown(CipherType cipherType) { var keyPair = keys[cipherType]; var signature = signatureProvider.CreateSignature(keyPair.PrivateKey, content); var signer = new Mock <ISigner>(); signer.Setup(s => s.VerifySignature(It.IsAny <byte[]>())) .Throws <DataLengthException>(); var signerUtilities = new Mock <SignerUtilitiesWrapper>(); signerUtilities.Setup(w => w.GetSigner(It.IsAny <string>())) .Returns(signer.Object); signatureProvider = new SignatureProvider(algorithmIdentifierMapper, secureRandomGenerator, signerUtilities.Object); Assert.IsFalse(signatureProvider.VerifySignature(keyPair.PublicKey, signature)); }
private void Provider_Sign_Verify_ParameterChecking(string testcase, SignatureProvider provider, byte[] bytes, byte[] signature, ExpectedException exceptionExpected = null) { Console.WriteLine(string.Format("Testcase: '{0}'", testcase)); try { if (testcase.StartsWith("Sign")) { provider.Sign(bytes); } else { provider.Verify(bytes, signature); } Assert.IsFalse(exceptionExpected != null && exceptionExpected.Thrown != null, string.Format("Expected exception: '{0}'", exceptionExpected.Thrown)); } catch (Exception ex) { ExpectedException.ProcessException(exceptionExpected, ex); } }
public string GetCacheKeyPublic(SignatureProvider signatureProvider) { return(base.GetCacheKey(signatureProvider)); }
public void Sign_Should_Produse_Expected_Urls(SignatureRequest request, string expectedResult) { var signature = new SignatureProvider().Sign(request); signature.ToString().Should().Be(expectedResult); }
protected override void Seed(Contexts.TofiContext context) { // TODO: if seed already called if (context.Currency.FirstOrDefault() != null) { return; } var currencies = new List <CurrencyModel> { new CurrencyModel { Name = "USD" }, new CurrencyModel { Name = "BYN" } }; var creditTypes = new List <CreditTypeModel>() { new CreditTypeModel() { Name = "На все про все", Description = "Потребительский кредит наличными без поручителей от 100 руб. до 15 000 руб. на срок от 13 месяцев до 5 лет!", InterestRate = 0.36, CreditRequirements = new List <CreditRequirementModel>() { new CreditRequirementModel { Description = "Возраст кредитополучателя", ExpectedValue = "От 21 до 62 лет" }, new CreditRequirementModel { Description = "Гражданство", ExpectedValue = "Гражданин Республики Беларусь, либо вид на жительство на территории Республики Беларусь на срок действия кредита" }, new CreditRequirementModel { Description = "Непрерывный стаж на текущем месте работы", ExpectedValue = "Не менее 3 месяцев" } }, CreditConditions = new List <CreditConditionModel> { new CreditConditionModel { MaxCreditSum = new PriceModel { Currency = currencies[1], Value = 15000 }, MinCreditSum = new PriceModel { Currency = currencies[1], Value = 100 }, MonthDurationFrom = 13, MonthDurationTo = 60 } }, FineInterest = 0.01m, IsArchived = false }, new CreditTypeModel { Name = "Все серьезно", Description = "Выгодные условия! Кредит до 50 000 руб. за один день!", InterestRate = 0.3, CreditRequirements = new List <CreditRequirementModel> { new CreditRequirementModel { Description = "Возраст кредитополучателя", ExpectedValue = "От 27 до 62 лет" }, new CreditRequirementModel { Description = "Гражданство", ExpectedValue = "Гражданин Республики Беларусь, либо вид на жительство на территории Республики Беларусь на срок действия кредита" }, new CreditRequirementModel { Description = "Обеспечение", ExpectedValue = @"- неустойка - поручительство не менее 2-х физических лиц" } }, CreditConditions = new List <CreditConditionModel> { new CreditConditionModel { MonthDurationFrom = 13, MonthDurationTo = 120, MinCreditSum = new PriceModel { Currency = currencies[1], Value = 5000 }, MaxCreditSum = new PriceModel { Currency = currencies[1], Value = 50000 } } }, FineInterest = 0.015m, IsArchived = false }, new CreditTypeModel() { Name = "Наш деловой", Description = "Широкий выбор", InterestRate = 0.45, IsArchived = false, FineInterest = 0.017m, CreditRequirements = new List <CreditRequirementModel> { new CreditRequirementModel { Description = "Возраст кредитополучателя", ExpectedValue = "От 21 года" }, new CreditRequirementModel { Description = "Гражданство", ExpectedValue = "Гражданин Республики Беларусь, либо вид на жительство на территории Республики Беларусь на срок действия кредита" } }, CreditConditions = new List <CreditConditionModel> { new CreditConditionModel { MaxCreditSum = new PriceModel { Currency = currencies[1], Value = 50000 }, MinCreditSum = new PriceModel { Currency = currencies[1], Value = 1000 }, MonthDurationFrom = 13, MonthDurationTo = 40 }, new CreditConditionModel { MaxCreditSum = new PriceModel { Currency = currencies[0], Value = 30000 }, MinCreditSum = new PriceModel { Currency = currencies[0], Value = 1000 }, MonthDurationFrom = 24, MonthDurationTo = 48 } }, } }; var salt = SecurityProvider.GetNewSalt(); var testUser = new UserModel { Username = "******", Email = "*****@*****.**", FirstName = "Test", LastName = "Testovich", MiddleName = "Иванович", Client = new ClientModel() { Address = "temp", Birthday = new DateTime(1992, 04, 05), Authority = "Беларусь", ExpirationDate = new DateTime(2020, 03, 04), IssueDate = new DateTime(2009, 01, 06), PassportId = "1234567890фыва", PassportNumber = "АВ1234567", Sex = TOFI.TransferObjects.Client.Enums.Sex.Male, TelephoneNumber = "987654321" }, Key = SignatureProvider.GenerateNewKey(), Auth = new AuthModel { PasswordHash = SecurityProvider.ApplySalt("qwe123", salt), Salt = salt, SecurityStamp = Guid.NewGuid().ToString(), LockoutEnabled = true }, EmailConfirmed = true }; salt = SecurityProvider.GetNewSalt(); var employees = new List <UserModel>() { new UserModel { Username = "******", Email = "*****@*****.**", FirstName = "Employee", LastName = "Employevich", Key = SignatureProvider.GenerateNewKey(), Auth = new AuthModel { PasswordHash = SecurityProvider.ApplySalt("qwe123", salt), Salt = salt, SecurityStamp = Guid.NewGuid().ToString(), LockoutEnabled = true }, Employee = new EmployeeModel { Rights = TOFI.TransferObjects.Employee.DataObjects.EmployeeRights.Handyman } }, new UserModel { Username = "******", Email = "*****@*****.**", FirstName = "Cashier", LastName = "Cashierovich", Key = SignatureProvider.GenerateNewKey(), Auth = new AuthModel { PasswordHash = SecurityProvider.ApplySalt("qwe123", salt), Salt = salt, SecurityStamp = Guid.NewGuid().ToString(), LockoutEnabled = true }, Employee = new EmployeeModel { Rights = TOFI.TransferObjects.Employee.DataObjects.EmployeeRights.Cashier } }, new UserModel { Username = "******", Email = "*****@*****.**", FirstName = "Operator", LastName = "Operatorovich", Key = SignatureProvider.GenerateNewKey(), Auth = new AuthModel { PasswordHash = SecurityProvider.ApplySalt("qwe123", salt), Salt = salt, SecurityStamp = Guid.NewGuid().ToString(), LockoutEnabled = true }, Employee = new EmployeeModel { Rights = TOFI.TransferObjects.Employee.DataObjects.EmployeeRights.Operator } }, new UserModel { Username = "******", Email = "*****@*****.**", FirstName = "Committee", LastName = "committeevich", Key = SignatureProvider.GenerateNewKey(), Auth = new AuthModel { PasswordHash = SecurityProvider.ApplySalt("qwe123", salt), Salt = salt, SecurityStamp = Guid.NewGuid().ToString(), LockoutEnabled = true }, Employee = new EmployeeModel { Rights = TOFI.TransferObjects.Employee.DataObjects.EmployeeRights.CreditCommitteeMember } }, new UserModel { Username = "******", Email = "*****@*****.**", FirstName = "Depchef", LastName = "Depchefovich", Key = SignatureProvider.GenerateNewKey(), Auth = new AuthModel { PasswordHash = SecurityProvider.ApplySalt("qwe123", salt), Salt = salt, SecurityStamp = Guid.NewGuid().ToString(), LockoutEnabled = true }, Employee = new EmployeeModel { Rights = TOFI.TransferObjects.Employee.DataObjects.EmployeeRights.CreditDepartmentChief } }, new UserModel { Username = "******", Email = "*****@*****.**", FirstName = "Security", LastName = "Securitievich", Key = SignatureProvider.GenerateNewKey(), Auth = new AuthModel { PasswordHash = SecurityProvider.ApplySalt("qwe123", salt), Salt = salt, SecurityStamp = Guid.NewGuid().ToString(), LockoutEnabled = true }, Employee = new EmployeeModel { Rights = TOFI.TransferObjects.Employee.DataObjects.EmployeeRights.SecurityOfficer } }, }; salt = SecurityProvider.GetNewSalt(); var adminUser = new UserModel { Username = "******", Email = "*****@*****.**", FirstName = "Admin", LastName = "Adminovich", Key = SignatureProvider.GenerateNewKey(), Auth = new AuthModel { PasswordHash = SecurityProvider.ApplySalt("qwe123", salt), Salt = salt, SecurityStamp = Guid.NewGuid().ToString(), LockoutEnabled = true }, Employee = new EmployeeModel { Rights = TOFI.TransferObjects.Employee.DataObjects.EmployeeRights.Admin } }; salt = SecurityProvider.GetNewSalt(); var superUser = new UserModel { Username = "******", Email = "*****@*****.**", FirstName = "Super", LastName = "Superovich", Key = SignatureProvider.GenerateNewKey(), Auth = new AuthModel { PasswordHash = SecurityProvider.ApplySalt("qwe123", salt), Salt = salt, SecurityStamp = Guid.NewGuid().ToString(), LockoutEnabled = true }, Employee = new EmployeeModel { Rights = TOFI.TransferObjects.Employee.DataObjects.EmployeeRights.Superuser } }; context.CreditTypes.AddRange(creditTypes); context.Users.Add(testUser); context.Users.Add(adminUser); context.Users.AddRange(employees); context.Users.Add(superUser); context.SaveChanges(); }
public void BallotPrompt(ElectionType electionType) { if (electionType == ElectionType.FirstPastThePost) { var i = 1; Console.WriteLine("Welcome to the election! This is a 'First Past The Post' election model.\nThese are the following candidates to select from:\n" + string.Join("\n", this.candidateArr.Select(x => $"{i++}: {x}")) ); int counter = 1; int choice = 0; while (counter < 4) { Console.WriteLine("Please select your choice of candidate e.g. 1."); choice = Convert.ToInt32(Console.ReadLine()); if (choice < 1 || choice > candidateArr.Length) { Console.WriteLine("Please enter a valid choice."); counter += 1; } else { Console.WriteLine("Thank you for voting!"); break; } } if (counter == 4) { Console.WriteLine("You've exhausted your tries. Bye Bye"); return; } FirstPastThePostVote irVote = new FirstPastThePostVote(this.candidateArr[choice - 1]); var jsonVote = this.voteSerializer.Serialize(irVote); var signature = SignatureProvider.Sign(this.password, this.keyPair, jsonVote.GetBytes()); Vote vote = new Vote(this.keyPair.PublicKey.GetBase64String(), jsonVote, signature.GetBase64String()); this.voteMemoryPool.AddVote(vote); } else if (electionType == ElectionType.InstantRunoff) { var i = 1; Console.WriteLine("Welcome to the election! This is a 'Instant Runoff' election model.\nThese are the following candidates to select from:\n" + string.Join("\n", this.candidateArr.Select(x => $"{i++}: {x}")) ); // We need to consider when a candidate is not wishing NONE int counter = 1; var prefs = ""; List <string> tokens = null; char[] charSeparators = new char[] { ',' }; while (counter < 4) { Console.WriteLine("Please type a list in order of candidate preference e.g. 2,1,3."); prefs = Console.ReadLine(); tokens = prefs.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries).ToList(); if (tokens.Count > this.candidateArr.Length) { Console.WriteLine("Please enter valid choices in the correct format."); counter += 1; } List <string> rankedOrderedCandidates = new List <string>(); for (int j = 0; j < tokens.Count; j++) { rankedOrderedCandidates.Add(this.candidateArr[Convert.ToInt32(tokens[j]) - 1]); } InstantRunoffVote iroVote = new InstantRunoffVote(rankedOrderedCandidates); // make the IR vote var jsonVote = this.voteSerializer.Serialize(iroVote); var signature = SignatureProvider.Sign(this.password, this.keyPair, jsonVote.GetBytes()); Vote vote = new Vote(this.keyPair.PublicKey.GetBase64String(), jsonVote, signature.GetBase64String()); this.voteMemoryPool.AddVote(vote); return; } Console.WriteLine("You've exhausted your tries. Bye Bye"); return; } }
public override bool TryGetSignatureProvider(SecurityKey securityKey, string algorithm, string typeofProvider, bool willCreateSignatures, out SignatureProvider signatureProvider) => throw new InvalidOperationException();
private void RunCreationTests(SecurityTokenDescriptor tokenDescriptor, int iterations, bool display = true) { // Create jwts using wif // Create Saml2 tokens // Create Saml tokens DateTime started; string written = "Created, signed and xmlWrite: '{0}', '{1}' Tokens. Time: '{2}'"; string created = "Created, signed: '{0}', '{1}' Tokens. Time: '{2}'"; SignatureProviderFactory factory = new SignatureProviderFactory(); SignatureProvider signatureProvider = factory.CreateForSigning(tokenDescriptor.SigningCredentials.SigningKey, tokenDescriptor.SigningCredentials.SignatureAlgorithm); started = DateTime.UtcNow; for (int i = 0; i < iterations; i++) { CreateJwts(tokenDescriptor, signatureProvider); } if (display) { Console.WriteLine(string.Format(created, "JwtHandler - signatureProvider != null", iterations, DateTime.UtcNow - started)); } started = DateTime.UtcNow; for (int i = 0; i < iterations; i++) { CreateJwts(tokenDescriptor, null); } if (display) { Console.WriteLine(string.Format(created, "JwtHandler - signatureProvider == null", iterations, DateTime.UtcNow - started)); } started = DateTime.UtcNow; for (int i = 0; i < iterations; i++) { CreateSaml2Tokens(tokenDescriptor); } if (display) { Console.WriteLine(string.Format(written, "Saml2", iterations, DateTime.UtcNow - started)); } started = DateTime.UtcNow; for (int i = 0; i < iterations; i++) { CreateSamlTokens(tokenDescriptor); } if (display) { Console.WriteLine(string.Format(written, "Saml1", iterations, DateTime.UtcNow - started)); } started = DateTime.UtcNow; for (int i = 0; i < iterations; i++) { WriteJwts(tokenDescriptor, signatureProvider); } if (display) { Console.WriteLine(string.Format(written, "JwtHandler", iterations, DateTime.UtcNow - started)); } }
public void CanGetThumbprintPublicCertificate() { var signatureProvider = new SignatureProvider(PrivateCertificate, PublicCertificate); Assert.AreEqual(PublicCertificate.Thumbprint, signatureProvider.GetThumbprintAcquirerCertificate()); }
public override bool TryRemove(SignatureProvider signatureProvider) => throw new InvalidOperationException();
protected override string GetCacheKey(SignatureProvider signatureProvider) => throw new InvalidOperationException();