1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package io.netty5.handler.ssl.util;
17
18 import java.util.ArrayList;
19 import java.util.Arrays;
20 import java.util.List;
21
22 import static io.netty5.util.internal.ObjectUtil.checkNotNullWithIAE;
23 import static java.util.Objects.requireNonNull;
24
25
26
27
28 public final class FingerprintTrustManagerFactoryBuilder {
29
30
31
32
33 private final String algorithm;
34
35
36
37
38 private final List<String> fingerprints = new ArrayList<>();
39
40
41
42
43
44
45 FingerprintTrustManagerFactoryBuilder(String algorithm) {
46 this.algorithm = requireNonNull(algorithm, "algorithm");
47 }
48
49
50
51
52
53
54
55 public FingerprintTrustManagerFactoryBuilder fingerprints(CharSequence... fingerprints) {
56 return fingerprints(Arrays.asList(requireNonNull(fingerprints, "fingerprints")));
57 }
58
59
60
61
62
63
64
65 public FingerprintTrustManagerFactoryBuilder fingerprints(Iterable<? extends CharSequence> fingerprints) {
66 requireNonNull(fingerprints, "fingerprints");
67 for (CharSequence fingerprint : fingerprints) {
68 checkNotNullWithIAE(fingerprint, "fingerprint");
69 this.fingerprints.add(fingerprint.toString());
70 }
71 return this;
72 }
73
74
75
76
77
78
79 public FingerprintTrustManagerFactory build() {
80 if (fingerprints.isEmpty()) {
81 throw new IllegalStateException("No fingerprints provided");
82 }
83 byte[][] fingerprints = FingerprintTrustManagerFactory.toFingerprintArray(this.fingerprints);
84 return new FingerprintTrustManagerFactory(algorithm, fingerprints);
85 }
86 }