private void InitializeConfiguration() { var certificateStore = new CertificateStore(ModuleLogger(nameof(CertificateStore))); var compressor = new GZipCompressor(ModuleLogger(nameof(GZipCompressor))); var passwordEncryption = new PasswordEncryption(ModuleLogger(nameof(PasswordEncryption))); var publicKeyEncryption = new PublicKeyEncryption(certificateStore, ModuleLogger(nameof(PublicKeyEncryption))); var symmetricEncryption = new PublicKeySymmetricEncryption(certificateStore, ModuleLogger(nameof(PublicKeySymmetricEncryption)), passwordEncryption); var repositoryLogger = ModuleLogger(nameof(ConfigurationRepository)); var xmlParser = new XmlParser(compressor, ModuleLogger(nameof(XmlParser))); var xmlSerializer = new XmlSerializer(ModuleLogger(nameof(XmlSerializer))); configuration = new ConfigurationRepository(certificateStore, new HashAlgorithm(), repositoryLogger); appConfig = configuration.InitializeAppConfig(); configuration.Register(new BinaryParser( compressor, new HashAlgorithm(), ModuleLogger(nameof(BinaryParser)), passwordEncryption, publicKeyEncryption, symmetricEncryption, xmlParser)); configuration.Register(new BinarySerializer( compressor, ModuleLogger(nameof(BinarySerializer)), passwordEncryption, publicKeyEncryption, symmetricEncryption, xmlSerializer)); configuration.Register(new XmlParser(compressor, ModuleLogger(nameof(XmlParser)))); configuration.Register(new XmlSerializer(ModuleLogger(nameof(XmlSerializer)))); configuration.Register(new FileResourceLoader(ModuleLogger(nameof(FileResourceLoader)))); configuration.Register(new FileResourceSaver(ModuleLogger(nameof(FileResourceSaver)))); configuration.Register(new NetworkResourceLoader(appConfig, new ModuleLogger(logger, nameof(NetworkResourceLoader)))); }
public void Initialize() { logger = new Mock <ILogger>(); store = new Mock <ICertificateStore>(); LoadCertificate(); store.Setup(s => s.TryGetCertificateWith(It.IsAny <byte[]>(), out certificate)).Returns(true); sut = new PublicKeyEncryption(store.Object, logger.Object); }
private void InitializeConfiguration() { var executable = Assembly.GetExecutingAssembly(); var programBuild = FileVersionInfo.GetVersionInfo(executable.Location).FileVersion; var programCopyright = executable.GetCustomAttribute <AssemblyCopyrightAttribute>().Copyright; var programTitle = executable.GetCustomAttribute <AssemblyTitleAttribute>().Title; var programVersion = executable.GetCustomAttribute <AssemblyInformationalVersionAttribute>().InformationalVersion; var certificateStore = new CertificateStore(ModuleLogger(nameof(CertificateStore))); var compressor = new GZipCompressor(ModuleLogger(nameof(GZipCompressor))); var passwordEncryption = new PasswordEncryption(ModuleLogger(nameof(PasswordEncryption))); var publicKeyEncryption = new PublicKeyEncryption(certificateStore, ModuleLogger(nameof(PublicKeyEncryption))); var symmetricEncryption = new PublicKeySymmetricEncryption(certificateStore, ModuleLogger(nameof(PublicKeySymmetricEncryption)), passwordEncryption); var repositoryLogger = ModuleLogger(nameof(ConfigurationRepository)); var xmlParser = new XmlParser(ModuleLogger(nameof(XmlParser))); var xmlSerializer = new XmlSerializer(ModuleLogger(nameof(XmlSerializer))); configuration = new ConfigurationRepository( certificateStore, new HashAlgorithm(), repositoryLogger, executable.Location, programBuild, programCopyright, programTitle, programVersion); appConfig = configuration.InitializeAppConfig(); configuration.Register(new BinaryParser( compressor, new HashAlgorithm(), ModuleLogger(nameof(BinaryParser)), passwordEncryption, publicKeyEncryption, symmetricEncryption, xmlParser)); configuration.Register(new BinarySerializer( compressor, ModuleLogger(nameof(BinarySerializer)), passwordEncryption, publicKeyEncryption, symmetricEncryption, xmlSerializer)); configuration.Register(new XmlParser(ModuleLogger(nameof(XmlParser)))); configuration.Register(new XmlSerializer(ModuleLogger(nameof(XmlSerializer)))); configuration.Register(new FileResourceLoader(ModuleLogger(nameof(FileResourceLoader)))); configuration.Register(new FileResourceSaver(ModuleLogger(nameof(FileResourceSaver)))); configuration.Register(new NetworkResourceLoader(appConfig, new ModuleLogger(logger, nameof(NetworkResourceLoader)))); }
public void TestInitialise() { fieldSize = 128; n = 20; t = 5; sch = new Schoenmakers(); sch.SelectPrimeAndGenerators(fieldSize); pke = new PublicKeyEncryption(); keypairs = new List <Tuple <byte[], byte[]> >(); for (int i = 0; i < n; i++) { var pair = pke.GenerateKeyPair(sch.GetqB(), sch.GetGB()); keypairs.Add(pair); } sch.SetPublicKeys(keypairs.Select(po => po.Item2).ToList()); }
public IEnumerable <SecretSharingBenchmarkReport> BenchmarkKey(int MinN, int MaxN, int MinK, int MaxK, int step, SecretSharingBenchmarkReport.OperationType operation, string key, int iterate, List <LoadedPrimeNumber> loadedPrimes) { List <SecretSharingBenchmarkReport> results = new List <SecretSharingBenchmarkReport>(); var filteredPrimes = loadedPrimes.Where(po => po.PrimeSize == key.Length * 8).ToList(); PrimeGenerator.SetLoadedPrimes(filteredPrimes); Schoenmakers schoenmakers = new Schoenmakers(); pke = new PublicKeyEncryption(); //TODO: ensure it's secure enough int fieldSize = key.Length * 8; for (int n = MinN; n <= MaxN; n += step) { //k can not be bigger than n //Parallel.For(1, MaxK, k => //{ List <long> initProtocolElapsedTicks = new List <long>(); Antix.Testing.Benchmark.Run(() => InitProtocolWrapper(ref schoenmakers, n, fieldSize, ref initProtocolElapsedTicks), iterate); results.Add(new SecretSharingBenchmarkReport() { n = n, k = 0, ElapsedTicks = initProtocolElapsedTicks.ToArray(), keyLength = key.Length * 8, Operation = SecretSharingBenchmarkReport.OperationType.InitProtocol, }); //for (int k = MinK; k <= n && k <= MaxK; ) //{ // List<long> verifySharesElapsedTicks = new List<long>(); // List<long> divideRandomSecretElapsedTicks = new List<long>(); // var decryptShareElapsedTicks = new List<long>(); // var verifyDecryptedSharesTicks = new List<long>(); // var reconstructRandomSecretElapsedTicks = new List<long>(); // byte[] secret = null; // Antix.Testing.Benchmark.Run(() => // { // List<Byte[]> Commitments = new List<byte[]>(); // byte[] U = null; // List<SchoenmakersShare> shares = null; // shares = DivideRandomSecretWrapper(ref schoenmakers, n, k, ref secret, ref divideRandomSecretElapsedTicks, ref Commitments); // List<byte[]> publickeys = keypairs.Select(po => po.Item2).ToList(); // VerifyDistributedShares(ref schoenmakers, shares, Commitments, publickeys, ref verifySharesElapsedTicks); // DecryptSharesWrapper(ref schoenmakers, ref shares, keypairs, ref decryptShareElapsedTicks); // VerifyDecryptedShares(ref schoenmakers, shares, k, ref verifyDecryptedSharesTicks); // ReconstructRandomSecretWrapper(ref schoenmakers, shares, k, ref reconstructRandomSecretElapsedTicks); // }, iterate); // #region adding results // results.Add(new SecretSharingBenchmarkReport() // { // n = n, // k = k, // ElapsedTicks = divideRandomSecretElapsedTicks.ToArray(), // keyLength = key.Length * 8, // Operation = SecretSharingBenchmarkReport.OperationType.ShareGenerationRandomSecret, // }); // results.Add(new SecretSharingBenchmarkReport() // { // n = n, // k = k, // ElapsedTicks = verifySharesElapsedTicks.ToArray(), // keyLength = key.Length * 8, // Operation = SecretSharingBenchmarkReport.OperationType.VerifyShares, // }); // results.Add(new SecretSharingBenchmarkReport() // { // n = n, // k = k, // ElapsedTicks = decryptShareElapsedTicks.ToArray(), // keyLength = key.Length * 8, // Operation = SecretSharingBenchmarkReport.OperationType.DecryptShares, // }); // results.Add(new SecretSharingBenchmarkReport() // { // n = n, // k = k, // ElapsedTicks = verifyDecryptedSharesTicks.ToArray(), // keyLength = key.Length * 8, // Operation = SecretSharingBenchmarkReport.OperationType.VerifyPooledShares, // }); // results.Add(new SecretSharingBenchmarkReport() // { // n = n, // k = k, // ElapsedTicks = reconstructRandomSecretElapsedTicks.ToArray(), // keyLength = key.Length * 8, // Operation = SecretSharingBenchmarkReport.OperationType.RandomSecretReconstruction, // }); // #endregion // Console.WriteLine("Iteration info: n:{0} t:{1} keySize:{2}", n, k, key/*s[i]*/.Length * 8); // if (k == 1) k = step; // else k += step; //} }//); var orderedResults = results.OrderBy(po => po.n).ThenBy(po => po.k); return(orderedResults); }