diff options
author | btolsch <btolsch@chromium.org> | 2021-07-26 15:03:56 -0700 |
---|---|---|
committer | Openscreen LUCI CQ <openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2021-07-26 23:22:23 +0000 |
commit | 03ca0440e6bd18f7c3588056ed7c251f63e15c4e (patch) | |
tree | 93d69a5b16542435947a802b8dc2cf556aeffece /cast/sender | |
parent | f9715c5369c7dca34da0cb7b416efe65ed52a474 (diff) | |
download | openscreen-03ca0440e6bd18f7c3588056ed7c251f63e15c4e.tar.gz |
Add AuthContext::CreateForTest for fuzzer
This change adds the ability for tests to create an AuthContext using a
fixed data string for the nonce. This is to facilitate reproducibility
of fuzz tests and is a direct copy of the existing upstream version.
Bug: b/185815206
Change-Id: Ifef4e4cca641e6113356e5818bed2006e814a4de
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/3053623
Reviewed-by: Ryan Keane <rwkeane@google.com>
Commit-Queue: Brandon Tolsch <btolsch@chromium.org>
Diffstat (limited to 'cast/sender')
-rw-r--r-- | cast/sender/channel/cast_auth_util.cc | 15 | ||||
-rw-r--r-- | cast/sender/channel/cast_auth_util.h | 3 |
2 files changed, 18 insertions, 0 deletions
diff --git a/cast/sender/channel/cast_auth_util.cc b/cast/sender/channel/cast_auth_util.cc index 6e9cf626..f0e1c36f 100644 --- a/cast/sender/channel/cast_auth_util.cc +++ b/cast/sender/channel/cast_auth_util.cc @@ -184,6 +184,21 @@ AuthContext AuthContext::Create() { return AuthContext(CastNonce::Get()); } +// static +AuthContext AuthContext::CreateForTest(const std::string& nonce_data) { + std::string nonce; + if (nonce_data.empty()) { + nonce = std::string(kNonceSizeInBytes, '0'); + } else { + while (nonce.size() < kNonceSizeInBytes) { + nonce += nonce_data; + } + nonce.erase(kNonceSizeInBytes); + } + OSP_DCHECK_EQ(nonce.size(), kNonceSizeInBytes); + return AuthContext(nonce); +} + AuthContext::AuthContext(const std::string& nonce) : nonce_(nonce) {} AuthContext::~AuthContext() {} diff --git a/cast/sender/channel/cast_auth_util.h b/cast/sender/channel/cast_auth_util.h index d23ebd7e..9c0646ec 100644 --- a/cast/sender/channel/cast_auth_util.h +++ b/cast/sender/channel/cast_auth_util.h @@ -36,6 +36,9 @@ class AuthContext { // The same context must be used in the challenge and reply. static AuthContext Create(); + // Create a context with some seed nonce data for testing. + static AuthContext CreateForTest(const std::string& nonce_data); + // Verifies the nonce received in the response is equivalent to the one sent. // Returns success if |nonce_response| matches nonce_ Error VerifySenderNonce(const std::string& nonce_response, |