123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388 |
- /**
- * Cipher tests.
- *
- * @author Matt C [matt@artemisbot.uk]
- * @author n1474335 [n1474335@gmail.com]
- *
- * @copyright Crown Copyright 2018
- * @license Apache-2.0
- */
- import TestRegister from "../../TestRegister";
- TestRegister.addTests([
- {
- name: "Affine Encode: no input",
- input: "",
- expectedOutput: "",
- recipeConfig: [
- {
- op: "Affine Cipher Encode",
- args: [1, 0]
- }
- ],
- },
- {
- name: "Affine Encode: invalid a & b (non-integer)",
- input: "some keys are shaped as locks. index[me]",
- expectedOutput: "The values of a and b can only be integers.",
- recipeConfig: [
- {
- op: "Affine Cipher Encode",
- args: [0.1, 0.00001]
- }
- ],
- },
- {
- name: "Affine Encode: no effect",
- input: "some keys are shaped as locks. index[me]",
- expectedOutput: "some keys are shaped as locks. index[me]",
- recipeConfig: [
- {
- op: "Affine Cipher Encode",
- args: [1, 0]
- }
- ],
- },
- {
- name: "Affine Encode: normal",
- input: "some keys are shaped as locks. index[me]",
- expectedOutput: "vhnl tldv xyl vcxelo xv qhrtv. zkolg[nl]",
- recipeConfig: [
- {
- op: "Affine Cipher Encode",
- args: [23, 23]
- }
- ],
- },
- {
- name: "Affine Decode: no input",
- input: "",
- expectedOutput: "",
- recipeConfig: [
- {
- op: "Affine Cipher Decode",
- args: [1, 0]
- }
- ],
- },
- {
- name: "Affine Decode: invalid a & b (non-integer)",
- input: "vhnl tldv xyl vcxelo xv qhrtv. zkolg[nl]",
- expectedOutput: "The values of a and b can only be integers.",
- recipeConfig: [
- {
- op: "Affine Cipher Decode",
- args: [0.1, 0.00001]
- }
- ],
- },
- {
- name: "Affine Decode: invalid a (coprime)",
- input: "vhnl tldv xyl vcxelo xv qhrtv. zkolg[nl]",
- expectedOutput: "The value of `a` must be coprime to 26.",
- recipeConfig: [
- {
- op: "Affine Cipher Decode",
- args: [8, 23]
- }
- ],
- },
- {
- name: "Affine Decode: no effect",
- input: "vhnl tldv xyl vcxelo xv qhrtv. zkolg[nl]",
- expectedOutput: "vhnl tldv xyl vcxelo xv qhrtv. zkolg[nl]",
- recipeConfig: [
- {
- op: "Affine Cipher Decode",
- args: [1, 0]
- }
- ],
- },
- {
- name: "Affine Decode: normal",
- input: "vhnl tldv xyl vcxelo xv qhrtv. zkolg[nl]",
- expectedOutput: "some keys are shaped as locks. index[me]",
- recipeConfig: [
- {
- op: "Affine Cipher Decode",
- args: [23, 23]
- }
- ],
- },
- {
- name: "Atbash: no input",
- input: "",
- expectedOutput: "",
- recipeConfig: [
- {
- op: "Atbash Cipher",
- args: []
- }
- ],
- },
- {
- name: "Atbash: normal",
- input: "old slow slim horn",
- expectedOutput: "low hold horn slim",
- recipeConfig: [
- {
- op: "Atbash Cipher",
- args: []
- }
- ],
- },
- {
- name: "Bifid Cipher Encode: no input",
- input: "",
- expectedOutput: "",
- recipeConfig: [
- {
- "op": "Bifid Cipher Encode",
- "args": ["nothing"]
- }
- ],
- },
- {
- name: "Bifid Cipher Encode: no key",
- input: "We recreate conditions similar to the Van-Allen radiation belt in our secure facilities.",
- expectedOutput: "Vq daqcliho rmltofvlnc qbdhlcr nt qdq Fbm-Rdkkm vuoottnoi aitp al axf tdtmvt owppkaodtx.",
- recipeConfig: [
- {
- "op": "Bifid Cipher Encode",
- "args": [""]
- }
- ],
- },
- {
- name: "Bifid Cipher Encode: invalid key (non-alphabetic)",
- input: "We recreate conditions similar to the Van-Allen radiation belt in our secure facilities.",
- expectedOutput: "The key must consist only of letters in the English alphabet",
- recipeConfig: [
- {
- "op": "Bifid Cipher Encode",
- "args": ["abc123"]
- }
- ],
- },
- {
- name: "Bifid Cipher Encode: normal",
- input: "We recreate conditions similar to the Van-Allen radiation belt in our secure facilities.",
- expectedOutput: "Wc snpsigdd cpfrrcxnfi hikdnnp dm crc Fcb-Pdeug vueageacc vtyl sa zxm crebzp lyoeuaiwpv.",
- recipeConfig: [
- {
- "op": "Bifid Cipher Encode",
- "args": ["Schrodinger"]
- }
- ],
- },
- {
- name: "Bifid Cipher Decode: no input",
- input: "",
- expectedOutput: "",
- recipeConfig: [
- {
- "op": "Bifid Cipher Decode",
- "args": ["nothing"]
- }
- ],
- },
- {
- name: "Bifid Cipher Decode: no key",
- input: "Vq daqcliho rmltofvlnc qbdhlcr nt qdq Fbm-Rdkkm vuoottnoi aitp al axf tdtmvt owppkaodtx.",
- expectedOutput: "We recreate conditions similar to the Van-Allen radiation belt in our secure facilities.",
- recipeConfig: [
- {
- "op": "Bifid Cipher Decode",
- "args": [""]
- }
- ],
- },
- {
- name: "Bifid Cipher Decode: invalid key (non-alphabetic)",
- input: "Vq daqcliho rmltofvlnc qbdhlcr nt qdq Fbm-Rdkkm vuoottnoi aitp al axf tdtmvt owppkaodtx.",
- expectedOutput: "The key must consist only of letters in the English alphabet",
- recipeConfig: [
- {
- "op": "Bifid Cipher Decode",
- "args": ["abc123"]
- }
- ],
- },
- {
- name: "Bifid Cipher Decode: normal",
- input: "Wc snpsigdd cpfrrcxnfi hikdnnp dm crc Fcb-Pdeug vueageacc vtyl sa zxm crebzp lyoeuaiwpv.",
- expectedOutput: "We recreate conditions similar to the Van-Allen radiation belt in our secure facilities.",
- recipeConfig: [
- {
- "op": "Bifid Cipher Decode",
- "args": ["Schrodinger"]
- }
- ],
- },
- {
- name: "Citrix CTX1 Encode",
- input: "Password1",
- expectedOutput: "PFFAJEDBOHECJEDBODEGIMCJPOFLJKDPKLAO",
- recipeConfig: [
- {
- "op": "Citrix CTX1 Encode",
- "args": []
- }
- ],
- },
- {
- name: "Citrix CTX1 Decode: normal",
- input: "PFFAJEDBOHECJEDBODEGIMCJPOFLJKDPKLAO",
- expectedOutput: "Password1",
- recipeConfig: [
- {
- "op": "Citrix CTX1 Decode",
- "args": []
- }
- ],
- },
- {
- name: "Citrix CTX1 Decode: invalid length",
- input: "PFFAJEDBOHECJEDBODEGIMCJPOFLJKDPKLA",
- expectedOutput: "Incorrect hash length",
- recipeConfig: [
- {
- "op": "Citrix CTX1 Decode",
- "args": []
- }
- ],
- },
- {
- name: "Vigenère Encode: no input",
- input: "",
- expectedOutput: "",
- recipeConfig: [
- {
- "op": "Vigenère Encode",
- "args": ["nothing"]
- }
- ],
- },
- {
- name: "Vigenère Encode: no key",
- input: "LUGGAGEBASEMENTVARENNESALLIESCANBECLOTHEDASENEMIESENEMIESCANBECLOTHEDASALLIESALWAYSUSEID",
- expectedOutput: "No key entered",
- recipeConfig: [
- {
- "op": "Vigenère Encode",
- "args": [""]
- }
- ],
- },
- {
- name: "Vigenère Encode: invalid key",
- input: "LUGGAGEBASEMENTVARENNESALLIESCANBECLOTHEDASENEMIESENEMIESCANBECLOTHEDASALLIESALWAYSUSEID",
- expectedOutput: "The key must consist only of letters",
- recipeConfig: [
- {
- "op": "Vigenère Encode",
- "args": ["abc123"]
- }
- ],
- },
- {
- name: "Vigenère Encode: normal",
- input: "LUGGAGEBASEMENTVARENNESALLIESCANBECLOTHEDASENEMIESENEMIESCANBECLOTHEDASALLIESALWAYSUSEID",
- expectedOutput: "PXCGRJIEWSVPIQPVRUIQJEJDPOEEJFEQXETOSWDEUDWHJEDLIVANVPMHOCRQFHYLFWLHZAJDPOEEJDPZWYJXWHED",
- recipeConfig: [
- {
- "op": "Vigenère Encode",
- "args": ["Edward"]
- }
- ],
- },
- {
- name: "Vigenère Decode: no input",
- input: "",
- expectedOutput: "",
- recipeConfig: [
- {
- "op": "Vigenère Decode",
- "args": ["nothing"]
- }
- ],
- },
- {
- name: "Vigenère Decode: no key",
- input: "PXCGRJIEWSVPIQPVRUIQJEJDPOEEJFEQXETOSWDEUDWHJEDLIVANVPMHOCRQFHYLFWLHZAJDPOEEJDPZWYJXWHED",
- expectedOutput: "No key entered",
- recipeConfig: [
- {
- "op": "Vigenère Decode",
- "args": [""]
- }
- ],
- },
- {
- name: "Vigenère Decode: invalid key",
- input: "PXCGRJIEWSVPIQPVRUIQJEJDPOEEJFEQXETOSWDEUDWHJEDLIVANVPMHOCRQFHYLFWLHZAJDPOEEJDPZWYJXWHED",
- expectedOutput: "The key must consist only of letters",
- recipeConfig: [
- {
- "op": "Vigenère Decode",
- "args": ["abc123"]
- }
- ],
- },
- {
- name: "Vigenère Decode: normal",
- input: "PXCGRJIEWSVPIQPVRUIQJEJDPOEEJFEQXETOSWDEUDWHJEDLIVANVPMHOCRQFHYLFWLHZAJDPOEEJDPZWYJXWHED",
- expectedOutput: "LUGGAGEBASEMENTVARENNESALLIESCANBECLOTHEDASENEMIESENEMIESCANBECLOTHEDASALLIESALWAYSUSEID",
- recipeConfig: [
- {
- "op": "Vigenère Decode",
- "args": ["Edward"]
- }
- ],
- },
- {
- name: "Substitute: no pt/ct",
- input: "flee at once. we are discovered!",
- expectedOutput: "flee at once. we are discovered!",
- recipeConfig: [
- {
- "op": "Substitute",
- "args": ["", ""]
- }
- ],
- },
- {
- name: "Substitute: no input",
- input: "",
- expectedOutput: "",
- recipeConfig: [
- {
- "op": "Substitute",
- "args": ["abcdefghijklmnopqrstuvwxyz", "zebrascdfghijklmnopqtuvwxy"]
- }
- ],
- },
- {
- name: "Substitute: uneven pt/ct",
- input: "flee at once. we are discovered!",
- expectedOutput: "Warning: Plaintext and Ciphertext lengths differ\n\nsiaa zq lkba. va zoa rfpbluaoar!",
- recipeConfig: [
- {
- "op": "Substitute",
- "args": ["abcdefghijklmnopqrstuvwxyz", "zebrascdfghijklmnopqtuvwx"]
- }
- ],
- },
- {
- name: "Substitute: normal",
- input: "flee at once. we are discovered!",
- expectedOutput: "siaa zq lkba. va zoa rfpbluaoar!",
- recipeConfig: [
- {
- "op": "Substitute",
- "args": ["abcdefghijklmnopqrstuvwxyz", "zebrascdfghijklmnopqtuvwxy"]
- }
- ],
- },
- ]);
|