Package jetbrains.buildServer.util.ssl
Class TrustStoreIO
- java.lang.Object
-
- jetbrains.buildServer.util.ssl.TrustStoreIO
-
public class TrustStoreIO extends java.lang.Object
Utility class for reading and writing certificates files and making trust stores from it.- Since:
- 2018.1
- Author:
- Mikhail Khorkov
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
ZERO_HASH
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.io.File[]
certificateFiles(java.lang.String certDirectory)
Gets all files from specified directory.static TeamCityTrustedSslCertificate[]
certificatesData(java.lang.String certDirectory)
Read files with certificates from specified directory.static java.security.KeyStore
constructTrustStoreFromData(TeamCityTrustedSslCertificate[] data)
Construct trust store from specified data.static java.lang.String
hash(TeamCityTrustedSslCertificate[] data)
Calculate a hash of specified certificates data.static java.lang.String
isInvalidCertificate(byte[] data)
Check if specified data is an invalid ssl certificate.static java.lang.String
pemContentFromDirectory(java.lang.String certDirectory)
Returns PEM content of certificates from specified directory.static java.security.KeyStore
readTrustStoreFromDirectory(java.lang.String certDirectory)
Read files with certificates from specified directory.static void
removeCertificate(java.lang.String alias, java.lang.String certDirectory)
Delete certificate with specified name from specified directory.static java.lang.String
writeCertificate(java.lang.String alias, byte[] data, java.lang.String certDirectory)
Write certificate to specified directory.
-
-
-
Method Detail
-
certificateFiles
@NotNull public static java.io.File[] certificateFiles(@NotNull java.lang.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 java.security.KeyStore readTrustStoreFromDirectory(@NotNull java.lang.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 java.lang.String pemContentFromDirectory(@NotNull java.lang.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 java.security.KeyStore constructTrustStoreFromData(@NotNull TeamCityTrustedSslCertificate[] data) throws java.security.cert.CertificateException, java.security.NoSuchAlgorithmException, java.io.IOException, java.security.KeyStoreException
Construct trust store from specified data.- Parameters:
data
- certificates for trust store- Returns:
- trust store from specified data or
null
- Throws:
java.security.cert.CertificateException
- in case we can't construct the store because of a CertificateExceptionjava.security.NoSuchAlgorithmException
- in case we can't construct the store because of a NoSuchAlgorithmExceptionjava.io.IOException
- in case we can't construct the store because of a IOExceptionjava.security.KeyStoreException
- in case we can't construct the store because of a KeyStoreException
-
hash
@NotNull public static java.lang.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 java.lang.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 java.lang.String writeCertificate(@NotNull java.lang.String alias, @NotNull byte[] data, @NotNull java.lang.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(java.lang.String alias, java.lang.String certDirectory)
Delete certificate with specified name from specified directory.- Parameters:
alias
- name of certificate for deletecertDirectory
- directory with the certificate
-
isInvalidCertificate
public static java.lang.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
-
-