const AES = require("../../gramjs/crypto/AES"); const AESModeCTR = require("../../gramjs/crypto/AESCTR"); describe("IGE encrypt function", () => { test( "it should return 4a657a834edc2956ec95b2a42ec8c1f2d1f0a6028ac26fd830ed23855574b4e69dd1a2be2ba18a53a49b879b2" + "45e1065e14b6e8ac5ba9b24befaff3209b77b5f", () => { const plainText = Buffer.from( "this should hold a 64 characters long string. only 10 more left." ); const iv = Buffer.from("the iv needs 32 characters long."); const key = Buffer.from("the key needs 32 characters long"); const encrypted = Buffer.from( "4a657a834edc2956ec95b2a42ec8c1f2d1f0a6028ac26fd830ed23855574b4e69dd1a2be" + "2ba18a53a49b879b245e1065e14b6e8ac5ba9b24befaff3209b77b5f", "hex" ); expect(AES.encryptIge(plainText, key, iv)).toEqual(encrypted); } ); }); describe("IGE decrypt function", () => { test('it should return "this should hold a 64 characters long string. only 10 more left."', () => { const encrypted = Buffer.from( "4a657a834edc2956ec95b2a42ec8c1f2d1f0a6028ac26fd830ed23855574b4e69dd1a2be" + "2ba18a53a49b879b245e1065e14b6e8ac5ba9b24befaff3209b77b5f", "hex" ); const iv = Buffer.from("the iv needs 32 characters long."); const key = Buffer.from("the key needs 32 characters long"); const plainText = Buffer.from( "this should hold a 64 characters long string. only 10 more left." ); expect(AES.decryptIge(encrypted, key, iv)).toEqual(plainText); }); }); describe("CTR encrypt function", () => { test( "it should return 5f40f14f8b70178f70e8045b44eff5f1b148714f23cd and" + " cd0779d148b466935cf573450212451692bc82fccd5b106e53", () => { const encryptKey = Buffer.from("the key needs 32 characters long"); const encryptIv = Buffer.from("the iv does not."); const encryptor = new AESModeCTR(encryptKey, encryptIv); const firstData = Buffer.from("this can be any length"); const firstResult = encryptor.encrypt(firstData); const secondData = Buffer.from("this also can be anything"); const secondResult = encryptor.encrypt(secondData); const outputFirst = Buffer.from( "5f40f14f8b70178f70e8045b44eff5f1b148714f23cd", "hex" ); const outputSecond = Buffer.from( "cd0779d148b466935cf573450212451692bc82fccd5b106e53", "hex" ); expect([firstResult, secondResult]).toEqual([outputFirst, outputSecond]); } ); });