From 1f87c8066d907bd0229b3517f0feaca9ca92a79f Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 29 Dec 2016 16:52:54 +0100 Subject: [PATCH] Added JNI wrapper for linphone_core_verify_server_certificates and linphone_core_verify_server_cn --- coreapi/linphonecore_jni.cc | 8 ++++++++ java/common/org/linphone/core/LinphoneCore.java | 12 ++++++++++++ java/impl/org/linphone/core/LinphoneCoreImpl.java | 12 ++++++++++++ 3 files changed, 32 insertions(+) diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 2608b6342..b649dc7b4 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -8556,6 +8556,14 @@ extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setTlsKeyPath(JNIEnv *en ReleaseStringUTFChars(env, jpath, path); } +extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setVerifyServerCertificates(JNIEnv *env, jobject, jlong lc, jboolean enabled) { + linphone_core_verify_server_certificates((LinphoneCore*)lc, enabled); +} + +extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setVerifyServerCN(JNIEnv *env, jobject, jlong lc, jboolean enabled) { + linphone_core_verify_server_cn((LinphoneCore*)lc, enabled); +} + extern "C" jstring Java_org_linphone_core_LinphoneCoreImpl_getTlsCertificate(JNIEnv *env , jobject, jlong lc) { const char* cert = linphone_core_get_tls_cert((LinphoneCore*)lc); if (cert) { diff --git a/java/common/org/linphone/core/LinphoneCore.java b/java/common/org/linphone/core/LinphoneCore.java index 200764723..6a6fc589a 100644 --- a/java/common/org/linphone/core/LinphoneCore.java +++ b/java/common/org/linphone/core/LinphoneCore.java @@ -2491,6 +2491,18 @@ public interface LinphoneCore { */ public void setTlsKeyPath(String path); + /** + * Specify whether the tls server certificate must be verified when connecting to a SIP/TLS server. + * @param enable A boolean value telling whether the tls server certificate must be verified + */ + public void setVerifyServerCertificates(boolean enable); + + /** + * Specify whether the tls server certificate common name must be verified when connecting to a SIP/TLS server. + * @param enable A boolean value telling whether the tls server certificate common name must be verified + */ + public void setVerifyServerCN(boolean enable); + /** * Enable or not openh264 * @param enable diff --git a/java/impl/org/linphone/core/LinphoneCoreImpl.java b/java/impl/org/linphone/core/LinphoneCoreImpl.java index 8c09d3349..6d96b6848 100644 --- a/java/impl/org/linphone/core/LinphoneCoreImpl.java +++ b/java/impl/org/linphone/core/LinphoneCoreImpl.java @@ -1785,6 +1785,18 @@ class LinphoneCoreImpl implements LinphoneCore { setTlsKeyPath(nativePtr, path); } + private native void setVerifyServerCertificates(long ptr, boolean enable); + @Override + public void setVerifyServerCertificates(boolean enable) { + setVerifyServerCertificates(nativePtr, enable); + } + + private native void setVerifyServerCN(long ptr, boolean enable); + @Override + public void setVerifyServerCN(boolean enable) { + setVerifyServerCN(nativePtr, enable); + } + public void enableOpenH264(boolean enable) { openh264Enabled = enable; }