diff --git a/src/crypto/crypto_keygen.cc b/src/crypto/crypto_keygen.cc index 8def58a5f10cd9..752c8402aac2c1 100644 --- a/src/crypto/crypto_keygen.cc +++ b/src/crypto/crypto_keygen.cc @@ -16,7 +16,6 @@ using v8::Int32; using v8::Just; using v8::Local; using v8::Maybe; -using v8::Nothing; using v8::Object; using v8::Uint32; using v8::Value; @@ -63,15 +62,11 @@ Maybe SecretKeyGenTraits::AdditionalConfig( const FunctionCallbackInfo& args, unsigned int* offset, SecretKeyGenConfig* params) { - Environment* env = Environment::GetCurrent(args); CHECK(args[*offset]->IsUint32()); - params->length = args[*offset].As()->Value() / CHAR_BIT; - if (params->length > INT_MAX) { - THROW_ERR_OUT_OF_RANGE(env, - "length must be less than or equal to %u bits", - static_cast(INT_MAX) * CHAR_BIT); - return Nothing(); - } + uint32_t bits = args[*offset].As()->Value(); + static_assert(std::numeric_limits::max() / CHAR_BIT <= + INT_MAX); + params->length = bits / CHAR_BIT; *offset += 1; return Just(true); }