Пример #1
0
        protected override CipherConfiguration GetCipherConfiguration(CipherTestCase testCase)
        {
            var config = CipherConfigurationFactory.CreateStreamCipherConfiguration(Cipher, testCase.Key.Length * 8);

            config.InitialisationVector = testCase.IV;
            return(config);
        }
Пример #2
0
        public static List <PayloadItem> GetItemsBlockExample(List <FileInfo> files)
        {
            var items = new List <PayloadItem> ();

            foreach (var fileInfo in files)
            {
                var t = fileInfo;
                int authOutputSize;
                var payloadItem = new PayloadItem {
                    Path            = t.Name,
                    ExternalLength  = t.Length,
                    Type            = PayloadItemType.File,
                    SymmetricCipher = CipherConfigurationFactory.CreateBlockCipherConfiguration(BlockCipher.Serpent,
                                                                                                BlockCipherMode.Ctr, BlockCipherPadding.None),
                    Authentication = AuthenticationConfigurationFactory.CreateAuthenticationConfiguration(MacFunction.Blake2B256, out authOutputSize)
                };

                payloadItem.SymmetricCipherKey = new byte[payloadItem.SymmetricCipher.KeySizeBits / 8];
                StratCom.EntropySupplier.NextBytes(payloadItem.SymmetricCipherKey);
                payloadItem.AuthenticationKey = new byte[payloadItem.Authentication.KeySizeBits.Value / 8];
                StratCom.EntropySupplier.NextBytes(payloadItem.AuthenticationKey);

                payloadItem.SetStreamBinding(fileInfo.OpenRead);

                items.Add(payloadItem);
            }

            return(items);
        }
Пример #3
0
        public virtual void StreamingPerformance_CBC_ISO10126D2()
        {
            // Using default block & key size
            var config = CipherConfigurationFactory.CreateBlockCipherConfiguration(Cipher, BlockCipherMode.Cbc,
                                                                                   BlockCipherPadding.Iso10126D2);

            RunPerformanceTest(config);
        }
Пример #4
0
        public virtual void StreamingPerformance_OFB()
        {
            // Using default block & key size
            var config = CipherConfigurationFactory.CreateBlockCipherConfiguration(Cipher, BlockCipherMode.Ofb,
                                                                                   BlockCipherPadding.None);

            RunPerformanceTest(config);
        }
Пример #5
0
        protected override CipherConfiguration GetCipherConfiguration(CipherTestCase testCase)
        {
            if (String.IsNullOrEmpty(testCase.Extra))
            {
                throw new InvalidOperationException("Block cipher test cases require block & padding information (extra is null/empty).");
            }

            var extraDataSplit = testCase.Extra.Split(new[] { '/' }, StringSplitOptions.None);

            if (extraDataSplit.Length != 2)
            {
                throw new InvalidOperationException("Block cipher test cases require block & padding information.");
            }

            var config = CipherConfigurationFactory.CreateBlockCipherConfiguration(Cipher,
                                                                                   extraDataSplit[0].ToEnum <BlockCipherMode>(), extraDataSplit[1].ToEnum <BlockCipherPadding>(),
                                                                                   testCase.Key.Length * 8);

            config.InitialisationVector = testCase.IV;
            return(config);
        }
Пример #6
0
        public void StreamingPerformance()
        {
            var config = CipherConfigurationFactory.CreateStreamCipherConfiguration(Cipher);

            RunPerformanceTest(config);
        }