| // Copyright 2014 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "net/android/cert_verify_result_android.h" |
| |
| #include "base/android/jni_android.h" |
| #include "base/android/jni_array.h" |
| #include "net/net_jni_headers/AndroidCertVerifyResult_jni.h" |
| |
| using base::android::AttachCurrentThread; |
| using base::android::JavaArrayOfByteArrayToStringVector; |
| using base::android::JavaRef; |
| using base::android::ScopedJavaLocalRef; |
| |
| namespace net::android { |
| |
| void ExtractCertVerifyResult(const JavaRef<jobject>& result, |
| CertVerifyStatusAndroid* status, |
| bool* is_issued_by_known_root, |
| std::vector<std::string>* verified_chain) { |
| JNIEnv* env = AttachCurrentThread(); |
| |
| *status = static_cast<CertVerifyStatusAndroid>( |
| Java_AndroidCertVerifyResult_getStatus(env, result)); |
| |
| *is_issued_by_known_root = |
| Java_AndroidCertVerifyResult_isIssuedByKnownRoot(env, result); |
| |
| ScopedJavaLocalRef<jobjectArray> chain_byte_array = |
| Java_AndroidCertVerifyResult_getCertificateChainEncoded(env, result); |
| JavaArrayOfByteArrayToStringVector(env, chain_byte_array, verified_chain); |
| } |
| |
| } // namespace net::android |