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