From 077e6f3f07ec113d2ae24384d1b10870c059d04d Mon Sep 17 00:00:00 2001 From: Arun M Date: Tue, 22 May 2018 18:07:19 +0530 Subject: [PATCH] ES256/384 signature verification fails #20 --- tests/test_jwt_es.cc | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tests/test_jwt_es.cc b/tests/test_jwt_es.cc index 3390d84..9064d2d 100644 --- a/tests/test_jwt_es.cc +++ b/tests/test_jwt_es.cc @@ -112,6 +112,32 @@ TEST (ESAlgo, ES512EncodingDecodingTest) EXPECT_EQ (dec_obj.header().algo(), jwt::algorithm::ES512); } +TEST (ESAlgo, ES384EncodingDecodingValidTest) +{ + using namespace jwt::params; + + std::string key = read_from_file(EC384_PRIV_KEY); + ASSERT_TRUE (key.length()); + + jwt::jwt_object obj{algorithm("ES384"), secret(key)}; + + obj.add_claim("iss", "arun.muralidharan") + .add_claim("aud", "all") + .add_claim("exp", 4682665886) // Expires on Sunday, May 22, 2118 12:31:26 PM GMT + ; + + auto enc_str = obj.signature(); + + key = read_from_file(EC384_PUB_KEY); + ASSERT_TRUE (key.length()); + + auto dec_obj = jwt::decode(enc_str, algorithms({"es384"}), verify(true), secret(key)); + + EXPECT_EQ (dec_obj.header().algo(), jwt::algorithm::ES384); + EXPECT_TRUE (dec_obj.has_claim("exp")); + EXPECT_TRUE (obj.payload().has_claim_with_value("exp", 4682665886)); +} + int main(int argc, char* argv[]) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS();