Пример #1
0
        static void Main(string[] args)
        {
            var config  = new ResolverConfig();
            var servise = config.CreateServiceProvider().GetService <IExportDataService>();

            servise.Run();
        }
Пример #2
0
        private static void Main(string[] args)
        {
            Options options = new Options();

            Parser.Default.ParseArguments <Options>(args)
            .WithParsed(opt =>
            {
                options = opt;
            });

            var config = new ConfigurationBuilder()
                         .SetBasePath(Directory.GetCurrentDirectory())
                         .AddJsonFile($"{options.ConfigFile}")
                         .Build();

            var curve           = SetupCurve(config);
            var serviceProvider = ResolverConfig.CreateServiceProvider();
            var ecdsa           = serviceProvider.GetService <IDigitalSignature>();

            Console.Clear();
            if (options.PrintPoints)
            {
                PrintPoints(curve);
            }

            var dh    = new DiffieHellman(curve);
            var alice = dh.GenerateKeyPair();
            var bob   = dh.GenerateKeyPair();

            Console.WriteLine();
            Console.WriteLine($"G = {curve.G}{Environment.NewLine}");
            Console.WriteLine($"Alice's public and private keys:{Environment.NewLine}{alice.privateKey}{Environment.NewLine}{alice.publicKey}{Environment.NewLine}");
            Console.WriteLine($"Bob's public and private keys:{Environment.NewLine}{bob.privateKey}{Environment.NewLine}{bob.publicKey}{Environment.NewLine}");
            Console.WriteLine($"{Environment.NewLine}Alice's key: {dh.GetSharedkey(alice.privateKey, bob.publicKey)} {Environment.NewLine}Bob's key: {dh.GetSharedkey(bob.privateKey, alice.publicKey)}");

            string message = "Hello world!";
            var    keys    = ecdsa.GenerateKeyPair();

            Console.WriteLine($"{Environment.NewLine}ECDSA");
            Console.WriteLine($"Message: {message}");
            Console.WriteLine($"Public key: {keys.publicKey}");
            Console.WriteLine($"Private key: {keys.privateKey}");

            var signature = ecdsa.Sign(message, keys.privateKey);

            Console.WriteLine($"{Environment.NewLine}Signature:{Environment.NewLine}r = {signature.r}, s = {signature.s}");
            //signature.r++;
            string verification = ecdsa.Verify(message, signature, keys.publicKey) ? "Signature matches!" : "Signature does not match!";

            Console.WriteLine(verification);
        }