1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "net/android/cert_verify_result_android.h"
6
7#include "base/android/jni_android.h"
8#include "base/android/jni_array.h"
9#include "jni/AndroidCertVerifyResult_jni.h"
10
11using base::android::AttachCurrentThread;
12using base::android::JavaArrayOfByteArrayToStringVector;
13
14namespace net {
15namespace android {
16
17void ExtractCertVerifyResult(jobject result,
18                             CertVerifyStatusAndroid* status,
19                             bool* is_issued_by_known_root,
20                             std::vector<std::string>* verified_chain) {
21  JNIEnv* env = AttachCurrentThread();
22
23  *status = static_cast<CertVerifyStatusAndroid>(
24      Java_AndroidCertVerifyResult_getStatus(env, result));
25
26  *is_issued_by_known_root =
27      Java_AndroidCertVerifyResult_isIssuedByKnownRoot(env, result);
28
29  ScopedJavaLocalRef<jobjectArray> chain_byte_array =
30      Java_AndroidCertVerifyResult_getCertificateChainEncoded(env, result);
31  JavaArrayOfByteArrayToStringVector(
32      env, chain_byte_array.obj(), verified_chain);
33}
34
35bool RegisterCertVerifyResult(JNIEnv* env) {
36  return RegisterNativesImpl(env);
37}
38
39}  // namespace android
40}  // namespace net
41