private const int Iterations = 10000000; // 10,000,000 (10 million) private static StreamCsPrng GetEngine(CsPseudorandomNumberGenerator cipher) { var config = CsPrngFactory.CreateStreamCipherCsprngConfiguration(cipher); var engine = CipherFactory.CreateStreamCipher(config.CipherName.ToEnum <StreamCipher>()); return(new StreamCsPrng(engine, config.Key, config.Nonce)); }
public static PayloadConfiguration CreateSimple(CsPseudorandomNumberGenerator csprngEnum) { var config = new PayloadConfiguration { SchemeName = PayloadLayoutScheme.Simple.ToString(), EntropyScheme = PayloadMuxEntropyScheme.StreamCipherCsprng, EntropySchemeData = CsPrngFactory.CreateStreamCipherCsprngConfiguration(csprngEnum).SerialiseDto() }; return(config); }
public void SOSEMANUK() { var inputObj = CsPrngFactory.CreateStreamCipherCsprngConfiguration(CsPseudorandomNumberGenerator.Sosemanuk); var stream = SerialiseToMemory(inputObj); stream.Seek(0, SeekOrigin.Begin); var outputObj = DeserialiseFromMemory <StreamCipherCsprngConfiguration>(stream); bool equal = inputObj.Equals(outputObj); Assert.IsTrue(equal); }
public static PayloadConfiguration CreateFabricVariable(CsPseudorandomNumberGenerator csprngEnum, int?minStripe = null, int?maxStripe = null) { CheckFabricArgumentsValid(minStripe, maxStripe); var config = new PayloadConfiguration { SchemeName = PayloadLayoutScheme.Fabric.ToString(), SchemeConfiguration = new RangeConfiguration { Minimum = (minStripe == null ? FabricPayloadMux.MinimumStripeLength : minStripe.Value), Maximum = (maxStripe == null ? FabricPayloadMux.MaximumStripeLength : maxStripe.Value) }.SerialiseDto(), EntropyScheme = PayloadMuxEntropyScheme.StreamCipherCsprng, EntropySchemeData = CsPrngFactory.CreateStreamCipherCsprngConfiguration(csprngEnum).SerialiseDto() }; return(config); }
public static PayloadConfiguration CreateFrameshiftFixed(CsPseudorandomNumberGenerator csprngEnum, int?paddingSize = null) { int fixedSize = paddingSize == null ? FrameshiftPayloadMux.DefaultFixedPaddingLength : paddingSize.Value; if (fixedSize.IsBetween(FrameshiftPayloadMux.MinimumPaddingLength, FrameshiftPayloadMux.MaximumPaddingLength) == false) { throw new ArgumentOutOfRangeException("paddingSize", "Padding size not within specification."); } var config = new PayloadConfiguration { SchemeName = PayloadLayoutScheme.Frameshift.ToString(), SchemeConfiguration = new RangeConfiguration { Minimum = fixedSize, Maximum = fixedSize, }.SerialiseDto(), EntropyScheme = PayloadMuxEntropyScheme.StreamCipherCsprng, EntropySchemeData = CsPrngFactory.CreateStreamCipherCsprngConfiguration(csprngEnum).SerialiseDto() }; return(config); }
public void Fabric_Fixed() { var inputObj = new PayloadConfiguration() { SchemeName = PayloadLayoutScheme.Fabric.ToString(), SchemeConfiguration = new RangeConfiguration { Minimum = FabricPayloadMux.DefaultFixedStripeLength, Maximum = FabricPayloadMux.DefaultFixedStripeLength }.SerialiseDto(), EntropyScheme = PayloadMuxEntropyScheme.StreamCipherCsprng, EntropySchemeData = CsPrngFactory.CreateStreamCipherCsprngConfiguration( CsPseudorandomNumberGenerator.Sosemanuk).SerialiseDto <StreamCipherCsprngConfiguration>() }; var stream = SerialiseToMemory(inputObj); stream.Seek(0, SeekOrigin.Begin); var outputObj = DeserialiseFromMemory <PayloadConfiguration>(stream); bool equal = inputObj.Equals(outputObj); Assert.IsTrue(equal); }
public StreamCipherCsprngMuxEntropySource(StreamCipherCsprngConfiguration config) { EntropySource = CsPrngFactory.CreateCsprng(config); }