Compare commits

..

34 Commits

Author SHA1 Message Date
n1474335
53dff8b30f 9.21.5 2021-02-01 11:10:16 +00:00
n1474335
9892ee273e Bugfix: ECC mode now works correctly in 'Generate PGP Key Pair' 2021-02-01 11:10:04 +00:00
n1474335
7dccecb336 Moved GH Pages prep to its own step 2021-01-22 17:15:58 +00:00
n1474335
aa09da0403 GitHub Actions now pushes to GitHub Pages 2021-01-22 17:13:17 +00:00
n1474335
98d7f1481c Improved UI tests 2021-01-22 16:52:37 +00:00
n1474335
7d8bdbcf7e Improved UI tests 2021-01-22 16:39:04 +00:00
n1474335
db009d3689 Improved UI tests 2021-01-22 16:25:19 +00:00
n1474335
d7bc529a95 Improved UI tests 2021-01-22 16:16:11 +00:00
n1474335
3f035294a6 Improved UI tests 2021-01-22 16:06:44 +00:00
n1474335
36282e362f Improved UI tests 2021-01-22 15:53:56 +00:00
n1474335
223353cf4d Increased UI test operation timeout 2021-01-22 15:43:18 +00:00
n1474335
ded32da632 Back to a single job 2021-01-22 15:33:15 +00:00
n1474335
d6fc21cc34 Fixed yaml 2021-01-22 15:28:46 +00:00
n1474335
b86e960456 Actions broken out into separate jobs 2021-01-22 15:27:42 +00:00
n1474335
7747bfe0f2 Fixed prod build and Actions now creates a sitemap 2021-01-22 15:17:17 +00:00
n1474335
fabea8cc61 Fix whitespace 2021-01-22 15:00:15 +00:00
n1474335
de4cd2eebc Add production build to GitHub Actions script 2021-01-22 14:59:26 +00:00
n1474335
e16ce1d9c2 Specify node version 2021-01-22 14:53:53 +00:00
n1474335
345ad741b3 Fixed sed command in postinstall script to be platform dependent 2021-01-22 14:47:33 +00:00
n1474335
e53108c493 Merge branch 'gh-actions' 2021-01-22 14:33:48 +00:00
n1474335
6129378854 Reduced Actions script to just linting and testing 2021-01-22 14:33:35 +00:00
n1474335
11a1416dcc Merge branch 'gh-actions' of https://github.com/mattnotmitt/CyberChef into mattnotmitt-gh-actions 2021-01-22 14:17:29 +00:00
n1474335
9025538544 9.21.4 2021-01-22 13:48:30 +00:00
n1474335
46929e1844 Merge branch 'mattnotmax-haversine' 2021-01-22 13:48:19 +00:00
n1474335
bf023cad48 Merge branch 'haversine' of https://github.com/mattnotmax/CyberChef into mattnotmax-haversine 2021-01-22 13:48:04 +00:00
mattnotmax
39b7e4ff9e Correct Haversine test output 2020-12-09 21:12:26 +11:00
mattnotmax
a1109c43f6 Fix for haversine distance bug 2020-12-08 21:17:43 +11:00
Matt
0b5ee7c79f Update actions 2020-07-04 15:35:49 +01:00
Matt
23cbe1c426 Merge branch 'master' into gh-actions 2020-07-04 15:29:24 +01:00
Matt
123a0ccd70 Changed pages workflow 2019-09-30 14:41:14 +01:00
Matt
4c737475d4 Forgot to run prod build 2019-09-30 14:08:23 +01:00
Matt
4e0d97f2c1 Added sudo 2019-09-30 14:02:22 +01:00
Matt
85906cafbb Adjustment 2019-09-30 13:56:26 +01:00
Matt
a8dc691033 Try using github actions
Gonna monch this commit once i know it works
2019-09-30 13:51:38 +01:00
11 changed files with 107 additions and 15 deletions

59
.github/workflows/main.yml vendored Normal file
View File

@@ -0,0 +1,59 @@
name: Test & Deploy
on:
push:
branches:
- master
jobs:
main:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set node version
uses: actions/setup-node@v1
with:
node-version: '10.x'
- name: Install
run: |
npm install
export NODE_OPTIONS=--max_old_space_size=2048
- name: Lint
run: npx grunt lint
- name: Unit Tests
run: |
npm test
npx grunt testnodeconsumer
- name: Production Build
run: npx grunt prod
- name: Generate sitemap
run: npx grunt exec:sitemap
- name: UI Tests
run: xvfb-run --server-args="-screen 0 1200x800x24" npx grunt testui
- name: Prepare for GitHub Pages
run: npx grunt copy:ghPages
- name: Deploy to GitHub Pages
if: success() && github.ref == 'refs/heads/master'
uses: crazy-max/ghaction-github-pages@v2
with:
target_branch: gh-pages
build_dir: ./build/prod
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
#- name: Deploy to NPM
# run: |
# npm config set //registry.npmjs.org/:_authToken=$NPM_TOKEN
# npm publish || true
# env:
# Add NPM publish token to the repo secrets
# NPM_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}

View File

