diff --git a/cc/subtle/common_enums.cc b/cc/subtle/common_enums.cc index d8bccd8f950c59d609f14064dd7fcfaba83d4f6e..c9c99adda69a041bbf616445936a71caafd18753 100644 --- a/cc/subtle/common_enums.cc +++ b/cc/subtle/common_enums.cc @@ -65,6 +65,19 @@ std::string EnumToString(HashType type) { } } +std::string EnumToString(RsaSignatureEncoding encoding) { + switch (encoding) { + case RsaSignatureEncoding::PKCS1_ENCODING: + return "PKCS1_ENCODING"; + case RsaSignatureEncoding::PSS_ENCODING: + return "PSS_ENCODING"; + case RsaSignatureEncoding::UNKNOWN_ENCODING: + return "UNKNOWN_ENCODING"; + default: + return "UNKNOWN_ENCODING" + std::to_string(encoding); + } +} + } // namespace subtle } // namespace tink } // namespace crypto diff --git a/cc/subtle/common_enums.h b/cc/subtle/common_enums.h index cce4b9d04a178bd4f17cfe2f43ca5d686f86d33e..e879319653afa0cd2b5a8c248b93cefa3e5fb44f 100644 --- a/cc/subtle/common_enums.h +++ b/cc/subtle/common_enums.h @@ -44,9 +44,16 @@ enum HashType { SHA512 = 4, }; +enum RsaSignatureEncoding { + UNKNOWN_ENCODING = 0, + PKCS1_ENCODING = 1, + PSS_ENCODING = 2, +}; + std::string EnumToString(EllipticCurveType type); std::string EnumToString(EcPointFormat format); std::string EnumToString(HashType type); +std::string EnumToString(RsaSignatureEncoding encoding); } // namespace subtle } // namespace tink diff --git a/cc/subtle/common_enums_test.cc b/cc/subtle/common_enums_test.cc index 9c5c580588c41587f33ca9574fe104a48b64441a..bf7ce5d8931c07f8bb4482dc52839b58d972a02f 100644 --- a/cc/subtle/common_enums_test.cc +++ b/cc/subtle/common_enums_test.cc @@ -47,6 +47,15 @@ TEST_F(CommonEnumsTest, testEcPointFormatToString) { EXPECT_EQ("UNKNOWN_FORMAT: 42", EnumToString((EcPointFormat)42)); } +TEST_F(CommonEnumsTest, testRsaSignatureEncodingToString) { + EXPECT_EQ("UNKNOWN_ENCODING", + EnumToString(RsaSignatureEncoding::UNKNOWN_ENCODING)); + EXPECT_EQ("PKCS1_ENCODING", + EnumToString(RsaSignatureEncoding::PKCS1_ENCODING)); + EXPECT_EQ("PSS_ENCODING", + EnumToString(RsaSignatureEncoding::PSS_ENCODING)); +} + } // namespace } // namespace subtle } // namespace tink