Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(66)

Unified Diff: net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java

Issue 108653013: Export verified_cert and public_key_hashes on Android. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove unnecessary NET_EXPORT. Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java
diff --git a/net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java b/net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java
new file mode 100644
index 0000000000000000000000000000000000000000..5c4d28a4f3dbc8d79a47ce8451ed644c5f08f0ad
--- /dev/null
+++ b/net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java
@@ -0,0 +1,73 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.net;
+
+import org.chromium.base.CalledByNative;
+import org.chromium.base.JNINamespace;
+
+import java.security.cert.CertificateEncodingException;
+import java.security.cert.X509Certificate;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * The result of a certification verification.
+ */
+@JNINamespace("net::android")
+public class AndroidCertVerifyResult {
+
+ /**
+ * The verification status. One of the values in CertVerifyStatusAndroid.
+ */
+ private final int mStatus;
+
+ /**
+ * True if the root CA in the chain is in the system store.
+ */
+ private final boolean mIsIssuedByKnownRoot;
+
+ /**
+ * The properly ordered certificate chain used for verification.
+ */
+ private final List<X509Certificate> mCertificateChain;
+
+ public AndroidCertVerifyResult(int status,
+ boolean isIssuedByKnownRoot,
+ List<X509Certificate> certificateChain) {
+ mStatus = status;
+ mIsIssuedByKnownRoot = isIssuedByKnownRoot;
+ mCertificateChain = new ArrayList<X509Certificate>(certificateChain);
+ }
+
+ public AndroidCertVerifyResult(int status) {
+ mStatus = status;
+ mIsIssuedByKnownRoot = false;
+ mCertificateChain = Collections.<X509Certificate>emptyList();
+ }
+
+ @CalledByNative
+ public int getStatus() {
+ return mStatus;
+ }
+
+ @CalledByNative
+ public boolean isIssuedByKnownRoot() {
+ return mIsIssuedByKnownRoot;
+ }
+
+ @CalledByNative
+ public byte[][] getCertificateChainEncoded() {
+ byte[][] verifiedChainArray = new byte[mCertificateChain.size()][];
+ try {
+ for (int i = 0; i < mCertificateChain.size(); i++) {
+ verifiedChainArray[i] = mCertificateChain.get(i).getEncoded();
+ }
+ } catch (CertificateEncodingException e) {
+ return new byte[0][];
+ }
+ return verifiedChainArray;
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698