public void SendServerInfo() { SendMessage(ServerInfo, new ServerInfo { ApiName = _serverApiName, RawX509Certificate = LocalCertificate.Export(X509ContentType.Cert) }); }
/// <exception cref="NetMQSecurityException">The client key exchange must not be received while expecting a another message.</exception> private void OnClientKeyExchange(NetMQMessage incomingMessage) { if (m_lastReceivedMessage != HandshakeType.ClientHello || m_lastSentMessage != HandshakeType.ServerHelloDone) { throw new NetMQSecurityException(NetMQSecurityErrorCode.HandshakeUnexpectedMessage, "Client Key Exchange received when expecting another message"); } HashLocalAndRemote(incomingMessage); var clientKeyExchangeMessage = new ClientKeyExchangeMessage(); clientKeyExchangeMessage.SetFromNetMQMessage(incomingMessage); using (var rsa = LocalCertificate.GetRSAPrivateKey()) // .PrivateKey as RSACryptoServiceProvider; { byte[] premasterSecret = rsa.Decrypt(clientKeyExchangeMessage.EncryptedPreMasterSecret, RSAEncryptionPadding.Pkcs1); // false); GenerateMasterSecret(premasterSecret); } InvokeChangeCipherSuite(); }
protected override Task OnActivate(IWorkContext context) { _localCertificate = new LocalCertificate(new LocalCertificateKey(ActorKey.VectorKey)); return(base.OnActivate(context)); }