public AsyncDtlsClientProtocol(AsyncDtlsClient client, SecureRandom secureRandom, IChannel channel, HandshakeHandler parentHandler, DtlsStateHandler handler, Boolean useExtendedMasterSecret, ProtocolVersion initialVersion) { this.parentHandler = parentHandler; this.handler = handler; this.channel = channel; this.protocolVersion = initialVersion; AsyncDtlsSecurityParameters securityParameters = new AsyncDtlsSecurityParameters(); securityParameters.SetEntity(ConnectionEnd.client); clientState = new AsyncDtlsClientState(); clientState.Client = client; clientState.ClientContext = new AsyncDtlsClientContext(secureRandom, securityParameters); securityParameters.SetExtendedMasterSecret(useExtendedMasterSecret); securityParameters.SetClientRandom(DtlsHelper.CreateRandomBlock(client.ShouldUseGmtUnixTime(), clientState.ClientContext.NonceRandomGenerator)); client.InitClient(clientState.ClientContext); clientState.HandshakeHash = new DeferredHash(); clientState.HandshakeHash.Init(clientState.ClientContext); recordLayer = new AsyncDtlsRecordLayer(clientState.HandshakeHash, this, channel, clientState.ClientContext, client); }
public AsyncDtlsRecordLayer(TlsHandshakeHash handshakeHash, HandshakeHandler handshakeHandler, IChannel channel, TlsContext context, TlsPeer peer) { this.handshakeHash = handshakeHash; this.channel = channel; this.handshakeHandler = handshakeHandler; this.peer = peer; this.inHandshake = true; this.currentEpoch = new AsyncDtlsEpoch(0, new TlsNullCipher(context)); this.pendingEpoch = null; this.readEpoch = currentEpoch; this.writeEpoch = currentEpoch; SetPlaintextLimit(MAX_FRAGMENT_LENGTH); }
public void ExecuteHandshakeHandler(IPAddress ipAddress, SenderSocket rSocket) { HandshakeHandler?.Invoke(ipAddress, rSocket); }
public void Setup() { _handler = new HandshakeHandler(null, "ws://fleck-test.com"); }