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/context_utils.h" | 7 #include "base/android/context_utils.h" |
8 #include "base/android/jni_android.h" | 8 #include "base/android/jni_android.h" |
9 #include "base/android/jni_array.h" | 9 #include "base/android/jni_array.h" |
10 #include "base/android/jni_string.h" | 10 #include "base/android/jni_string.h" |
(...skipping 27 matching lines...) Expand all Loading... |
38 ScopedJavaLocalRef<jstring> auth_string = | 38 ScopedJavaLocalRef<jstring> auth_string = |
39 ConvertUTF8ToJavaString(env, auth_type); | 39 ConvertUTF8ToJavaString(env, auth_type); |
40 DCHECK(!auth_string.is_null()); | 40 DCHECK(!auth_string.is_null()); |
41 | 41 |
42 ScopedJavaLocalRef<jstring> host_string = | 42 ScopedJavaLocalRef<jstring> host_string = |
43 ConvertUTF8ToJavaString(env, host); | 43 ConvertUTF8ToJavaString(env, host); |
44 DCHECK(!host_string.is_null()); | 44 DCHECK(!host_string.is_null()); |
45 | 45 |
46 ScopedJavaLocalRef<jobject> result = | 46 ScopedJavaLocalRef<jobject> result = |
47 Java_AndroidNetworkLibrary_verifyServerCertificates( | 47 Java_AndroidNetworkLibrary_verifyServerCertificates( |
48 env, chain_byte_array.obj(), auth_string.obj(), host_string.obj()); | 48 env, chain_byte_array, auth_string, host_string); |
49 | 49 |
50 ExtractCertVerifyResult(result.obj(), | 50 ExtractCertVerifyResult(result.obj(), |
51 status, is_issued_by_known_root, verified_chain); | 51 status, is_issued_by_known_root, verified_chain); |
52 } | 52 } |
53 | 53 |
54 void AddTestRootCertificate(const uint8_t* cert, size_t len) { | 54 void AddTestRootCertificate(const uint8_t* cert, size_t len) { |
55 JNIEnv* env = AttachCurrentThread(); | 55 JNIEnv* env = AttachCurrentThread(); |
56 ScopedJavaLocalRef<jbyteArray> cert_array = ToJavaByteArray(env, cert, len); | 56 ScopedJavaLocalRef<jbyteArray> cert_array = ToJavaByteArray(env, cert, len); |
57 DCHECK(!cert_array.is_null()); | 57 DCHECK(!cert_array.is_null()); |
58 Java_AndroidNetworkLibrary_addTestRootCertificate(env, cert_array.obj()); | 58 Java_AndroidNetworkLibrary_addTestRootCertificate(env, cert_array); |
59 } | 59 } |
60 | 60 |
61 void ClearTestRootCertificates() { | 61 void ClearTestRootCertificates() { |
62 JNIEnv* env = AttachCurrentThread(); | 62 JNIEnv* env = AttachCurrentThread(); |
63 Java_AndroidNetworkLibrary_clearTestRootCertificates(env); | 63 Java_AndroidNetworkLibrary_clearTestRootCertificates(env); |
64 } | 64 } |
65 | 65 |
66 bool StoreKeyPair(const uint8_t* public_key, | 66 bool StoreKeyPair(const uint8_t* public_key, |
67 size_t public_len, | 67 size_t public_len, |
68 const uint8_t* private_key, | 68 const uint8_t* private_key, |
69 size_t private_len) { | 69 size_t private_len) { |
70 JNIEnv* env = AttachCurrentThread(); | 70 JNIEnv* env = AttachCurrentThread(); |
71 ScopedJavaLocalRef<jbyteArray> public_array = | 71 ScopedJavaLocalRef<jbyteArray> public_array = |
72 ToJavaByteArray(env, public_key, public_len); | 72 ToJavaByteArray(env, public_key, public_len); |
73 ScopedJavaLocalRef<jbyteArray> private_array = | 73 ScopedJavaLocalRef<jbyteArray> private_array = |
74 ToJavaByteArray(env, private_key, private_len); | 74 ToJavaByteArray(env, private_key, private_len); |
75 jboolean ret = Java_AndroidNetworkLibrary_storeKeyPair(env, | 75 jboolean ret = Java_AndroidNetworkLibrary_storeKeyPair( |
76 GetApplicationContext(), public_array.obj(), private_array.obj()); | 76 env, GetApplicationContext(), public_array, private_array); |
77 LOG_IF(WARNING, !ret) << | 77 LOG_IF(WARNING, !ret) << |
78 "Call to Java_AndroidNetworkLibrary_storeKeyPair failed"; | 78 "Call to Java_AndroidNetworkLibrary_storeKeyPair failed"; |
79 return ret; | 79 return ret; |
80 } | 80 } |
81 | 81 |
82 void StoreCertificate(net::CertificateMimeType cert_type, | 82 void StoreCertificate(net::CertificateMimeType cert_type, |
83 const void* data, | 83 const void* data, |
84 size_t data_len) { | 84 size_t data_len) { |
85 JNIEnv* env = AttachCurrentThread(); | 85 JNIEnv* env = AttachCurrentThread(); |
86 ScopedJavaLocalRef<jbyteArray> data_array = | 86 ScopedJavaLocalRef<jbyteArray> data_array = |
87 ToJavaByteArray(env, reinterpret_cast<const uint8_t*>(data), data_len); | 87 ToJavaByteArray(env, reinterpret_cast<const uint8_t*>(data), data_len); |
88 jboolean ret = Java_AndroidNetworkLibrary_storeCertificate(env, | 88 jboolean ret = Java_AndroidNetworkLibrary_storeCertificate( |
89 GetApplicationContext(), cert_type, data_array.obj()); | 89 env, GetApplicationContext(), cert_type, data_array); |
90 LOG_IF(WARNING, !ret) << | 90 LOG_IF(WARNING, !ret) << |
91 "Call to Java_AndroidNetworkLibrary_storeCertificate" | 91 "Call to Java_AndroidNetworkLibrary_storeCertificate" |
92 " failed"; | 92 " failed"; |
93 // Intentionally do not return 'ret', there is little the caller can | 93 // Intentionally do not return 'ret', there is little the caller can |
94 // do in case of failure (the CertInstaller itself will deal with | 94 // do in case of failure (the CertInstaller itself will deal with |
95 // incorrect data and display the appropriate toast). | 95 // incorrect data and display the appropriate toast). |
96 } | 96 } |
97 | 97 |
98 bool HaveOnlyLoopbackAddresses() { | 98 bool HaveOnlyLoopbackAddresses() { |
99 JNIEnv* env = AttachCurrentThread(); | 99 JNIEnv* env = AttachCurrentThread(); |
100 return Java_AndroidNetworkLibrary_haveOnlyLoopbackAddresses(env); | 100 return Java_AndroidNetworkLibrary_haveOnlyLoopbackAddresses(env); |
101 } | 101 } |
102 | 102 |
103 bool GetMimeTypeFromExtension(const std::string& extension, | 103 bool GetMimeTypeFromExtension(const std::string& extension, |
104 std::string* result) { | 104 std::string* result) { |
105 JNIEnv* env = AttachCurrentThread(); | 105 JNIEnv* env = AttachCurrentThread(); |
106 | 106 |
107 ScopedJavaLocalRef<jstring> extension_string = | 107 ScopedJavaLocalRef<jstring> extension_string = |
108 ConvertUTF8ToJavaString(env, extension); | 108 ConvertUTF8ToJavaString(env, extension); |
109 ScopedJavaLocalRef<jstring> ret = | 109 ScopedJavaLocalRef<jstring> ret = |
110 Java_AndroidNetworkLibrary_getMimeTypeFromExtension( | 110 Java_AndroidNetworkLibrary_getMimeTypeFromExtension(env, |
111 env, extension_string.obj()); | 111 extension_string); |
112 | 112 |
113 if (!ret.obj()) | 113 if (!ret.obj()) |
114 return false; | 114 return false; |
115 *result = ConvertJavaStringToUTF8(ret); | 115 *result = ConvertJavaStringToUTF8(ret); |
116 return true; | 116 return true; |
117 } | 117 } |
118 | 118 |
119 std::string GetTelephonyNetworkCountryIso() { | 119 std::string GetTelephonyNetworkCountryIso() { |
120 return base::android::ConvertJavaStringToUTF8( | 120 return base::android::ConvertJavaStringToUTF8( |
121 Java_AndroidNetworkLibrary_getNetworkCountryIso( | 121 Java_AndroidNetworkLibrary_getNetworkCountryIso( |
(...skipping 23 matching lines...) Expand all Loading... |
145 | 145 |
146 std::string GetWifiSSID() { | 146 std::string GetWifiSSID() { |
147 return base::android::ConvertJavaStringToUTF8( | 147 return base::android::ConvertJavaStringToUTF8( |
148 Java_AndroidNetworkLibrary_getWifiSSID( | 148 Java_AndroidNetworkLibrary_getWifiSSID( |
149 base::android::AttachCurrentThread(), | 149 base::android::AttachCurrentThread(), |
150 base::android::GetApplicationContext())); | 150 base::android::GetApplicationContext())); |
151 } | 151 } |
152 | 152 |
153 } // namespace android | 153 } // namespace android |
154 } // namespace net | 154 } // namespace net |
OLD | NEW |