function verifyOneShot(algorithm, data, key, signature) { if (algorithm != null) validateString(algorithm, 'algorithm'); if (!isArrayBufferView(data)) { throw new ERR_INVALID_ARG_TYPE( 'data', ['Buffer', 'TypedArray', 'DataView'], data ); } const { data: keyData, format: keyFormat, type: keyType, passphrase: keyPassphrase } = preparePublicOrPrivateKey(key); // Options specific to RSA const rsaPadding = getPadding(key); const pssSaltLength = getSaltLength(key); if (!isArrayBufferView(signature)) { throw new ERR_INVALID_ARG_TYPE( 'signature', ['Buffer', 'TypedArray', 'DataView'], signature ); } return _verifyOneShot(keyData, keyFormat, keyType, keyPassphrase, signature, data, algorithm, rsaPadding, pssSaltLength); }
return (options, buffer) => { const { format, type, data, passphrase } = keyType === 'private' ? preparePrivateKey(options) : preparePublicOrPrivateKey(options); const padding = options.padding || defaultPadding; return method(data, format, type, passphrase, buffer, padding); };
Verify.prototype.verify = function verify(options, signature, sigEncoding) { const { data, format, type, passphrase } = preparePublicOrPrivateKey(options, true); sigEncoding = sigEncoding || getDefaultEncoding(); // Options specific to RSA var rsaPadding = getPadding(options); var pssSaltLength = getSaltLength(options); signature = validateArrayBufferView(toBuf(signature, sigEncoding), 'signature'); return this[kHandle].verify(data, format, type, passphrase, signature, rsaPadding, pssSaltLength); };