From d3584979a02bffc561f38712ca249d708fdbbd38 Mon Sep 17 00:00:00 2001 From: Chris Conlon Date: Thu, 15 Oct 2015 13:30:03 -0600 Subject: [PATCH] add JNI object storage in WOLFSSL struct --- src/ssl.c | 24 ++++++++++++++++++++++++ wolfssl/internal.h | 3 +++ wolfssl/ssl.h | 5 +++++ 3 files changed, 32 insertions(+) diff --git a/src/ssl.c b/src/ssl.c index e96705102..cdd4e4690 100644 --- a/src/ssl.c +++ b/src/ssl.c @@ -17044,5 +17044,29 @@ int wolfSSL_ED25519_verify(const unsigned char *msg, unsigned int msgSz, } #endif /* OPENSSL_EXTRA && HAVE_ED25519 */ + +#ifdef WOLFSSL_JNI + +int wolfSSL_set_jobject(WOLFSSL* ssl, void* objPtr) +{ + WOLFSSL_ENTER("wolfSSL_set_jobject"); + if (ssl != NULL) + { + ssl->jObjectRef = objPtr; + return SSL_SUCCESS; + } + return SSL_FAILURE; +} + +void* wolfSSL_get_jobject(WOLFSSL* ssl) +{ + WOLFSSL_ENTER("wolfSSL_get_jobject"); + if (ssl != NULL) + return ssl->jObjectRef; + return NULL; +} + +#endif /* WOLFSSL_JNI */ + #endif /* WOLFCRYPT_ONLY */ diff --git a/wolfssl/internal.h b/wolfssl/internal.h index ec3a763a8..f6ca61848 100644 --- a/wolfssl/internal.h +++ b/wolfssl/internal.h @@ -2480,6 +2480,9 @@ struct WOLFSSL { SessionSecretCb sessionSecretCb; void* sessionSecretCtx; #endif /* HAVE_SECRET_CALLBACK */ +#ifdef WOLFSSL_JNI + void* jObjectRef; /* reference to WolfSSLSession in JNI wrapper */ +#endif /* WOLFSSL_JNI */ }; diff --git a/wolfssl/ssl.h b/wolfssl/ssl.h index b1a890e36..51d050f8f 100644 --- a/wolfssl/ssl.h +++ b/wolfssl/ssl.h @@ -1680,6 +1680,11 @@ WOLFSSL_API void wolfSSL_CTX_set_servername_callback(WOLFSSL_CTX *, WOLFSSL_API void wolfSSL_CTX_set_servername_arg(WOLFSSL_CTX *, void*); #endif /* HAVE_STUNNEL */ +#ifdef WOLFSSL_JNI +WOLFSSL_API int wolfSSL_set_jobject(WOLFSSL* ssl, void* objPtr); +WOLFSSL_API void* wolfSSL_get_jobject(WOLFSSL* ssl); +#endif /* WOLFSSL_JNI */ + #ifdef __cplusplus } /* extern "C" */ #endif