mirror of
https://github.com/gchq/CyberChef.git
synced 2025-06-17 19:55:18 -04:00
Add Bencode function operation
This commit is contained in:
parent
7ecf8dfdaa
commit
d8d594a493
8 changed files with 299 additions and 1 deletions
|
@ -26,6 +26,8 @@ import "./tests/Base64.mjs";
|
|||
import "./tests/Base85.mjs";
|
||||
import "./tests/Base92.mjs";
|
||||
import "./tests/BCD.mjs";
|
||||
import "./tests/BencodeEncode.mjs";
|
||||
import "./tests/BencodeDecode.mjs";
|
||||
import "./tests/BitwiseOp.mjs";
|
||||
import "./tests/BLAKE2b.mjs";
|
||||
import "./tests/BLAKE2s.mjs";
|
||||
|
|
66
tests/operations/tests/BencodeDecode.mjs
Normal file
66
tests/operations/tests/BencodeDecode.mjs
Normal file
|
@ -0,0 +1,66 @@
|
|||
/**
|
||||
* Bencode Encode tests.
|
||||
*
|
||||
* @author jg42526
|
||||
* @copyright Crown Copyright 2018
|
||||
* @license Apache-2.0
|
||||
*/
|
||||
import TestRegister from "../../lib/TestRegister.mjs";
|
||||
|
||||
TestRegister.addTests([
|
||||
{
|
||||
name: "Bencode Decode: nothing",
|
||||
input: "",
|
||||
expectedOutput: "",
|
||||
recipeConfig: [
|
||||
{
|
||||
"op": "Bencode Decode",
|
||||
"args": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: "Bencode Decode: integer",
|
||||
input: "i42e",
|
||||
expectedOutput: "42",
|
||||
recipeConfig: [
|
||||
{
|
||||
"op": "Bencode Decode",
|
||||
"args": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: "Bencode Decode: byte string",
|
||||
input: "7:bencode",
|
||||
expectedOutput: "bencode",
|
||||
recipeConfig: [
|
||||
{
|
||||
"op": "Bencode Decode",
|
||||
"args": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: "Bencode Decode: list",
|
||||
input: "l7:bencodei-20ee",
|
||||
expectedOutput: `["bencode",-20]`,
|
||||
recipeConfig: [
|
||||
{
|
||||
"op": "Bencode Decode",
|
||||
"args": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: "Bencode Decode: dictionary",
|
||||
input: "d7:meaningi42e4:wiki7:bencodee",
|
||||
expectedOutput: `{"meaning":42,"wiki":"bencode"}`,
|
||||
recipeConfig: [
|
||||
{
|
||||
"op": "Bencode Decode",
|
||||
"args": []
|
||||
}
|
||||
]
|
||||
},
|
||||
]);
|
72
tests/operations/tests/BencodeEncode.mjs
Normal file
72
tests/operations/tests/BencodeEncode.mjs
Normal file
|
@ -0,0 +1,72 @@
|
|||
/**
|
||||
* Bencode Encode tests.
|
||||
*
|
||||
* @author jg42526
|
||||
* @copyright Crown Copyright 2018
|
||||
* @license Apache-2.0
|
||||
*/
|
||||
import TestRegister from "../../lib/TestRegister.mjs";
|
||||
|
||||
TestRegister.addTests([
|
||||
{
|
||||
name: "Bencode Encode: nothing",
|
||||
input: "",
|
||||
expectedOutput: "0:",
|
||||
recipeConfig: [
|
||||
{
|
||||
"op": "Bencode Encode",
|
||||
"args": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: "Bencode Encode: integer",
|
||||
input: "42",
|
||||
expectedOutput: "i42e",
|
||||
recipeConfig: [
|
||||
{
|
||||
"op": "Bencode Encode",
|
||||
"args": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: "Bencode Encode: byte string",
|
||||
input: "bencode",
|
||||
expectedOutput: "7:bencode",
|
||||
recipeConfig: [
|
||||
{
|
||||
"op": "Bencode Encode",
|
||||
"args": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: "Bencode Encode: list",
|
||||
input: `[
|
||||
"bencode",
|
||||
-20
|
||||
]`,
|
||||
expectedOutput: "l7:bencodei-20ee",
|
||||
recipeConfig: [
|
||||
{
|
||||
"op": "Bencode Encode",
|
||||
"args": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: "Bencode Encode: dictionary",
|
||||
input: `{
|
||||
"meaning": 42,
|
||||
"wiki": "bencode"
|
||||
}`,
|
||||
expectedOutput: "d7:meaningi42e4:wiki7:bencodee",
|
||||
recipeConfig: [
|
||||
{
|
||||
"op": "Bencode Encode",
|
||||
"args": []
|
||||
}
|
||||
]
|
||||
},
|
||||
]);
|
Loading…
Add table
Add a link
Reference in a new issue