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());
 }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }