public class BouncyCastleSecurityProviderTool extends java.lang.Object implements SecurityProviderTool
| Constructor and Description |
|---|
BouncyCastleSecurityProviderTool() |
| Modifier and Type | Method and Description |
|---|---|
CertificateAndKey |
createCARootCertificate(CertificateInfo certificateInfo,
java.security.KeyPair keyPair,
java.lang.String messageDigest)
Creates a new self-signed CA root certificate, suitable for use signing new server certificates.
|
java.security.KeyStore |
createRootCertificateKeyStore(java.lang.String keyStoreType,
CertificateAndKey rootCertificateAndKey,
java.lang.String privateKeyAlias,
java.lang.String password)
Assembles a Java KeyStore containing a CA root certificate and its private key.
|
CertificateAndKey |
createServerCertificate(CertificateInfo certificateInfo,
java.security.cert.X509Certificate caRootCertificate,
java.security.PrivateKey caPrivateKey,
java.security.KeyPair serverKeyPair,
java.lang.String messageDigest)
Creates a new server X.509 certificate using the serverKeyPair.
|
java.security.KeyStore |
createServerKeyStore(java.lang.String keyStoreType,
CertificateAndKey serverCertificateAndKey,
java.security.cert.X509Certificate rootCertificate,
java.lang.String privateKeyAlias,
java.lang.String password)
Assembles a Java KeyStore containing a server's certificate, private key, and the certificate authority's certificate,
which can be used to create an
SSLContext. |
java.security.cert.X509Certificate |
decodePemEncodedCertificate(java.io.Reader certificateReader)
Decodes a PEM-encoded X.509 Certificate into a
X509Certificate. |
java.security.PrivateKey |
decodePemEncodedPrivateKey(java.io.Reader privateKeyReader,
java.lang.String password)
Decodes a PEM-encoded private key into a
PrivateKey. |
java.lang.String |
encodeCertificateAsPem(java.security.cert.Certificate certificate)
Encodes a certificate in PEM format.
|
java.lang.String |
encodePrivateKeyAsPem(java.security.PrivateKey privateKey,
java.lang.String passwordForPrivateKey,
java.lang.String encryptionAlgorithm)
Encodes a private key in PEM format, encrypting it with the specified password.
|
javax.net.ssl.KeyManager[] |
getKeyManagers(java.security.KeyStore keyStore,
java.lang.String keyStorePassword)
Retrieve the KeyManagers for the specified KeyStore.
|
java.security.KeyStore |
loadKeyStore(java.io.File file,
java.lang.String keyStoreType,
java.lang.String password)
Loads a Java KeyStore object from a file.
|
void |
saveKeyStore(java.io.File file,
java.security.KeyStore keyStore,
java.lang.String keystorePassword)
Saves a Java KeyStore to a file, protecting it with the specified password.
|
public CertificateAndKey createServerCertificate(CertificateInfo certificateInfo, java.security.cert.X509Certificate caRootCertificate, java.security.PrivateKey caPrivateKey, java.security.KeyPair serverKeyPair, java.lang.String messageDigest)
SecurityProviderToolcreateServerCertificate in interface SecurityProviderToolcertificateInfo - basic X.509 certificate info that will be used to create the server certificatecaRootCertificate - root certificate that will be used to populate the issuer field of the server certificatecaPrivateKey - root certificate private key that will be used to sign the server certificateserverKeyPair - server's public and private keysmessageDigest - message digest to use when signing the server certificate, such as SHA512public java.security.KeyStore createServerKeyStore(java.lang.String keyStoreType,
CertificateAndKey serverCertificateAndKey,
java.security.cert.X509Certificate rootCertificate,
java.lang.String privateKeyAlias,
java.lang.String password)
SecurityProviderToolSSLContext.createServerKeyStore in interface SecurityProviderToolkeyStoreType - the KeyStore type, such as JKS or PKCS12serverCertificateAndKey - certificate and private key for the server, which will be placed in the KeyStorerootCertificate - CA root certificate of the private key that signed the server certificateprivateKeyAlias - alias to assign the private key (with accompanying certificate chain) to in the KeyStorepassword - password for the new KeyStore and private keypublic java.security.KeyStore createRootCertificateKeyStore(java.lang.String keyStoreType,
CertificateAndKey rootCertificateAndKey,
java.lang.String privateKeyAlias,
java.lang.String password)
SecurityProviderToolcreateRootCertificateKeyStore in interface SecurityProviderToolkeyStoreType - the KeyStore type, such as JKS or PKCS12rootCertificateAndKey - certification authority's root certificate and private key, which will be placed in the KeyStoreprivateKeyAlias - alias to assign the private key (with accompanying certificate chain) to in the KeyStorepassword - password for the new KeyStore and private keypublic CertificateAndKey createCARootCertificate(CertificateInfo certificateInfo, java.security.KeyPair keyPair, java.lang.String messageDigest)
SecurityProviderToolcreateCARootCertificate in interface SecurityProviderToolcertificateInfo - certificate info to populate in the new root certkeyPair - root certificate's public and private keysmessageDigest - digest to use when signing the new root certificate, such as SHA512public java.lang.String encodePrivateKeyAsPem(java.security.PrivateKey privateKey,
java.lang.String passwordForPrivateKey,
java.lang.String encryptionAlgorithm)
SecurityProviderToolencodePrivateKeyAsPem in interface SecurityProviderToolprivateKey - private key to encodepasswordForPrivateKey - password to protect the private keyencryptionAlgorithm - algorithm to use to encrypt the private keypublic java.lang.String encodeCertificateAsPem(java.security.cert.Certificate certificate)
SecurityProviderToolencodeCertificateAsPem in interface SecurityProviderToolcertificate - certificate to encodepublic java.security.PrivateKey decodePemEncodedPrivateKey(java.io.Reader privateKeyReader,
java.lang.String password)
SecurityProviderToolPrivateKey. The password may be null if the PEM-encoded private key
is not password-encrypted.decodePemEncodedPrivateKey in interface SecurityProviderToolprivateKeyReader - a reader for a PEM-encoded private keypassword - password protecting the private key @return the decoded private keypublic java.security.cert.X509Certificate decodePemEncodedCertificate(java.io.Reader certificateReader)
SecurityProviderToolX509Certificate.decodePemEncodedCertificate in interface SecurityProviderToolcertificateReader - a reader for a PEM-encoded certificatepublic java.security.KeyStore loadKeyStore(java.io.File file,
java.lang.String keyStoreType,
java.lang.String password)
SecurityProviderToolloadKeyStore in interface SecurityProviderToolfile - KeyStore file to loadkeyStoreType - KeyStore type (PKCS12, JKS, etc.)password - the KeyStore passwordpublic void saveKeyStore(java.io.File file,
java.security.KeyStore keyStore,
java.lang.String keystorePassword)
SecurityProviderToolsaveKeyStore in interface SecurityProviderToolfile - file to save the KeyStore tokeyStore - KeyStore to savekeystorePassword - password for the KeyStorepublic javax.net.ssl.KeyManager[] getKeyManagers(java.security.KeyStore keyStore,
java.lang.String keyStorePassword)
SecurityProviderToolgetKeyManagers in interface SecurityProviderToolkeyStore - the KeyStore to retrieve KeyManagers fromkeyStorePassword - the KeyStore password