Sha256: 9d0dd62d2746ac7c12ec7cd780c588f06758aba01a422a44344880a5b35a19d3

Contents?: true

Size: 1.02 KB

Versions: 62

Compression:

Stored size: 1.02 KB

Contents

module.exports = function (crypto, password, keyLen, ivLen) {
  keyLen = keyLen/8;
  ivLen = ivLen || 0;
  var ki = 0;
  var ii = 0;
  var key = new Buffer(keyLen);
  var iv = new Buffer(ivLen);
  var addmd = 0;
  var md, md_buf;
  var i;
  while (true) {
    md = crypto.createHash('md5');
    if(addmd++ > 0) {
       md.update(md_buf);
    }
    md.update(password);
    md_buf = md.digest();
    i = 0;
    if(keyLen > 0) {
      while(true) {
        if(keyLen === 0) {
          break;
        }
        if(i === md_buf.length) {
          break;
        }
        key[ki++] = md_buf[i];
        keyLen--;
        i++;
       }
    }
    if(ivLen > 0 && i !== md_buf.length) {
      while(true) {
        if(ivLen === 0) {
          break;
        }
        if(i === md_buf.length) {
          break;
        }
       iv[ii++] = md_buf[i];
       ivLen--;
       i++;
     }
   }
   if(keyLen === 0 && ivLen === 0) {
      break;
    }
  }
  for(i=0;i<md_buf.length;i++) {
    md_buf[i] = 0;
  }
  return {
    key: key,
    iv: iv
  };
};

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
smock-0.1.268 node_modules/webpack/node_modules/node-libs-browser/node_modules/crypto-browserify/node_modules/browserify-aes/EVP_BytesToKey.js
smock-0.1.267 node_modules/webpack/node_modules/node-libs-browser/node_modules/crypto-browserify/node_modules/browserify-aes/EVP_BytesToKey.js
smock-0.1.266 node_modules/webpack/node_modules/node-libs-browser/node_modules/crypto-browserify/node_modules/browserify-aes/EVP_BytesToKey.js
smock-0.1.265 node_modules/webpack/node_modules/node-libs-browser/node_modules/crypto-browserify/node_modules/browserify-aes/EVP_BytesToKey.js
smock-0.1.264 node_modules/webpack/node_modules/node-libs-browser/node_modules/crypto-browserify/node_modules/browserify-aes/EVP_BytesToKey.js
smock-0.1.263 node_modules/webpack/node_modules/node-libs-browser/node_modules/crypto-browserify/node_modules/browserify-aes/EVP_BytesToKey.js
smock-0.1.262 node_modules/webpack/node_modules/node-libs-browser/node_modules/crypto-browserify/node_modules/browserify-aes/EVP_BytesToKey.js
smock-0.1.261 node_modules/webpack/node_modules/node-libs-browser/node_modules/crypto-browserify/node_modules/browserify-aes/EVP_BytesToKey.js
smock-0.1.260 node_modules/webpack/node_modules/node-libs-browser/node_modules/crypto-browserify/node_modules/browserify-aes/EVP_BytesToKey.js
smock-0.1.259 node_modules/webpack/node_modules/node-libs-browser/node_modules/crypto-browserify/node_modules/browserify-aes/EVP_BytesToKey.js
smock-0.1.258 node_modules/webpack/node_modules/node-libs-browser/node_modules/crypto-browserify/node_modules/browserify-aes/EVP_BytesToKey.js
smock-0.1.256 node_modules/webpack/node_modules/node-libs-browser/node_modules/crypto-browserify/node_modules/browserify-aes/EVP_BytesToKey.js
smock-0.1.255 node_modules/webpack/node_modules/node-libs-browser/node_modules/crypto-browserify/node_modules/browserify-aes/EVP_BytesToKey.js
smock-0.1.254 node_modules/webpack/node_modules/node-libs-browser/node_modules/crypto-browserify/node_modules/browserify-aes/EVP_BytesToKey.js
smock-0.1.253 node_modules/webpack/node_modules/node-libs-browser/node_modules/crypto-browserify/node_modules/browserify-aes/EVP_BytesToKey.js
smock-0.1.252 node_modules/webpack/node_modules/node-libs-browser/node_modules/crypto-browserify/node_modules/browserify-aes/EVP_BytesToKey.js
smock-0.1.251 node_modules/webpack/node_modules/node-libs-browser/node_modules/crypto-browserify/node_modules/browserify-aes/EVP_BytesToKey.js
smock-0.1.250 node_modules/webpack/node_modules/node-libs-browser/node_modules/crypto-browserify/node_modules/browserify-aes/EVP_BytesToKey.js
smock-0.1.249 node_modules/webpack/node_modules/node-libs-browser/node_modules/crypto-browserify/node_modules/browserify-aes/EVP_BytesToKey.js
smock-0.1.247 node_modules/webpack/node_modules/node-libs-browser/node_modules/crypto-browserify/node_modules/browserify-aes/EVP_BytesToKey.js