cyberchef 11.0.0 → 11.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +144 -0
- package/Dockerfile +2 -2
- package/Gruntfile.js +10 -5
- package/README.md +3 -1
- package/SECURITY.md +8 -18
- package/package.json +35 -34
- package/src/core/config/Categories.json +6 -0
- package/src/core/config/OperationConfig.json +140 -16
- package/src/core/config/modules/Default.mjs +8 -0
- package/src/core/config/modules/PGP.mjs +2 -0
- package/src/core/config/scripts/generateOpsIndex.mjs +63 -0
- package/src/core/config/scripts/newOperation.mjs +31 -4
- package/src/core/operations/AESDecrypt.mjs +61 -16
- package/src/core/operations/AESEncrypt.mjs +26 -11
- package/src/core/operations/BLAKE3.mjs +13 -7
- package/src/core/operations/BSONDeserialise.mjs +2 -2
- package/src/core/operations/BSONSerialise.mjs +3 -2
- package/src/core/operations/Bcrypt.mjs +1 -1
- package/src/core/operations/BcryptCompare.mjs +1 -1
- package/src/core/operations/DecodeText.mjs +4 -0
- package/src/core/operations/EncodeText.mjs +4 -0
- package/src/core/operations/EscapeSmartCharacters.mjs +129 -0
- package/src/core/operations/GenerateLoremIpsum.mjs +34 -3
- package/src/core/operations/GeneratePGPKeyPair.mjs +8 -7
- package/src/core/operations/PGPSign.mjs +83 -0
- package/src/core/operations/ParseEthernetFrame.mjs +1 -1
- package/src/core/operations/ParseIPv4Header.mjs +1 -1
- package/src/core/operations/ParseObjectIDTimestamp.mjs +2 -2
- package/src/core/operations/ParseUserAgent.mjs +1 -1
- package/src/core/operations/ROR13.mjs +83 -0
- package/src/core/operations/RemoveANSIEscapeCodes.mjs +41 -0
- package/src/core/operations/SeriesChart.mjs +16 -0
- package/src/core/operations/Wrap.mjs +47 -0
- package/src/core/operations/index.mjs +10 -0
- package/src/node/index.mjs +25 -0
- package/src/web/App.mjs +19 -1
- package/src/web/HTMLIngredient.mjs +1 -0
- package/src/web/html/index.html +3 -3
- package/src/web/static/sitemap.mjs +3 -3
- package/src/web/waiters/RecipeWaiter.mjs +9 -1
- package/tests/browser/02_ops.js +7 -7
- package/tests/browser/03_recipe_load.js +48 -0
- package/tests/browser/browserUtils.js +6 -3
- package/tests/node/index.mjs +1 -0
- package/tests/node/tests/PGP.mjs +69 -0
- package/tests/node/tests/operations.mjs +41 -2
- package/tests/operations/index.mjs +71 -66
- package/tests/operations/tests/BLAKE3.mjs +18 -0
- package/tests/operations/tests/CharEnc.mjs +26 -0
- package/tests/operations/tests/Charts.mjs +11 -0
- package/tests/operations/tests/Crypt.mjs +288 -62
- package/tests/operations/tests/EscapeSmartCharacters.mjs +132 -0
- package/tests/operations/tests/FlaskSession.mjs +11 -8
- package/tests/operations/tests/GenerateLoremIpsum.mjs +80 -0
- package/tests/operations/tests/IPv6Transition.mjs +4 -4
- package/tests/operations/tests/PGP.mjs +178 -154
- package/tests/operations/tests/ParseEthernetFrame.mjs +11 -0
- package/tests/operations/tests/ParseIPv4Header.mjs +23 -0
- package/tests/operations/tests/ParseX509CRL.mjs +16 -16
- package/tests/operations/tests/ROR13.mjs +45 -0
- package/tests/operations/tests/Register.mjs +3 -1
- package/tests/operations/tests/RemoveANSIEscapeCodes.mjs +62 -0
- package/tests/operations/tests/Wrap.mjs +44 -0
|
@@ -10,138 +10,144 @@ import {ASCII_TEXT, UTF8_TEXT, ALL_BYTES} from "../../samples/Ciphers.mjs";
|
|
|
10
10
|
|
|
11
11
|
// RSA-1024
|
|
12
12
|
const ALICE_PRIVATE = `-----BEGIN PGP PRIVATE KEY BLOCK-----
|
|
13
|
-
Version: Keybase OpenPGP v2.
|
|
13
|
+
Version: Keybase OpenPGP v2.1.17
|
|
14
14
|
Comment: https://keybase.io/crypto
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
=
|
|
16
|
+
xcEYBGoXHs0BBADB6Loj+NXNQBgVNCDtFYxNvjvVinPAqW7/spsvjCOhDrIkqGf2
|
|
17
|
+
foY6sjLpsdZaHh+CtEApc3Fn3gLSq17PCY0KJwcirbp3kYyEzZ2rAhJlpqmW3mua
|
|
18
|
+
mqffrOgOpvlR1Hoa7SL4qTWqvwX68p5PUcETKAKE2CQVMj1mki882ldMzQARAQAB
|
|
19
|
+
AAP7BMz0sshJzsOL9RZtzEDQ0OnpRE+hrv7i2xy6X9J53VZmTacHr+ARBan8vbFj
|
|
20
|
+
66Y8RHme7wfHInmqGzoX5ktHvRH52+gm902kPUWW9WPtoIT+j2n1/ifzZI4SJl8g
|
|
21
|
+
ssysKwNz+Et+1ffxPJGkWnblyrXG6JtNwmwBjMgAA1jxqPcCAP6k7GDbW9gtt2B1
|
|
22
|
+
5d+0g78dSf2WXLhO0YqmromyXm1Ub9asKfL42eayXZjy6KQb5xlO9bNWH5AkfGx7
|
|
23
|
+
qVTPox8CAMLxBcfhzC92e7kDApuebFadCiIrSv0puE57DbVyMb8xtY+khl/pHlnA
|
|
24
|
+
9IslbZTBFRbjJgcprHWvtUhd7NUhHpMB/A/iYINYQ9jLovVtijsmeGc1zAHCYtzN
|
|
25
|
+
36UtikIDDs+uWT5RD5RDRh8CXEtpGs8wvyQsfmt0xLwdtilvFdefq9aoPc0AwrQE
|
|
26
|
+
EwEKAB4FAmoXHs0CGy8DCwkHAxUKCAIeAQIXgAMWAgECGQEACgkQG3UgSyrfjYz9
|
|
27
|
+
WwQAtBfgtztR1z05tzkCfEAGHMNmcJoUdh5kUnDJa0ekg3rSAYWTP294+OLQM/Up
|
|
28
|
+
t7KjprDNQjMDy24gaBldAInTgo8I/x1JcfQeluuZKKe4lbmST6229onE6bXeb17n
|
|
29
|
+
aLZaSiYI/qLyC8xeb9WkfmR8uRumXSFrTJxHvPzLB4Pgx2nHwRgEahcezQEEAKjU
|
|
30
|
+
543TxZbzZiae6XWFIXjFgWE/vBC+5ZYEyTAG6jtwfP4tgagb+chJG+hoFA9HZXXP
|
|
31
|
+
r5CPiNZUW6aPpbaMRmubIZs7uCpw3RfcZ+AR+Q9unf0kCJxXThRBhhWHipaLB44M
|
|
32
|
+
weCueUawRjwnJVog9nIEE1Heg5G9/fHemLZJ7iU/ABEBAAEAA/4wEreATe20Rsgu
|
|
33
|
+
dQ9a1DasseheLYy6Y/Dxn5k94KovlJ8yrPh/Sr/8BL06lvAnTZgZTLLcAdLf3JNg
|
|
34
|
+
QQTZjuW55cRBu73aegvM4UKvmTxAXgJXk9ADpYTfH7yyyp3B6VTFt5kFwIzFJqvo
|
|
35
|
+
b7NNN87qNuCAfOumSA31k2K+RUupiQIA0EVM8yCWvB8qG0+qW63yqwuP4/YGtg7L
|
|
36
|
+
G5a+v6+Fz8UuLKtBchy4xfPZMP5IsXdbAtYQiPlSvAZNRYH1eG+eNQIAz4XRXQZI
|
|
37
|
+
KO7yHawxUsEfuTt1G9yKjUCYCN4yiD/cfYtXoB9wLHRmsC6mBc8XwhtszYnQGKRV
|
|
38
|
+
+fdYoluxcH30IwIAxKHe5hylDp5/LO0pZK+uXQqD6D30Q5xzeWwHgfXsce6PXZ1J
|
|
39
|
+
9tblAyYDjRzCGtJ1sjqsVeEEZTU6s5r9Y9ViCaTvwsCDBBgBCgAPBQJqFx7NBQkP
|
|
40
|
+
CZwAAhsuAKgJEBt1IEsq342MnSAEGQEKAAYFAmoXHs0ACgkQOfwkCKoimvpKxQP/
|
|
41
|
+
U55dBOApPc0egWCgEBaUocwZ6Tg8dvCw5/8h/ttHtb7dh4G+XHq3zPOz8yHS22r0
|
|
42
|
+
uTmDbQFT7QnPWuFgN5UBYIM4jilTbeVLbCPYTXvCnzAF6QRLV1OdwrESpFs4vqwZ
|
|
43
|
+
UmffzoeI6rFHI9HHHiUZ/S2u9YdyqLfHMTZe9s8iByuMtgP+IzQHozMdEXNFUlFp
|
|
44
|
+
xw/b5Tv4ps5Hs+/iSiGJDJvC6xtWXi2kpU2kNACKW69vt/5DLloTNHVOAR7Zo4zV
|
|
45
|
+
OYo6u//mQRvjtmzvr5WJg6Ti+o/nZEaUIL7CXaCwbdeJkG8QSX1U5l734U1D2U+J
|
|
46
|
+
wmTfuZ1DQBdl7A2rTInPmI5Iuz7HwRcEahcezQEEAMQmvSmxyBpSKd7pRbYzTNDn
|
|
47
|
+
tTJtCmFRi/jFh5nA4bU280srqNzFD00YiWFSEn+FXimJjLgDhu3v9XI74KBINZd/
|
|
48
|
+
uRzxgvW2972T0ogxx4BPrRa3tCcdJKijKwfnNG0T9mrNz2W4P2JY0ZR0pIC94nm0
|
|
49
|
+
mg8EkEHxwCypavxmo/mpABEBAAEAA/ICZzFHLpTzjw4iz+dcMS1uSn+znnPTjtq/
|
|
50
|
+
a6wath9TmQdKwY+hgd/RBlkFngdtcUB75LODMIffYmKrDz9IiN/CGMl4G0CBoVTP
|
|
51
|
+
gx+mmCGLUX3T0ozDra8dmO5Tv8LIbF4xpx0GOA1gQ0mNC1w2NJRyJY7PIF6bevdy
|
|
52
|
+
lFl6ZAp/AgD4RILvX1Cj3ZMJcQ6G7loyUSiVQRpR7uMVfGlIJeP4rAXqpvfyeUnn
|
|
53
|
+
jT28RsFFszcKHZXRxWby2fBscDxtwEsTAgDKQrGL6jRBvojwNn4kixBG9v1RkRBr
|
|
54
|
+
PykEUJsOmOlgmd2hQslfD/dNrJSwxvzl8q5RI1PlI1343UdRQEDDY6PTAgCPADVb
|
|
55
|
+
3ghi5A2uh+LyORRt2A7C353Mz8cofue/N78ViChBy1Bh7Yyh0jo/wtoaP98aQfYq
|
|
56
|
+
Z2krI8wWrLIfUHx8mtvCwIMEGAEKAA8FAmoXHs0FCQPCZwACGy4AqAkQG3UgSyrf
|
|
57
|
+
jYydIAQZAQoABgUCahcezQAKCRCNZtcgmBdHpJhpA/4+MD1IjjP9ttE6Sg2/vdUJ
|
|
58
|
+
Yzij2vQMwBIcrYPJ3vW86g4WMz8a2kaBC+MAoHzYNvv7CwZPpXpvGm9jWww7EKOm
|
|
59
|
+
Gwuza7Yi9kseqVz+/wIJcseiI3e/o9XCRgbXtTJmgNsJW3fRIJnmMnuAJ/4ykL1G
|
|
60
|
+
x4i15bky1sW0pvoXAaCL0Y1BBACvg8WLxpdnvWWYHv9z/x9cDOxZG2j2/rjG2VnC
|
|
61
|
+
lDkZI4+/DM2NB9l/dDiUqiuaSipPHELW2zFHG9uvnVnB8lTwsJ8pnP2n4zWdxfqf
|
|
62
|
+
IkEm6mZ6yp+uNaLPO4RiqjwPirSNqharqUSxRYtIFwlcpoCQcW00B55vMiawZX2G
|
|
63
|
+
Eq/5/Q==
|
|
64
|
+
=HBWf
|
|
65
65
|
-----END PGP PRIVATE KEY BLOCK-----`;
|
|
66
66
|
|
|
67
67
|
const ALICE_PUBLIC = `-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
68
|
-
Version: Keybase OpenPGP v2.
|
|
68
|
+
Version: Keybase OpenPGP v2.1.17
|
|
69
69
|
Comment: https://keybase.io/crypto
|
|
70
70
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
=
|
|
71
|
+
xo0EahcezQEEAMHouiP41c1AGBU0IO0VjE2+O9WKc8Cpbv+ymy+MI6EOsiSoZ/Z+
|
|
72
|
+
hjqyMumx1loeH4K0QClzcWfeAtKrXs8JjQonByKtuneRjITNnasCEmWmqZbea5qa
|
|
73
|
+
p9+s6A6m+VHUehrtIvipNaq/Bfrynk9RwRMoAoTYJBUyPWaSLzzaV0zNABEBAAHN
|
|
74
|
+
AMK0BBMBCgAeBQJqFx7NAhsvAwsJBwMVCggCHgECF4ADFgIBAhkBAAoJEBt1IEsq
|
|
75
|
+
342M/VsEALQX4Lc7Udc9Obc5AnxABhzDZnCaFHYeZFJwyWtHpIN60gGFkz9vePji
|
|
76
|
+
0DP1Kbeyo6awzUIzA8tuIGgZXQCJ04KPCP8dSXH0HpbrmSinuJW5kk+ttvaJxOm1
|
|
77
|
+
3m9e52i2WkomCP6i8gvMXm/VpH5kfLkbpl0ha0ycR7z8yweD4Mdpzo0EahcezQEE
|
|
78
|
+
AKjU543TxZbzZiae6XWFIXjFgWE/vBC+5ZYEyTAG6jtwfP4tgagb+chJG+hoFA9H
|
|
79
|
+
ZXXPr5CPiNZUW6aPpbaMRmubIZs7uCpw3RfcZ+AR+Q9unf0kCJxXThRBhhWHipaL
|
|
80
|
+
B44MweCueUawRjwnJVog9nIEE1Heg5G9/fHemLZJ7iU/ABEBAAHCwIMEGAEKAA8F
|
|
81
|
+
AmoXHs0FCQ8JnAACGy4AqAkQG3UgSyrfjYydIAQZAQoABgUCahcezQAKCRA5/CQI
|
|
82
|
+
qiKa+krFA/9Tnl0E4Ck9zR6BYKAQFpShzBnpODx28LDn/yH+20e1vt2Hgb5cerfM
|
|
83
|
+
87PzIdLbavS5OYNtAVPtCc9a4WA3lQFggziOKVNt5UtsI9hNe8KfMAXpBEtXU53C
|
|
84
|
+
sRKkWzi+rBlSZ9/Oh4jqsUcj0cceJRn9La71h3Kot8cxNl72zyIHK4y2A/4jNAej
|
|
85
|
+
Mx0Rc0VSUWnHD9vlO/imzkez7+JKIYkMm8LrG1ZeLaSlTaQ0AIpbr2+3/kMuWhM0
|
|
86
|
+
dU4BHtmjjNU5ijq7/+ZBG+O2bO+vlYmDpOL6j+dkRpQgvsJdoLBt14mQbxBJfVTm
|
|
87
|
+
XvfhTUPZT4nCZN+5nUNAF2XsDatMic+Yjki7Ps6NBGoXHs0BBADEJr0pscgaUine
|
|
88
|
+
6UW2M0zQ57UybQphUYv4xYeZwOG1NvNLK6jcxQ9NGIlhUhJ/hV4piYy4A4bt7/Vy
|
|
89
|
+
O+CgSDWXf7kc8YL1tve9k9KIMceAT60Wt7QnHSSooysH5zRtE/Zqzc9luD9iWNGU
|
|
90
|
+
dKSAveJ5tJoPBJBB8cAsqWr8ZqP5qQARAQABwsCDBBgBCgAPBQJqFx7NBQkDwmcA
|
|
91
|
+
AhsuAKgJEBt1IEsq342MnSAEGQEKAAYFAmoXHs0ACgkQjWbXIJgXR6SYaQP+PjA9
|
|
92
|
+
SI4z/bbROkoNv73VCWM4o9r0DMASHK2Dyd71vOoOFjM/GtpGgQvjAKB82Db7+wsG
|
|
93
|
+
T6V6bxpvY1sMOxCjphsLs2u2IvZLHqlc/v8CCXLHoiN3v6PVwkYG17UyZoDbCVt3
|
|
94
|
+
0SCZ5jJ7gCf+MpC9RseIteW5MtbFtKb6FwGgi9GNQQQAr4PFi8aXZ71lmB7/c/8f
|
|
95
|
+
XAzsWRto9v64xtlZwpQ5GSOPvwzNjQfZf3Q4lKormkoqTxxC1tsxRxvbr51ZwfJU
|
|
96
|
+
8LCfKZz9p+M1ncX6nyJBJupmesqfrjWizzuEYqo8D4q0jaoWq6lEsUWLSBcJXKaA
|
|
97
|
+
kHFtNAeebzImsGV9hhKv+f0=
|
|
98
|
+
=IODM
|
|
99
99
|
-----END PGP PUBLIC KEY BLOCK-----`;
|
|
100
100
|
|
|
101
101
|
// ECC-384
|
|
102
102
|
const BOB_PRIVATE = `-----BEGIN PGP PRIVATE KEY BLOCK-----
|
|
103
|
-
Version: Keybase OpenPGP v2.
|
|
103
|
+
Version: Keybase OpenPGP v2.1.17
|
|
104
104
|
Comment: https://keybase.io/crypto
|
|
105
105
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
/
|
|
125
|
-
|
|
106
|
+
xaQEahclbRMFK4EEACIDAwSvC1SlbUU7/QJFldLQGfAeyhu0mRvTIcxzANM9SdkI
|
|
107
|
+
dS2ArnVOZCB7cnfj5AF1nAjphKCv+01LAkGpCF6dUrvDwDeicMaq+E1OPVc+G0bH
|
|
108
|
+
O4qQwJgyRLV/GNUZ0ASSmNYAAYCxPV5eRqoX/13vQ38EFBDqWVQE5BuIvvFqNI2R
|
|
109
|
+
2RW7hAyI8AWazxDF90gurec8mWYXJM0AwpYEExMKAB4FAmoXJW0CGy8DCwkHAxUK
|
|
110
|
+
CAIeAQIXgAMWAgECGQEACgkQXd9oo/PqkifstAF+KMP1xACDyAqsoZjzmOdD03+r
|
|
111
|
+
qaHk3EDO7J98qA+g3laUj/bx21IM8FJNEJHKs9TpAYD8LpHAGHmDuBKZDCZKabIS
|
|
112
|
+
avxAOuoEHOOu9GlGk+8LgftPLW3EYUf/R7m4mGIq1UzHdwRqFyVtEwgqhkjOPQMB
|
|
113
|
+
BwIDBGf0GrkZYEH+SU15lkMjYcHndaqwYbF+JPgUVc6ZiQYDkaY2uodq+n82HoNr
|
|
114
|
+
zsCvKJxzC9upm8qzOwFHL+C7UvoAAP9MeWPmsuLSLXq+cVeqoEHAFQ/VYTBL/N7A
|
|
115
|
+
XeiiDdUbKBFmwsAnBBgTCgAPBQJqFyVtBQkPCZwAAhsCAGoJEF3faKPz6pInXyAE
|
|
116
|
+
GRMKAAYFAmoXJW0ACgkQVQZtQ9p5kJtfDQD+Ns1eh7rEAXveFSOLhx7Vw/5kUWm8
|
|
117
|
+
wVWbqWDK5tJTF5EA/2+3jIQfg+/pE+VkO/NuIGQ9bUqGmGuX0s14TcjqDm9LNugB
|
|
118
|
+
f27462A7iEkTab0nOQXtd6+L3PeHRUPUT1CFq+74M5GABr0wobJ5CCaQNxQH++IK
|
|
119
|
+
vwF+MSD0JajEVgi99qzSQOTZe8UGArddSCIJuUxNwEzaxvT6DombpLJ2O4yYklR/
|
|
120
|
+
xwoJx3sEahclbRIIKoZIzj0DAQcCAwRjn9T4UunA8a8ZuWP31AJheebCAcPFWBGx
|
|
121
|
+
dkxFeX65heVpMipOZ97EczRkitfAmiwt7cREq6yhvZ42KMOcZHPIAwEKCQABAFwA
|
|
122
|
+
UyvBBcchnSFCguG8EbEeA+DFKS62fvhqMHyMLGtfDUvChwQYEwoADwUCahclbQUJ
|
|
123
|
+
A8JnAAIbDAAKCRBd32ij8+qSJ1+sAX4wkp3GZiRAtUZujC3bJ0ukYJjieNHFapA6
|
|
124
|
+
r+0ku3mR/9OFDbVaTPEcL7nhgGY94q8BfRvczdClIK0rdY/bopQDq4uERoiB/bsH
|
|
125
|
+
1VFadIEvMZeIppWGb8d93IpZErGT9xQI8A==
|
|
126
|
+
=XC/n
|
|
126
127
|
-----END PGP PRIVATE KEY BLOCK-----`;
|
|
127
128
|
|
|
128
129
|
const BOB_PUBLIC = `-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
129
|
-
Version: Keybase OpenPGP v2.
|
|
130
|
+
Version: Keybase OpenPGP v2.1.17
|
|
130
131
|
Comment: https://keybase.io/crypto
|
|
131
132
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
133
|
+
xm8EahclbRMFK4EEACIDAwSvC1SlbUU7/QJFldLQGfAeyhu0mRvTIcxzANM9SdkI
|
|
134
|
+
dS2ArnVOZCB7cnfj5AF1nAjphKCv+01LAkGpCF6dUrvDwDeicMaq+E1OPVc+G0bH
|
|
135
|
+
O4qQwJgyRLV/GNUZ0ASSmNbNAMKWBBMTCgAeBQJqFyVtAhsvAwsJBwMVCggCHgEC
|
|
136
|
+
F4ADFgIBAhkBAAoJEF3faKPz6pIn7LQBfijD9cQAg8gKrKGY85jnQ9N/q6mh5NxA
|
|
137
|
+
zuyffKgPoN5WlI/28dtSDPBSTRCRyrPU6QGA/C6RwBh5g7gSmQwmSmmyEmr8QDrq
|
|
138
|
+
BBzjrvRpRpPvC4H7Ty1txGFH/0e5uJhiKtVMzlIEahclbRMIKoZIzj0DAQcCAwRn
|
|
139
|
+
9Bq5GWBB/klNeZZDI2HB53WqsGGxfiT4FFXOmYkGA5GmNrqHavp/Nh6Da87Aryic
|
|
140
|
+
cwvbqZvKszsBRy/gu1L6wsAnBBgTCgAPBQJqFyVtBQkPCZwAAhsCAGoJEF3faKPz
|
|
141
|
+
6pInXyAEGRMKAAYFAmoXJW0ACgkQVQZtQ9p5kJtfDQD+Ns1eh7rEAXveFSOLhx7V
|
|
142
|
+
w/5kUWm8wVWbqWDK5tJTF5EA/2+3jIQfg+/pE+VkO/NuIGQ9bUqGmGuX0s14Tcjq
|
|
143
|
+
Dm9LNugBf27462A7iEkTab0nOQXtd6+L3PeHRUPUT1CFq+74M5GABr0wobJ5CCaQ
|
|
144
|
+
NxQH++IKvwF+MSD0JajEVgi99qzSQOTZe8UGArddSCIJuUxNwEzaxvT6DombpLJ2
|
|
145
|
+
O4yYklR/xwoJzlYEahclbRIIKoZIzj0DAQcCAwRjn9T4UunA8a8ZuWP31AJheebC
|
|
146
|
+
AcPFWBGxdkxFeX65heVpMipOZ97EczRkitfAmiwt7cREq6yhvZ42KMOcZHPIAwEK
|
|
147
|
+
CcKHBBgTCgAPBQJqFyVtBQkDwmcAAhsMAAoJEF3faKPz6pInX6wBfjCSncZmJEC1
|
|
148
|
+
Rm6MLdsnS6RgmOJ40cVqkDqv7SS7eZH/04UNtVpM8RwvueGAZj3irwF9G9zN0KUg
|
|
149
|
+
rSt1j9uilAOri4RGiIH9uwfVUVp0gS8xl4imlYZvx33cilkSsZP3FAjw
|
|
150
|
+
=BHOx
|
|
145
151
|
-----END PGP PUBLIC KEY BLOCK-----`;
|
|
146
152
|
|
|
147
153
|
TestRegister.addTests([
|
|
@@ -205,29 +211,46 @@ TestRegister.addTests([
|
|
|
205
211
|
}
|
|
206
212
|
]
|
|
207
213
|
},
|
|
214
|
+
{
|
|
215
|
+
name: "PGP Sign/Verify: RSA, All bytes",
|
|
216
|
+
input: ALL_BYTES,
|
|
217
|
+
expectedMatch: /Signed by PGP key ID: 2ADF8D8C\nPGP fingerprint: 7afe93ff7614167c3fe831fe1b75204b2adf8d8c\nSigned on .*\n----------------------------------\n/,
|
|
218
|
+
recipeConfig: [
|
|
219
|
+
{
|
|
220
|
+
"op": "PGP Sign",
|
|
221
|
+
"args": [ALICE_PRIVATE, ""]
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"op": "PGP Verify",
|
|
225
|
+
"args": [ALICE_PUBLIC]
|
|
226
|
+
}
|
|
227
|
+
]
|
|
228
|
+
},
|
|
208
229
|
{
|
|
209
230
|
name: "PGP Decrypt and Verify: UTF8, Alice -> Bob",
|
|
210
231
|
input: `-----BEGIN PGP MESSAGE-----
|
|
211
|
-
Version: Keybase OpenPGP v2.
|
|
232
|
+
Version: Keybase OpenPGP v2.1.17
|
|
212
233
|
Comment: https://keybase.io/crypto
|
|
213
234
|
|
|
214
|
-
|
|
215
|
-
+
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
+
|
|
224
|
-
|
|
225
|
-
|
|
235
|
+
wX4DEY2FMRPYAl0SAgMEKY2yuB8s16oRWWhJ1RsxNhR8byKFUyFZvi0ETIORMYu+
|
|
236
|
+
kkLWgFlVjqPV9q2eVtuVK9f+S/OIm0pztImhq5ZNMDB8r7s0wX4YskSrWRpMKwRr
|
|
237
|
+
CtoNlPS3//fT3Ll4a2tn8guxyC7lAtmJ6nxZj+qpSZLSwQwBhFlgARdqlp4eTAhF
|
|
238
|
+
PRcqHVCqZYSTdjAyerLtfZDaswEwLgGxsshRSJ7BDHxg7NqRcdFkChrWT0s4JpnV
|
|
239
|
+
/Woq0xcApim1bpyHXG/tT4oM3hbjfpulb92gq2TUNdzb9lJGaKbLHl/0zkoBvHDE
|
|
240
|
+
pxtr021JXERB8MNDIIpDESpjCrZ20YCHNr/sBqVm0yM7YGrDLlV+n7oUgL4HK2FU
|
|
241
|
+
tehxUEt4rca81UesYu/Wul6mHh/7Ft4jJuZuf/w9fCWQ6z+9MAEOBXdzWUp5BCyF
|
|
242
|
+
ce1STpICAdtRHInJ9zR08qn0ahrwHsvHPFPVIQJDargD5MSqav/3LS2TYqKYYKHy
|
|
243
|
+
TUCxIWqA77Qk3rEaFX+eHxTW4BTlMPArA7ffywkgJAPzrLL+gEgtOLCv2RhNZevR
|
|
244
|
+
weglQRtcuh5N/F9fsmPfsi80R0//LpEeyFX6GueXDw81+AKG9pOTI71Ny8H4W0eA
|
|
245
|
+
B5dCiOFNHZKCZUlA6GFa04X/XgmfPzTPMtgizbT72/2kfwxJGZY4ngdMVLqfhnVA
|
|
246
|
+
nfyQLFrOF9giJqDEsjtPXJ0h20stMLMykPUIK0UUf9vPthE86ugCY1XcGQWsuB4U
|
|
247
|
+
jmdH1dqEUk29TaUz/97s
|
|
248
|
+
=Ah/0
|
|
226
249
|
-----END PGP MESSAGE-----
|
|
227
250
|
`,
|
|
228
|
-
expectedOutput: `Signed by PGP key ID:
|
|
229
|
-
PGP fingerprint:
|
|
230
|
-
Signed on
|
|
251
|
+
expectedOutput: `Signed by PGP key ID: 2ADF8D8C
|
|
252
|
+
PGP fingerprint: 7afe93ff7614167c3fe831fe1b75204b2adf8d8c
|
|
253
|
+
Signed on Wed, 27 May 2026 17:18:20 GMT
|
|
231
254
|
----------------------------------
|
|
232
255
|
${UTF8_TEXT}`,
|
|
233
256
|
recipeConfig: [
|
|
@@ -238,19 +261,19 @@ ${UTF8_TEXT}`,
|
|
|
238
261
|
]
|
|
239
262
|
},
|
|
240
263
|
{
|
|
241
|
-
name: "PGP Decrypt: ASCII, Alice
|
|
264
|
+
name: "PGP Decrypt: ASCII, Alice",
|
|
242
265
|
input: `-----BEGIN PGP MESSAGE-----
|
|
243
|
-
Version: Keybase OpenPGP v2.
|
|
266
|
+
Version: Keybase OpenPGP v2.1.17
|
|
244
267
|
Comment: https://keybase.io/crypto
|
|
245
268
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
269
|
+
wYwDOfwkCKoimvoBA/98ONH8b+HoaDOVLhtF+9Pz5Sk/NZ43htOpm/3+b2B81GKZ
|
|
270
|
+
fcUfJYzItyt4X5Ps1ksfrArokG6blkIHPwZdcF7TJ9rWy/cC9S3zP/LF893xT9Z7
|
|
271
|
+
buWj1BjqfNy15WtGJnnQeCJVI4ya0cb3G/I/zAF/mT6R/JcldbJ1OTz9Zy5pZtKi
|
|
272
|
+
AQL7B8IscCxsx9jxc1ZR3swn+fr603BVP6/mXRRtKIa5DXZR5uMU9ChZ5AYQeHXe
|
|
273
|
+
ZzstlcSJWJvuF+uJy3Yc07ttzqQtOQGLh0iBeALK7BWqLsUBqKabZSHTZ4uFdkv9
|
|
274
|
+
86ZebPsfjVlhz4oFYenBUq1C15Zpvut28pHpgh2TLuXPHKkmTwI2Zz9LvVRjBW7A
|
|
275
|
+
rmDPrpTfy9MOrkjkY7zQSevi
|
|
276
|
+
=/Zwh
|
|
254
277
|
-----END PGP MESSAGE-----`,
|
|
255
278
|
expectedOutput: ASCII_TEXT,
|
|
256
279
|
recipeConfig: [
|
|
@@ -262,21 +285,22 @@ H2qMY1O7hezH3fp+EZzCAccJMtK7VPk13WAgMRH22HirG4aK1i75IVOtjBgObzDh
|
|
|
262
285
|
},
|
|
263
286
|
{
|
|
264
287
|
name: "PGP Verify: ASCII, Alice",
|
|
265
|
-
input: `-----BEGIN PGP
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
|
|
269
|
-
-----BEGIN PGP SIGNATURE-----
|
|
288
|
+
input: `-----BEGIN PGP MESSAGE-----
|
|
289
|
+
Version: Keybase OpenPGP v2.1.17
|
|
290
|
+
Comment: https://keybase.io/crypto
|
|
270
291
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
292
|
+
yMB1AnicO8LLzMDFaPlHhWOV0qxfjKcnljJkiTsIOiok5+fm5ucp5GYWlyRmpyqU
|
|
293
|
+
ZCSWKBSk5hfkpCrkggTKM1LzFEqKKjPz0hVK8hVSUosz0/MUivNzU0syQGJA/UC1
|
|
294
|
+
Jak5lQpp+fk5BUX5+WkKmcUgtaV5KalFqcUlmbmJJSCTUxWAGlLzSjNLKhWAimA6
|
|
295
|
+
wfqK9Q7NYWFg5GJgY2UCOYyBi1MA5tqzj1kYZqaFSuxmUvBnvvAzZOOuyT9vnT75
|
|
296
|
+
5GVzY2WfOB8H08l5vCZNbBUegsqPPh2aXPQgo8GglTPO2e7qY75g49mzDm+8POfH
|
|
297
|
+
nstrb2/93JHrXD5fbcbuVrsFJ01XWE2Xy7HtTgrasGG7ySLZqLStBj2r0n4dTX7g
|
|
298
|
+
MV1ETCdx6nqHA+4as4Oy9040BACRHYIP
|
|
299
|
+
=rkte
|
|
300
|
+
-----END PGP MESSAGE-----`,
|
|
301
|
+
expectedOutput: `Signed by PGP key ID: 2ADF8D8C
|
|
302
|
+
PGP fingerprint: 7afe93ff7614167c3fe831fe1b75204b2adf8d8c
|
|
303
|
+
Signed on Wed, 27 May 2026 19:03:45 GMT
|
|
280
304
|
----------------------------------
|
|
281
305
|
A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.`,
|
|
282
306
|
recipeConfig: [
|
|
@@ -41,5 +41,16 @@ TestRegister.addTests([
|
|
|
41
41
|
"args": ["Hex", "Text output"]
|
|
42
42
|
}
|
|
43
43
|
]
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: "Parse Ethernet frame escapes packet data HTML",
|
|
47
|
+
input: "000000000000ffffffffffff08003c696d67207372633d78206f6e6572726f723d616c6572742831293e3c7363726970743e616c6572742832293c2f7363726970743e",
|
|
48
|
+
expectedOutput: "<img src=x onerror=alert(1)><script>alert(2)</script>",
|
|
49
|
+
recipeConfig: [
|
|
50
|
+
{
|
|
51
|
+
"op": "Parse Ethernet frame",
|
|
52
|
+
"args": ["Hex", "Packet data"]
|
|
53
|
+
}
|
|
54
|
+
]
|
|
44
55
|
}
|
|
45
56
|
]);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse IPv4 header tests.
|
|
3
|
+
*
|
|
4
|
+
* @author C85297 [95289555+C85297@users.noreply.github.com]
|
|
5
|
+
* @copyright Crown Copyright 2026
|
|
6
|
+
* @license Apache-2.0
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import TestRegister from "../../lib/TestRegister.mjs";
|
|
10
|
+
|
|
11
|
+
TestRegister.addTests([
|
|
12
|
+
{
|
|
13
|
+
name: "Parse IPv4 header: Correctly formatted HTML output",
|
|
14
|
+
input: "45 00 00 3c 1c 46 40 00 40 06 b1 e6 c0 a8 00 01 c0 a8 00 02 3c 73 63 72 69 70 74 3e 61 6c 65 72 74 28 31 33 33 37 29 3c 2f 73 63 72 69 70 74 3e",
|
|
15
|
+
expectedOutput: "<script>alert(1337)</script>",
|
|
16
|
+
recipeConfig: [
|
|
17
|
+
{
|
|
18
|
+
op: "Parse IPv4 header",
|
|
19
|
+
args: ["Hex", "Data (raw)"]
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
]);
|
|
@@ -51,16 +51,16 @@ const OUT_CRL_PEM_RSA = `Certificate Revocation List (CRL):
|
|
|
51
51
|
DirName:/C=UK/ST=London/O=BB/CN=Test Root CA
|
|
52
52
|
serial:37:5D:4B:F6:BD:7C:11:7C:CC:46:1A:FF:D7:2F:2C:26:F8:1E:4B:3D
|
|
53
53
|
X509v3 CRL Distribution Points:
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
54
|
+
Full Name:
|
|
55
|
+
URI:http://example.com/full-crl
|
|
56
|
+
Full Name:
|
|
57
|
+
URI:ldap://example.com/full-crl
|
|
58
|
+
Full Name:
|
|
59
|
+
IP:127.0.0.1
|
|
60
60
|
X509v3 CRL Number:
|
|
61
61
|
1E3C
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
X509v3 Issuer Alternative Name:
|
|
63
|
+
|
|
64
64
|
Revoked Certificates:
|
|
65
65
|
Serial Number: 1000
|
|
66
66
|
Revocation Date: Sun, 25 Aug 2024 03:23:08 GMT
|
|
@@ -143,16 +143,16 @@ const OUT_CRL_PEM_RSA_CRL_REASON_AND_INVALIDITY_DATE = `Certificate Revocation L
|
|
|
143
143
|
DirName:/C=UK/ST=London/O=BB/CN=Test Root CA
|
|
144
144
|
serial:37:5D:4B:F6:BD:7C:11:7C:CC:46:1A:FF:D7:2F:2C:26:F8:1E:4B:3D
|
|
145
145
|
X509v3 CRL Distribution Points:
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
146
|
+
Full Name:
|
|
147
|
+
URI:http://example.com/full-crl
|
|
148
|
+
Full Name:
|
|
149
|
+
URI:ldap://example.com/full-crl
|
|
150
|
+
Full Name:
|
|
151
|
+
IP:127.0.0.1
|
|
152
152
|
X509v3 CRL Number:
|
|
153
153
|
1E3D
|
|
154
|
-
|
|
155
|
-
|
|
154
|
+
X509v3 Issuer Alternative Name:
|
|
155
|
+
|
|
156
156
|
Revoked Certificates:
|
|
157
157
|
Serial Number: 1000
|
|
158
158
|
Revocation Date: Sun, 25 Aug 2024 12:08:48 GMT
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ROR13 tests.
|
|
3
|
+
*
|
|
4
|
+
* @author fufu_btw [contact@fufu.red]
|
|
5
|
+
* @copyright Crown Copyright 2026
|
|
6
|
+
* @license Apache-2.0
|
|
7
|
+
*/
|
|
8
|
+
import TestRegister from "../../lib/TestRegister.mjs";
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
TestRegister.addTests([
|
|
12
|
+
{
|
|
13
|
+
name: "ROR13: AddConsoleAliasW",
|
|
14
|
+
input: "AddConsoleAliasW",
|
|
15
|
+
expectedOutput: "0x9916128C",
|
|
16
|
+
recipeConfig: [
|
|
17
|
+
{
|
|
18
|
+
op: "ROR13",
|
|
19
|
+
args: []
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: "ROR13 Hash: LoadLibraryA",
|
|
25
|
+
input: "LoadLibraryA",
|
|
26
|
+
expectedOutput: "0xEC0E4E8E",
|
|
27
|
+
recipeConfig: [
|
|
28
|
+
{
|
|
29
|
+
op: "ROR13",
|
|
30
|
+
args: []
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
name: "ROR13 Hash: CloseHandle",
|
|
36
|
+
input: "CloseHandle",
|
|
37
|
+
expectedOutput: "0x0FFD97FB",
|
|
38
|
+
recipeConfig: [
|
|
39
|
+
{
|
|
40
|
+
op: "ROR13",
|
|
41
|
+
args: []
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
]);
|
|
@@ -59,6 +59,7 @@ TestRegister.addTests([
|
|
|
59
59
|
"option": "Hex",
|
|
60
60
|
"string": "$R0"
|
|
61
61
|
},
|
|
62
|
+
16,
|
|
62
63
|
"CTR", "Hex", "Raw",
|
|
63
64
|
{
|
|
64
65
|
"option": "Hex",
|
|
@@ -67,7 +68,8 @@ TestRegister.addTests([
|
|
|
67
68
|
{
|
|
68
69
|
"option": "Hex",
|
|
69
70
|
"string": ""
|
|
70
|
-
}
|
|
71
|
+
},
|
|
72
|
+
"Off"
|
|
71
73
|
]
|
|
72
74
|
}
|
|
73
75
|
]
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author Louis-Ladd [lewisharshman1@gmail.com]
|
|
3
|
+
* @copyright Crown Copyright 2025
|
|
4
|
+
* @license Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import TestRegister from "../../lib/TestRegister.mjs";
|
|
7
|
+
|
|
8
|
+
TestRegister.addTests([
|
|
9
|
+
{
|
|
10
|
+
"name": "Remove ANSI Escape Codes: text using x1b escape code",
|
|
11
|
+
"input": "\x1b[31mHello, \x1b[31mWorld!",
|
|
12
|
+
"expectedOutput": "Hello, World!",
|
|
13
|
+
"recipeConfig": [
|
|
14
|
+
{
|
|
15
|
+
"op": "Remove ANSI Escape Codes",
|
|
16
|
+
"args": [],
|
|
17
|
+
},
|
|
18
|
+
],
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "Remove ANSI Escape Codes: text with incomplete codes",
|
|
22
|
+
"input": "\x1b[31 Hello, World!",
|
|
23
|
+
"expectedOutput": "ello, World!",
|
|
24
|
+
"recipeConfig": [
|
|
25
|
+
{
|
|
26
|
+
"op": "Remove ANSI Escape Codes",
|
|
27
|
+
"args": [],
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "Remove ANSI Escape Codes: cursor commands and clear screen",
|
|
33
|
+
"input": "\x1b[2J\x1b[H\x1b[3BHello, World!",
|
|
34
|
+
"expectedOutput": "Hello, World!",
|
|
35
|
+
"recipeConfig": [
|
|
36
|
+
{
|
|
37
|
+
"op": "Remove ANSI Escape Codes",
|
|
38
|
+
"args": [],
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"name": "Remove ANSI Escape Codes: text containing javascript escape representation of ansi escape codes",
|
|
44
|
+
// input/output expressed in hex to avoid accidental interpretation of Javascript escapes and to make the test case explicit
|
|
45
|
+
"input": "5c 30 33 33 5b 33 32 3b 31 3b 33 3b 34 3b 39 6d 48 65 6c 6c 6f 2c 20 5c 30 33 33 5b 33 32 3b 31 3b 33 3b 34 3b 39 6d 57 6f 72 6c 64 21",
|
|
46
|
+
"expectedOutput": "5c 30 33 33 5b 33 32 3b 31 3b 33 3b 34 3b 39 6d 48 65 6c 6c 6f 2c 20 5c 30 33 33 5b 33 32 3b 31 3b 33 3b 34 3b 39 6d 57 6f 72 6c 64 21",
|
|
47
|
+
"recipeConfig": [
|
|
48
|
+
{
|
|
49
|
+
"op": "From Hex",
|
|
50
|
+
"args": ["Auto"]
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"op": "Remove ANSI Escape Codes",
|
|
54
|
+
"args": []
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"op": "To Hex",
|
|
58
|
+
"args": ["Space", 0]
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
},
|
|
62
|
+
]);
|