1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package io.netty5.handler.ssl;
17
18 import io.netty5.util.internal.EmptyArrays;
19
20 import javax.net.ssl.SSLEngine;
21 import java.util.ArrayList;
22 import java.util.List;
23 import java.util.Set;
24
25 import static java.util.Objects.requireNonNull;
26
27
28
29
30 public final class SupportedCipherSuiteFilter implements CipherSuiteFilter {
31 public static final SupportedCipherSuiteFilter INSTANCE = new SupportedCipherSuiteFilter();
32
33 private SupportedCipherSuiteFilter() { }
34
35 @Override
36 public String[] filterCipherSuites(Iterable<String> ciphers, List<String> defaultCiphers,
37 Set<String> supportedCiphers) {
38 requireNonNull(defaultCiphers, "defaultCiphers");
39 requireNonNull(supportedCiphers, "supportedCiphers");
40
41 final List<String> newCiphers;
42 if (ciphers == null) {
43 newCiphers = new ArrayList<>(defaultCiphers.size());
44 ciphers = defaultCiphers;
45 } else {
46 newCiphers = new ArrayList<>(supportedCiphers.size());
47 }
48 for (String c : ciphers) {
49 if (c == null) {
50 break;
51 }
52 if (supportedCiphers.contains(c)) {
53 newCiphers.add(c);
54 }
55 }
56 return newCiphers.toArray(EmptyArrays.EMPTY_STRINGS);
57 }
58
59 }