// Copyright (c) 2010 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. #ifndef NET_ANDROID_NETWORK_LIBRARY_H_ #define NET_ANDROID_NETWORK_LIBRARY_H_ #pragma once #include #include #include #include "base/basictypes.h" namespace net { namespace android { enum VerifyResult { // Certificate verification was successful. VERIFY_OK, // Certificate domain name doesn't match host name. VERIFY_BAD_HOSTNAME, // Certificate verification was failed. There is no detail error information // given by Android API. VERIFY_NO_TRUSTED_ROOT, // Error occurs when invoke JNI methods. VERIFY_INVOCATION_ERROR, }; // |cert_chain| is DER encoded chain of certificates, with the server's own // certificate listed first. // |hostname| is validated against the supplied cert. |auth_type| is as per // the Java X509Certificate.checkServerTrusted method. VerifyResult VerifyX509CertChain(const std::vector& cert_chain, const std::string& hostname, const std::string& auth_type); // Helper for the handler. Passes the DER-encoded key pair via // JNI to the Credentials store. bool StoreKeyPair(const uint8* public_key, size_t public_len, const uint8* private_key, size_t private_len); // Get the mime type (if any) that is associated with the file extension. // Returns true if a corresponding mime type exists. bool GetMimeTypeFromExtension(const std::string& extension, std::string* result); // Register JNI methods bool RegisterNetworkLibrary(JNIEnv* env); } // namespace android } // namespace net #endif // NET_ANDROID_NETWORK_LIBRARY_H_