Interface CertificateCallback


  • public interface CertificateCallback
    Is called during handshake and hooked into openssl via SSL_CTX_set_cert_cb. IMPORTANT: Implementations of this interface should be static as it is stored as a global reference via JNI. This means if you use an inner / anonymous class to implement this and also depend on the finalizer of the class to free up the SSLContext the finalizer will never run as the object is never GC, due the hard reference to the enclosing class. This will most likely result in a memory leak.
    • Method Detail

      • handle

        void handle​(long ssl,
                    byte[] keyTypeBytes,
                    byte[][] asn1DerEncodedPrincipals)
             throws java.lang.Exception
        Called during cert selection. If a certificate chain / key should be used SSL.setKeyMaterial(long, long, long) must be called from this callback after all preparations / validations were completed.
        Parameters:
        ssl - the SSL instance
        keyTypeBytes - an array of the key types on client-mode or null on server-mode.
        asn1DerEncodedPrincipals - the principals or null.
        Throws:
        java.lang.Exception