OLD | NEW |
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 | |
7 #include "base/android/jni_android.h" | 6 #include "base/android/jni_android.h" |
8 #include "base/android/jni_array.h" | 7 #include "base/android/jni_array.h" |
9 #include "base/android/jni_string.h" | 8 #include "base/android/jni_string.h" |
10 #include "base/android/scoped_java_ref.h" | 9 #include "base/android/scoped_java_ref.h" |
11 #include "base/logging.h" | 10 #include "base/logging.h" |
12 #include "jni/AndroidNetworkLibrary_jni.h" | 11 #include "jni/AndroidNetworkLibrary_jni.h" |
13 | 12 |
14 using base::android::AttachCurrentThread; | 13 using base::android::AttachCurrentThread; |
15 using base::android::ClearException; | 14 using base::android::ClearException; |
16 using base::android::ConvertJavaStringToUTF8; | 15 using base::android::ConvertJavaStringToUTF8; |
(...skipping 19 matching lines...) Expand all Loading... |
36 DCHECK(!auth_string.is_null()); | 35 DCHECK(!auth_string.is_null()); |
37 | 36 |
38 jboolean trusted = Java_AndroidNetworkLibrary_verifyServerCertificates( | 37 jboolean trusted = Java_AndroidNetworkLibrary_verifyServerCertificates( |
39 env, chain_byte_array.obj(), auth_string.obj()); | 38 env, chain_byte_array.obj(), auth_string.obj()); |
40 if (ClearException(env)) | 39 if (ClearException(env)) |
41 return VERIFY_INVOCATION_ERROR; | 40 return VERIFY_INVOCATION_ERROR; |
42 | 41 |
43 return trusted ? VERIFY_OK : VERIFY_NO_TRUSTED_ROOT; | 42 return trusted ? VERIFY_OK : VERIFY_NO_TRUSTED_ROOT; |
44 } | 43 } |
45 | 44 |
| 45 void AddLocalRootCertificate(const uint8* cert, size_t len) { |
| 46 JNIEnv* env = AttachCurrentThread(); |
| 47 |
| 48 ScopedJavaLocalRef<jbyteArray> cert_array = ToJavaByteArray(env, cert, len); |
| 49 DCHECK(!cert_array.is_null()); |
| 50 |
| 51 Java_AndroidNetworkLibrary_addLocalRootCertificate(env, cert_array.obj()); |
| 52 } |
| 53 |
| 54 void ClearLocalRootCertificates() { |
| 55 JNIEnv* env = AttachCurrentThread(); |
| 56 |
| 57 Java_AndroidNetworkLibrary_clearLocalRootCertificates(env); |
| 58 } |
| 59 |
46 bool StoreKeyPair(const uint8* public_key, | 60 bool StoreKeyPair(const uint8* public_key, |
47 size_t public_len, | 61 size_t public_len, |
48 const uint8* private_key, | 62 const uint8* private_key, |
49 size_t private_len) { | 63 size_t private_len) { |
50 JNIEnv* env = AttachCurrentThread(); | 64 JNIEnv* env = AttachCurrentThread(); |
51 ScopedJavaLocalRef<jbyteArray> public_array = | 65 ScopedJavaLocalRef<jbyteArray> public_array = |
52 ToJavaByteArray(env, public_key, public_len); | 66 ToJavaByteArray(env, public_key, public_len); |
53 ScopedJavaLocalRef<jbyteArray> private_array = | 67 ScopedJavaLocalRef<jbyteArray> private_array = |
54 ToJavaByteArray(env, private_key, private_len); | 68 ToJavaByteArray(env, private_key, private_len); |
55 jboolean ret = Java_AndroidNetworkLibrary_storeKeyPair(env, | 69 jboolean ret = Java_AndroidNetworkLibrary_storeKeyPair(env, |
(...skipping 30 matching lines...) Expand all Loading... |
86 *result = ConvertJavaStringToUTF8(ret); | 100 *result = ConvertJavaStringToUTF8(ret); |
87 return true; | 101 return true; |
88 } | 102 } |
89 | 103 |
90 bool RegisterNetworkLibrary(JNIEnv* env) { | 104 bool RegisterNetworkLibrary(JNIEnv* env) { |
91 return RegisterNativesImpl(env); | 105 return RegisterNativesImpl(env); |
92 } | 106 } |
93 | 107 |
94 } // namespace android | 108 } // namespace android |
95 } // namespace net | 109 } // namespace net |
OLD | NEW |