google-closure-compiler
Version:
Check, compile, optimize and compress Javascript with Closure-Compiler
539 lines (458 loc) • 10.7 kB
JavaScript
/*
* Copyright 2012 The Closure Compiler Authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @fileoverview Definitions for node's crypto module. Depends on the buffer module.
* @see http://nodejs.org/api/crypto.html
* @see https://github.com/joyent/node/blob/master/lib/crypto.js
*/
var stream = require('stream');
/**
* @const
*/
var crypto = {};
/**
* @type {string}
*/
crypto.DEFAULT_ENCODING;
/**
* @constructor
*/
crypto.Credentials = function () {};
/** @type {string|Buffer} */
crypto.Credentials.prototype.pfx;
/** @type {string|Buffer} */
crypto.Credentials.prototype.key;
/** @type {string} */
crypto.Credentials.prototype.passphrase;
/** @type {string|Buffer} */
crypto.Credentials.prototype.cert;
/** @type {Array.<string|Buffer>} */
crypto.Credentials.prototype.ca;
/** @type {Array.<string>|string} */
crypto.Credentials.prototype.crl;
/** @type {string} */
crypto.Credentials.prototype.ciphers;
/**
* @param {Object.<string,string>=} details
* @return {crypto.Credentials}
*/
crypto.createCredentials;
/**
* @param {string} algorithm
* @return {crypto.Hash}
*/
crypto.createHash;
/**
* @param {string} algorithm
* @param {Object=} options
* @constructor
* @extends stream.Transform
*/
crypto.Hash = function(algorithm, options) {};
/**
* @param {string|Buffer} data
* @param {string=} input_encoding
* @return {void}
*/
crypto.Hash.prototype.update;
/**
* @param {string=} encoding
* @return {string}
*/
crypto.Hash.prototype.digest;
/**
* @param {string} algorithm
* @param {string|Buffer} key
* @return {crypto.Hmac}
*/
crypto.createHmac;
/**
* @param {string} hmac
* @param {string|Buffer} key
* @param {Object=} options
* @constructor
* @extends stream.Transform
*/
crypto.Hmac = function(hmac, key, options) {};
/**
* @param {string|Buffer} data
* @return {void}
*/
crypto.Hmac.prototype.update;
/**
* @param {string} encoding
* @return {void}
*/
crypto.Hmac.prototype.digest;
/**
* @param {string} algorithm
* @param {string|Buffer} password
* @return {crypto.Cipher}
*/
crypto.createCipher;
/**
* @param {string} algorithm
* @param {string|Buffer} key
* @param {string|Buffer} iv
* @return {crypto.Cipheriv}
*/
crypto.createCipheriv;
/**
* @param {string|Buffer} cipher
* @param {string} password
* @param {Object=} options
* @constructor
* @extends stream.Transform
*/
crypto.Cipher = function(cipher, password, options) {};
/**
* @param {string|Buffer} data
* @param {string=} input_encoding
* @param {string=} output_encoding
* @return {string|Buffer}
*/
crypto.Cipher.prototype.update;
/**
* @name crypto.Cipher.prototype.final
* @param {string=} output_encoding
* @return {string|Buffer}
*/
crypto.Cipher.prototype.final;
/**
* @param {boolean=} auto_padding
* @return {void}
*/
crypto.Cipher.prototype.setAutoPadding;
/**
* Note: Cipheriv mixes update, final, and setAutoPadding from Cipher but
* doesn't inherit directly from Cipher.
*
* @param {string} cipher
* @param {string|Buffer} key
* @param {string|Buffer} iv
* @constructor
* @extends stream.Transform
*/
crypto.Cipheriv = function(cipher, key, iv) {};
/**
* @param {string|Buffer} data
* @param {string=} input_encoding
* @param {string=} output_encoding
* @return {string|Buffer}
*/
crypto.Cipheriv.prototype.update;
/**
* @name crypto.Cipheriv.prototype.final
* @param {string=} output_encoding
* @return {string|Buffer}
*/
crypto.Cipheriv.prototype.final;
/**
* @param {boolean=} auto_padding
* @return {void}
*/
crypto.Cipheriv.prototype.setAutoPadding;
/**
* @param {string} algorithm
* @param {string|Buffer} password
* @return {crypto.Decipher}
*/
crypto.createDecipher;
/**
* @param {string} algorithm
* @param {string|Buffer} key
* @param {string|Buffer} iv
* @return {crypto.Decipheriv}
*/
crypto.createDecipheriv;
/**
* Note: Decipher mixes update, final, and setAutoPadding from Cipher but
* doesn't inherit directly from Cipher.
*
* @param {string|Buffer} cipher
* @param {string|Buffer} password
* @param {Object=} options
* @constructor
* @extends stream.Transform
*/
crypto.Decipher = function(cipher, password, options) {}
/**
* @param {string|Buffer} data
* @param {string=} input_encoding
* @param {string=} output_encoding
* @return {string|Buffer}
*/
crypto.Decipher.prototype.update;
/**
* @name crypto.Decipher.prototype.final
* @param {string=} output_encoding
* @return {string|Buffer}
*/
crypto.Decipher.prototype.final;
/**
* @param {string=} output_encoding
* @return {string|Buffer}
*/
crypto.Decipher.prototype.finaltol;
/**
* @param {boolean=} auto_padding
* @return {void}
*/
crypto.Decipher.prototype.setAutoPadding;
/**
* Note: Decipheriv mixes update, final, and setAutoPadding from Cipher but
* doesn't inherit directly from Cipher.
*
* @param {string|Buffer|crypto.Decipheriv} cipher
* @param {string|Buffer} key
* @param {string|Buffer} iv
* @param {Object=} options
* @constructor
* @extends stream.Transform
*/
crypto.Decipheriv = function(cipher, key, iv, options) {};
/**
* @param {string|Buffer} data
* @param {string=} input_encoding
* @param {string=} output_encoding
* @return {string|Buffer}
*/
crypto.Decipheriv.prototype.update;
/**
* @name crypto.Decipheriv.prototype.final
* @param {string=} output_encoding
* @return {string|Buffer}
*/
crypto.Decipheriv.prototype.final;
/**
* @param {string=} output_encoding
* @return {string|Buffer}
*/
crypto.Decipheriv.prototype.finaltol;
/**
* @param {boolean=} auto_padding
* @return {void}
*/
crypto.Decipheriv.prototype.setAutoPadding;
/**
* @param {string} algorithm
* @return {crypto.Sign}
*/
crypto.createSign;
/**
* @param {string} algorithm
* @param {Object=} options
* @constructor
* @extends stream.Writable
*/
crypto.Sign = function(algorithm, options) {};
/**
* @param {string|Buffer} data
* @return {void}
*/
crypto.Sign.prototype.update;
/**
* @param {string} private_key
* @param {string=} output_format
* @return {string|Buffer}
*/
crypto.Sign.prototype.sign;
/**
* @param {string} algorithm
* @return crypto.Verify
*/
crypto.createVerify;
/**
* @param {string} algorithm
* @param {Object=} options
* @constructor
* @extends stream.Writable
*/
crypto.Verify = function(algorithm, options) {};
/**
* @param {string|Buffer} data
* @return {void}
*/
crypto.Verify.prototype.update;
/**
* @param {string} object
* @param {string|Buffer} signature
* @param {string=} signature_format
* @return {boolean}
*/
crypto.Verify.prototype.verify;
/**
* @param {number} prime
* @param {string=} encoding
* @return {crypto.DiffieHellman}
*/
crypto.createDiffieHellman;
/**
* @param {number} sizeOrKey
* @param {string=} encoding
* @constructor
*/
crypto.DiffieHellman = function(sizeOrKey, encoding) {};
/**
* @param {string=} encoding
* @return {string|Buffer}
*/
crypto.DiffieHellman.prototype.generateKeys;
/**
* @param {string|Buffer} key
* @param {string=} inEnc
* @param {string=} outEnc
* @return {string|Buffer}
*/
crypto.DiffieHellman.prototype.computeSecret;
/**
* @param {string=} encoding
* @return {string|Buffer}
*/
crypto.DiffieHellman.prototype.getPrime;
/**
* @param {string=} encoding
* @return {string|Buffer}
*/
crypto.DiffieHellman.prototype.getGenerator;
/**
* @param {string=} encoding
* @return {string|Buffer}
*/
crypto.DiffieHellman.prototype.getPublicKey;
/**
* @param {string} encoding
* @return {string|Buffer}
*/
crypto.DiffieHellman.prototype.getPrivateKey = function(encoding) {}
/**
* @param {string|Buffer} key
* @param {string=} encoding
* @return {crypto.DiffieHellman}
*/
crypto.DiffieHellman.prototype.setPublicKey;
/**
* @param {string|Buffer} key
* @param {string=} encoding
* @return {crypto.DiffieHellman}
*/
crypto.DiffieHellman.prototype.setPrivateKey;
/**
* Note: DiffieHellmanGroup mixes DiffieHellman but doesn't inherit directly.
*
* @param {string} name
* @constructor
*/
crypto.DiffieHellmanGroup = function(name) {};
/**
* @param {string=} encoding
* @return {string|Buffer}
*/
crypto.DiffieHellmanGroup.prototype.generateKeys;
/**
* @param {string|Buffer} key
* @param {string=} inEnc
* @param {string=} outEnc
* @return {string|Buffer}
*/
crypto.DiffieHellmanGroup.prototype.computeSecret;
/**
* @param {string=} encoding
* @return {string|Buffer}
*/
crypto.DiffieHellmanGroup.prototype.getPrime;
/**
* @param {string=} encoding
* @return {string|Buffer}
*/
crypto.DiffieHellmanGroup.prototype.getGenerator;
/**
* @param {string=} encoding
* @return {string|Buffer}
*/
crypto.DiffieHellmanGroup.prototype.getPublicKey;
/**
* @param {string} encoding
* @return {string|Buffer}
*/
crypto.DiffieHellmanGroup.prototype.getPrivateKey = function(encoding) {}
/**
* @param {string|Buffer} key
* @param {string=} encoding
* @return {crypto.DiffieHellmanGroup}
*/
crypto.DiffieHellmanGroup.prototype.setPublicKey;
/**
* @param {string|Buffer} key
* @param {string=} encoding
* @return {crypto.DiffieHellmanGroup}
*/
crypto.DiffieHellmanGroup.prototype.setPrivateKey;
/**
* @param {string} group_name
* @return {crypto.DiffieHellmanGroup}
*/
crypto.getDiffieHellman;
/**
* @param {string|Buffer} password
* @param {string|Buffer} salt
* @param {number} iterations
* @param {number} keylen
* @param {function(*, string)} callback
* @return {void}
*/
crypto.pbkdf2;
/**
* @param {string|Buffer} password
* @param {string|Buffer} salt
* @param {number} iterations
* @param {number} keylen
* @return {void}
*/
crypto.pbkdf2Sync;
/**
* @param {number} size
* @param {function(Error, Buffer)=} callback
* @return {void}
*/
crypto.randomBytes;
/**
* @param {number} size
* @param {function(Error, Buffer)=} callback
* @return {void}
*/
crypto.pseudoRandomBytes;
/**
* @param {number} size
* @param {function(Error, Buffer)=} callback
* @return {void}
*/
crypto.rng;
/**
* @param {number} size
* @param {function(Error, Buffer)=} callback
* @return {void}
*/
crypto.prng;
/**
* @return {Array.<string>}
*/
crypto.getCiphers;
/**
* @return {Array.<string>}
*/
crypto.getHashes;
module.exports = crypto;