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