1 /* 2 * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #ifndef SDK_ANDROID_SRC_JNI_PC_SSL_CERTIFICATE_VERIFIER_WRAPPER_H_ 12 #define SDK_ANDROID_SRC_JNI_PC_SSL_CERTIFICATE_VERIFIER_WRAPPER_H_ 13 14 #include <jni.h> 15 #include <vector> 16 17 #include "rtc_base/ssl_certificate.h" 18 #include "sdk/android/src/jni/jni_helpers.h" 19 20 namespace webrtc { 21 namespace jni { 22 23 // Wrapper for Java SSLCertifiacteVerifier class. Delegates method calls through 24 // JNI and wraps the encoder inside SSLCertificateVerifierWrapper. 25 class SSLCertificateVerifierWrapper : public rtc::SSLCertificateVerifier { 26 public: 27 SSLCertificateVerifierWrapper( 28 JNIEnv* jni, 29 const JavaRef<jobject>& ssl_certificate_verifier); 30 ~SSLCertificateVerifierWrapper() override; 31 32 bool Verify(const rtc::SSLCertificate& certificate) override; 33 34 private: 35 const ScopedJavaGlobalRef<jobject> ssl_certificate_verifier_; 36 }; 37 38 } // namespace jni 39 } // namespace webrtc 40 41 #endif // SDK_ANDROID_SRC_JNI_PC_SSL_CERTIFICATE_VERIFIER_WRAPPER_H_ 42