From 1a8dea72903e6bbde090bc504fbd339df2eb7b8f Mon Sep 17 00:00:00 2001 From: Dmitry Volyntsev Date: Mon, 2 Apr 2018 17:12:52 +0300 Subject: [PATCH] Added base64url encoding for crypto hash and HMAC digests. --- njs/njs_crypto.c | 5 +++++ njs/test/njs_unit_test.c | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/njs/njs_crypto.c b/njs/njs_crypto.c index ae63d93b..db359e47 100644 --- a/njs/njs_crypto.c +++ b/njs/njs_crypto.c @@ -126,6 +126,11 @@ static njs_crypto_enc_t njs_encodings[] = { njs_string_base64 }, + { + nxt_string("base64url"), + njs_string_base64url + }, + { nxt_null_string, NULL diff --git a/njs/test/njs_unit_test.c b/njs/test/njs_unit_test.c index 73ed0a72..900074c1 100644 --- a/njs/test/njs_unit_test.c +++ b/njs/test/njs_unit_test.c @@ -9087,6 +9087,10 @@ static njs_unit_test_t njs_test[] = "h.update('AB').digest('base64')"), nxt_string("BtlFlCqiamG+GMPiK/GbvKjdK10=") }, + { nxt_string("var h = require('crypto').createHash('sha1');" + "h.update('AB').digest('base64url')"), + nxt_string("BtlFlCqiamG-GMPiK_GbvKjdK10") }, + { nxt_string("var h = require('crypto').createHash('sha1');" "h.update('AB').digest().toString('base64')"), nxt_string("BtlFlCqiamG+GMPiK/GbvKjdK10=") }, @@ -9165,6 +9169,10 @@ static njs_unit_test_t njs_test[] = "h.update('AB').digest('base64')"), nxt_string("rcYOA0WcS6589OttlzAAPpSQsi8=") }, + { nxt_string("var h = require('crypto').createHmac('sha1', 'secret key');" + "h.update('AB').digest('base64url')"), + nxt_string("rcYOA0WcS6589OttlzAAPpSQsi8") }, + { nxt_string("var h = require('crypto').createHmac('sha1', 'secret key');" "h.update('AB').digest().toString('base64')"), nxt_string("rcYOA0WcS6589OttlzAAPpSQsi8=") }, -- 2.47.3