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.EmptyArrays;
19 import io.netty.util.internal.ObjectUtil;
20
21 import javax.net.ssl.SSLEngine;
22 import java.util.ArrayList;
23 import java.util.List;
24 import java.util.Set;
25
26
27
28
29 public final class SupportedCipherSuiteFilter implements CipherSuiteFilter {
30 public static final SupportedCipherSuiteFilter INSTANCE = new SupportedCipherSuiteFilter();
31
32 private SupportedCipherSuiteFilter() { }
33
34 @Override
35 public String[] filterCipherSuites(Iterable<String> ciphers, List<String> defaultCiphers,
36 Set<String> supportedCiphers) {
37 ObjectUtil.checkNotNull(defaultCiphers, "defaultCiphers");
38 ObjectUtil.checkNotNull(supportedCiphers, "supportedCiphers");
39
40 final List<String> newCiphers;
41 if (ciphers == null) {
42 newCiphers = new ArrayList<String>(defaultCiphers.size());
43 ciphers = defaultCiphers;
44 } else {
45 newCiphers = new ArrayList<String>(supportedCiphers.size());
46 }
47 for (String c : ciphers) {
48 if (c == null) {
49 break;
50 }
51 if (supportedCiphers.contains(c)) {
52 newCiphers.add(c);
53 }
54 }
55 return newCiphers.toArray(EmptyArrays.EMPTY_STRINGS);
56 }
57
58 }