@Override protected DTLSTransport getDtlsTransport() throws IOException { DTLSClientProtocol clientProtocol = new DTLSClientProtocol(secureRandom); return clientProtocol.connect(mclient, rawTransport); }
protected void abortClientHandshake(ClientHandshakeState state, DTLSRecordLayer recordLayer, short alertDescription) { recordLayer.fail(alertDescription); invalidateSession(state); }
byte[] clientHelloBody = generateClientHello(state, state.client); byte[] cookie = processHelloVerifyRequest(state, serverMessage.getBody()); byte[] patched = patchClientHelloWithCookie(clientHelloBody, cookie); reportServerVersion(state, recordLayerVersion); recordLayer.setWriteVersion(recordLayerVersion); processServerHello(state, serverMessage.getBody()); applyMaxFragmentLengthExtension(recordLayer, securityParameters.maxFragmentLength); processFinished(handshake.receiveMessageBody(HandshakeType.finished), expectedServerVerifyData); invalidateSession(state); processServerSupplementalData(state, serverMessage.getBody()); serverMessage = handshake.receiveMessage(); serverCertificate = processServerCertificate(state, serverMessage.getBody()); serverMessage = handshake.receiveMessage(); processCertificateStatus(state, serverMessage.getBody()); serverMessage = handshake.receiveMessage(); processServerKeyExchange(state, serverMessage.getBody()); serverMessage = handshake.receiveMessage(); processCertificateRequest(state, serverMessage.getBody());
reportServerVersion(state, server_version); validateSelectedCipherSuite(state.selectedCipherSuite, AlertDescription.illegal_parameter); state.maxFragmentLength = evaluateMaxFragmentLengthExtension(state.clientExtensions, serverExtensions, AlertDescription.illegal_parameter);
return clientHandshake(state, recordLayer); abortClientHandshake(state, recordLayer, fatalAlert.getAlertDescription()); throw fatalAlert; abortClientHandshake(state, recordLayer, AlertDescription.internal_error); throw e; abortClientHandshake(state, recordLayer, AlertDescription.internal_error); throw new TlsFatalAlert(AlertDescription.internal_error, e);
return clientHandshake(state, recordLayer);
dtlsProtocolObj = new DTLSClientProtocol(new SecureRandom()); tlsPeer = new TlsClientImpl(this);
= dtlsClientProtocol.connect( tlsClient, datagramTransport);
byte[] clientHelloBody = generateClientHello(state, state.client); handshake.sendMessage(HandshakeType.client_hello, clientHelloBody); byte[] cookie = processHelloVerifyRequest(state, serverMessage.getBody()); byte[] patched = patchClientHelloWithCookie(clientHelloBody, cookie); reportServerVersion(state, recordLayer.getDiscoveredPeerVersion()); processServerHello(state, serverMessage.getBody()); processFinished(handshake.receiveMessageBody(HandshakeType.finished), expectedServerVerifyData); invalidateSession(state); processServerSupplementalData(state, serverMessage.getBody()); serverMessage = handshake.receiveMessage(); serverCertificate = processServerCertificate(state, serverMessage.getBody()); serverMessage = handshake.receiveMessage(); processCertificateStatus(state, serverMessage.getBody()); serverMessage = handshake.receiveMessage(); processServerKeyExchange(state, serverMessage.getBody()); serverMessage = handshake.receiveMessage(); processCertificateRequest(state, serverMessage.getBody()); byte[] supplementalDataBody = generateSupplementalData(clientSupplementalData);
reportServerVersion(state, server_version); validateSelectedCipherSuite(selectedCipherSuite, AlertDescription.illegal_parameter); state.client.notifySelectedCipherSuite(selectedCipherSuite); securityParameters.maxFragmentLength = evaluateMaxFragmentLengthExtension(state.resumedSession, sessionClientExtensions, sessionServerExtensions, AlertDescription.illegal_parameter);