| // Copyright 2014 The Chromium Authors. All rights reserved. | 
 | // 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 "jni/AndroidCertVerifyResult_jni.h" | 
 |  | 
 | using base::android::AttachCurrentThread; | 
 | using base::android::JavaArrayOfByteArrayToStringVector; | 
 |  | 
 | namespace net { | 
 | namespace android { | 
 |  | 
 | void ExtractCertVerifyResult(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.obj(), verified_chain); | 
 | } | 
 |  | 
 | bool RegisterCertVerifyResult(JNIEnv* env) { | 
 |   return RegisterNativesImpl(env); | 
 | } | 
 |  | 
 | }  // namespace android | 
 | }  // namespace net |