public JsonWebKeySetServiceTests() { _options = new Mock <IOptions <JwksOptions> >(); _store = new InMemoryStore(_options.Object); _jwksService = new JwksService(_store, new JwkService(), _options.Object); _options.Setup(s => s.Value).Returns(new JwksOptions()); }
public async Task <ActionResult> Index(string submitButton, string encryptedJwe, EncryptedJweViewModel encryptedJweViewModel) { try { var jwksUrl = ConfigurationManager.AppSettings["JwksUrl"]; var cacheDurationSeconds = long.Parse(ConfigurationManager.AppSettings["CacheDurationSeconds"]); var privateJsonWebKeyList = new List <JsonWebKey>(); var privateRsaJson = System.IO.File.ReadAllText(AppDomain.CurrentDomain.RelativeSearchPath + @"\TestData\RsaPrivate.json"); var privateRsaJsonWebKey = JsonConvert.DeserializeObject <JsonWebKey>(privateRsaJson); privateJsonWebKeyList.Add(privateRsaJsonWebKey); var httpClient = new HttpClient(); var jwksService = new JwksService(httpClient, jwksUrl); var keyResolver = new KeyResolver(privateJsonWebKeyList, jwksService, cacheDurationSeconds); var loggerFactory = new LoggerFactory(); var logger = LoggerFactoryExtensions.CreateLogger <Encryption>(loggerFactory); var encryption = new Encryption(keyResolver, logger); if (submitButton == "Encrypt") { encryptedJweViewModel.EncryptedJwe = await encryption.EncryptAsync(encryptedJweViewModel.PhoneNumber); } else if (submitButton == "Decrypt") { encryptedJweViewModel.DecryptedPhoneNumber = await encryption.DecryptAsync(encryptedJwe); } } catch (Exception ex) { encryptedJweViewModel.DecryptedPhoneNumber = string.Empty; encryptedJweViewModel.ErrorMessage = ex.Message; if (ex.InnerException != null) { encryptedJweViewModel.ErrorMessage += " " + ex.InnerException.Message; } } return(View(encryptedJweViewModel)); }
public async Task GetJsonWebKeyListAsync_PublicRSA_Success() { // Arrange // Use MOC HttpClient var jwksService = new JwksService(this.publicRsaHttpClient, this.jwkUrl); // Act var jwksList = await jwksService.GetJsonWebKeyListAsync(); // Assert Assert.IsNotNull(jwksList); Assert.IsTrue(jwksList.Count == 1); Assert.AreEqual("RSA", jwksList[0].Kty); Assert.AreEqual(false, jwksList[0].HasPrivateKey); Assert.AreEqual("0vx7agoebGcQSuuPiLJXZptN9nndrQmbXEps2aiAFbWhM78LhWx4cbbfAAtVT86zwu1RK7aPFFxuhDR1L6tSoc_BJECPebWKRXjBZCiFV4n3oknjhMstn64tZ_2W-5JsGY4Hc5n9yBXArwl93lqt7_RN5w6Cf0h4QyQ5v-65YGjQR0_FDW2QvzqY368QQMicAtaSqzs8KJZgnYb9c7d0zgdAZHzu6qMQvRL5hajrn1n91CbOpbISD08qNLyrdkt-bFTWhAI4vMQFh6WeZu0fM4lFd2NcRwr3XPksINHaQ-G_xBniIqbw0Ls1jF44-csFCur-kEgU8awapJzKnqDKgw", jwksList[0].N); Assert.AreEqual("AQAB", jwksList[0].E); Assert.AreEqual("RS256", jwksList[0].Alg); Assert.AreEqual("3072F4C6-193D-481B-BDD2-0F09F5A7DDFB", jwksList[0].Kid); Assert.AreEqual(2048, jwksList[0].KeySize); }
public async Task GetJsonWebKeyListAsync_PublicEC_Success() { // Arrange // Use MOC HttpClient var jwksService = new JwksService(this.publicEcHttpClient, this.jwkUrl); // Act var jwksList = await jwksService.GetJsonWebKeyListAsync(); // Assert Assert.IsNotNull(jwksList); Assert.IsTrue(jwksList.Count == 1); Assert.AreEqual("EC", jwksList[0].Kty); Assert.AreEqual(false, jwksList[0].HasPrivateKey); Assert.AreEqual("P-256", jwksList[0].Crv); Assert.AreEqual("MKBCTNIcKUSDii11ySs3526iDZ8AiTo7Tu6KPAqv7D4", jwksList[0].X); Assert.AreEqual("4Etl6SRW2YiLUrN5vfvVHuhp7x8PxltmWWlbbM4IFyM", jwksList[0].Y); Assert.AreEqual("enc", jwksList[0].Use); Assert.AreEqual("B7B4F5C7-2B46-4F54-A81A-51E8A886B094", jwksList[0].Kid); Assert.AreEqual(256, jwksList[0].KeySize); }