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 }; }
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)); }