diff --git a/src/node_crypto.cc b/src/node_crypto.cc index 8e1319269e8ed7..f8436672373a4e 100644 --- a/src/node_crypto.cc +++ b/src/node_crypto.cc @@ -3440,15 +3440,12 @@ bool CipherBase::SetAuthTag(const char* data, unsigned int len) { void CipherBase::SetAuthTag(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); - Local buf = args[0].As(); - - if (!buf->IsObject() || !Buffer::HasInstance(buf)) - return env->ThrowTypeError("Auth tag must be a Buffer"); + THROW_AND_RETURN_IF_NOT_BUFFER(args[0], "Auth tag"); CipherBase* cipher; ASSIGN_OR_RETURN_UNWRAP(&cipher, args.Holder()); - if (!cipher->SetAuthTag(Buffer::Data(buf), Buffer::Length(buf))) + if (!cipher->SetAuthTag(Buffer::Data(args[0]), Buffer::Length(args[0]))) env->ThrowError("Attempting to set auth tag in unsupported state"); }