public void WhenIDecryptTheTokenUsingRijndaelEncryption()
        {
            var encryptionMechanismFactory = new RijndaelDecryptionMechanismFactory(key, Convert.FromBase64String(encryptedArmorToken));

            var decryptor = new ArmorTokenEncryptor(encryptionMechanismFactory);

            decryptor.Execute();

            decryptedArmorToken = decryptor.Output;
        }
Exemple #2
0
        public void GivenIHaveEncryptedTheValidArmorToken()
        {
            using (var provider = new RNGCryptoServiceProvider()) provider.GetBytes(encryptionKey);

            var encryptionMechanismFactory = new RijndaelEncryptionMechanismFactory(encryptionKey, Encoding.UTF8.GetBytes(serialisedArmorToken));
            var armorTokenEncryptor        = new ArmorTokenEncryptor(encryptionMechanismFactory);

            armorTokenEncryptor.Execute();
            encryptedArmorToken = armorTokenEncryptor.Output;
        }
Exemple #3
0
        public void WhenIVerifyTheHashedArmorTokenSHMACSHASignature(int p0)
        {
            switch (p0)
            {
            case 256:
                hashingMode = HashingMode.HMACSHA256;
                break;

            case 512:
                hashingMode = HashingMode.HMACSHA512;
                break;

            default:
                throw new NotImplementedException("Invalid Hashing Mode.");
            }

            var hashedArmorTokenParser = new HashedArmorTokenParser(hashingMode, Convert.FromBase64String(hashedArmorToken));

            hashedArmorTokenParser.Execute();

            byte[] hash;

            switch (p0)
            {
            case 256:
                using (var hmac = new HMACSHA256(hashingKey)) hash = hmac.ComputeHash(hashedArmorTokenParser.ParsedArmorToken.ArmorToken);
                break;

            case 512:
                using (var hmac = new HMACSHA512(hashingKey)) hash = hmac.ComputeHash(hashedArmorTokenParser.ParsedArmorToken.ArmorToken);
                break;

            default:
                throw new NotImplementedException("Invalid Hashing Mode.");
            }

            Assert.AreEqual(hashedArmorTokenParser.ParsedArmorToken.Hash, hash);
            var encryptionMechanismFactory = new RijndaelDecryptionMechanismFactory(encryptionKey, hashedArmorTokenParser.ParsedArmorToken.ArmorToken);

            var armorTokenDecryptor = new ArmorTokenEncryptor(encryptionMechanismFactory);

            armorTokenDecryptor.Execute();

            var decrypted = armorTokenDecryptor.Output;

            var armorTokenDeserialisor = new ArmorTokenDeserialisor(decrypted);

            armorTokenDeserialisor.Execute();

            deserialisedArmorToken = armorTokenDeserialisor.DeserialisedArmorToken;
        }
Exemple #4
0
        public void GivenIHaveSuppliedAnEncryptedArmorTokenForHashUsingHMACSHA(int p0)
        {
            originalArmorToken = new ArmorToken("*****@*****.**", "myPlatform", 0, new[] { new Claim("Dummy", "Claim") });

            var armorTokenSerialisor = new ArmorTokenSerialisor(originalArmorToken);

            armorTokenSerialisor.Execute();

            using (var provider = new RNGCryptoServiceProvider()) provider.GetBytes(encryptionKey);
            var encryptionMechanismFactory = new RijndaelEncryptionMechanismFactory(encryptionKey, Encoding.UTF8.GetBytes(armorTokenSerialisor.SerialisedArmorToken));

            var armorTokenEncryptor = new ArmorTokenEncryptor(encryptionMechanismFactory);

            armorTokenEncryptor.Execute();

            encryptedArmorToken = armorTokenEncryptor.Output;
        }