Welcome! Log In Create A New Profile

Advanced

[njs] Fixed "constructor" property of "Hash" and "Hmac" objects.

Dmitry Volyntsev
October 31, 2019 11:20AM
details: https://hg.nginx.org/njs/rev/297f7dd356c0
branches:
changeset: 1215:297f7dd356c0
user: Dmitry Volyntsev <xeioex@nginx.com>
date: Thu Oct 31 18:17:34 2019 +0300
description:
Fixed "constructor" property of "Hash" and "Hmac" objects.

diffstat:

src/njs_crypto.c | 16 ++++++++++++++++
src/test/njs_unit_test.c | 18 ++++++++++++++++++
2 files changed, 34 insertions(+), 0 deletions(-)

diffs (68 lines):

diff -r 5abe92b2cfd0 -r 297f7dd356c0 src/njs_crypto.c
--- a/src/njs_crypto.c Thu Oct 31 18:17:33 2019 +0300
+++ b/src/njs_crypto.c Thu Oct 31 18:17:34 2019 +0300
@@ -343,6 +343,14 @@ static const njs_object_prop_t njs_hash
.writable = 1,
.configurable = 1,
},
+
+ {
+ .type = NJS_PROPERTY_HANDLER,
+ .name = njs_string("constructor"),
+ .value = njs_prop_handler(njs_object_prototype_create_constructor),
+ .writable = 1,
+ .configurable = 1,
+ },
};


@@ -634,6 +642,14 @@ static const njs_object_prop_t njs_hmac
.writable = 1,
.configurable = 1,
},
+
+ {
+ .type = NJS_PROPERTY_HANDLER,
+ .name = njs_string("constructor"),
+ .value = njs_prop_handler(njs_object_prototype_create_constructor),
+ .writable = 1,
+ .configurable = 1,
+ },
};


diff -r 5abe92b2cfd0 -r 297f7dd356c0 src/test/njs_unit_test.c
--- a/src/test/njs_unit_test.c Thu Oct 31 18:17:33 2019 +0300
+++ b/src/test/njs_unit_test.c Thu Oct 31 18:17:34 2019 +0300
@@ -14191,6 +14191,15 @@ static njs_unit_test_t njs_test[] =
{ njs_str("Object.prototype.toString.call(require('crypto').createHash('sha1'))"),
njs_str("[object Object]") },

+ { njs_str("var h = require('crypto').createHash('sha1');"
+ "var Hash = h.constructor; "
+ "Hash('sha1').update('AB').digest('hex')"),
+ njs_str("06d945942aa26a61be18c3e22bf19bbca8dd2b5d") },
+
+ { njs_str("var h = require('crypto').createHash('sha1');"
+ "h.constructor.name"),
+ njs_str("Hash") },
+
{ njs_str("var h = require('crypto').createHash('md5');"
"h.update('AB').digest('hex')"),
njs_str("b86fc6b051f63d73de262d4c34e3a0a9") },
@@ -14284,6 +14293,15 @@ static njs_unit_test_t njs_test[] =
"h.digest().toString('hex')"),
njs_str("fbdb1d1b18aa6c08324b7d64b71fb76370690e1d") },

+ { njs_str("var h = require('crypto').createHmac('sha1', '');"
+ "var Hmac = h.constructor; "
+ "Hmac('sha1', '').digest('hex')"),
+ njs_str("fbdb1d1b18aa6c08324b7d64b71fb76370690e1d") },
+
+ { njs_str("var h = require('crypto').createHmac('sha1', '');"
+ "h.constructor.name"),
+ njs_str("Hmac") },
+
{ njs_str("var h = require('crypto').createHmac('md5', 'secret key');"
"h.update('AB').digest('hex')"),
njs_str("9c72728915eb26620a5caeafd0063b29") },
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[njs] Fixed "constructor" property of "Hash" and "Hmac" objects.

Dmitry Volyntsev 234 October 31, 2019 11:20AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 290
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready