crypto-js
Advanced tools
Comparing version 4.1.1 to 4.2.0
{ | ||
"name": "crypto-js", | ||
"version": "4.1.1", | ||
"version": "4.2.0", | ||
"description": "JavaScript library of crypto standards.", | ||
@@ -5,0 +5,0 @@ "license": "MIT", |
@@ -783,3 +783,3 @@ ;(function (root, factory, undef) { | ||
*/ | ||
execute: function (password, keySize, ivSize, salt) { | ||
execute: function (password, keySize, ivSize, salt, hasher) { | ||
// Generate random salt | ||
@@ -791,4 +791,9 @@ if (!salt) { | ||
// Derive key and IV | ||
var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt); | ||
if (!hasher) { | ||
var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt); | ||
} else { | ||
var key = EvpKDF.create({ keySize: keySize + ivSize, hasher: hasher }).compute(password, salt); | ||
} | ||
// Separate key and IV | ||
@@ -839,3 +844,3 @@ var iv = WordArray.create(key.words.slice(keySize), ivSize * 4); | ||
// Derive key and other params | ||
var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize); | ||
var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher); | ||
@@ -879,3 +884,3 @@ // Add IV to config | ||
// Derive key and other params | ||
var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt); | ||
var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher); | ||
@@ -882,0 +887,0 @@ // Add IV to config |
@@ -42,3 +42,6 @@ ;(function (root, factory) { | ||
*/ | ||
stringify: function (wordArray, urlSafe=true) { | ||
stringify: function (wordArray, urlSafe) { | ||
if (urlSafe === undefined) { | ||
urlSafe = true | ||
} | ||
// Shortcuts | ||
@@ -92,3 +95,7 @@ var words = wordArray.words; | ||
*/ | ||
parse: function (base64Str, urlSafe=true) { | ||
parse: function (base64Str, urlSafe) { | ||
if (urlSafe === undefined) { | ||
urlSafe = true | ||
} | ||
// Shortcuts | ||
@@ -140,4 +147,5 @@ var base64StrLength = base64Str.length; | ||
return CryptoJS.enc.Base64url; | ||
})); |
;(function (root, factory, undef) { | ||
if (typeof exports === "object") { | ||
// CommonJS | ||
module.exports = exports = factory(require("./core"), require("./x64-core"), require("./lib-typedarrays"), require("./enc-utf16"), require("./enc-base64"), require("./enc-base64url"), require("./md5"), require("./sha1"), require("./sha256"), require("./sha224"), require("./sha512"), require("./sha384"), require("./sha3"), require("./ripemd160"), require("./hmac"), require("./pbkdf2"), require("./evpkdf"), require("./cipher-core"), require("./mode-cfb"), require("./mode-ctr"), require("./mode-ctr-gladman"), require("./mode-ofb"), require("./mode-ecb"), require("./pad-ansix923"), require("./pad-iso10126"), require("./pad-iso97971"), require("./pad-zeropadding"), require("./pad-nopadding"), require("./format-hex"), require("./aes"), require("./tripledes"), require("./rc4"), require("./rabbit"), require("./rabbit-legacy")); | ||
module.exports = exports = factory(require("./core"), require("./x64-core"), require("./lib-typedarrays"), require("./enc-utf16"), require("./enc-base64"), require("./enc-base64url"), require("./md5"), require("./sha1"), require("./sha256"), require("./sha224"), require("./sha512"), require("./sha384"), require("./sha3"), require("./ripemd160"), require("./hmac"), require("./pbkdf2"), require("./evpkdf"), require("./cipher-core"), require("./mode-cfb"), require("./mode-ctr"), require("./mode-ctr-gladman"), require("./mode-ofb"), require("./mode-ecb"), require("./pad-ansix923"), require("./pad-iso10126"), require("./pad-iso97971"), require("./pad-zeropadding"), require("./pad-nopadding"), require("./format-hex"), require("./aes"), require("./tripledes"), require("./rc4"), require("./rabbit"), require("./rabbit-legacy"), require("./blowfish")); | ||
} | ||
else if (typeof define === "function" && define.amd) { | ||
// AMD | ||
define(["./core", "./x64-core", "./lib-typedarrays", "./enc-utf16", "./enc-base64", "./enc-base64url", "./md5", "./sha1", "./sha256", "./sha224", "./sha512", "./sha384", "./sha3", "./ripemd160", "./hmac", "./pbkdf2", "./evpkdf", "./cipher-core", "./mode-cfb", "./mode-ctr", "./mode-ctr-gladman", "./mode-ofb", "./mode-ecb", "./pad-ansix923", "./pad-iso10126", "./pad-iso97971", "./pad-zeropadding", "./pad-nopadding", "./format-hex", "./aes", "./tripledes", "./rc4", "./rabbit", "./rabbit-legacy"], factory); | ||
define(["./core", "./x64-core", "./lib-typedarrays", "./enc-utf16", "./enc-base64", "./enc-base64url", "./md5", "./sha1", "./sha256", "./sha224", "./sha512", "./sha384", "./sha3", "./ripemd160", "./hmac", "./pbkdf2", "./evpkdf", "./cipher-core", "./mode-cfb", "./mode-ctr", "./mode-ctr-gladman", "./mode-ofb", "./mode-ecb", "./pad-ansix923", "./pad-iso10126", "./pad-iso97971", "./pad-zeropadding", "./pad-nopadding", "./format-hex", "./aes", "./tripledes", "./rc4", "./rabbit", "./rabbit-legacy", "./blowfish"], factory); | ||
} | ||
@@ -10,0 +10,0 @@ else { |
@@ -78,3 +78,3 @@ ;(function (root, factory) { | ||
// Working varialbes | ||
// Working variables | ||
var a = H[0]; | ||
@@ -81,0 +81,0 @@ var b = H[1]; |
{ | ||
"name": "crypto-js", | ||
"version": "4.1.1", | ||
"version": "4.2.0", | ||
"description": "JavaScript library of crypto standards.", | ||
@@ -5,0 +5,0 @@ "license": "MIT", |
;(function (root, factory, undef) { | ||
if (typeof exports === "object") { | ||
// CommonJS | ||
module.exports = exports = factory(require("./core"), require("./sha1"), require("./hmac")); | ||
module.exports = exports = factory(require("./core"), require("./sha256"), require("./hmac")); | ||
} | ||
else if (typeof define === "function" && define.amd) { | ||
// AMD | ||
define(["./core", "./sha1", "./hmac"], factory); | ||
define(["./core", "./sha256", "./hmac"], factory); | ||
} | ||
@@ -23,3 +23,3 @@ else { | ||
var C_algo = C.algo; | ||
var SHA1 = C_algo.SHA1; | ||
var SHA256 = C_algo.SHA256; | ||
var HMAC = C_algo.HMAC; | ||
@@ -35,9 +35,9 @@ | ||
* @property {number} keySize The key size in words to generate. Default: 4 (128 bits) | ||
* @property {Hasher} hasher The hasher to use. Default: SHA1 | ||
* @property {number} iterations The number of iterations to perform. Default: 1 | ||
* @property {Hasher} hasher The hasher to use. Default: SHA256 | ||
* @property {number} iterations The number of iterations to perform. Default: 250000 | ||
*/ | ||
cfg: Base.extend({ | ||
keySize: 128/32, | ||
hasher: SHA1, | ||
iterations: 1 | ||
hasher: SHA256, | ||
iterations: 250000 | ||
}), | ||
@@ -44,0 +44,0 @@ |
@@ -1,5 +0,11 @@ | ||
# crypto-js [![Build Status](https://travis-ci.org/brix/crypto-js.svg?branch=develop)](https://travis-ci.org/brix/crypto-js) | ||
# crypto-js | ||
JavaScript library of crypto standards. | ||
## Discontinued | ||
Active development of CryptoJS has been discontinued. This library is no longer maintained. | ||
Nowadays, NodeJS and modern browsers have a native `Crypto` module. The latest version of CryptoJS already uses the native Crypto module for random number generation, since `Math.random()` is not crypto-safe. Further development of CryptoJS would result in it only being a wrapper of native Crypto. Therefore, development and maintenance has been discontinued, it is time to go for the native `crypto` module. | ||
## Node.js (Install) | ||
@@ -215,2 +221,10 @@ | ||
### 4.2.0 | ||
Change default hash algorithm and iteration's for PBKDF2 to prevent weak security by using the default configuration. | ||
Custom KDF Hasher | ||
Blowfish support | ||
### 4.1.1 | ||
@@ -217,0 +231,0 @@ |
Sorry, the diff of this file is too big to display
486947
56
12425
276