コード例 #1
0
        public void WhenIDecryptTheTokenUsingRijndaelEncryption()
        {
            var encryptionMechanismFactory = new RijndaelDecryptionMechanismFactory(key, Convert.FromBase64String(encryptedArmorToken));

            var decryptor = new ArmorTokenEncryptor(encryptionMechanismFactory);

            decryptor.Execute();

            decryptedArmorToken = decryptor.Output;
        }
コード例 #2
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;
        }