1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package io.netty.handler.ssl;
17
18 import java.util.List;
19 import java.util.function.BiConsumer;
20 import java.util.function.BiFunction;
21 import javax.net.ssl.SSLEngine;
22
23 final class BouncyCastleAlpnSslEngine extends JdkAlpnSslEngine {
24
25 BouncyCastleAlpnSslEngine(SSLEngine engine,
26 @SuppressWarnings("deprecation") JdkApplicationProtocolNegotiator applicationNegotiator,
27 boolean isServer) {
28 super(engine, applicationNegotiator, isServer,
29 new BiConsumer<SSLEngine, AlpnSelector>() {
30 @Override
31 public void accept(SSLEngine e, AlpnSelector s) {
32 BouncyCastleAlpnSslUtils.setHandshakeApplicationProtocolSelector(e, s);
33 }
34 },
35 new BiConsumer<SSLEngine, List<String>>() {
36 @Override
37 public void accept(SSLEngine e, List<String> p) {
38 BouncyCastleAlpnSslUtils.setApplicationProtocols(e, p);
39 }
40 });
41 }
42
43 public String getApplicationProtocol() {
44 return BouncyCastleAlpnSslUtils.getApplicationProtocol(getWrappedEngine());
45 }
46
47 public String getHandshakeApplicationProtocol() {
48 return BouncyCastleAlpnSslUtils.getHandshakeApplicationProtocol(getWrappedEngine());
49 }
50
51 public void setHandshakeApplicationProtocolSelector(BiFunction<SSLEngine, List<String>, String> selector) {
52 BouncyCastleAlpnSslUtils.setHandshakeApplicationProtocolSelector(getWrappedEngine(), selector);
53 }
54
55 public BiFunction<SSLEngine, List<String>, String> getHandshakeApplicationProtocolSelector() {
56 return BouncyCastleAlpnSslUtils.getHandshakeApplicationProtocolSelector(getWrappedEngine());
57 }
58
59 }