コード例 #1
0
ファイル: sig.js プロジェクト: mcollina/node
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);
}
コード例 #2
0
ファイル: cipher.js プロジェクト: dnalborczyk/node
 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);
 };
コード例 #3
0
ファイル: sig.js プロジェクト: mcollina/node
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);
};