1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef NET_ANDROID_CERT_VERIFY_RESULT_ANDROID_H_
6 #define NET_ANDROID_CERT_VERIFY_RESULT_ANDROID_H_
13 #include "base/basictypes.h"
19 // The list of certificate verification results returned from Java side to the
22 // A Java counterpart will be generated for this enum.
23 // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.net
24 enum CertVerifyStatusAndroid
{
25 // Certificate is trusted.
26 CERT_VERIFY_STATUS_ANDROID_OK
= 0,
27 // Certificate verification could not be conducted.
28 CERT_VERIFY_STATUS_ANDROID_FAILED
= -1,
29 // Certificate is not trusted due to non-trusted root of the certificate
31 CERT_VERIFY_STATUS_ANDROID_NO_TRUSTED_ROOT
= -2,
32 // Certificate is not trusted because it has expired.
33 CERT_VERIFY_STATUS_ANDROID_EXPIRED
= -3,
34 // Certificate is not trusted because it is not valid yet.
35 CERT_VERIFY_STATUS_ANDROID_NOT_YET_VALID
= -4,
36 // Certificate is not trusted because it could not be parsed.
37 CERT_VERIFY_STATUS_ANDROID_UNABLE_TO_PARSE
= -5,
38 // Certificate is not trusted because it has an extendedKeyUsage field, but
39 // its value is not correct for a web server.
40 CERT_VERIFY_STATUS_ANDROID_INCORRECT_KEY_USAGE
= -6,
43 // Extract parameters out of an AndroidCertVerifyResult object.
44 void ExtractCertVerifyResult(jobject result
,
45 CertVerifyStatusAndroid
* status
,
46 bool* is_issued_by_known_root
,
47 std::vector
<std::string
>* verified_chain
);
49 // Register JNI methods.
50 bool RegisterCertVerifyResult(JNIEnv
* env
);
52 } // namespace android
56 #endif // NET_ANDROID_CERT_VERIFY_RESULT_ANDROID_H_