base/android/jni_array.h: Add JavaArrayOfByteArraysToStringVector()
This will be used by the SSL client certificate support code to
return the certificate chain as a vector of DER-encoded X.509
certificates.
BUG=none
Review URL: https://chromiumcodereview.appspot.com/11418287
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171224 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/base/android/jni_array.cc b/base/android/jni_array.cc
index 53027c72..9b12531 100644
--- a/base/android/jni_array.cc
+++ b/base/android/jni_array.cc
@@ -127,5 +127,23 @@
env->ReleaseIntArrayElements(array, ints, JNI_ABORT);
}
+void JavaArrayOfByteArrayToStringVector(
+ JNIEnv* env,
+ jobjectArray array,
+ std::vector<std::string>* out) {
+ DCHECK(out);
+ out->clear();
+ jsize len = env->GetArrayLength(array);
+ for (jsize i = 0; i < len; ++i) {
+ jbyteArray bytes_array = static_cast<jbyteArray>(
+ env->GetObjectArrayElement(array, i));
+ jsize bytes_len = env->GetArrayLength(bytes_array);
+ jbyte* bytes = env->GetByteArrayElements(bytes_array, NULL);
+ out->push_back(
+ std::string(reinterpret_cast<const char*>(bytes), bytes_len));
+ env->ReleaseByteArrayElements(bytes_array, bytes, JNI_ABORT);
+ }
+}
+
} // namespace android
} // namespace base