コード例 #1
0
ファイル: CMSTest.cs プロジェクト: AlexPaskhin/bc-csharp
        public ITestResult Perform()
        {
            ITestResult res = CompressionTest();

            if (!res.IsSuccessful())
            {
                return(res);
            }

            res = EnvelopedTest();
            if (!res.IsSuccessful())
            {
                return(res);
            }

            return(SignedTest());
        }
コード例 #2
0
ファイル: OCSPTest.cs プロジェクト: AlexPaskhin/bc-csharp
        public ITestResult Perform()
        {
            ITestResult res = unSignedRequest();

            if (!res.IsSuccessful())
            {
                return(res);
            }

            res = SignedRequest();
            if (!res.IsSuccessful())
            {
                return(res);
            }

            return(Response());
        }
コード例 #3
0
        public ITestResult Perform()
        {
            ITestResult res = BasicPkcs10Test("basic CR", req1);

            if (!res.IsSuccessful())
            {
                return(res);
            }

            return(BasicPkcs10Test("Universal CR", req2));
        }
コード例 #4
0
ファイル: RC4Test.cs プロジェクト: jwtvh/bc-csharp
        public virtual ITestResult Perform()
        {
            for (int i = 0; i != tests.Length; i++)
            {
                ITestResult res = tests[i].Perform();

                if (!res.IsSuccessful())
                {
                    return(res);
                }
            }

            return(new SimpleTestResult(true, Name + ": Okay"));
        }
コード例 #5
0
        public ITestResult Perform()
        {
            ITestResult result = DoTest(0, sample1);

            if (!result.IsSuccessful())
            {
                return(result);
            }

            result = DoTest(1, sample2);
            if (!result.IsSuccessful())
            {
                return(result);
            }

            result = DoTest(2, sample3);
            if (!result.IsSuccessful())
            {
                return(result);
            }

            return(new SimpleTestResult(true, Name + ": Okay"));
        }
コード例 #6
0
        public override ITestResult Perform()
        {
            ITestResult result = base.Perform();

            result = MacTests();     //Mac tests

            result = KeyWrapTests(); //Key wrapping tests

            if (!result.IsSuccessful())
            {
                return(result);
            }
            else
            {
                return(new SimpleTestResult(true, Name + ": Okay"));
            }
        }
コード例 #7
0
        public ITestResult Perform()
        {
            for (int i = 0; i != fips1Tests.Length; i += 2)
            {
                ITestResult result = doTest(fips1Tests[i], input1, Hex.Decode(fips1Tests[i + 1]));
                if (!result.IsSuccessful())
                {
                    return(result);
                }
            }

            for (int i = 0; i != fips2Tests.Length; i += 2)
            {
                ITestResult result = doTest(fips2Tests[i], input2, Hex.Decode(fips2Tests[i + 1]));
                if (!result.IsSuccessful())
                {
                    return(result);
                }
            }

            return(new SimpleTestResult(true, Name + ": Okay"));
        }
コード例 #8
0
ファイル: RC2WrapTest.cs プロジェクト: jwtvh/bc-csharp
        public ITestResult Perform()
        {
            byte[] kek1 = Hex.Decode("fd04fd08060707fb0003fefffd02fe05");
            byte[] iv1  = Hex.Decode("c7d90059b29e97f7");
            byte[] in1  = Hex.Decode("b70a25fbc9d86a86050ce0d711ead4d9");
            byte[] out1 = Hex.Decode("70e699fb5701f7833330fb71e87c85a420bdc99af05d22af5a0e48d35f3138986cbaafb4b28d4f35");
            //
            // note the RFC 3217 test specifies a key to be used with an effective key size of
            // 40 bits which is why it is done here - in practice nothing less than 128 bits should be used.
            //
            ICipherParameters paramWrap   = new ParametersWithRandom(new ParametersWithIV(new RC2Parameters(kek1, 40), iv1), new RFCRandom());
            ICipherParameters paramUnwrap = new RC2Parameters(kek1, 40);

            ITestResult result = wrapTest(1, paramWrap, paramUnwrap, in1, out1);

            if (!result.IsSuccessful())
            {
                return(result);
            }

            return(new SimpleTestResult(true, Name + ": Okay"));
        }
