/** * GOST tests. * * The GOST library already includes a range of tests for the correctness of * the algorithms. These tests are intended only to confirm that the library * has been correctly integrated into CyberChef. * * @author n1474335 [n1474335@gmail.com] * * @copyright Crown Copyright 2023 * @license Apache-2.0 */ import TestRegister from "../../lib/TestRegister.mjs"; TestRegister.addTests([ { name: "GOST Encrypt: Magma", input: "Hello, World!", expectedOutput: "f124ac5c0853870906dbaf9b56", recipeConfig: [ { op: "GOST Encrypt", args: [ { "option": "Hex", "string": "00112233" }, { "option": "Hex", "string": "0011223344556677" }, "Raw", "Hex", "GOST 28147 (Magma, 1989)", "64", "E-SC", "OFB", "CP", "ZERO" ] } ], }, { name: "GOST Encrypt: Kuznyechik", input: "Hello, World!", expectedOutput: "8673d490dfa4a66d5e3ff00ba316724f", recipeConfig: [ { op: "GOST Encrypt", args: [ { "option": "Hex", "string": "00112233" }, { "option": "Hex", "string": "00112233445566778899aabbccddeeff" }, "Raw", "Hex", "GOST R 34.12 (Kuznyechik, 2015)", "128", "E-SC", "CBC", "CP", "PKCS5" ] } ], }, { name: "GOST Decrypt: Magma", input: "f124ac5c0853870906dbaf9b56", expectedOutput: "Hello, World!", recipeConfig: [ { op: "GOST Decrypt", args: [ { "option": "Hex", "string": "00112233" }, { "option": "Hex", "string": "0011223344556677" }, "Hex", "Raw", "GOST 28147 (Magma, 1989)", "128", "E-SC", "OFB", "CP", "ZERO" ] } ], }, { name: "GOST Decrypt: Kuznyechik", input: "8673d490dfa4a66d5e3ff00ba316724f", expectedOutput: "Hello, World!\0\0\0", recipeConfig: [ { op: "GOST Decrypt", args: [ { "option": "Hex", "string": "00112233" }, { "option": "Hex", "string": "00112233445566778899aabbccddeeff" }, "Hex", "Raw", "GOST R 34.12 (Kuznyechik, 2015)", "128", "E-TEST", "CBC", "CP", "PKCS5" ] } ], }, { name: "GOST Sign", input: "Hello, World!", expectedOutput: "810d0c40e965", recipeConfig: [ { op: "GOST Sign", args: [ { "option": "Hex", "string": "00112233" }, { "option": "Hex", "string": "0011223344556677" }, "Raw", "Hex", "GOST 28147 (Magma, 1989)", "64", "E-C", 48 ] } ], }, { name: "GOST Verify", input: "Hello, World!", expectedOutput: "The signature matches", recipeConfig: [ { op: "GOST Verify", args: [ { "option": "Hex", "string": "00112233" }, { "option": "Hex", "string": "00112233445566778899aabbccddeeff" }, { "option": "Hex", "string": "42b77fb3d6f6bf04" }, "Raw", "GOST R 34.12 (Kuznyechik, 2015)", "128", "E-TEST" ] } ], }, { name: "GOST Key Wrap", input: "Hello, World!123", expectedOutput: "0bb706e92487fceef97589911faeb28200000000000000000000000000000000\r\n6b7bfd16", recipeConfig: [ { op: "GOST Key Wrap", args: [ { "option": "Hex", "string": "00112233" }, { "option": "Hex", "string": "0011223344556677" }, "Raw", "Hex", "GOST R 34.12 (Kuznyechik, 2015)", "64", "E-TEST", "CP" ] } ], }, { name: "GOST Key Unwrap", input: "c8e58458a42d21974d50103d59b469f2c8e58458a42d21974d50103d59b469f2\r\na32a1575", expectedOutput: "0123456789abcdef0123456789abcdef", recipeConfig: [ { op: "GOST Key Unwrap", args: [ { "option": "Hex", "string": "" }, { "option": "Latin1", "string": "00112233" }, "Hex", "Raw", "GOST 28147 (Magma, 1989)", "64", "E-Z", "CP" ] } ], }, ]);