From 235b8d90d11a8a42a863b3efcb824c95490ccdd3 Mon Sep 17 00:00:00 2001 From: William Conner Date: Tue, 14 Jan 2025 12:31:15 -0800 Subject: [PATCH] Add direct accessor method for a restricted big integer's secret data. This should avoid creating new secret data objects from string views for APIs that require secret data objects. PiperOrigin-RevId: 715482913 Change-Id: I841034230f711fcdfa5d833296759ec84641117a --- tink/core/restricted_big_integer_test.cc | 3 +++ tink/restricted_big_integer.h | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/tink/core/restricted_big_integer_test.cc b/tink/core/restricted_big_integer_test.cc index 3af51443..37eeea1e 100644 --- a/tink/core/restricted_big_integer_test.cc +++ b/tink/core/restricted_big_integer_test.cc @@ -63,6 +63,9 @@ TEST(RestrictedBigIntegerTest, CreateAndGetSecret) { EXPECT_THAT(restricted_big_integer.SizeInBytes(), Eq(256)); EXPECT_THAT(restricted_big_integer.GetSecret(InsecureSecretKeyAccess::Get()), Eq(secret_bytes)); + EXPECT_THAT(util::SecretDataAsStringView(restricted_big_integer.GetSecretData( + InsecureSecretKeyAccess::Get())), + Eq(secret_bytes)); } TEST(RestrictedBigIntegerTest, CreateAndGetSecretPadded) { diff --git a/tink/restricted_big_integer.h b/tink/restricted_big_integer.h index 88c6250a..68756804 100644 --- a/tink/restricted_big_integer.h +++ b/tink/restricted_big_integer.h @@ -57,6 +57,11 @@ class RestrictedBigInteger { return util::SecretDataAsStringView(secret_); } + // Returns the secret data of this RestrictedBigInteger object. + const util::SecretData& GetSecretData(SecretKeyAccessToken token) const { + return secret_; + } + int64_t SizeInBytes() const { return secret_.size(); } bool operator==(const RestrictedBigInteger& other) const;