1- package dev .nicklasw .bankid .client .ssl ;
1+ package dev .nicklasw .bankid .client .internal . ssl ;
22
33import java .io .InputStream ;
44import java .nio .file .Files ;
1111import javax .net .ssl .SSLContext ;
1212import javax .net .ssl .TrustManagerFactory ;
1313
14+ import lombok .NonNull ;
1415import lombok .SneakyThrows ;
16+ import lombok .experimental .UtilityClass ;
1517
16- public class SSLContexts {
17-
18- private KeyManagerFactory keyManagerFactory ;
19- private TrustManagerFactory trustManagerFactory ;
20-
21- public static SSLContexts builder () {
22- return new SSLContexts ();
23- }
18+ @ UtilityClass
19+ public class SslUtils {
2420
2521 @ SneakyThrows
26- public SSLContext build ( ) {
22+ public SSLContext tryCreateSSLContext ( final KeyManagerFactory keyManagerFactory , final TrustManagerFactory trustManagerFactory ) {
2723 final SSLContext sslContext = SSLContext .getInstance ("TLS" );
2824
2925 sslContext .init (keyManagerFactory .getKeyManagers (), trustManagerFactory .getTrustManagers (), new SecureRandom ());
@@ -32,34 +28,35 @@ public SSLContext build() {
3228 }
3329
3430 @ SneakyThrows
35- public SSLContexts loadKeyManager ( final Path path , final String password ) {
31+ public static KeyManagerFactory tryCreateKeyManager ( @ NonNull final Path path , @ NonNull final String password ) {
3632 final KeyStore clientStore = KeyStore .getInstance ("PKCS12" );
3733
3834 try (final InputStream inputStream = Files .newInputStream (path )) {
3935 clientStore .load (inputStream , password .toCharArray ());
4036 }
4137
42- keyManagerFactory = KeyManagerFactory .getInstance (KeyManagerFactory .getDefaultAlgorithm ());
38+ final KeyManagerFactory keyManagerFactory = KeyManagerFactory .getInstance (KeyManagerFactory .getDefaultAlgorithm ());
4339 keyManagerFactory .init (clientStore , password .toCharArray ());
4440
45- return this ;
41+ return keyManagerFactory ;
4642 }
4743
4844 @ SneakyThrows
49- public SSLContexts loadTrustManager ( final Path path ) {
45+ public static TrustManagerFactory tryCreateTrustManager ( @ NonNull final Path path ) {
5046 final CertificateFactory certificateFactory = CertificateFactory .getInstance ("X.509" );
5147 final X509Certificate caCert = (X509Certificate ) certificateFactory .generateCertificate (Files .newInputStream (path ));
5248
53- trustManagerFactory = TrustManagerFactory
54- .getInstance (TrustManagerFactory .getDefaultAlgorithm ());
49+ final TrustManagerFactory trustManagerFactory = TrustManagerFactory
50+ .getInstance (TrustManagerFactory .getDefaultAlgorithm ());
5551
5652 final KeyStore keyStore = KeyStore .getInstance (KeyStore .getDefaultType ());
5753 keyStore .load (null );
5854 keyStore .setCertificateEntry ("caCert" , caCert );
5955
6056 trustManagerFactory .init (keyStore );
6157
62- return this ;
58+ return trustManagerFactory ;
6359 }
6460
61+
6562}
0 commit comments