public void WhenIDeserialiseTheArmorToken()
        {
            var deserialisor = new ArmorTokenDeserialisor(serialisedArmorToken);

            deserialisor.Execute();

            deserialisedArmorToken = deserialisor.DeserialisedArmorToken;
        }
        public void WhenIParseTheDecryptedToken()
        {
            var deserialisor = new ArmorTokenDeserialisor(decryptedArmorToken);

            deserialisor.Execute();

            deserialisedArmorToken = deserialisor.DeserialisedArmorToken;
        }
Example #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;
        }
 public SerialisedArmorTokenValidationStep(ArmorTokenDeserialisor armorTokenDeserialisor) : base(new EmptyEncryptedArmorTokenValidationStep())
 {
     this.armorTokenDeserialisor = armorTokenDeserialisor;
 }
 public SerialisedArmorTokenValidationStep(ArmorTokenDeserialisor armorTokenDeserialisor, ArmorTokenValidationStep next) : base(next)
 {
     this.armorTokenDeserialisor = armorTokenDeserialisor;
 }