예제 #1
0
        public void ShouldGFSboxCorrectlyNewEngineEncrypt(string expectedText, AlgoArrayResponse algoArrayResponse)
        {
            var param = new ModeBlockCipherParameters(
                BlockCipherDirections.Encrypt,
                algoArrayResponse.IV,
                algoArrayResponse.Key,
                algoArrayResponse.PlainText
                );
            var result = _newSubject.ProcessPayload(param);

            Assert.IsTrue(result.Success, nameof(result.Success));
            Assert.AreEqual(algoArrayResponse.CipherText, result.Result, expectedText);
        }
예제 #2
0
        public void ShouldEncryptPartialBlockCorrectlyNewEngine(int len, string keyHex, string ivHex, string ptHex, string ctHex)
        {
            var key = new BitString(keyHex);
            var iv  = new BitString(ivHex);
            var pt  = new BitString(ptHex, len);
            var ct  = new BitString(ctHex, len);

            var subject = new OfbBlockCipher(new AesEngine());

            var param = new ModeBlockCipherParameters(
                BlockCipherDirections.Encrypt,
                iv,
                key,
                pt
                );
            var result = subject.ProcessPayload(param);

            Assert.AreEqual(ct.ToHex(), result.Result.ToHex());
        }
예제 #3
0
        public void ShouldDecryptMultiblockCorrectlyNewEngine()
        {
            var key = new BitString("0777ef9c046d80cefe0f2b5bedc3cc82");
            var iv  = new BitString("1f88d353dd8f39eced080debba862a13");
            var pt  = new BitString(
                "a9adff5fec2ed8f30b7b2e7d0fce61a688c0b085c6b30a1e4c7120288211bf14aa1b5d4a15ecf2b6975b0983389c16262c650a9f065025fb28810b1e7e881bbf6c88fcb4049978707d6c8ecae02ec20005aeb8fbbec101d452e635982d264248d53e032420001529a5f7e6d9704a0e3afae2e32158cf47b0b2e8c51ef7b2ddb6");
            var ct = new BitString(
                "6161513687577c3b284778adbaafdf15372868f4651211d0f8733bded466a37662e9836318a5d9856ffddc8d99e7243882bd6f9e2ec5284c378d045b163ad65ed6b1c01276a8f94ca028dc3777d116955d788fba40518cbf63e98e96d30c8ff3f1828db4a8a7f1bce5c3885eea082ac6a90baf9c3bb8311dc04e19a4a790c53b");

            var subject = new OfbBlockCipher(new AesEngine());

            var param = new ModeBlockCipherParameters(
                BlockCipherDirections.Decrypt,
                iv,
                key,
                ct
                );
            var result = subject.ProcessPayload(param);

            Assert.AreEqual(pt.ToHex(), result.Result.ToHex());
        }