@jscrypto/classic 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -3
- package/dist/ciphers/aes.js +1 -1
- package/dist/ciphers/aes.js.map +1 -1
- package/dist/ciphers/rc4.js +2 -2
- package/dist/ciphers/rc4.js.map +1 -1
- package/dist/ciphers/triple-des.js +1 -1
- package/dist/ciphers/triple-des.js.map +1 -1
- package/dist/index.cjs +330 -49
- package/dist/index.cjs.map +3 -3
- package/dist/index.mjs +312 -27
- package/dist/index.mjs.map +3 -3
- package/dist/jscrypto-classic.iife.js +415 -84
- package/dist/jscrypto-classic.iife.js.map +3 -3
- package/dist/jscrypto-classic.iife.min.js +2 -2
- package/dist/jscrypto-classic.iife.min.js.map +3 -3
- package/dist/jscrypto-classic.umd.js +415 -84
- package/dist/jscrypto-classic.umd.js.map +3 -3
- package/dist/jscrypto-classic.umd.min.js +2 -2
- package/dist/jscrypto-classic.umd.min.js.map +3 -3
- package/dist/kdfs/evpkdf.js +3 -2
- package/dist/kdfs/evpkdf.js.map +1 -1
- package/dist/kdfs/pbkdf2.js +1 -1
- package/dist/kdfs/pbkdf2.js.map +1 -1
- package/dist/modes/cbc.js +4 -4
- package/dist/modes/cbc.js.map +1 -1
- package/dist/modes/cfb.js +2 -2
- package/dist/modes/cfb.js.map +1 -1
- package/dist/modes/ctr.js +2 -2
- package/dist/modes/ctr.js.map +1 -1
- package/dist/modes/ecb.js +4 -4
- package/dist/modes/ecb.js.map +1 -1
- package/dist/modes/gcm.d.ts +1 -1
- package/dist/modes/gcm.d.ts.map +1 -1
- package/dist/modes/gcm.js +289 -4
- package/dist/modes/gcm.js.map +1 -1
- package/dist/modes/ofb.js +2 -2
- package/dist/modes/ofb.js.map +1 -1
- package/dist/paddings/iso10126.js +2 -1
- package/dist/paddings/iso10126.js.map +1 -1
- package/package.json +11 -2
package/README.md
CHANGED
|
@@ -49,10 +49,30 @@ const encrypted = cipher.encrypt(plaintext);
|
|
|
49
49
|
const decrypted = cipher.decrypt(encrypted);
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
+
## AES-GCM
|
|
53
|
+
|
|
54
|
+
GCM is an AEAD mode. It does not use padding, and encrypted output is `ciphertext || tag` by default. Decryption also supports detached tags by passing `tag`.
|
|
55
|
+
|
|
56
|
+
```ts
|
|
57
|
+
import { registry } from '@jscrypto/classic';
|
|
58
|
+
|
|
59
|
+
const cipher = registry.createCipher({
|
|
60
|
+
cipher: 'AES',
|
|
61
|
+
mode: 'GCM',
|
|
62
|
+
key,
|
|
63
|
+
iv: nonce,
|
|
64
|
+
aad,
|
|
65
|
+
tagLength: 16,
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
const sealed = cipher.encrypt(plaintext);
|
|
69
|
+
const decrypted = cipher.decrypt(sealed);
|
|
70
|
+
```
|
|
71
|
+
|
|
52
72
|
## Components
|
|
53
73
|
|
|
54
74
|
- Ciphers: `aes`, `des`, `tripleDes`, `rc4`, `rc4Drop`.
|
|
55
|
-
- Modes: `cbc`, `cfb`, `ctr`, `ofb`, `ecb`.
|
|
75
|
+
- Modes: `cbc`, `cfb`, `ctr`, `ofb`, `ecb`, `gcm`.
|
|
56
76
|
- Paddings: `pkcs7`, `iso97971`, `ansiX923`, `iso10126`, `zeroPadding`, `noPadding`.
|
|
57
77
|
- KDFs: `pbkdf2`, `evpKdf`.
|
|
58
78
|
- Formats: `opensslFormat`.
|
|
@@ -85,5 +105,3 @@ const registry = createRegistry()
|
|
|
85
105
|
});
|
|
86
106
|
</script>
|
|
87
107
|
```
|
|
88
|
-
|
|
89
|
-
AES-GCM is intentionally left out of this first release slice.
|
package/dist/ciphers/aes.js
CHANGED
|
@@ -10,7 +10,7 @@ export const aes = {
|
|
|
10
10
|
},
|
|
11
11
|
};
|
|
12
12
|
export function createAesCipher(key) {
|
|
13
|
-
if (
|
|
13
|
+
if (key.length !== 16 && key.length !== 24 && key.length !== 32) {
|
|
14
14
|
throw new Error('AES key must be 128, 192, or 256 bits.');
|
|
15
15
|
}
|
|
16
16
|
return createCryptoJsBlockCipher({
|
package/dist/ciphers/aes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aes.js","sourceRoot":"","sources":["../../src/ciphers/aes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAG9E,MAAM,CAAC,MAAM,GAAG,GAA2B;IACzC,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtB,MAAM,CAAC,GAAG;QACR,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,GAAe;IAC7C,IAAI,
|
|
1
|
+
{"version":3,"file":"aes.js","sourceRoot":"","sources":["../../src/ciphers/aes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAG9E,MAAM,CAAC,MAAM,GAAG,GAA2B;IACzC,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtB,MAAM,CAAC,GAAG;QACR,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,GAAe;IAC7C,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,yBAAyB,CAAC;QAC/B,IAAI,EAAE,KAAK;QACX,GAAG;QACH,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG;KAC7B,CAAC,CAAC;AACL,CAAC"}
|
package/dist/ciphers/rc4.js
CHANGED
|
@@ -40,10 +40,10 @@ export function createRc4Transform(key, drop = 0) {
|
|
|
40
40
|
assertNotFinalized(finalized);
|
|
41
41
|
return processInput(input);
|
|
42
42
|
},
|
|
43
|
-
finalize(input = new Uint8Array()) {
|
|
43
|
+
finalize(input = new Uint8Array(0)) {
|
|
44
44
|
assertNotFinalized(finalized);
|
|
45
45
|
finalized = true;
|
|
46
|
-
return input.length === 0 ? new Uint8Array() : processInput(input);
|
|
46
|
+
return input.length === 0 ? new Uint8Array(0) : processInput(input);
|
|
47
47
|
},
|
|
48
48
|
};
|
|
49
49
|
}
|
package/dist/ciphers/rc4.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rc4.js","sourceRoot":"","sources":["../../src/ciphers/rc4.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,GAAG,GAAiC;IAC/C,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,QAAQ;IACd,eAAe,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE;QAC9B,OAAO,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,eAAe,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE;QAC9B,OAAO,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAqC;IACvD,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,QAAQ;IACd,eAAe,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE;QAC9B,OAAO,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,eAAe,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE;QAC9B,OAAO,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACxD,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,GAAe,EAAE,IAAI,GAAG,CAAC;IAC1D,SAAS,CAAC,GAAG,CAAC,CAAC;IACf,UAAU,CAAC,IAAI,CAAC,CAAC;IAEjB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,MAAM,YAAY,GAAG,CAAC,KAAiB,EAAc,EAAE;QACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO;QACL,OAAO,CAAC,KAAK;YACX,kBAAkB,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,QAAQ,CAAC,KAAK,GAAG,IAAI,UAAU,
|
|
1
|
+
{"version":3,"file":"rc4.js","sourceRoot":"","sources":["../../src/ciphers/rc4.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ export const tripleDes = {
|
|
|
10
10
|
},
|
|
11
11
|
};
|
|
12
12
|
export function createTripleDesCipher(key) {
|
|
13
|
-
if (
|
|
13
|
+
if (key.length !== 16 && key.length !== 24) {
|
|
14
14
|
throw new Error('Triple DES key must be 128 or 192 bits.');
|
|
15
15
|
}
|
|
16
16
|
return createCryptoJsBlockCipher({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triple-des.js","sourceRoot":"","sources":["../../src/ciphers/triple-des.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAG9E,MAAM,CAAC,MAAM,SAAS,GAAiC;IACrD,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,CAAC;IACZ,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IAClB,MAAM,CAAC,GAAG;QACR,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,GAAe;IACnD,IAAI,
|
|
1
|
+
{"version":3,"file":"triple-des.js","sourceRoot":"","sources":["../../src/ciphers/triple-des.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAG9E,MAAM,CAAC,MAAM,SAAS,GAAiC;IACrD,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,CAAC;IACZ,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IAClB,MAAM,CAAC,GAAG;QACR,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,GAAe;IACnD,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,yBAAyB,CAAC;QAC/B,IAAI,EAAE,YAAY;QAClB,GAAG;QACH,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS;KACnC,CAAC,CAAC;AACL,CAAC"}
|