mturk 2005/06/16 04:39:12
Modified: jni/native/include ssl_private.h tcn.h
jni/native/src jnilib.c ssl.c sslinfo.c
Log:
Add more SSL infos.
Also change the tcn_new_string to allow the NULL to be passed.
Revision Changes Path
1.30 +4 -1
jakarta-tomcat-connectors/jni/native/include/ssl_private.h
Index: ssl_private.h
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-connectors/jni/native/include/ssl_private.h,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- ssl_private.h 15 Jun 2005 12:08:02 -0000 1.29
+++ ssl_private.h 16 Jun 2005 11:39:12 -0000 1.30
@@ -145,6 +145,9 @@
#define SSL_INFO_CIPHER (2)
#define SSL_INFO_CIPHER_USEKEYSIZE (3)
#define SSL_INFO_CIPHER_ALGKEYSIZE (4)
+#define SSL_INFO_CIPHER_VERSION (5)
+#define SSL_INFO_CIPHER_DESCRIPTION (6)
+#define SSL_INFO_PROTOCOL (7)
#define SSL_VERIFY_ERROR_IS_OPTIONAL(errnum) \
((errnum == X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT) \
1.18 +4 -2 jakarta-tomcat-connectors/jni/native/include/tcn.h
Index: tcn.h
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jni/native/include/tcn.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- tcn.h 12 Jun 2005 07:01:03 -0000 1.17
+++ tcn.h 16 Jun 2005 11:39:12 -0000 1.18
@@ -97,7 +97,9 @@
void tcn_Throw(JNIEnv *, const char *, ...);
void tcn_ThrowException(JNIEnv *, const char *);
void tcn_ThrowAPRException(JNIEnv *, apr_status_t);
-jstring tcn_new_string(JNIEnv *, const char *, int);
+jstring tcn_new_string(JNIEnv *, const char *);
+jstring tcn_new_stringn(JNIEnv *, const char *, size_t);
+jbyteArray tcn_new_arrayb(JNIEnv *, const unsigned char *, size_t);
char *tcn_get_string(JNIEnv *, jstring);
char *tcn_strdup(JNIEnv *, jstring);
char *tcn_pstrdup(JNIEnv *, jstring, apr_pool_t *);
1.10 +23 -3 jakarta-tomcat-connectors/jni/native/src/jnilib.c
Index: jnilib.c
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jni/native/src/jnilib.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- jnilib.c 10 Jun 2005 10:30:18 -0000 1.9
+++ jnilib.c 16 Jun 2005 11:39:12 -0000 1.10
@@ -89,12 +89,14 @@
apr_terminate();
}
-jstring tcn_new_string(JNIEnv *env, const char *str, int l)
+jstring tcn_new_stringn(JNIEnv *env, const char *str, size_t l)
{
jstring result;
jbyteArray bytes = 0;
size_t len = l;
-
+
+ if (!str)
+ return NULL;
if ((*env)->EnsureLocalCapacity(env, 2) < 0) {
return NULL; /* out of memory error */
}
@@ -110,6 +112,24 @@
return NULL;
}
+jbyteArray tcn_new_arrayb(JNIEnv *env, const unsigned char *data, size_t len)
+{
+ jbyteArray bytes = (*env)->NewByteArray(env, (jsize)len);
+ if (bytes != NULL) {
+ (*env)->SetByteArrayRegion(env, bytes, 0, (jint)len, (jbyte *)data);
+ }
+ return bytes;
+}
+
+
+jstring tcn_new_string(JNIEnv *env, const char *str)
+{
+ if (!str)
+ return NULL;
+ else
+ return (*env)->NewStringUTF(env, str);
+}
+
char *tcn_get_string(JNIEnv *env, jstring jstr)
{
jbyteArray bytes = NULL;
1.36 +3 -3 jakarta-tomcat-connectors/jni/native/src/ssl.c
Index: ssl.c
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jni/native/src/ssl.c,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -r1.35 -r1.36
--- ssl.c 12 Jun 2005 07:33:08 -0000 1.35
+++ ssl.c 16 Jun 2005 11:39:12 -0000 1.36
@@ -599,7 +599,7 @@
JNIEnv *e = j->cb.env;
ret = (*e)->CallIntMethod(e, j->cb.obj,
j->cb.mid[2],
- tcn_new_string(e, in, -1));
+ tcn_new_string(e, in));
}
return ret;
}
@@ -775,7 +775,7 @@
char buf[256];
UNREFERENCED(o);
ERR_error_string(ERR_get_error(), buf);
- return tcn_new_string(e, buf, -1);
+ return tcn_new_string(e, buf);
}
#else
1.3 +23 -6 jakarta-tomcat-connectors/jni/native/src/sslinfo.c
Index: sslinfo.c
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jni/native/src/sslinfo.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- sslinfo.c 15 Jun 2005 12:08:02 -0000 1.2
+++ sslinfo.c 16 Jun 2005 11:39:12 -0000 1.3
@@ -64,10 +64,8 @@
{
SSL_SESSION *session = SSL_get_session(s->ssl);
if (session) {
- jsize len = (jsize)session->session_id_length;
- if ((array = (*e)->NewByteArray(e, len)) != NULL)
- (*e)->SetByteArrayRegion(e, array, 0, len,
- (jbyte *)(&session->session_id[0]));
+ array = tcn_new_arrayb(e, &session->session_id[0],
+ session->session_id_length);
}
}
break;
@@ -96,12 +94,31 @@
char *hs = convert_to_hex(&session->session_id[0],
session->session_id_length);
if (hs) {
- value = tcn_new_string(e, hs, -1);
+ value = tcn_new_string(e, hs);
free(hs);
}
}
}
break;
+ case SSL_INFO_PROTOCOL:
+ value = tcn_new_string(e, SSL_get_version(s->ssl));
+ break;
+ case SSL_INFO_CIPHER:
+ value = tcn_new_string(e, SSL_get_cipher_name(s->ssl));
+ break;
+ case SSL_INFO_CIPHER_VERSION:
+ value = tcn_new_string(e, SSL_get_cipher_version(s->ssl));
+ break;
+ case SSL_INFO_CIPHER_DESCRIPTION:
+ {
+ SSL_CIPHER *cipher = SSL_get_current_cipher(s->ssl);
+ if (cipher) {
+ char buf[256];
+ char *desc = SSL_CIPHER_description(cipher, buf, 256);
+ value = tcn_new_string(e, desc);
+ }
+ }
+ break;
default:
tcn_ThrowAPRException(e, APR_EINVAL);
break;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]