Package jetbrains.buildServer.util.ssl
Class TrustStoreIO
- java.lang.Object
-
- jetbrains.buildServer.util.ssl.TrustStoreIO
-
public class TrustStoreIO extends Object
Utility class for reading and writing certificates files and making trust stores from it.- Since:
- 2018.1
- Author:
- Mikhail Khorkov
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static File[]
certificateFiles(String certDirectory)
Gets all files from specified directory.static TeamCityTrustedSslCertificate[]
certificatesData(String certDirectory)
Read files with certificates from specified directory.static KeyStore
constructTrustStoreFromData(TeamCityTrustedSslCertificate[] data)
Construct trust store from specified data.static String
hash(TeamCityTrustedSslCertificate[] data)
Calculate a hash of specified certificates data.static String
isInvalidCertificate(byte[] data)
Check if specified data is an invalid ssl certificate.static String
pemContentFromDirectory(String certDirectory)
Returns PEM content of certificates from specified directory.static KeyStore
readTrustStoreFromDirectory(String certDirectory)
Read files with certificates from specified directory.static void
removeCertificate(String alias, String certDirectory)
Delete certificate with specified name from specified directory.static String
writeCertificate(String alias, byte[] data, String certDirectory)
Write certificate to specified directory.
-
-
-
Field Detail
-
ZERO_HASH
public static final String ZERO_HASH
-
-
Method Detail
-
certificateFiles
@NotNull public static File[] certificateFiles(@NotNull String certDirectory)
Gets all files from specified directory.- Parameters:
certDirectory
- path to directory with certificates files- Returns:
- files with certificates from specified directory
-
readTrustStoreFromDirectory
@Nullable public static KeyStore readTrustStoreFromDirectory(@NotNull String certDirectory)
Read files with certificates from specified directory.- Parameters:
certDirectory
- path to directory with certificates files- Returns:
- trust store from specified directory or
null
-
pemContentFromDirectory
@NotNull public static String pemContentFromDirectory(@NotNull String certDirectory)
Returns PEM content of certificates from specified directory.- Parameters:
certDirectory
- path to directory with certificates files- Returns:
- PEM content of certificates from specified directory
-
constructTrustStoreFromData
@NotNull public static KeyStore constructTrustStoreFromData(@NotNull TeamCityTrustedSslCertificate[] data) throws CertificateException, NoSuchAlgorithmException, IOException, KeyStoreException
Construct trust store from specified data.- Parameters:
data
- certificates for trust store- Returns:
- trust store from specified data or
null
- Throws:
CertificateException
- in case we can't construct the store because of a CertificateExceptionNoSuchAlgorithmException
- in case we can't construct the store because of a NoSuchAlgorithmExceptionIOException
- in case we can't construct the store because of a IOExceptionKeyStoreException
- in case we can't construct the store because of a KeyStoreException
-
hash
@NotNull public static String hash(@NotNull TeamCityTrustedSslCertificate[] data)
Calculate a hash of specified certificates data.- Parameters:
data
- certificates fro calculate the hash.- Returns:
- not null hash of specified certificates data.
-
certificatesData
@NotNull public static TeamCityTrustedSslCertificate[] certificatesData(@NotNull String certDirectory)
Read files with certificates from specified directory.- Parameters:
certDirectory
- path to directory with certificates files- Returns:
- array of read certificates from specified directory
-
writeCertificate
public static String writeCertificate(@NotNull String alias, @NotNull byte[] data, @NotNull String certDirectory)
Write certificate to specified directory.- Parameters:
alias
- name of certificatedata
- certificate datacertDirectory
- directory to write certificate- Returns:
null
in case of success write; error message otherwise
-
removeCertificate
public static void removeCertificate(String alias, String certDirectory)
Delete certificate with specified name from specified directory.- Parameters:
alias
- name of certificate for deletecertDirectory
- directory with the certificate
-
isInvalidCertificate
public static String isInvalidCertificate(@NotNull byte[] data)
Check if specified data is an invalid ssl certificate.- Parameters:
data
- data to check- Returns:
- String representation of reason why certificate is invalid or
null
in case of valid data
-
-