Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(241)

Side by Side Diff: net/android/network_library.cc

Issue 108653013: Export verified_cert and public_key_hashes on Android. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Enable more tests. Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/android/network_library.h ('k') | net/cert/cert_verify_proc.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/android/network_library.h" 5 #include "net/android/network_library.h"
6 6
7 #include "base/android/jni_android.h" 7 #include "base/android/jni_android.h"
8 #include "base/android/jni_array.h" 8 #include "base/android/jni_array.h"
9 #include "base/android/jni_string.h" 9 #include "base/android/jni_string.h"
10 #include "base/android/scoped_java_ref.h" 10 #include "base/android/scoped_java_ref.h"
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "jni/AndroidNetworkLibrary_jni.h" 12 #include "jni/AndroidNetworkLibrary_jni.h"
13 13
14 using base::android::AttachCurrentThread; 14 using base::android::AttachCurrentThread;
15 using base::android::ClearException; 15 using base::android::ClearException;
16 using base::android::ConvertJavaStringToUTF8; 16 using base::android::ConvertJavaStringToUTF8;
17 using base::android::ConvertUTF8ToJavaString; 17 using base::android::ConvertUTF8ToJavaString;
18 using base::android::GetApplicationContext; 18 using base::android::GetApplicationContext;
19 using base::android::ScopedJavaLocalRef; 19 using base::android::ScopedJavaLocalRef;
20 using base::android::ToJavaArrayOfByteArray; 20 using base::android::ToJavaArrayOfByteArray;
21 using base::android::ToJavaByteArray; 21 using base::android::ToJavaByteArray;
22 22
23 namespace net { 23 namespace net {
24 namespace android { 24 namespace android {
25 25
26 CertVerifyResultAndroid VerifyX509CertChain( 26 void VerifyX509CertChain(const std::vector<std::string>& cert_chain,
27 const std::vector<std::string>& cert_chain, 27 const std::string& auth_type,
28 const std::string& auth_type) { 28 const std::string& host,
29 CertVerifyStatusAndroid* status,
30 bool* is_issued_by_known_root,
31 std::vector<std::string>* verified_chain) {
29 JNIEnv* env = AttachCurrentThread(); 32 JNIEnv* env = AttachCurrentThread();
30 33
31 ScopedJavaLocalRef<jobjectArray> chain_byte_array = 34 ScopedJavaLocalRef<jobjectArray> chain_byte_array =
32 ToJavaArrayOfByteArray(env, cert_chain); 35 ToJavaArrayOfByteArray(env, cert_chain);
33 DCHECK(!chain_byte_array.is_null()); 36 DCHECK(!chain_byte_array.is_null());
34 37
35 ScopedJavaLocalRef<jstring> auth_string = 38 ScopedJavaLocalRef<jstring> auth_string =
36 ConvertUTF8ToJavaString(env, auth_type); 39 ConvertUTF8ToJavaString(env, auth_type);
37 DCHECK(!auth_string.is_null()); 40 DCHECK(!auth_string.is_null());
38 41
39 jint result = Java_AndroidNetworkLibrary_verifyServerCertificates( 42 ScopedJavaLocalRef<jstring> host_string =
40 env, chain_byte_array.obj(), auth_string.obj()); 43 ConvertUTF8ToJavaString(env, host);
44 DCHECK(!host_string.is_null());
41 45
42 return static_cast<CertVerifyResultAndroid>(result); 46 ScopedJavaLocalRef<jobject> result =
47 Java_AndroidNetworkLibrary_verifyServerCertificates(
48 env, chain_byte_array.obj(), auth_string.obj(), host_string.obj());
49
Ryan Sleevi 2014/01/16 23:29:42 Can you check |env| to ensure no exception happene
davidben 2014/01/17 17:52:59 Done.
50 ExtractCertVerifyResult(result.obj(),
51 status, is_issued_by_known_root, verified_chain);
43 } 52 }
44 53
45 void AddTestRootCertificate(const uint8* cert, size_t len) { 54 void AddTestRootCertificate(const uint8* cert, size_t len) {
46 JNIEnv* env = AttachCurrentThread(); 55 JNIEnv* env = AttachCurrentThread();
47 ScopedJavaLocalRef<jbyteArray> cert_array = ToJavaByteArray(env, cert, len); 56 ScopedJavaLocalRef<jbyteArray> cert_array = ToJavaByteArray(env, cert, len);
48 DCHECK(!cert_array.is_null()); 57 DCHECK(!cert_array.is_null());
49 Java_AndroidNetworkLibrary_addTestRootCertificate(env, cert_array.obj()); 58 Java_AndroidNetworkLibrary_addTestRootCertificate(env, cert_array.obj());
50 } 59 }
51 60
52 void ClearTestRootCertificates() { 61 void ClearTestRootCertificates() {
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 *result = ConvertJavaStringToUTF8(ret); 122 *result = ConvertJavaStringToUTF8(ret);
114 return true; 123 return true;
115 } 124 }
116 125
117 bool RegisterNetworkLibrary(JNIEnv* env) { 126 bool RegisterNetworkLibrary(JNIEnv* env) {
118 return RegisterNativesImpl(env); 127 return RegisterNativesImpl(env);
119 } 128 }
120 129
121 } // namespace android 130 } // namespace android
122 } // namespace net 131 } // namespace net
OLDNEW
« no previous file with comments | « net/android/network_library.h ('k') | net/cert/cert_verify_proc.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698