mirror of
https://github.com/gchq/CyberChef.git
synced 2025-05-09 07:45:00 -04:00
tests
This commit is contained in:
parent
0407685ecf
commit
4ccdb9a673
4 changed files with 104 additions and 36 deletions
|
@ -582,12 +582,9 @@ function convertCharTable(chars) {
|
|||
for (let i=0; i<128; i++) {
|
||||
let char = chars[~~(i/16) + (i%16)*8];
|
||||
if (char in specials) {
|
||||
//console.log("<", char, "*", specials[char], "*", specials, ">\n");
|
||||
char = specials[char];
|
||||
}
|
||||
//console.log("<", i, ~~(i/16), (i%16), ~~(i/16) + (i%16)*8, char, ">\n", chars, "------------------");
|
||||
if (char.length == 4) {
|
||||
//console.log("\\u" + char);
|
||||
char = String.fromCodePoint(Number("0x" + char));
|
||||
}
|
||||
conv[i] = char;
|
||||
|
@ -634,8 +631,8 @@ export function toGsm7(text, charset, extension, CRpad) {
|
|||
if (c==-1) {
|
||||
c = extension.indexOf(char);
|
||||
if (c==-1) {
|
||||
throw "character '" + char + "' is not present in current charset+extension." +
|
||||
"A real device would encode this SMS using UCS-2 (UTF-16)";
|
||||
throw new OperationError("character '" + char + "' is not present in current charset+extension.<br>" +
|
||||
"A real device would encode this SMS using UCS-2 (UTF-16)");
|
||||
}
|
||||
codePoints.push(0x1b);
|
||||
}
|
||||
|
@ -644,8 +641,8 @@ export function toGsm7(text, charset, extension, CRpad) {
|
|||
|
||||
// optional step #2: final CR to cope with unexpected encoding of 0x00 or to affirm a wanted final CR
|
||||
if (CRpad) {
|
||||
if ((codePoints.length % 8 == 7) || ((codePoints.length % 8 == 0) && codePoints[-1] == 0x0d)) {
|
||||
codePoints.push(0x0d);
|
||||
if ((codePoints.length % 8 == 7) || ((codePoints.length % 8 == 0) && codePoints[codePoints.length-1] == 13)) {
|
||||
codePoints.push(13);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -706,7 +703,7 @@ export function fromGsm7(sms, charset, extension, CRpad) {
|
|||
|
||||
// optional step #2: remove final CR when on octet boundary
|
||||
if (CRpad) {
|
||||
if ((codePoints.length % 8 == 0) && codePoints[-1] == 0x0d) {
|
||||
if ((codePoints.length % 8 == 0) && codePoints[codePoints.length-1] == 13) {
|
||||
codePoints.pop();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,13 +16,13 @@ import {
|
|||
} from "../lib/utils.mjs";
|
||||
|
||||
import TestRegister from "../lib/TestRegister.mjs";
|
||||
/*import "./tests/nodeApi.mjs";
|
||||
import "./tests/nodeApi.mjs";
|
||||
import "./tests/operations.mjs";
|
||||
import "./tests/File.mjs";
|
||||
import "./tests/Dish.mjs";
|
||||
import "./tests/NodeDish.mjs";
|
||||
import "./tests/Utils.mjs";
|
||||
import "./tests/Categories.mjs";*/
|
||||
import "./tests/Categories.mjs";
|
||||
|
||||
const testStatus = {
|
||||
allTestsPassing: true,
|
||||
|
|
|
@ -17,7 +17,7 @@ import {
|
|||
} from "../lib/utils.mjs";
|
||||
|
||||
import TestRegister from "../lib/TestRegister.mjs";
|
||||
/*import "./tests/BCD.mjs";
|
||||
import "./tests/BCD.mjs";
|
||||
import "./tests/BSON.mjs";
|
||||
import "./tests/BaconCipher.mjs";
|
||||
import "./tests/Base58.mjs";
|
||||
|
@ -40,9 +40,9 @@ import "./tests/CSV.mjs";
|
|||
import "./tests/DateTime.mjs";
|
||||
import "./tests/ExtractEmailAddresses.mjs";
|
||||
import "./tests/Fork.mjs";
|
||||
import "./tests/FromDecimal.mjs";*/
|
||||
import "./tests/FromDecimal.mjs";
|
||||
import "./tests/Gsm7.mjs";
|
||||
/*import "./tests/Gzip.mjs";
|
||||
import "./tests/Gzip.mjs";
|
||||
import "./tests/Gunzip.mjs";
|
||||
import "./tests/Hash.mjs";
|
||||
import "./tests/HaversineDistance.mjs";
|
||||
|
@ -107,7 +107,7 @@ import "./tests/CBOREncode.mjs";
|
|||
import "./tests/CBORDecode.mjs";
|
||||
import "./tests/JA3Fingerprint.mjs";
|
||||
import "./tests/JA3SFingerprint.mjs";
|
||||
import "./tests/HASSH.mjs";*/
|
||||
import "./tests/HASSH.mjs";
|
||||
|
||||
|
||||
// Cannot test operations that use the File type yet
|
||||
|
|
|
@ -39,32 +39,13 @@ TestRegister.addTests([
|
|||
],
|
||||
},
|
||||
{
|
||||
name: "To GSM-7: not padding a 7 chars SMS",
|
||||
input: "7Chars.",
|
||||
expectedOutput: "b7 21 3a 2c 9f bb 00",
|
||||
name: "To GSM-7: smiley",
|
||||
input: "😀",
|
||||
expectedOutput: "character '😀' is not present in current charset+extension.<br>A real device would encode this SMS using UCS-2 (UTF-16)",
|
||||
recipeConfig: [
|
||||
{
|
||||
op: "To GSM-7",
|
||||
args: ["Default", "Default", false],
|
||||
},
|
||||
{
|
||||
op: "To Hex",
|
||||
args: ["Space", 0],
|
||||
}
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "To GSM-7: padding a 7 chars SMS",
|
||||
input: "7Chars.",
|
||||
expectedOutput: "b7 21 3a 2c 9f bb 1a",
|
||||
recipeConfig: [
|
||||
{
|
||||
op: "To GSM-7",
|
||||
args: ["Default", "Default", true],
|
||||
},
|
||||
{
|
||||
op: "To Hex",
|
||||
args: ["Space", 0],
|
||||
}
|
||||
],
|
||||
},
|
||||
|
@ -97,5 +78,95 @@ TestRegister.addTests([
|
|||
args: ["Default", "Default", true],
|
||||
}
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "GSM-7: padding/not unpadding a %7 chars SMS",
|
||||
input: "7Chars.",
|
||||
expectedOutput: "7Chars.\r",
|
||||
recipeConfig: [
|
||||
{
|
||||
op: "To GSM-7",
|
||||
args: ["Default", "Default", true],
|
||||
},
|
||||
{
|
||||
op: "From GSM-7",
|
||||
args: ["Default", "Default", false],
|
||||
}
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "GSM-7: padding/unpadding a %7 chars SMS",
|
||||
input: "twenty three characters",
|
||||
expectedOutput: "twenty three characters",
|
||||
recipeConfig: [
|
||||
{
|
||||
op: "To GSM-7",
|
||||
args: ["Default", "Default", true],
|
||||
},
|
||||
{
|
||||
op: "From GSM-7",
|
||||
args: ["Default", "Default", true],
|
||||
}
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "GSM-7: not padding/not unpadding a %7 chars SMS",
|
||||
input: "<15 characters>",
|
||||
expectedOutput: "<15 characters>@",
|
||||
recipeConfig: [
|
||||
{
|
||||
op: "To GSM-7",
|
||||
args: ["Default", "Default", false],
|
||||
},
|
||||
{
|
||||
op: "From GSM-7",
|
||||
args: ["Default", "Default", false],
|
||||
}
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "GSM-7: padding/not unpadding a 8 chars SMS",
|
||||
input: "8 chars.",
|
||||
expectedOutput: "8 chars.",
|
||||
recipeConfig: [
|
||||
{
|
||||
op: "To GSM-7",
|
||||
args: ["Default", "Default", true],
|
||||
},
|
||||
{
|
||||
op: "From GSM-7",
|
||||
args: ["Default", "Default", false],
|
||||
}
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "GSM-7: padding/not unpadding a 8 chars SMS with final CR",
|
||||
input: "8 chars\r",
|
||||
expectedOutput: "8 chars\r\r",
|
||||
recipeConfig: [
|
||||
{
|
||||
op: "To GSM-7",
|
||||
args: ["Default", "Default", true],
|
||||
},
|
||||
{
|
||||
op: "From GSM-7",
|
||||
args: ["Default", "Default", false],
|
||||
}
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "GSM-7: padding/unpadding a 8 chars SMS with final CR",
|
||||
input: "8 chars\r",
|
||||
expectedOutput: "8 chars\r\r",
|
||||
recipeConfig: [
|
||||
{
|
||||
op: "To GSM-7",
|
||||
args: ["Default", "Default", true],
|
||||
},
|
||||
{
|
||||
op: "From GSM-7",
|
||||
args: ["Default", "Default", true],
|
||||
}
|
||||
],
|
||||
}
|
||||
]);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue