@Override public SSLEngineResult unwrap(ByteBuffer src, ByteBuffer dst) throws SSLException { if (done) { return delegate.unwrap(src, dst); } if (ALPNOfferedClientHelloExplorer.isIncompleteHeader(src)) { return UNDERFLOW_RESULT; } try { List<Integer> clientCiphers = ALPNOfferedClientHelloExplorer.parseClientHello(src); if (clientCiphers != null) { limitCiphers(clientCiphers); done = true; } else { done = true; } } catch (BufferUnderflowException e) { return UNDERFLOW_RESULT; } return delegate.unwrap(src, dst); }
@Override public SSLEngineResult unwrap(ByteBuffer src, ByteBuffer[] dsts) throws SSLException { return unwrap(src, dsts, 0, dsts.length); }
@Override public SSLEngineResult wrap(ByteBuffer[] srcs, ByteBuffer dst) throws SSLException { return wrap(srcs, 0, srcs.length, dst); }
ALPNLimitingSSLEngine alpnLimitingSSLEngine = new ALPNLimitingSSLEngine(newEngine, new Runnable() { @Override public void run() {
ALPNLimitingSSLEngine alpnLimitingSSLEngine = new ALPNLimitingSSLEngine(newEngine, new Runnable() { @Override public void run() {
@Override public SSLEngineResult unwrap(ByteBuffer byteBuffer, ByteBuffer[] byteBuffers, int i, int i1) throws SSLException { if (done) { return delegate.unwrap(byteBuffer, byteBuffers, i, i1); } if (ALPNOfferedClientHelloExplorer.isIncompleteHeader(byteBuffer)) { return UNDERFLOW_RESULT; } try { List<Integer> clientCiphers = ALPNOfferedClientHelloExplorer.parseClientHello(byteBuffer); if (clientCiphers != null) { limitCiphers(clientCiphers); done = true; } else { done = true; } } catch (BufferUnderflowException e) { return UNDERFLOW_RESULT; } return delegate.unwrap(byteBuffer, byteBuffers, i, i1); }
@Override public SSLEngineResult wrap(ByteBuffer[] srcs, ByteBuffer dst) throws SSLException { return wrap(srcs, 0, srcs.length, dst); }
@Override public SSLEngineResult unwrap(ByteBuffer src, ByteBuffer[] dsts) throws SSLException { return unwrap(src, dsts, 0, dsts.length); }
ALPNLimitingSSLEngine alpnLimitingSSLEngine = new ALPNLimitingSSLEngine(newEngine, new Runnable() { @Override public void run() {
@Override public SSLEngineResult unwrap(ByteBuffer src, ByteBuffer dst) throws SSLException { if (done) { return delegate.unwrap(src, dst); } if (ALPNOfferedClientHelloExplorer.isIncompleteHeader(src)) { return UNDERFLOW_RESULT; } try { List<Integer> clientCiphers = ALPNOfferedClientHelloExplorer.parseClientHello(src); if (clientCiphers != null) { limitCiphers(clientCiphers); done = true; } else { done = true; } } catch (BufferUnderflowException e) { return UNDERFLOW_RESULT; } return delegate.unwrap(src, dst); }
@Override public SSLEngineResult wrap(ByteBuffer[] srcs, ByteBuffer dst) throws SSLException { return wrap(srcs, 0, srcs.length, dst); }
@Override public SSLEngineResult unwrap(ByteBuffer src, ByteBuffer[] dsts) throws SSLException { return unwrap(src, dsts, 0, dsts.length); }
@Override public SSLEngineResult unwrap(ByteBuffer byteBuffer, ByteBuffer[] byteBuffers, int i, int i1) throws SSLException { if (done) { return delegate.unwrap(byteBuffer, byteBuffers, i, i1); } if (ALPNOfferedClientHelloExplorer.isIncompleteHeader(byteBuffer)) { return UNDERFLOW_RESULT; } try { List<Integer> clientCiphers = ALPNOfferedClientHelloExplorer.parseClientHello(byteBuffer); if (clientCiphers != null) { limitCiphers(clientCiphers); done = true; } else { done = true; } } catch (BufferUnderflowException e) { return UNDERFLOW_RESULT; } return delegate.unwrap(byteBuffer, byteBuffers, i, i1); }
@Override public SSLEngineResult unwrap(ByteBuffer src, ByteBuffer dst) throws SSLException { if (done) { return delegate.unwrap(src, dst); } if (ALPNOfferedClientHelloExplorer.isIncompleteHeader(src)) { return UNDERFLOW_RESULT; } try { List<Integer> clientCiphers = ALPNOfferedClientHelloExplorer.parseClientHello(src); if (clientCiphers != null) { limitCiphers(clientCiphers); done = true; } else { done = true; } } catch (BufferUnderflowException e) { return UNDERFLOW_RESULT; } return delegate.unwrap(src, dst); }
@Override public SSLEngineResult unwrap(ByteBuffer byteBuffer, ByteBuffer[] byteBuffers, int i, int i1) throws SSLException { if (done) { return delegate.unwrap(byteBuffer, byteBuffers, i, i1); } if (ALPNOfferedClientHelloExplorer.isIncompleteHeader(byteBuffer)) { return UNDERFLOW_RESULT; } try { List<Integer> clientCiphers = ALPNOfferedClientHelloExplorer.parseClientHello(byteBuffer); if (clientCiphers != null) { limitCiphers(clientCiphers); done = true; } else { done = true; } } catch (BufferUnderflowException e) { return UNDERFLOW_RESULT; } return delegate.unwrap(byteBuffer, byteBuffers, i, i1); }