|
| 1 | +import C from '../src/index'; |
| 2 | + |
| 3 | +beforeAll(async () => { |
| 4 | + await C.loadAllWasm(); |
| 5 | +}); |
| 6 | + |
| 7 | +describe('load-all0wasm-test', () => { |
| 8 | + test('testLoader', () => { |
| 9 | + expect(C.algo.MD5.loadWasm).not.toBeNull(); |
| 10 | + expect(C.algo.SHA1.loadWasm).not.toBeNull(); |
| 11 | + expect(C.algo.SHA3.loadWasm).not.toBeNull(); |
| 12 | + expect(C.algo.SHA224.loadWasm).not.toBeNull(); |
| 13 | + expect(C.algo.SHA256.loadWasm).not.toBeNull(); |
| 14 | + expect(C.algo.SHA384.loadWasm).not.toBeNull(); |
| 15 | + expect(C.algo.SHA512.loadWasm).not.toBeNull(); |
| 16 | + expect(C.algo.RIPEMD160.loadWasm).not.toBeNull(); |
| 17 | + expect(C.algo.EvpKDF.loadWasm).not.toBeNull(); |
| 18 | + expect(C.algo.AES.loadWasm).not.toBeNull(); |
| 19 | + expect(C.algo.Blowfish.loadWasm).not.toBeNull(); |
| 20 | + expect(C.algo.DES.loadWasm).not.toBeNull(); |
| 21 | + expect(C.algo.TripleDES.loadWasm).not.toBeNull(); |
| 22 | + expect(C.algo.Rabbit.loadWasm).not.toBeNull(); |
| 23 | + expect(C.algo.RabbitLegacy.loadWasm).not.toBeNull(); |
| 24 | + expect(C.algo.RC4.loadWasm).not.toBeNull(); |
| 25 | + }); |
| 26 | + |
| 27 | + test('testHasherAndEncryption', () => { |
| 28 | + expect(C.MD5('').toString()).toBe('d41d8cd98f00b204e9800998ecf8427e'); |
| 29 | + expect(C.SHA1('').toString()).toBe('da39a3ee5e6b4b0d3255bfef95601890afd80709'); |
| 30 | + expect(C.SHA224('').toString()).toBe('d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f'); |
| 31 | + expect(C.SHA256('').toString()).toBe('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'); |
| 32 | + expect(C.SHA384('').toString()).toBe('38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b'); |
| 33 | + expect(C.SHA512('').toString()).toBe('cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'); |
| 34 | + expect(C.SHA3('', { outputLength: 512 }).toString()).toBe('0eab42de4c3ceb9235fc91acffe746b29c29a8c366b7c60e4e67c466f36a4304c00fa9caf9d87976ba469bcbe06713b435f091ef2769fb160cdab33d3670680e'); |
| 35 | + expect(C.RIPEMD160('').toString()).toBe('9c1185a5c5e9fc54612808977ee8f548b2258d31'); |
| 36 | + |
| 37 | + // evpkdf |
| 38 | + expect(C.EvpKDF('password', 'saltsalt', { keySize: (256+128)/32 }).toString()).toBe('fdbdf3419fff98bdb0241390f62a9db35f4aba29d77566377997314ebfc709f20b5ca7b1081f94b1ac12e3c8ba87d05a'); |
| 39 | + // aes |
| 40 | + expect(C.AES.encrypt(C.enc.Hex.parse('00112233445566778899aabbccddeeff'), C.enc.Hex.parse('000102030405060708090a0b0c0d0e0f'), { |
| 41 | + mode: C.mode.ECB, |
| 42 | + padding: C.pad.NoPadding |
| 43 | + }).ciphertext.toString()).toBe('69c4e0d86a7b0430d8cdb78070b4c55a'); |
| 44 | + // blowfish |
| 45 | + expect(C.Blowfish.encrypt('Test', |
| 46 | + 'pass', |
| 47 | + { |
| 48 | + salt: C.enc.Hex.parse('AA00000000000000'), |
| 49 | + hasher: C.algo.SHA256 |
| 50 | + }).toString()).toBe('U2FsdGVkX1+qAAAAAAAAAKTIU8MPrBdH'); |
| 51 | + // des |
| 52 | + expect(C.DES.encrypt(C.enc.Hex.parse('0000000000000000'), C.enc.Hex.parse('8000000000000000'), { |
| 53 | + mode: C.mode.ECB, |
| 54 | + padding: C.pad.NoPadding |
| 55 | + }).ciphertext.toString()).toBe('95a8d72813daa94d'); |
| 56 | + // tripleDES |
| 57 | + expect(C.TripleDES.encrypt(C.enc.Hex.parse('0000000000000000'), C.enc.Hex.parse('800101010101010180010101010101018001010101010101'), { |
| 58 | + mode: C.mode.ECB, |
| 59 | + padding: C.pad.NoPadding |
| 60 | + }).ciphertext.toString()).toBe('95a8d72813daa94d'); |
| 61 | + // rabbit |
| 62 | + expect(C.Rabbit.encrypt(C.enc.Hex.parse('00000000000000000000000000000000'), C.enc.Hex.parse('0053a6f94c9ff24598eb3e91e4378add'), { |
| 63 | + iv: C.enc.Hex.parse('0d74db42a91077de') |
| 64 | + }).ciphertext.toString()) |
| 65 | + .toBe('75d186d6bc6905c64f1b2dfdd51f7bfc'); |
| 66 | + // rabbitLegacy |
| 67 | + expect(C.RabbitLegacy.encrypt(C.enc.Hex.parse('00000000000000000000000000000000'), C.enc.Hex.parse('00000000000000000000000000000000'), { |
| 68 | + iv: C.enc.Hex.parse('0000000000000000') |
| 69 | + }).ciphertext.toString()) |
| 70 | + .toBe('edb70567375dcd7cd89554f85e27a7c6'); |
| 71 | + // rc4 |
| 72 | + expect(C.RC4.encrypt(C.enc.Hex.parse('0000000000000000'), C.enc.Hex.parse('0123456789abcdef')).ciphertext.toString()) |
| 73 | + .toBe('7494c2e7104b0879'); |
| 74 | + }); |
| 75 | +}); |
0 commit comments