| // 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_BASE_ANDROID_NETWORK_LIBRARY_H_ |
| #define NET_BASE_ANDROID_NETWORK_LIBRARY_H_ |
| #pragma once |
| |
| #include <string> |
| #include <vector> |
| |
| #include "base/basictypes.h" |
| #include "net/base/net_export.h" |
| |
| namespace net { |
| |
| class NET_EXPORT AndroidNetworkLibrary { |
| public: |
| static void RegisterSharedInstance(AndroidNetworkLibrary* lib); |
| static void UnregisterSharedInstance(); |
| static AndroidNetworkLibrary* GetSharedInstance(); |
| |
| enum VerifyResult { |
| VERIFY_OK, |
| VERIFY_BAD_HOSTNAME, |
| VERIFY_NO_TRUSTED_ROOT, |
| 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. |
| virtual VerifyResult VerifyX509CertChain( |
| const std::vector<std::string>& cert_chain, |
| const std::string& hostname, |
| const std::string& auth_type) = 0; |
| |
| protected: |
| friend class LibHolder; |
| AndroidNetworkLibrary(); |
| virtual ~AndroidNetworkLibrary(); // use UnregisterSharedInstance() |
| |
| DISALLOW_COPY_AND_ASSIGN(AndroidNetworkLibrary); |
| }; |
| |
| } // namespace net |
| |
| #endif // NET_BASE_ANDROID_NETWORK_LIBRARY_H_ |