mirror of
https://github.com/gchq/CyberChef
synced 2024-12-26 12:33:11 +00:00
Merge branch 'artemisbot-feature_rot47'
This commit is contained in:
commit
b0fd297069
7 changed files with 74 additions and 22 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -77,6 +77,7 @@ var Categories = [
|
|||
"RC4",
|
||||
"RC4 Drop",
|
||||
"ROT13",
|
||||
"ROT47",
|
||||
"XOR",
|
||||
"XOR Brute Force",
|
||||
"Derive PBKDF2 key",
|
||||
|
|
|
@ -1390,6 +1390,21 @@ var OperationConfig = {
|
|||
},
|
||||
]
|
||||
},
|
||||
"ROT47": {
|
||||
description: "A slightly more complex variation of a caesar cipher, which includes ASCII characters from 33 '!' to 126 '~'. Default rotation: 47.",
|
||||
run: Rotate.run_rot47,
|
||||
highlight: true,
|
||||
highlight_reverse: true,
|
||||
input_type: "byte_array",
|
||||
output_type: "byte_array",
|
||||
args: [
|
||||
{
|
||||
name: "Amount",
|
||||
type: "number",
|
||||
value: Rotate.ROT47_AMOUNT
|
||||
},
|
||||
]
|
||||
},
|
||||
"Strip HTTP headers": {
|
||||
description: "Removes HTTP headers from a request or response by looking for the first instance of a double newline.",
|
||||
run: HTTP.run_strip_headers,
|
||||
|
|
|
@ -91,7 +91,7 @@ var Rotate = {
|
|||
* @default
|
||||
*/
|
||||
ROT13_UPPERCASE: true,
|
||||
|
||||
|
||||
/**
|
||||
* ROT13 operation.
|
||||
*
|
||||
|
@ -124,8 +124,44 @@ var Rotate = {
|
|||
}
|
||||
return output;
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @constant
|
||||
* @default
|
||||
*/
|
||||
ROT47_AMOUNT: 47,
|
||||
|
||||
/**
|
||||
* ROT47 operation.
|
||||
*
|
||||
* @author Matt C [matt@artemisbot.pw]
|
||||
* @param {byte_array} input
|
||||
* @param {Object[]} args
|
||||
* @returns {byte_array}
|
||||
*/
|
||||
run_rot47: function(input, args) {
|
||||
var amount = args[0],
|
||||
output = input,
|
||||
chr;
|
||||
|
||||
if (amount) {
|
||||
if (amount < 0) {
|
||||
amount = 94 - (Math.abs(amount) % 94);
|
||||
}
|
||||
|
||||
for (var i = 0; i < input.length; i++) {
|
||||
chr = input[i];
|
||||
if (chr >= 33 && chr <= 126) {
|
||||
chr = (chr - 33 + amount) % 94;
|
||||
output[i] = chr + 33;
|
||||
}
|
||||
}
|
||||
}
|
||||
return output;
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* Rotate right bitwise op.
|
||||
*
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
203 source files
|
||||
104222 lines
|
||||
104274 lines
|
||||
4.0M size
|
||||
|
||||
136 JavaScript source files
|
||||
95132 lines
|
||||
3.4M size
|
||||
95184 lines
|
||||
3.5M size
|
||||
|
||||
78 third party JavaScript source files
|
||||
76377 lines
|
||||
2.7M size
|
||||
|
||||
58 first party JavaScript source files
|
||||
18755 lines
|
||||
724K size
|
||||
18807 lines
|
||||
728K size
|
||||
|
||||
3.1M uncompressed JavaScript size
|
||||
1.7M compressed JavaScript size
|
||||
|
||||
15 categories
|
||||
152 operations
|
||||
153 operations
|
||||
|
|
Loading…
Reference in a new issue