public void NotifyCSEncryptedSessionKeyMessage(ProudServer server, ProudSession session, NotifyCSEncryptedSessionKeyMessage message) { session.Logger?.Verbose("Handshake:NotifyCSEncryptedSessionKey"); session.Crypt = new Crypt(server.Rsa.Decrypt(message.SecureKey, true)); session.Crypt.InitializeFastEncryption(session.Crypt.AES.Decrypt(message.FastKey)); session.SendAsync(new NotifyCSSessionKeySuccessMessage()); }
public void NotifyCSEncryptedSessionKeyMessage(ProudServer server, ProudSession session, NotifyCSEncryptedSessionKeyMessage message) { var secureKey = server.Rsa.Decrypt(message.SecureKey, true); session.Crypt = new Crypt(secureKey); session.SendAsync(new NotifyCSSessionKeySuccessMessage()); }
public void NotifyCSEncryptedSessionKeyMessage(IService service, ProudSession session, NotifyCSEncryptedSessionKeyMessage message) { using (var rsa = new RSACryptoServiceProvider(1024)) { rsa.ImportCspBlob(message.Key); session.EncryptContext = new EncryptContext(128 /*_filter.Config.EncryptedMessageKeyLength*/); byte[] blob; using (var w = new BinaryWriter(new PooledMemoryStream(service.ArrayPool))) { w.Write((byte)1); w.Write((byte)2); w.Write((byte)0); w.Write((byte)0); w.Write(26625); w.Write(41984); var encrypted = rsa.Encrypt(session.EncryptContext.RC4.Key, false); w.Write(encrypted.Reverse()); blob = w.ToArray(); } session.Send(new NotifyCSSessionKeySuccessMessage(blob)); } }
public void NotifyCSEncryptedSessionKeyMessage(IChannelHandlerContext context, ProudSession session, NotifyCSEncryptedSessionKeyMessage message) { using (var rsa = new RSACryptoServiceProvider(1024)) { rsa.ImportCspBlob(message.Key); session.Crypt = new Crypt(_server.Configuration.EncryptedMessageKeyLength); byte[] blob; using (var w = new MemoryStream().ToBinaryWriter(false)) { w.Write((byte)1); w.Write((byte)2); w.Write((byte)0); w.Write((byte)0); w.Write(26625); w.Write(41984); var encrypted = rsa.Encrypt(session.Crypt.RC4.Key, false); w.Write(encrypted.Reverse()); blob = w.ToArray(); } session.SendAsync(new NotifyCSSessionKeySuccessMessage(blob)); } }