diff options
author | raymes@chromium.org <raymes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-04 17:15:48 +0000 |
---|---|---|
committer | raymes@chromium.org <raymes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-04 17:15:48 +0000 |
commit | de289526526174fcea503e55153e21411a944fee (patch) | |
tree | 2c3dc5498cf014c19877ef663fe3b9dd10a8426b /content/browser/renderer_host/pepper_tcp_socket.cc | |
parent | eb63d674308842a51494c543565389dd08059c45 (diff) | |
download | chromium_src-de289526526174fcea503e55153e21411a944fee.zip chromium_src-de289526526174fcea503e55153e21411a944fee.tar.gz chromium_src-de289526526174fcea503e55153e21411a944fee.tar.bz2 |
Add the PPAPI X509 Certificate interface and implementation.
Adds the interface for accessing X509 certificate fields. Note that the interface uses a GetField(field) method for accessing various fields of the certificate and all resuls are returned as pp::Var. This greatly simplifies the implementation of the interface and process of adding/changing fields so it is probably better (at least in the short term for flash).
BUG=114626
TEST=out/Debug/ui_tests --gtest_filter=*PPAPITest.*X509Certificate*
NOTRY=true
Review URL: http://codereview.chromium.org/9693024
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@130654 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/renderer_host/pepper_tcp_socket.cc')
-rw-r--r-- | content/browser/renderer_host/pepper_tcp_socket.cc | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/content/browser/renderer_host/pepper_tcp_socket.cc b/content/browser/renderer_host/pepper_tcp_socket.cc index 21b1cef..8af741b 100644 --- a/content/browser/renderer_host/pepper_tcp_socket.cc +++ b/content/browser/renderer_host/pepper_tcp_socket.cc @@ -19,12 +19,14 @@ #include "net/base/ip_endpoint.h" #include "net/base/net_errors.h" #include "net/base/single_request_host_resolver.h" +#include "net/base/x509_certificate.h" #include "net/socket/client_socket_factory.h" #include "net/socket/client_socket_handle.h" #include "net/socket/ssl_client_socket.h" #include "net/socket/tcp_client_socket.h" #include "ppapi/proxy/ppapi_messages.h" #include "ppapi/shared_impl/private/net_address_private_impl.h" +#include "ppapi/shared_impl/private/ppb_x509_certificate_private_shared.h" #include "ppapi/shared_impl/private/tcp_socket_private_impl.h" using content::BrowserThread; @@ -202,6 +204,26 @@ void PepperTCPSocket::SendConnectACKError() { NetAddressPrivateImpl::kInvalidNetAddress)); } +// static +bool PepperTCPSocket::GetCertificateFields( + const net::X509Certificate& cert, + ppapi::PPB_X509Certificate_Fields* fields) { + // TODO(raymes,rsleevi): Implement this. + return true; +} + +// static +bool PepperTCPSocket::GetCertificateFields( + const char* der, + uint32_t length, + ppapi::PPB_X509Certificate_Fields* fields) { + scoped_refptr<net::X509Certificate> cert = + net::X509Certificate::CreateFromBytes(der, length); + if (!cert.get()) + return false; + return GetCertificateFields(*cert, fields); +} + void PepperTCPSocket::SendReadACKError() { manager_->Send(new PpapiMsg_PPBTCPSocket_ReadACK( routing_id_, plugin_dispatcher_id_, socket_id_, false, std::string())); |