1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package io.netty.handler.ssl;
17
18 import javax.net.ssl.SSLEngine;
19 import java.util.ArrayList;
20 import java.util.List;
21 import java.util.Set;
22
23
24
25
26 public final class SupportedCipherSuiteFilter implements CipherSuiteFilter {
27 public static final SupportedCipherSuiteFilter INSTANCE = new SupportedCipherSuiteFilter();
28
29 private SupportedCipherSuiteFilter() { }
30
31 @Override
32 public String[] filterCipherSuites(Iterable<String> ciphers, List<String> defaultCiphers,
33 Set<String> supportedCiphers) {
34 if (defaultCiphers == null) {
35 throw new NullPointerException("defaultCiphers");
36 }
37 if (supportedCiphers == null) {
38 throw new NullPointerException("supportedCiphers");
39 }
40
41 final List<String> newCiphers;
42 if (ciphers == null) {
43 newCiphers = new ArrayList<String>(defaultCiphers.size());
44 ciphers = defaultCiphers;
45 } else {
46 newCiphers = new ArrayList<String>(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(new String[newCiphers.size()]);
57 }
58
59 }