@@ -242,10 +242,6 @@ module.exports = function (grunt) {
entry: Object.assign({
main: "./src/web/index.js"
}, moduleEntryPoints),
output: {
publicPath: "",
globalObject: "this"
},
resolve: {
alias: {
"./config/modules/OpModules.mjs": "./config/modules/Default.mjs"

2
package-lock.json generated
View File

@@ -1,6 +1,6 @@
{
"name": "cyberchef",
"version": "9.21.3",
"version": "9.21.5",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "cyberchef",
"version": "9.21.3",
"version": "9.21.5",
"description": "The Cyber Swiss Army Knife for encryption, encoding, compression and data analysis.",
"author": "n1474335 <n1474335@gmail.com>",
"homepage": "https://gchq.github.io/CyberChef",
@@ -172,7 +172,7 @@
"testui": "grunt testui",
"testuidev": "npx nightwatch --env=dev",
"lint": "grunt lint",
"postinstall": "find ./node_modules/crypto-api/src/ \\( -type d -name .git -prune \\) -o -type f -print0 | xargs -0 sed -i '' -e '/\\.mjs/!s/\\(from \"\\.[^\"]*\\)\";/\\1.mjs\";/g'",
"postinstall": "bash postinstall.sh",
"newop": "node --experimental-modules src/core/config/scripts/newOperation.mjs"
}
}

8
postinstall.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/bash
# Add file extensions to Crypto-Api imports
if [[ "$OSTYPE" == "darwin"* ]]; then
find ./node_modules/crypto-api/src/ \( -type d -name .git -prune \) -o -type f -print0 | xargs -0 sed -i '' -e '/\.mjs/!s/\(from "\.[^"]*\)";/\1.mjs";/g'
else
find ./node_modules/crypto-api/src/ \( -type d -name .git -prune \) -o -type f -print0 | xargs -0 sed -i -e '/\.mjs/!s/\(from "\.[^"]*\)";/\1.mjs";/g'
fi

View File

@@ -33,7 +33,7 @@ class GeneratePGPKeyPair extends Operation {
{
"name": "Key type",
"type": "option",
"value": ["RSA-1024", "RSA-2048", "RSA-4096", "ECC-256", "ECC-384"]
"value": ["RSA-1024", "RSA-2048", "RSA-4096", "ECC-256", "ECC-384", "ECC-521"]
},
{
"name": "Password (optional)",
@@ -59,12 +59,15 @@ class GeneratePGPKeyPair extends Operation {
* @returns {string}
*/
async run(input, args) {
const [keyType, keySize] = args[0].split("-"),
password = args[1],
let [keyType, keySize] = args[0].split("-");
const password = args[1],
name = args[2],
email = args[3];
let userIdentifier = "";
keyType = keyType.toLowerCase();
keySize = parseInt(keySize, 10);
if (name) userIdentifier += name;
if (email) userIdentifier += ` <${email}>`;

View File

@@ -41,8 +41,8 @@ class HaversineDistance extends Operation {
const lat1 = parseFloat(values[1]);
const lng1 = parseFloat(values[3]);
const lat2 = parseFloat(values[6]);
const lng2 = parseFloat(values[8]);
const lat2 = parseFloat(values[5]);
const lng2 = parseFloat(values[7]);
const TO_RAD = Math.PI / 180;
const dLat = (lat2-lat1) * TO_RAD;

View File

@@ -392,11 +392,22 @@ function testOp(browser, opName, input, output, args=[]) {
.useCss()
.click("#clr-recipe")
.click("#clr-io")
.waitForElementNotPresent("#rec-list li.operation")
.expect.element("#input-text").to.have.value.that.equals("");
browser
.urlHash("recipe=" + recipeConfig)
.setValue("#input-text", input)
.waitForElementPresent("#rec-list li.operation")
.expect.element("#input-text").to.have.value.that.equals(input);
browser
.waitForElementVisible("#stale-indicator", 5000)
.pause(100)
.click("#bake")
.waitForElementPresent("#stale-indicator.hidden", 1000);
.pause(100)
.waitForElementPresent("#stale-indicator.hidden", 5000)
.waitForElementNotVisible("#output-loader", 5000);
if (typeof output === "string") {
browser.expect.element("#output-text").to.have.value.that.equals(output);

View File

@@ -588,7 +588,7 @@ Password: 034148`;
const result = await chef.generatePGPKeyPair("Back To the Drawing Board", {
keyType: "ECC-256",
});
assert.strictEqual(result.toString().length, 2007);
assert.strictEqual(result.toString().length, 2560);
}),
it("Generate UUID", () => {

View File

@@ -11,7 +11,18 @@ TestRegister.addTests([
{
name: "Haversine distance",
input: "51.487263,-0.124323, 38.9517,-77.1467",
expectedOutput: "5619355.701829259",
expectedOutput: "5902542.836307819",
recipeConfig: [
{
"op": "Haversine distance",
"args": []
}
],
},
{
name: "Haversine distance, zero distance",
input: "51.487263,-0.124323, 51.487263,-0.124323",
expectedOutput: "0",
recipeConfig: [
{
"op": "Haversine distance",

View File

@@ -34,6 +34,10 @@ const banner = `/**
module.exports = {
output: {
publicPath: "",
globalObject: "this"
},
plugins: [
new webpack.ProvidePlugin({
$: "jquery",