Merge branch 'master' into empty-numerical-ingredient-error

This commit is contained in:
GCHQ Developer 85297 2026-02-06 00:37:04 +00:00 committed by GitHub
commit f2fb61f8a2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 190 additions and 179 deletions

View File

@ -12,3 +12,7 @@ indent_size = 4
[{package.json,.travis.yml,nightwatch.json}]
indent_style = space
indent_size = 2
[.github/**.yml]
indent_style = space
indent_size = 2

View File

@ -1,40 +0,0 @@
name: "CodeQL Analysis"
on:
workflow_dispatch:
push:
branches: [ master ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
types: [synchronize, opened, reopened]
schedule:
- cron: '22 17 * * 5'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'javascript' ]
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
with:
category: "/language:${{matrix.language}}"

View File

@ -1,5 +1,8 @@
name: "Master Build, Test & Deploy"
permissions:
contents: read
on:
workflow_dispatch:
push:
@ -8,14 +11,17 @@ on:
jobs:
main:
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
- name: Set node version
uses: actions/setup-node@v3
uses: actions/setup-node@v6
with:
node-version: '18.x'
node-version: 18
registry-url: "https://registry.npmjs.org"
- name: Install
run: |

View File

@ -1,5 +1,8 @@
name: "Pull Requests"
permissions:
contents: read
on:
workflow_dispatch:
pull_request:
@ -9,12 +12,13 @@ jobs:
main:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
- name: Set node version
uses: actions/setup-node@v3
uses: actions/setup-node@v6
with:
node-version: '18.x'
node-version: 18
registry-url: "https://registry.npmjs.org"
- name: Install
run: |
@ -45,8 +49,6 @@ jobs:
id: build-image
uses: docker/build-push-action@v6
with:
# Not being uploaded to any registry, use a simple name to allow Buildah to build correctly.
image: cyberchef
platforms: linux/amd64,linux/arm64
- name: UI Tests
if: success()

View File

@ -4,7 +4,11 @@ on:
workflow_dispatch:
push:
tags:
- 'v*'
- "v*"
permissions:
id-token: write
contents: read
env:
REGISTRY: ghcr.io
@ -16,12 +20,13 @@ jobs:
main:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
- name: Set node version
uses: actions/setup-node@v3
uses: actions/setup-node@v6
with:
node-version: '18.x'
node-version: 18
registry-url: "https://registry.npmjs.org"
- name: Install
run: |
@ -89,6 +94,4 @@ jobs:
body: "See the [CHANGELOG](https://github.com/gchq/CyberChef/blob/master/CHANGELOG.md) and [commit messages](https://github.com/gchq/CyberChef/commits/master) for details."
- name: Publish to NPM
uses: JS-DevTools/npm-publish@v1
with:
token: ${{ secrets.NPM_TOKEN }}
run: npm publish

View File

@ -66,7 +66,7 @@ export function removeSubheadingsFromArray(array) {
* @param str
*/
export function sanitise(str) {
return str.replace(/ /g, "").toLowerCase();
return str.replace(/[/\s.-]/g, "").toLowerCase();
}

View File

@ -345,6 +345,42 @@ TestRegister.addApiTests([
assert.strictEqual(result.toString(), "begin_something_aaaaaaaaaaaaaa_end_something");
}),
it("chef.bake: should accept operation names from Chef Website which contain forward slash", () => {
const result = chef.bake("I'll have the test salmon", [
{ "op": "Find / Replace",
"args": [{ "option": "Regex", "string": "test" }, "good", true, false, true, false]}
]);
assert.strictEqual(result.toString(), "I'll have the good salmon");
}),
it("chef.bake: should accept operation names from Chef Website which contain a hyphen", () => {
const result = chef.bake("I'll have the test salmon", [
{ "op": "Adler-32 Checksum",
"args": [] }
]);
assert.strictEqual(result.toString(), "6e4208f8");
}),
it("chef.bake: should accept operation names from Chef Website which contain a period", () => {
const result = chef.bake("30 13 02 01 05 16 0e 41 6e 79 62 6f 64 79 20 74 68 65 72 65 3f", [
{ "op": "Parse ASN.1 hex string",
"args": [0, 32] }
]);
assert.strictEqual(result.toString(), `SEQUENCE
INTEGER 05
IA5String 'Anybody there?'
`);
}),
it("Excluded operations: throw a sensible error when you try and call one", () => {
try {
chef.fork();
} catch (e) {
assert.strictEqual(e.type, "ExcludedOperationError");
assert.strictEqual(e.message, "Sorry, the Fork operation is not available in the Node.js version of CyberChef.");
}
}),
it("chef.bake: cannot accept flowControl operations in recipe", () => {
assert.throws(() => chef.bake("some input", "magic"), {
name: "TypeError",