Index: talk/app/webrtc/test/fakedtlsidentitystore.h |
diff --git a/talk/app/webrtc/test/fakedtlsidentitystore.h b/talk/app/webrtc/test/fakedtlsidentitystore.h |
index 5ef19004a0c3abd3b8bda1a6697384f8deec09dc..91410da0c0177c8b96465ac081cd67fa53cf2fd4 100644 |
--- a/talk/app/webrtc/test/fakedtlsidentitystore.h |
+++ b/talk/app/webrtc/test/fakedtlsidentitystore.h |
@@ -30,6 +30,7 @@ |
#include <string> |
+#include "talk/app/webrtc/dtlscertificate.h" |
#include "talk/app/webrtc/dtlsidentitystore.h" |
#include "talk/app/webrtc/peerconnectioninterface.h" |
@@ -88,6 +89,25 @@ class FakeDtlsIdentityStore : public webrtc::DtlsIdentityStoreInterface, |
this, should_fail_ ? MSG_FAILURE : MSG_SUCCESS, msg); |
} |
+ static rtc::scoped_refptr<webrtc::DtlsCertificate> GenerateCertificate() { |
+ std::string cert; |
+ std::string key; |
+ GenerateIdentity(&cert, &key); |
+ |
+ std::string pem_cert = rtc::SSLIdentity::DerToPem( |
+ rtc::kPemTypeCertificate, |
+ reinterpret_cast<const unsigned char*>(cert.data()), |
+ cert.length()); |
+ std::string pem_key = rtc::SSLIdentity::DerToPem( |
+ rtc::kPemTypeRsaPrivateKey, |
+ reinterpret_cast<const unsigned char*>(key.data()), |
+ key.length()); |
+ rtc::scoped_ptr<rtc::SSLIdentity> identity( |
+ rtc::SSLIdentity::FromPEMStrings(pem_key, pem_cert)); |
+ |
+ return webrtc::DtlsCertificate::Create(identity.Pass()); |
+ } |
+ |
private: |
enum { |
MSG_SUCCESS, |
@@ -116,6 +136,15 @@ class FakeDtlsIdentityStore : public webrtc::DtlsIdentityStoreInterface, |
delete message_data; |
} |
+ static void GenerateIdentity( |
+ std::string* der_cert, |
+ std::string* der_key) { |
+ rtc::SSLIdentity::PemToDer("CERTIFICATE", kCERT_PEM, der_cert); |
+ rtc::SSLIdentity::PemToDer("RSA PRIVATE KEY", |
+ kRSA_PRIVATE_KEY_PEM, |
+ der_key); |
+ } |
+ |
bool should_fail_; |
}; |