Hi.
I try to improve test coverage of internal/crypto.
Already I submitted pull requests that I can write test.
#17555, #17458, #17449, #17447, #17426, #17418, #17728 and #17730.
I found two coverage blockers.
1. process.binding('crypto').PBKDF2 does not returns -1
Code
|
if (PBKDF2(password, salt, iterations, keylen, digest, next) === -1) |
|
throw new errors.TypeError('ERR_CRYPTO_INVALID_DIGEST', digest); |
|
} else { |
|
const ret = PBKDF2(password, salt, iterations, keylen, digest); |
|
if (ret === -1) |
|
throw new errors.TypeError('ERR_CRYPTO_INVALID_DIGEST', digest); |
Reason
PBKDF2 returns undefined always because PBKDF2 returns anything.
See also:
|
void PBKDF2(const FunctionCallbackInfo<Value>& args) { |
So never match returns -1.
2. Can't throw ERR_CRYPTO_HASH_UPDATE_FAILED
Code
|
if (!this._handle.update(data, encoding || getDefaultEncoding())) |
|
throw new errors.Error('ERR_CRYPTO_HASH_UPDATE_FAILED'); |
Reason
Hash#_handle.update does not throw an Error(ERR_CRYPTO_HASH_UPDATE_FAILED).
Hash#_handle.update returns false when mdctx_ pointed at null.
But I could not reproduce mdctx_ make the null pointer.
See also:
|
bool Hash::HashUpdate(const char* data, int len) { |
|
if (mdctx_ == nullptr) |
|
return false; |
1: I think should remove check where PBKDF2 returns -1.
2: Please teach me how to make mdctx_ to the null pointer.
Hi.
I try to improve test coverage of internal/crypto.
Already I submitted pull requests that I can write test.
#17555, #17458, #17449, #17447, #17426, #17418, #17728 and #17730.
I found two coverage blockers.
1.
process.binding('crypto').PBKDF2does not returns -1Code
node/lib/internal/crypto/pbkdf2.js
Lines 82 to 87 in 7124b46
Reason
PBKDF2returns undefined always becausePBKDF2returns anything.See also:
node/src/node_crypto.cc
Line 5569 in efffcc2
So never match returns
-1.2. Can't throw
ERR_CRYPTO_HASH_UPDATE_FAILEDCode
node/lib/internal/crypto/hash.js
Lines 57 to 58 in 7907534
Reason
Hash#_handle.update does not throw an Error(ERR_CRYPTO_HASH_UPDATE_FAILED).
Hash#_handle.update returns false when
mdctx_pointed at null.But I could not reproduce mdctx_ make the null pointer.
See also:
node/src/node_crypto.cc
Lines 4131 to 4133 in efffcc2
1: I think should remove check where PBKDF2 returns -1.
2: Please teach me how to make
mdctx_to the null pointer.