Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 1562 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1562 Rev 3719
Línea 1... Línea 1...
1
/**
1
/**
2
 * AES JSON formatter for CryptoJS
2
 * AES JSON formatter for CryptoJS
3
 * @link https://github.com/brainfoolong/cryptojs-aes-php
3
 * @link https://github.com/brainfoolong/cryptojs-aes-php
4
 * @version 2.1.1
4
 * @version 2.1.1
5
 */
5
 */
6
import CryptoJS from 'crypto-js'
6
import CryptoJS from 'crypto-js';
Línea 7... Línea 7...
7
 
7
 
8
const CryptoJSAesJson = {
8
const CryptoJSAesJson = {
9
  /**
9
  /**
10
   * Encrypt any value
10
   * Encrypt any value
Línea 13... Línea 13...
13
   * @return {string}
13
   * @return {string}
14
   */
14
   */
15
  encrypt: function (value, password) {
15
  encrypt: function (value, password) {
16
    return CryptoJS.AES.encrypt(JSON.stringify(value), password, {
16
    return CryptoJS.AES.encrypt(JSON.stringify(value), password, {
17
      format: CryptoJSAesJson
17
      format: CryptoJSAesJson
18
    }).toString()
18
    }).toString();
19
  },
19
  },
20
  /**
20
  /**
21
   * Decrypt a previously encrypted value
21
   * Decrypt a previously encrypted value
22
   * @param {string} jsonStr
22
   * @param {string} jsonStr
23
   * @param {string} password
23
   * @param {string} password
Línea 26... Línea 26...
26
  decrypt: function (jsonStr, password) {
26
  decrypt: function (jsonStr, password) {
27
    return JSON.parse(
27
    return JSON.parse(
28
      CryptoJS.AES.decrypt(jsonStr, password, {
28
      CryptoJS.AES.decrypt(jsonStr, password, {
29
        format: CryptoJSAesJson
29
        format: CryptoJSAesJson
30
      }).toString(CryptoJS.enc.Utf8)
30
      }).toString(CryptoJS.enc.Utf8)
31
    )
31
    );
32
  },
32
  },
33
  /**
33
  /**
34
   * Stringify cryptojs data
34
   * Stringify cryptojs data
35
   * @param {Object} cipherParams
35
   * @param {Object} cipherParams
36
   * @return {string}
36
   * @return {string}
37
   */
37
   */
38
  stringify: function (cipherParams) {
38
  stringify: function (cipherParams) {
39
    const j = { ct: cipherParams.ciphertext.toString(CryptoJS.enc.Base64) }
39
    const j = { ct: cipherParams.ciphertext.toString(CryptoJS.enc.Base64) };
40
    if (cipherParams.iv) j.iv = cipherParams.iv.toString()
40
    if (cipherParams.iv) j.iv = cipherParams.iv.toString();
41
    if (cipherParams.salt) j.s = cipherParams.salt.toString()
41
    if (cipherParams.salt) j.s = cipherParams.salt.toString();
42
    return JSON.stringify(j).replace(/\s/g, '')
42
    return JSON.stringify(j).replace(/\s/g, '');
43
  },
43
  },
44
  /**
44
  /**
45
   * Parse cryptojs data
45
   * Parse cryptojs data
46
   * @param {string} jsonStr
46
   * @param {string} jsonStr
47
   * @return {*}
47
   * @return {*}
48
   */
48
   */
49
  parse: function (jsonStr) {
49
  parse: function (jsonStr) {
50
    const j = JSON.parse(jsonStr)
50
    const j = JSON.parse(jsonStr);
51
    const cipherParams = CryptoJS.lib.CipherParams.create({
51
    const cipherParams = CryptoJS.lib.CipherParams.create({
52
      ciphertext: CryptoJS.enc.Base64.parse(j.ct)
52
      ciphertext: CryptoJS.enc.Base64.parse(j.ct)
53
    })
53
    });
54
    if (j.iv) cipherParams.iv = CryptoJS.enc.Hex.parse(j.iv)
54
    if (j.iv) cipherParams.iv = CryptoJS.enc.Hex.parse(j.iv);
55
    if (j.s) cipherParams.salt = CryptoJS.enc.Hex.parse(j.s)
55
    if (j.s) cipherParams.salt = CryptoJS.enc.Hex.parse(j.s);
56
    return cipherParams
56
    return cipherParams;
57
  }
57
  }
58
}
58
};
Línea 59... Línea 59...
59
 
59