summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2017-04-30 00:48:46 +0200
committerAnna Henningsen <anna@addaleax.net>2017-05-03 19:19:05 +0200
commit6c2daf0ce9cffbadf51359ddfb804f5a6107737c (patch)
treec8740466f1e7ff03492b09533a327d07d1c78709 /src
parent9990be2919fb73b2285118a236dc6f7adbdf7cef (diff)
downloadandroid-node-v8-6c2daf0ce9cffbadf51359ddfb804f5a6107737c.tar.gz
android-node-v8-6c2daf0ce9cffbadf51359ddfb804f5a6107737c.tar.bz2
android-node-v8-6c2daf0ce9cffbadf51359ddfb804f5a6107737c.zip
crypto: throw proper errors if out enc is UTF-16
Throw `Error`s instead of hard crashing when the `.digest()` output encoding is UTF-16. Fixes: https://github.com/nodejs/node/issues/9817 PR-URL: https://github.com/nodejs/node/pull/12752 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/node_crypto.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/node_crypto.cc b/src/node_crypto.cc
index ee48163380..361f1a0005 100644
--- a/src/node_crypto.cc
+++ b/src/node_crypto.cc
@@ -3798,6 +3798,10 @@ void Hmac::HmacDigest(const FunctionCallbackInfo<Value>& args) {
encoding = ParseEncoding(env->isolate(), args[0], BUFFER);
}
+ if (encoding == UCS2) {
+ return env->ThrowError("hmac.digest() does not support UTF-16");
+ }
+
unsigned char* md_value = nullptr;
unsigned int md_len = 0;
@@ -3921,6 +3925,10 @@ void Hash::HashDigest(const FunctionCallbackInfo<Value>& args) {
encoding = ParseEncoding(env->isolate(), args[0], BUFFER);
}
+ if (encoding == UCS2) {
+ return env->ThrowError("hash.digest() does not support UTF-16");
+ }
+
unsigned char md_value[EVP_MAX_MD_SIZE];
unsigned int md_len;