public void TestFailedVerification() { SymmetricKey key = new SymmetricKey(Resolve.RandomGenerator.Generate(32)); SymmetricIV iv = new SymmetricIV(Resolve.RandomGenerator.Generate(16)); V2AlgorithmVerifierEncryptedHeaderBlock headerBlock = new V2AlgorithmVerifierEncryptedHeaderBlock(new V2AesCrypto(key, iv, 0)); Assert.That(headerBlock.IsVerified, Is.True, "A properly instantiated header should always have IsVerified as true"); byte[] dataBlock = headerBlock.GetDataBlockBytes(); V2AlgorithmVerifierEncryptedHeaderBlock newBlock = new V2AlgorithmVerifierEncryptedHeaderBlock(dataBlock); SymmetricKey key128 = new SymmetricKey(Resolve.RandomGenerator.Generate(16)); newBlock.HeaderCrypto = new V2AesCrypto(key128, iv, 0); Assert.That(newBlock.IsVerified, Is.False, "Wrong algorithm, should not verify."); SymmetricKey wrongKey256 = new SymmetricKey(Resolve.RandomGenerator.Generate(32)); newBlock.HeaderCrypto = new V2AesCrypto(wrongKey256, iv, 0); Assert.That(newBlock.IsVerified, Is.False, "Wrong key, should not verify."); SymmetricIV wrongIv = new SymmetricIV(Resolve.RandomGenerator.Generate(16)); newBlock.HeaderCrypto = new V2AesCrypto(key, wrongIv, 0); Assert.That(newBlock.IsVerified, Is.False, "Wrong IV, should not verify."); newBlock.HeaderCrypto = new V2AesCrypto(key, iv, 256); Assert.That(newBlock.IsVerified, Is.False, "Wrong key stream index, should not verify."); newBlock.HeaderCrypto = new V2AesCrypto(key, iv, 0); Assert.That(newBlock.IsVerified, Is.True, "Everything is as it should, so it should verify."); }
public void TestOkVerification() { SymmetricKey key = new SymmetricKey(Resolve.RandomGenerator.Generate(32)); SymmetricIV iv = new SymmetricIV(Resolve.RandomGenerator.Generate(16)); V2AlgorithmVerifierEncryptedHeaderBlock headerBlock = new V2AlgorithmVerifierEncryptedHeaderBlock(new V2AesCrypto(key, iv, 0)); Assert.That(headerBlock.IsVerified, Is.True, "A properly instantiated header should always have IsVerified as true"); byte[] dataBlock = headerBlock.GetDataBlockBytes(); V2AlgorithmVerifierEncryptedHeaderBlock newBlock = new V2AlgorithmVerifierEncryptedHeaderBlock(dataBlock); newBlock.HeaderCrypto = new V2AesCrypto(key, iv, 0); Assert.That(newBlock.IsVerified, Is.True, "It's a new block with the same key, should be ok."); }