Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(525)

Unified Diff: talk/app/webrtc/test/fakedtlsidentitystore.h

Issue 1151943005: Ability to specify KeyType (RSA, ECDSA) for SSLIdentity generation in libjingle (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Addressing ASAN, LSAN issues in unittests Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: talk/app/webrtc/test/fakedtlsidentitystore.h
diff --git a/talk/app/webrtc/test/fakedtlsidentityservice.h b/talk/app/webrtc/test/fakedtlsidentitystore.h
similarity index 74%
rename from talk/app/webrtc/test/fakedtlsidentityservice.h
rename to talk/app/webrtc/test/fakedtlsidentitystore.h
index 6c59d4115a88024a33be854df38949dcf89f66ca..c53c7611dd1364b83070a26e91d2438fbd899f6a 100644
--- a/talk/app/webrtc/test/fakedtlsidentityservice.h
+++ b/talk/app/webrtc/test/fakedtlsidentitystore.h
@@ -28,6 +28,7 @@
#ifndef TALK_APP_WEBRTC_TEST_FAKEDTLSIDENTITYSERVICE_H_
#define TALK_APP_WEBRTC_TEST_FAKEDTLSIDENTITYSERVICE_H_
+#include "talk/app/webrtc/dtlsidentitystore.h"
#include "talk/app/webrtc/peerconnectioninterface.h"
static const char kRSA_PRIVATE_KEY_PEM[] =
@@ -61,38 +62,40 @@ static const char kCERT_PEM[] =
"UD0A8qfhfDM+LK6rPAnCsVN0NRDY3jvd6rzix9M=\n"
"-----END CERTIFICATE-----\n";
-using webrtc::DTLSIdentityRequestObserver;
-
-class FakeIdentityService : public webrtc::DTLSIdentityServiceInterface,
- public rtc::MessageHandler {
+class FakeDtlsIdentityStoreRSA : public webrtc::DtlsIdentityStoreInterface,
+ public rtc::MessageHandler {
public:
+ // TODO(hbos): pointless class
struct Request {
- Request(const std::string& common_name,
- DTLSIdentityRequestObserver* observer)
- : common_name(common_name), observer(observer) {}
+ Request(webrtc::DtlsIdentityRequestObserver* observer)
+ : observer(observer) {}
- std::string common_name;
- rtc::scoped_refptr<DTLSIdentityRequestObserver> observer;
+ rtc::scoped_refptr<webrtc::DtlsIdentityRequestObserver> observer;
};
typedef rtc::TypedMessageData<Request> MessageData;
- FakeIdentityService() : should_fail_(false) {}
+ FakeDtlsIdentityStoreRSA() : should_fail_(false) {}
void set_should_fail(bool should_fail) {
should_fail_ = should_fail;
}
- // DTLSIdentityServiceInterface implemenation.
- virtual bool RequestIdentity(const std::string& identity_name,
- const std::string& common_name,
- DTLSIdentityRequestObserver* observer) {
- MessageData* msg = new MessageData(Request(common_name, observer));
+ void Initialize() override { }
+
+ void RequestIdentity(rtc::KeyType key_type,
+ webrtc::DtlsIdentityRequestObserver* observer) override {
+ // TODO(hbos): Should be able to generate KT_ECDSA too.
+ DCHECK(key_type == rtc::KT_RSA || should_fail_);
+ MessageData* msg = new MessageData(Request(observer));
if (should_fail_) {
rtc::Thread::Current()->Post(this, MSG_FAILURE, msg);
} else {
rtc::Thread::Current()->Post(this, MSG_SUCCESS, msg);
}
- return true;
+ }
+
+ bool HasFreeIdentityForTesting() const override {
+ return false;
}
private:
@@ -103,13 +106,15 @@ class FakeIdentityService : public webrtc::DTLSIdentityServiceInterface,
// rtc::MessageHandler implementation.
void OnMessage(rtc::Message* msg) {
- FakeIdentityService::MessageData* message_data =
- static_cast<FakeIdentityService::MessageData*>(msg->pdata);
- DTLSIdentityRequestObserver* observer = message_data->data().observer.get();
+ MessageData* message_data = static_cast<MessageData*>(msg->pdata);
+ webrtc::DtlsIdentityRequestObserver* observer = message_data->data().observer.get();
switch (msg->message_id) {
case MSG_SUCCESS: {
- std::string cert, key;
- GenerateIdentity(message_data->data().common_name, &cert, &key);
+ std::string cert;
+ std::string key;
+ rtc::SSLIdentity::PemToDer("CERTIFICATE", kCERT_PEM, &cert);
+ rtc::SSLIdentity::PemToDer("RSA PRIVATE KEY", kRSA_PRIVATE_KEY_PEM,
+ &key);
observer->OnSuccess(cert, key);
break;
}
@@ -120,16 +125,6 @@ class FakeIdentityService : public webrtc::DTLSIdentityServiceInterface,
delete message_data;
}
- void GenerateIdentity(
- const std::string& common_name,
- 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_;
};

Powered by Google App Engine
This is Rietveld 408576698