コード例 #9
0
        public ITestResult Perform()
        {
            byte[]      kek1   = Hex.Decode("000102030405060708090a0b0c0d0e0f");
            byte[]      in1    = Hex.Decode("00112233445566778899aabbccddeeff");
            byte[]      out1   = Hex.Decode("1fa68b0a8112b447aef34bd8fb5a7b829d3e862371d2cfe5");
            ITestResult result = wrapTest(1, kek1, in1, out1);

            if (!result.IsSuccessful())
            {
                return(result);
            }

            byte[] kek2 = Hex.Decode("000102030405060708090a0b0c0d0e0f1011121314151617");
            byte[] in2  = Hex.Decode("00112233445566778899aabbccddeeff");
            byte[] out2 = Hex.Decode("96778b25ae6ca435f92b5b97c050aed2468ab8a17ad84e5d");
            result = wrapTest(2, kek2, in2, out2);
            if (!result.IsSuccessful())
            {
                return(result);
            }

            byte[] kek3 = Hex.Decode("000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f");
            byte[] in3  = Hex.Decode("00112233445566778899aabbccddeeff");
            byte[] out3 = Hex.Decode("64e8c3f9ce0f5ba263e9777905818a2a93c8191e7d6e8ae7");
            result = wrapTest(3, kek3, in3, out3);
            if (!result.IsSuccessful())
            {
                return(result);
            }

            byte[] kek4 = Hex.Decode("000102030405060708090a0b0c0d0e0f1011121314151617");
            byte[] in4  = Hex.Decode("00112233445566778899aabbccddeeff0001020304050607");
            byte[] out4 = Hex.Decode("031d33264e15d33268f24ec260743edce1c6c7ddee725a936ba814915c6762d2");
            result = wrapTest(4, kek4, in4, out4);
            if (!result.IsSuccessful())
            {
                return(result);
            }

            byte[] kek5 = Hex.Decode("000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f");
            byte[] in5  = Hex.Decode("00112233445566778899aabbccddeeff0001020304050607");
            byte[] out5 = Hex.Decode("a8f9bc1612c68b3ff6e6f4fbe30e71e4769c8b80a32cb8958cd5d17d6b254da1");
            result = wrapTest(5, kek5, in5, out5);
            if (!result.IsSuccessful())
            {
                return(result);
            }

            byte[] kek6 = Hex.Decode("000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f");
            byte[] in6  = Hex.Decode("00112233445566778899aabbccddeeff000102030405060708090a0b0c0d0e0f");
            byte[] out6 = Hex.Decode("28c9f404c4b810f4cbccb35cfb87f8263f5786e2d80ed326cbc7f0e71a99f43bfb988b9b7a02dd21");
            result = wrapTest(6, kek6, in6, out6);
            if (!result.IsSuccessful())
            {
                return(result);
            }

            IWrapper     wrapper = new AesWrapEngine();
            KeyParameter key     = new KeyParameter(new byte[16]);

            byte[] buf = new byte[16];

            try
            {
                wrapper.Init(true, key);

                wrapper.Unwrap(buf, 0, buf.Length);

                return(new SimpleTestResult(false, Name + ": failed unwrap state test."));
            }
            catch (InvalidOperationException)
            {
                // expected
            }
            catch (InvalidCipherTextException e)
            {
                return(new SimpleTestResult(false, Name + ": unexpected exception: " + e, e));
            }

            try
            {
                wrapper.Init(false, key);

                wrapper.Wrap(buf, 0, buf.Length);

                return(new SimpleTestResult(false, Name + ": failed unwrap state test."));
            }
            catch (InvalidOperationException)
            {
                // expected
            }

            //
            // short test
            //
            try
            {
                wrapper.Init(false, key);

                wrapper.Unwrap(buf, 0, buf.Length / 2);

                return(new SimpleTestResult(false, Name + ": failed unwrap short test."));
            }
            catch (InvalidCipherTextException)
            {
                // expected
            }

            try
            {
                wrapper.Init(true, key);

                wrapper.Wrap(buf, 0, 15);

                return(new SimpleTestResult(false, Name + ": failed wrap length test."));
            }
            catch (DataLengthException)
            {
                // expected
            }

            return(new SimpleTestResult(true, Name + ": Okay"));
        }
コード例 #10
0
ファイル: AESTest.cs プロジェクト: jwtvh/bc-csharp
        public override ITestResult Perform()
        {
            ITestResult result = base.Perform();

            if (!result.IsSuccessful())
            {
                return(result);
            }

            byte[] kek1 = Hex.Decode("000102030405060708090a0b0c0d0e0f");
            byte[] in1  = Hex.Decode("00112233445566778899aabbccddeeff");
            byte[] out1 = Hex.Decode("1fa68b0a8112b447aef34bd8fb5a7b829d3e862371d2cfe5");
            result = WrapTest(1, kek1, in1, out1);
            if (!result.IsSuccessful())
            {
                return(result);
            }

            byte[] kek2 = Hex.Decode("000102030405060708090a0b0c0d0e0f1011121314151617");
            byte[] in2  = Hex.Decode("00112233445566778899aabbccddeeff");
            byte[] out2 = Hex.Decode("96778b25ae6ca435f92b5b97c050aed2468ab8a17ad84e5d");
            result = WrapTest(2, kek2, in2, out2);
            if (!result.IsSuccessful())
            {
                return(result);
            }

            byte[] kek3 = Hex.Decode("000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f");
            byte[] in3  = Hex.Decode("00112233445566778899aabbccddeeff");
            byte[] out3 = Hex.Decode("64e8c3f9ce0f5ba263e9777905818a2a93c8191e7d6e8ae7");
            result = WrapTest(3, kek3, in3, out3);
            if (!result.IsSuccessful())
            {
                return(result);
            }

            byte[] kek4 = Hex.Decode("000102030405060708090a0b0c0d0e0f1011121314151617");
            byte[] in4  = Hex.Decode("00112233445566778899aabbccddeeff0001020304050607");
            byte[] out4 = Hex.Decode("031d33264e15d33268f24ec260743edce1c6c7ddee725a936ba814915c6762d2");
            result = WrapTest(4, kek4, in4, out4);
            if (!result.IsSuccessful())
            {
                return(result);
            }

            byte[] kek5 = Hex.Decode("000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f");
            byte[] in5  = Hex.Decode("00112233445566778899aabbccddeeff0001020304050607");
            byte[] out5 = Hex.Decode("a8f9bc1612c68b3ff6e6f4fbe30e71e4769c8b80a32cb8958cd5d17d6b254da1");
            result = WrapTest(5, kek5, in5, out5);
            if (!result.IsSuccessful())
            {
                return(result);
            }

            byte[] kek6 = Hex.Decode("000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f");
            byte[] in6  = Hex.Decode("00112233445566778899aabbccddeeff000102030405060708090a0b0c0d0e0f");
            byte[] out6 = Hex.Decode("28c9f404c4b810f4cbccb35cfb87f8263f5786e2d80ed326cbc7f0e71a99f43bfb988b9b7a02dd21");
            result = WrapTest(6, kek6, in6, out6);
            if (!result.IsSuccessful())
            {
                return(result);
            }

            return(new SimpleTestResult(true, Name + ": Okay"));
        }