Exemple #1
0
        static void Main(string[] args)
        {
            var model             = RuntimeTypeModel.Default;
            var metaPublicKeyForm = model.Add(typeof(PublicKeyForm), true);

            metaPublicKeyForm.Add("Key", "CryptoProvider", "CryptoAlg", "HashAlg", "Hash", "Sign");

            var publicKeyForm = new PublicKeyForm()
            {
                CryptoAlg      = "ss1",
                Key            = new byte[] { 3, 3, 3 },
                Hash           = new byte[] { 3, 3, 3 },
                HashAlg        = "ss1",
                CryptoProvider = "ss1",
                Sign           = new byte[] { 3, 3, 3 }
            };
            //var ser = new ProtoBufSerializer();
            //var bytes = ser.Serialize(publicKeyForm, false);
            var stream = new MemoryStream();

            Serializer.Serialize(stream, publicKeyForm);
            stream.Seek(0, SeekOrigin.Begin);
            var form2 = Serializer.Deserialize <PublicKeyForm>(stream);
            //var form2 = ser.Deserialize<PublicKeyForm>(bytes, false);

            var metaCurrentResult9 = model.Add(typeof(CurrentResult <PublicKeyForm>), true);

            metaCurrentResult9.Add("Result");
            var result = new CurrentResult <PublicKeyForm>()
            {
                OperationWasFinishedSuccessful = true,
                Result = publicKeyForm
            };
        }
Exemple #2
0
        public static Tuple <UserForm, IEnumerable <TcpListener>, IAsymmetricKeysExchange> CreateForm(string login, bool listenPorts,
                                                                                                      IPAddress ip, Random random)
        {
            var rand      = random ?? new Random();
            var ecdsa     = new MoleECDsaCng();
            var publicKey = ecdsa.Export(false);
            //PossibleCryptoAlgs = new PossibleCryptoInfo(new[] { "CngMicrosoft" }, new[] { "Sha1", "Md5", "Sha256" },
            //    new[] { "Rsa" }, new[] { "Aes", "Des" }, new[] { "Ecc" });
            var hashAlg       = SHA1.Create();
            var hash          = hashAlg.ComputeHash(publicKey);
            var publicKeyForm = new PublicKeyForm()
            {
                CryptoAlg      = "Ecc",
                CryptoProvider = "CngMicrosoft",
                Key            = publicKey,
                Hash           = hash,
                HashAlg        = "Sha1"
            };
            var form = new UserForm()
            {
                Accessibility = new AccessibilityInfo(100, 5)
                {
                    IsPublicProfile = true
                },
                Login               = login,
                Password            = "******",
                PortClientToClient1 = (ushort)rand.Next(20000, 60000),
                PortClientToClient2 = (ushort)rand.Next(20000, 60000),
                PortClientToClient3 = (ushort)rand.Next(20000, 60000),
                PortServerToClient  = (ushort)rand.Next(20000, 60000),
                KeyParametrsBlob    = publicKeyForm
            };
            //192.168.65.129
            var listners = new List <TcpListener>(4);

            if (listenPorts)
            {
                var listner = new TcpListener(ip, form.PortClientToClient1);
                listner.Start();
                listners.Add(listner);

                listner = new TcpListener(ip, form.PortClientToClient2);
                listner.Start();
                listners.Add(listner);

                listner = new TcpListener(ip, form.PortClientToClient3);
                listner.Start();
                listners.Add(listner);

                listner = new TcpListener(ip, form.PortServerToClient);
                listner.Start();
                listners.Add(listner);
            }
            return(new Tuple <UserForm, IEnumerable <TcpListener>, IAsymmetricKeysExchange>(form, listners, ecdsa));
        }