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 | 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" |
(...skipping 20 matching lines...) Expand all Loading... |
31 JNIEnv* env = AttachCurrentThread(); | 31 JNIEnv* env = AttachCurrentThread(); |
32 | 32 |
33 ScopedJavaLocalRef<jobjectArray> chain_byte_array = | 33 ScopedJavaLocalRef<jobjectArray> chain_byte_array = |
34 ToJavaArrayOfByteArray(env, cert_chain); | 34 ToJavaArrayOfByteArray(env, cert_chain); |
35 DCHECK(!chain_byte_array.is_null()); | 35 DCHECK(!chain_byte_array.is_null()); |
36 | 36 |
37 ScopedJavaLocalRef<jstring> auth_string = | 37 ScopedJavaLocalRef<jstring> auth_string = |
38 ConvertUTF8ToJavaString(env, auth_type); | 38 ConvertUTF8ToJavaString(env, auth_type); |
39 DCHECK(!auth_string.is_null()); | 39 DCHECK(!auth_string.is_null()); |
40 | 40 |
41 ScopedJavaLocalRef<jstring> host_string = | 41 ScopedJavaLocalRef<jstring> host_string = ConvertUTF8ToJavaString(env, host); |
42 ConvertUTF8ToJavaString(env, host); | |
43 DCHECK(!host_string.is_null()); | 42 DCHECK(!host_string.is_null()); |
44 | 43 |
45 ScopedJavaLocalRef<jobject> result = | 44 ScopedJavaLocalRef<jobject> result = |
46 Java_AndroidNetworkLibrary_verifyServerCertificates( | 45 Java_AndroidNetworkLibrary_verifyServerCertificates( |
47 env, chain_byte_array.obj(), auth_string.obj(), host_string.obj()); | 46 env, chain_byte_array.obj(), auth_string.obj(), host_string.obj()); |
48 | 47 |
49 ExtractCertVerifyResult(result.obj(), | 48 ExtractCertVerifyResult( |
50 status, is_issued_by_known_root, verified_chain); | 49 result.obj(), status, is_issued_by_known_root, verified_chain); |
51 } | 50 } |
52 | 51 |
53 void AddTestRootCertificate(const uint8* cert, size_t len) { | 52 void AddTestRootCertificate(const uint8* cert, size_t len) { |
54 JNIEnv* env = AttachCurrentThread(); | 53 JNIEnv* env = AttachCurrentThread(); |
55 ScopedJavaLocalRef<jbyteArray> cert_array = ToJavaByteArray(env, cert, len); | 54 ScopedJavaLocalRef<jbyteArray> cert_array = ToJavaByteArray(env, cert, len); |
56 DCHECK(!cert_array.is_null()); | 55 DCHECK(!cert_array.is_null()); |
57 Java_AndroidNetworkLibrary_addTestRootCertificate(env, cert_array.obj()); | 56 Java_AndroidNetworkLibrary_addTestRootCertificate(env, cert_array.obj()); |
58 } | 57 } |
59 | 58 |
60 void ClearTestRootCertificates() { | 59 void ClearTestRootCertificates() { |
61 JNIEnv* env = AttachCurrentThread(); | 60 JNIEnv* env = AttachCurrentThread(); |
62 Java_AndroidNetworkLibrary_clearTestRootCertificates(env); | 61 Java_AndroidNetworkLibrary_clearTestRootCertificates(env); |
63 } | 62 } |
64 | 63 |
65 bool StoreKeyPair(const uint8* public_key, | 64 bool StoreKeyPair(const uint8* public_key, |
66 size_t public_len, | 65 size_t public_len, |
67 const uint8* private_key, | 66 const uint8* private_key, |
68 size_t private_len) { | 67 size_t private_len) { |
69 JNIEnv* env = AttachCurrentThread(); | 68 JNIEnv* env = AttachCurrentThread(); |
70 ScopedJavaLocalRef<jbyteArray> public_array = | 69 ScopedJavaLocalRef<jbyteArray> public_array = |
71 ToJavaByteArray(env, public_key, public_len); | 70 ToJavaByteArray(env, public_key, public_len); |
72 ScopedJavaLocalRef<jbyteArray> private_array = | 71 ScopedJavaLocalRef<jbyteArray> private_array = |
73 ToJavaByteArray(env, private_key, private_len); | 72 ToJavaByteArray(env, private_key, private_len); |
74 jboolean ret = Java_AndroidNetworkLibrary_storeKeyPair(env, | 73 jboolean ret = Java_AndroidNetworkLibrary_storeKeyPair( |
75 GetApplicationContext(), public_array.obj(), private_array.obj()); | 74 env, GetApplicationContext(), public_array.obj(), private_array.obj()); |
76 LOG_IF(WARNING, !ret) << | 75 LOG_IF(WARNING, !ret) |
77 "Call to Java_AndroidNetworkLibrary_storeKeyPair failed"; | 76 << "Call to Java_AndroidNetworkLibrary_storeKeyPair failed"; |
78 return ret; | 77 return ret; |
79 } | 78 } |
80 | 79 |
81 void StoreCertificate(net::CertificateMimeType cert_type, | 80 void StoreCertificate(net::CertificateMimeType cert_type, |
82 const void* data, | 81 const void* data, |
83 size_t data_len) { | 82 size_t data_len) { |
84 JNIEnv* env = AttachCurrentThread(); | 83 JNIEnv* env = AttachCurrentThread(); |
85 ScopedJavaLocalRef<jbyteArray> data_array = | 84 ScopedJavaLocalRef<jbyteArray> data_array = |
86 ToJavaByteArray(env, reinterpret_cast<const uint8*>(data), data_len); | 85 ToJavaByteArray(env, reinterpret_cast<const uint8*>(data), data_len); |
87 jboolean ret = Java_AndroidNetworkLibrary_storeCertificate(env, | 86 jboolean ret = Java_AndroidNetworkLibrary_storeCertificate( |
88 GetApplicationContext(), cert_type, data_array.obj()); | 87 env, GetApplicationContext(), cert_type, data_array.obj()); |
89 LOG_IF(WARNING, !ret) << | 88 LOG_IF(WARNING, !ret) << "Call to Java_AndroidNetworkLibrary_storeCertificate" |
90 "Call to Java_AndroidNetworkLibrary_storeCertificate" | 89 " failed"; |
91 " failed"; | |
92 // Intentionally do not return 'ret', there is little the caller can | 90 // Intentionally do not return 'ret', there is little the caller can |
93 // do in case of failure (the CertInstaller itself will deal with | 91 // do in case of failure (the CertInstaller itself will deal with |
94 // incorrect data and display the appropriate toast). | 92 // incorrect data and display the appropriate toast). |
95 } | 93 } |
96 | 94 |
97 bool HaveOnlyLoopbackAddresses() { | 95 bool HaveOnlyLoopbackAddresses() { |
98 JNIEnv* env = AttachCurrentThread(); | 96 JNIEnv* env = AttachCurrentThread(); |
99 return Java_AndroidNetworkLibrary_haveOnlyLoopbackAddresses(env); | 97 return Java_AndroidNetworkLibrary_haveOnlyLoopbackAddresses(env); |
100 } | 98 } |
101 | 99 |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 base::android::AttachCurrentThread(), | 133 base::android::AttachCurrentThread(), |
136 base::android::GetApplicationContext())); | 134 base::android::GetApplicationContext())); |
137 } | 135 } |
138 | 136 |
139 bool RegisterNetworkLibrary(JNIEnv* env) { | 137 bool RegisterNetworkLibrary(JNIEnv* env) { |
140 return RegisterNativesImpl(env); | 138 return RegisterNativesImpl(env); |
141 } | 139 } |
142 | 140 |
143 } // namespace android | 141 } // namespace android |
144 } // namespace net | 142 } // namespace net |
OLD | NEW |