summaryrefslogtreecommitdiffstats
path: root/content/browser/renderer_host/pepper_tcp_socket.cc
diff options
context:
space:
mode:
authorraymes@chromium.org <raymes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-04 17:15:48 +0000
committerraymes@chromium.org <raymes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-04 17:15:48 +0000
commitde289526526174fcea503e55153e21411a944fee (patch)
tree2c3dc5498cf014c19877ef663fe3b9dd10a8426b /content/browser/renderer_host/pepper_tcp_socket.cc
parenteb63d674308842a51494c543565389dd08059c45 (diff)
downloadchromium_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.cc22
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()));