Class SslHelper


  • public class SslHelper
    extends java.lang.Object
    Need bouncycastle libs. This libs are not in the jar. implementation group: 'org.bouncycastle', name: 'bcprov-jdk18on', version: '1.76' implementation group: 'org.bouncycastle', name: 'bcpkix-jdk18on', version: '1.76' implementation group: 'org.bouncycastle', name: 'bcutil-jdk18on', version: '1.76'
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static boolean checkSignatureWithPayload​(java.security.PublicKey pubKey, java.security.PrivateKey privKey)  
      static boolean checkSignatureWithPayload​(java.security.PublicKey pubKey, java.security.PrivateKey privKey, java.lang.String signatureAlgorithm)  
      static org.bouncycastle.pkcs.PKCS10CertificationRequest createCertificationRequest​(java.security.KeyPair keyPair, java.security.cert.X509Certificate certificate)  
      static org.bouncycastle.pkcs.PKCS10CertificationRequest createCertificationRequest​(java.security.KeyPair keyPair, java.security.cert.X509Certificate certificate, java.lang.String signatureAlgorithm)  
      static java.security.KeyStore createKeystore​(java.lang.String caAlias, java.security.cert.X509Certificate ca, java.lang.String certificateAlias, java.security.cert.X509Certificate certificate, java.lang.String privateKeyAlias, java.security.PrivateKey privateKey, java.lang.String keystorePassword)  
      static java.security.KeyStore createKeystore​(java.lang.String certificateAlias, java.security.cert.X509Certificate certificate, java.lang.String privateKeyAlias, java.security.PrivateKey privateKey, java.lang.String keystorePassword)  
      static java.security.KeyStore createKeyStore​(java.lang.String caAlias, java.lang.String caCrtString, java.lang.String certificateAlias, java.lang.String certificateString, java.lang.String privateKeyAlias, java.lang.String privateKeyString, java.lang.String keystorePassword)  
      static java.security.KeyStore createKeyStore​(java.lang.String caAlias, java.nio.file.Path caCrtFile, java.lang.String certificateAlias, java.nio.file.Path crtFile, java.lang.String privateKeyAlias, java.nio.file.Path keyFile, java.lang.String keystorePassword)  
      static javax.net.ssl.TrustManagerFactory createKeyStore​(java.lang.String caAlias, java.security.cert.X509Certificate caCert)  
      static java.security.KeyStore createKeyStore​(java.lang.String caAlias, java.security.cert.X509Certificate ca, java.lang.String certificateAlias, java.security.cert.X509Certificate certificate, java.lang.String privateKeyAlias, org.bouncycastle.asn1.pkcs.PrivateKeyInfo privateKeyInfo, java.lang.String keystorePassword)  
      static java.security.KeyStore createKeyStore​(java.lang.String certificateAlias, java.security.cert.X509Certificate certificate, java.lang.String privateKeyAlias, org.bouncycastle.asn1.pkcs.PrivateKeyInfo privateKeyInfo, java.lang.String keystorePassword)  
      static javax.net.ssl.SSLContext createSSLContext​(java.lang.String caAlias, java.lang.String caCrtString, java.lang.String certificateAlias, java.lang.String certificateString, java.lang.String privateKeyAlias, java.lang.String privateKeyString, java.lang.String keystorePassword)  
      static javax.net.ssl.SSLContext createSSLContext​(java.lang.String caAlias, java.nio.file.Path caCrtFile, java.lang.String certificateAlias, java.nio.file.Path crtFile, java.lang.String privateKeyAlias, java.nio.file.Path keyFile, java.lang.String keystorePassword)  
      static javax.net.ssl.SSLContext createSSLContext​(java.lang.String caAlias, java.nio.file.Path caCrtFile, java.lang.String certificateAlias, java.nio.file.Path crtFile, java.lang.String privateKeyAlias, java.nio.file.Path keyFile, java.lang.String keystorePassword, java.lang.String sslContextProtocol)  
      <OBJECT_TYPE>
      java.lang.String
      encodeInPemFormat​(OBJECT_TYPE data)  
      static java.lang.String getDefaultCharSet()  
      static java.util.List<java.lang.String> getSanDnsNames​(java.security.cert.X509Certificate certificate)
      Get the DNS names from the certificate's Subject Alternative Name extension, if it's present.
      static java.util.List<java.lang.String> getSanIpAddresses​(java.security.cert.X509Certificate certificate)
      Get the IP addresses from the certificate's Subject Alternative Name extension, if it's present.
      static java.util.Optional<java.lang.String> getSanUri​(java.security.cert.X509Certificate certificate)
      Get the URI from the certificate's Subject Alternative Name extension, if it's present.
      static java.util.List<java.lang.Object> getSubjectAltNameField​(java.security.cert.X509Certificate certificate, int field)
      Extract the value of a given SubjectAltName field from a X509Certificate.
      static java.util.List<org.bouncycastle.asn1.x509.GeneralName> getSubjectAltNames​(java.security.cert.X509Certificate certificate)  
      static java.security.cert.X509Certificate signCertificate​(org.bouncycastle.pkcs.PKCS10CertificationRequest certificationRequest, java.security.cert.X509Certificate caCertificate, java.security.PrivateKey caPrivateKey, int validity)  
      static java.security.cert.X509Certificate signCertificate​(org.bouncycastle.pkcs.PKCS10CertificationRequest certificationRequest, java.security.cert.X509Certificate caCertificate, java.security.PrivateKey caPrivateKey, int validity, java.lang.String signatureAlgorithm)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • DEFAULT_CONTEXT_TLS_PROTOCOL

        public static java.lang.String DEFAULT_CONTEXT_TLS_PROTOCOL
      • DEFAULT_SIGNATURE_ALGORITHM

        public static java.lang.String DEFAULT_SIGNATURE_ALGORITHM
      • SUBJECT_ALT_NAME_DNS_NAME

        public static final int SUBJECT_ALT_NAME_DNS_NAME
        See Also:
        Constant Field Values
      • SUBJECT_ALT_NAME_IP_ADDRESS

        public static final int SUBJECT_ALT_NAME_IP_ADDRESS
        See Also:
        Constant Field Values
    • Method Detail

      • checkSignatureWithPayload

        public static boolean checkSignatureWithPayload​(java.security.PublicKey pubKey,
                                                        java.security.PrivateKey privKey)
                                                 throws java.security.NoSuchAlgorithmException,
                                                        java.security.SignatureException,
                                                        java.security.InvalidKeyException
        Throws:
        java.security.NoSuchAlgorithmException
        java.security.SignatureException
        java.security.InvalidKeyException
      • checkSignatureWithPayload

        public static boolean checkSignatureWithPayload​(java.security.PublicKey pubKey,
                                                        java.security.PrivateKey privKey,
                                                        java.lang.String signatureAlgorithm)
                                                 throws java.security.NoSuchAlgorithmException,
                                                        java.security.SignatureException,
                                                        java.security.InvalidKeyException
        Throws:
        java.security.NoSuchAlgorithmException
        java.security.SignatureException
        java.security.InvalidKeyException
      • createCertificationRequest

        public static org.bouncycastle.pkcs.PKCS10CertificationRequest createCertificationRequest​(java.security.KeyPair keyPair,
                                                                                                  java.security.cert.X509Certificate certificate)
                                                                                           throws java.security.cert.CertificateEncodingException,
                                                                                                  org.bouncycastle.operator.OperatorCreationException,
                                                                                                  java.security.cert.CertificateParsingException,
                                                                                                  java.io.IOException
        Throws:
        java.security.cert.CertificateEncodingException
        org.bouncycastle.operator.OperatorCreationException
        java.security.cert.CertificateParsingException
        java.io.IOException
      • createCertificationRequest

        public static org.bouncycastle.pkcs.PKCS10CertificationRequest createCertificationRequest​(java.security.KeyPair keyPair,
                                                                                                  java.security.cert.X509Certificate certificate,
                                                                                                  java.lang.String signatureAlgorithm)
                                                                                           throws org.bouncycastle.operator.OperatorCreationException,
                                                                                                  java.security.cert.CertificateEncodingException,
                                                                                                  java.security.cert.CertificateParsingException,
                                                                                                  java.io.IOException
        Throws:
        org.bouncycastle.operator.OperatorCreationException
        java.security.cert.CertificateEncodingException
        java.security.cert.CertificateParsingException
        java.io.IOException
      • createKeystore

        public static java.security.KeyStore createKeystore​(java.lang.String certificateAlias,
                                                            java.security.cert.X509Certificate certificate,
                                                            java.lang.String privateKeyAlias,
                                                            java.security.PrivateKey privateKey,
                                                            java.lang.String keystorePassword)
                                                     throws java.security.KeyStoreException,
                                                            java.security.NoSuchAlgorithmException,
                                                            java.security.cert.CertificateException,
                                                            java.io.IOException
        Throws:
        java.security.KeyStoreException
        java.security.NoSuchAlgorithmException
        java.security.cert.CertificateException
        java.io.IOException
      • createKeystore

        public static java.security.KeyStore createKeystore​(java.lang.String caAlias,
                                                            java.security.cert.X509Certificate ca,
                                                            java.lang.String certificateAlias,
                                                            java.security.cert.X509Certificate certificate,
                                                            java.lang.String privateKeyAlias,
                                                            java.security.PrivateKey privateKey,
                                                            java.lang.String keystorePassword)
                                                     throws java.security.KeyStoreException,
                                                            java.security.NoSuchAlgorithmException,
                                                            java.security.cert.CertificateException,
                                                            java.io.IOException
        Throws:
        java.security.KeyStoreException
        java.security.NoSuchAlgorithmException
        java.security.cert.CertificateException
        java.io.IOException
      • createKeyStore

        public static java.security.KeyStore createKeyStore​(java.lang.String caAlias,
                                                            java.nio.file.Path caCrtFile,
                                                            java.lang.String certificateAlias,
                                                            java.nio.file.Path crtFile,
                                                            java.lang.String privateKeyAlias,
                                                            java.nio.file.Path keyFile,
                                                            java.lang.String keystorePassword)
                                                     throws java.io.IOException,
                                                            java.security.cert.CertificateException,
                                                            java.security.KeyStoreException,
                                                            java.security.NoSuchAlgorithmException
        Throws:
        java.io.IOException
        java.security.cert.CertificateException
        java.security.KeyStoreException
        java.security.NoSuchAlgorithmException
      • createKeyStore

        public static java.security.KeyStore createKeyStore​(java.lang.String caAlias,
                                                            java.lang.String caCrtString,
                                                            java.lang.String certificateAlias,
                                                            java.lang.String certificateString,
                                                            java.lang.String privateKeyAlias,
                                                            java.lang.String privateKeyString,
                                                            java.lang.String keystorePassword)
                                                     throws java.io.IOException,
                                                            java.security.cert.CertificateException,
                                                            java.security.KeyStoreException,
                                                            java.security.NoSuchAlgorithmException
        Throws:
        java.io.IOException
        java.security.cert.CertificateException
        java.security.KeyStoreException
        java.security.NoSuchAlgorithmException
      • createKeyStore

        public static javax.net.ssl.TrustManagerFactory createKeyStore​(java.lang.String caAlias,
                                                                       java.security.cert.X509Certificate caCert)
                                                                throws java.security.KeyStoreException,
                                                                       java.io.IOException,
                                                                       java.security.NoSuchAlgorithmException,
                                                                       java.security.cert.CertificateException
        Throws:
        java.security.KeyStoreException
        java.io.IOException
        java.security.NoSuchAlgorithmException
        java.security.cert.CertificateException
      • createKeyStore

        public static java.security.KeyStore createKeyStore​(java.lang.String certificateAlias,
                                                            java.security.cert.X509Certificate certificate,
                                                            java.lang.String privateKeyAlias,
                                                            org.bouncycastle.asn1.pkcs.PrivateKeyInfo privateKeyInfo,
                                                            java.lang.String keystorePassword)
                                                     throws java.security.KeyStoreException,
                                                            java.security.NoSuchAlgorithmException,
                                                            java.security.cert.CertificateException,
                                                            java.io.IOException
        Throws:
        java.security.KeyStoreException
        java.security.NoSuchAlgorithmException
        java.security.cert.CertificateException
        java.io.IOException
      • createKeyStore

        public static java.security.KeyStore createKeyStore​(java.lang.String caAlias,
                                                            java.security.cert.X509Certificate ca,
                                                            java.lang.String certificateAlias,
                                                            java.security.cert.X509Certificate certificate,
                                                            java.lang.String privateKeyAlias,
                                                            org.bouncycastle.asn1.pkcs.PrivateKeyInfo privateKeyInfo,
                                                            java.lang.String keystorePassword)
                                                     throws org.bouncycastle.openssl.PEMException,
                                                            java.security.KeyStoreException,
                                                            java.io.IOException,
                                                            java.security.NoSuchAlgorithmException,
                                                            java.security.cert.CertificateException
        Throws:
        org.bouncycastle.openssl.PEMException
        java.security.KeyStoreException
        java.io.IOException
        java.security.NoSuchAlgorithmException
        java.security.cert.CertificateException
      • createSSLContext

        public static javax.net.ssl.SSLContext createSSLContext​(java.lang.String caAlias,
                                                                java.nio.file.Path caCrtFile,
                                                                java.lang.String certificateAlias,
                                                                java.nio.file.Path crtFile,
                                                                java.lang.String privateKeyAlias,
                                                                java.nio.file.Path keyFile,
                                                                java.lang.String keystorePassword)
                                                         throws java.security.KeyManagementException,
                                                                java.security.UnrecoverableKeyException,
                                                                java.security.cert.CertificateException,
                                                                java.security.KeyStoreException,
                                                                java.security.NoSuchAlgorithmException,
                                                                java.io.IOException
        Throws:
        java.security.KeyManagementException
        java.security.UnrecoverableKeyException
        java.security.cert.CertificateException
        java.security.KeyStoreException
        java.security.NoSuchAlgorithmException
        java.io.IOException
      • createSSLContext

        public static javax.net.ssl.SSLContext createSSLContext​(java.lang.String caAlias,
                                                                java.nio.file.Path caCrtFile,
                                                                java.lang.String certificateAlias,
                                                                java.nio.file.Path crtFile,
                                                                java.lang.String privateKeyAlias,
                                                                java.nio.file.Path keyFile,
                                                                java.lang.String keystorePassword,
                                                                java.lang.String sslContextProtocol)
                                                         throws java.security.cert.CertificateException,
                                                                java.io.IOException,
                                                                java.security.KeyStoreException,
                                                                java.security.NoSuchAlgorithmException,
                                                                java.security.KeyManagementException,
                                                                java.security.UnrecoverableKeyException
        Throws:
        java.security.cert.CertificateException
        java.io.IOException
        java.security.KeyStoreException
        java.security.NoSuchAlgorithmException
        java.security.KeyManagementException
        java.security.UnrecoverableKeyException
      • createSSLContext

        public static javax.net.ssl.SSLContext createSSLContext​(java.lang.String caAlias,
                                                                java.lang.String caCrtString,
                                                                java.lang.String certificateAlias,
                                                                java.lang.String certificateString,
                                                                java.lang.String privateKeyAlias,
                                                                java.lang.String privateKeyString,
                                                                java.lang.String keystorePassword)
                                                         throws java.io.IOException,
                                                                java.security.KeyManagementException,
                                                                java.security.UnrecoverableKeyException,
                                                                java.security.cert.CertificateException,
                                                                java.security.KeyStoreException,
                                                                java.security.NoSuchAlgorithmException
        Throws:
        java.io.IOException
        java.security.KeyManagementException
        java.security.UnrecoverableKeyException
        java.security.cert.CertificateException
        java.security.KeyStoreException
        java.security.NoSuchAlgorithmException
      • getDefaultCharSet

        public static java.lang.String getDefaultCharSet()
      • getSanDnsNames

        public static java.util.List<java.lang.String> getSanDnsNames​(java.security.cert.X509Certificate certificate)
        Get the DNS names from the certificate's Subject Alternative Name extension, if it's present.
        Parameters:
        certificate - the certificate to get the DNS names from.
        Returns:
        the values of the SAN DNS names, or empty list if none are present.
      • getSanIpAddresses

        public static java.util.List<java.lang.String> getSanIpAddresses​(java.security.cert.X509Certificate certificate)
        Get the IP addresses from the certificate's Subject Alternative Name extension, if it's present.
        Parameters:
        certificate - the certificate to get the IP addresses from.
        Returns:
        the values of the SAN IP addresses, or empty list if none are present.
      • getSanUri

        public static java.util.Optional<java.lang.String> getSanUri​(java.security.cert.X509Certificate certificate)
        Get the URI from the certificate's Subject Alternative Name extension, if it's present.
        Parameters:
        certificate - the certificate to get the URI from.
        Returns:
        the value of the SAN URI, if present.
      • getSubjectAltNameField

        public static java.util.List<java.lang.Object> getSubjectAltNameField​(java.security.cert.X509Certificate certificate,
                                                                              int field)
        Extract the value of a given SubjectAltName field from a X509Certificate.
        Parameters:
        certificate - the certificate.
        field - the field number.
        Returns:
        an Optional containing the value in the field.
        See Also:
        SUBJECT_ALT_NAME_IP_ADDRESS, SUBJECT_ALT_NAME_DNS_NAME, SUBJECT_ALT_NAME_URI
      • getSubjectAltNames

        public static java.util.List<org.bouncycastle.asn1.x509.GeneralName> getSubjectAltNames​(java.security.cert.X509Certificate certificate)
      • signCertificate

        public static java.security.cert.X509Certificate signCertificate​(org.bouncycastle.pkcs.PKCS10CertificationRequest certificationRequest,
                                                                         java.security.cert.X509Certificate caCertificate,
                                                                         java.security.PrivateKey caPrivateKey,
                                                                         int validity)
                                                                  throws java.io.IOException,
                                                                         org.bouncycastle.operator.OperatorCreationException,
                                                                         java.security.cert.CertificateException
        Throws:
        java.io.IOException
        org.bouncycastle.operator.OperatorCreationException
        java.security.cert.CertificateException
      • signCertificate

        public static java.security.cert.X509Certificate signCertificate​(org.bouncycastle.pkcs.PKCS10CertificationRequest certificationRequest,
                                                                         java.security.cert.X509Certificate caCertificate,
                                                                         java.security.PrivateKey caPrivateKey,
                                                                         int validity,
                                                                         java.lang.String signatureAlgorithm)
                                                                  throws java.io.IOException,
                                                                         org.bouncycastle.operator.OperatorCreationException,
                                                                         java.security.cert.CertificateException
        Throws:
        java.io.IOException
        org.bouncycastle.operator.OperatorCreationException
        java.security.cert.CertificateException
      • encodeInPemFormat

        public <OBJECT_TYPE> java.lang.String encodeInPemFormat​(OBJECT_TYPE data)
                                                         throws java.io.IOException
        Throws:
        java.io.IOException