Skip to content

Commit 0e63724

Browse files
committed
crypto: use new OpenSSL constants in CipherBase
This change replaces some constants with better alternatives which were unavailable in OpenSSL 1.0.2. PR-URL: #20339 Refs: #19794 Refs: #18138 Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: Daniel Bevenius <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: James M Snell <[email protected]>
1 parent 109cfa1 commit 0e63724

File tree

1 file changed

+3
-8
lines changed

1 file changed

+3
-8
lines changed

src/node_crypto.cc

+3-8
Original file line numberDiff line numberDiff line change
@@ -2809,10 +2809,7 @@ bool CipherBase::InitAuthenticated(const char *cipher_type, int iv_len,
28092809
unsigned int auth_tag_len) {
28102810
CHECK(IsAuthenticatedMode());
28112811

2812-
// TODO(tniessen) Use EVP_CTRL_AEAD_SET_IVLEN when migrating to OpenSSL 1.1.0
2813-
static_assert(EVP_CTRL_CCM_SET_IVLEN == EVP_CTRL_GCM_SET_IVLEN,
2814-
"OpenSSL constants differ between GCM and CCM");
2815-
if (!EVP_CIPHER_CTX_ctrl(ctx_, EVP_CTRL_GCM_SET_IVLEN, iv_len, nullptr)) {
2812+
if (!EVP_CIPHER_CTX_ctrl(ctx_, EVP_CTRL_AEAD_SET_IVLEN, iv_len, nullptr)) {
28162813
env()->ThrowError("Invalid IV length");
28172814
return false;
28182815
}
@@ -3122,10 +3119,8 @@ bool CipherBase::Final(unsigned char** out, int *out_len) {
31223119
// be given by the user.
31233120
if (mode == EVP_CIPH_GCM_MODE && auth_tag_len_ == kNoAuthTagLength)
31243121
auth_tag_len_ = sizeof(auth_tag_);
3125-
// TOOD(tniessen) Use EVP_CTRL_AEAP_GET_TAG in OpenSSL 1.1.0
3126-
static_assert(EVP_CTRL_CCM_GET_TAG == EVP_CTRL_GCM_GET_TAG,
3127-
"OpenSSL constants differ between GCM and CCM");
3128-
CHECK_EQ(1, EVP_CIPHER_CTX_ctrl(ctx_, EVP_CTRL_GCM_GET_TAG, auth_tag_len_,
3122+
CHECK_EQ(1, EVP_CIPHER_CTX_ctrl(ctx_, EVP_CTRL_AEAD_GET_TAG,
3123+
auth_tag_len_,
31293124
reinterpret_cast<unsigned char*>(auth_tag_)));
31303125
}
31313126
}

0 commit comments

Comments
 (0)