コード例 #1
0
        public void Decrypt()
        {
            #region Arange

            var key   = Sample.KeyGeneration.CreateRandom(256);
            var plain = Guid.NewGuid().ToString();
            var token = JavascriptObjectSigningAndEncryption.Encrypt(key, plain);

            #endregion

            #region Act

            var decrypted = JavascriptObjectSigningAndEncryption.Decrypt(key, token);

            #endregion

            #region Assert

            outputHelper.WriteLine("Token: " + token);
            outputHelper.WriteLine("Secret: " + Convert.ToBase64String(key) + " (Base64Encode)");
            outputHelper.WriteLine("Secret: " + Microsoft.AspNetCore.WebUtilities.WebEncoders.Base64UrlEncode(key) + " (Base64UrlEncode)");

            plain.Should().NotBe(token);
            decrypted.Should().Be(plain);

            #endregion
        }
コード例 #2
0
        public void EncryptWithEllipticCurve()
        {
            #region Arange

            // see https://tools.ietf.org/html/rfc7518#section-6.2.1.1
            var c = ECDiffieHellman.Create(ECCurve.NamedCurves.brainpoolP512r1);
            var exportParameters = c.ExportParameters(true);
            var plain            = Guid.NewGuid().ToString();

            #endregion

            #region Act

            var token = JavascriptObjectSigningAndEncryption.Encrypt(exportParameters, plain);

            #endregion

            #region Assert

            outputHelper.WriteLine("Token: " + token);

            // TODO
            plain.Should().NotBe(token);

            #endregion
        }
コード例 #3
0
        public void DecryptWithRSA()
        {
            #region Arange

            var rsa   = RSA.Create(1024 * 4);
            var plain = Guid.NewGuid().ToString();
            var token = JavascriptObjectSigningAndEncryption.Encrypt(rsa, plain);

            #endregion

            #region Act

            var decypted = JavascriptObjectSigningAndEncryption.Decrypt(rsa, token);

            #endregion

            #region Assert

            outputHelper.WriteLine("Token: " + token);


            plain.Should().Be(decypted);

            #endregion
        }
コード例 #4
0
        public void DecryptWithPassword()
        {
            #region Arange

            var password = Guid.NewGuid().ToString();
            var plain    = Guid.NewGuid().ToString();
            var token    = JavascriptObjectSigningAndEncryption.Encrypt(password, plain);

            #endregion

            #region Act

            var decrypted = JavascriptObjectSigningAndEncryption.Decrypt(password, token);

            #endregion

            #region Assert

            outputHelper.WriteLine("Token: " + token);

            plain.Should().NotBe(token);
            decrypted.Should().Be(plain);

            #endregion
        }
コード例 #5
0
        public void EncryptWithPassword()
        {
            #region Arange

            var password = Guid.NewGuid().ToString();
            var plain    = Guid.NewGuid().ToString();

            #endregion

            #region Act

            var cipherText = JavascriptObjectSigningAndEncryption.Encrypt(password, plain);

            #endregion

            #region Assert

            outputHelper.WriteLine("Token: " + cipherText);

            plain.Should().NotBe(cipherText);

            #endregion
        }