Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 public void ExecuteHandshakeHandler(IPAddress ipAddress, SenderSocket rSocket)
 {
     HandshakeHandler?.Invoke(ipAddress, rSocket);
 }
Esempio n. 4
0
 public void Setup()
 {
     _handler = new HandshakeHandler(null, "ws://fleck-test.com");
 }