| 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 |