mirror of
https://github.com/gchq/CyberChef
synced 2026-02-06 03:33:15 +00:00
Compare commits
2 Commits
v10.20.0
...
fix/docker
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
188b25d7a3 | ||
|
|
967f93aa63 |
16
.github/workflows/pull_requests.yml
vendored
16
.github/workflows/pull_requests.yml
vendored
@@ -34,20 +34,20 @@ jobs:
|
||||
if: success()
|
||||
run: npx grunt prod
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Production Image Build
|
||||
if: success()
|
||||
id: build-image
|
||||
uses: redhat-actions/buildah-build@v2
|
||||
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
|
||||
containerfiles: ./Dockerfile
|
||||
platforms: linux/amd64
|
||||
oci: true
|
||||
# Webpack seems to use a lot of open files, increase the max open file limit to accomodate.
|
||||
extra-args: |
|
||||
--ulimit nofile=10000
|
||||
|
||||
platforms: linux/amd64,linux/arm64
|
||||
- name: UI Tests
|
||||
if: success()
|
||||
run: |
|
||||
|
||||
36
.github/workflows/releases.yml
vendored
36
.github/workflows/releases.yml
vendored
@@ -45,6 +45,12 @@ jobs:
|
||||
sudo apt-get install xvfb
|
||||
xvfb-run --server-args="-screen 0 1200x800x24" npx grunt testui
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Image Metadata
|
||||
id: image-metadata
|
||||
uses: docker/metadata-action@v4
|
||||
@@ -55,30 +61,22 @@ jobs:
|
||||
type=semver,pattern={{major}}.{{minor}}
|
||||
type=semver,pattern={{version}}
|
||||
|
||||
- name: Production Image Build
|
||||
id: build-image
|
||||
uses: redhat-actions/buildah-build@v2
|
||||
- name: Log in to GHCR
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
tags: ${{ steps.image-metadata.outputs.tags }}
|
||||
labels: ${{ steps.image-metadata.outputs.labels }}
|
||||
containerfiles: ./Dockerfile
|
||||
platforms: linux/amd64,linux/arm64
|
||||
oci: true
|
||||
# enable build layer caching between platforms
|
||||
layers: true
|
||||
# Webpack seems to use a lot of open files, increase the max open file limit to accomodate.
|
||||
extra-args: |
|
||||
--ulimit nofile=10000
|
||||
|
||||
- name: Publish to GHCR
|
||||
uses: redhat-actions/push-to-registry@v2
|
||||
with:
|
||||
image: ${{ steps.build-image.outputs.image }}
|
||||
tags: ${{ steps.build-image.outputs.tags }}
|
||||
registry: ${{ env.REGISTRY }}
|
||||
username: ${{ env.REGISTRY_USER }}
|
||||
password: ${{ env.REGISTRY_PASSWORD }}
|
||||
|
||||
- name: Publish to GHCR
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
tags: ${{ steps.image-metadata.outputs.tags }}
|
||||
labels: ${{ steps.image-metadata.outputs.labels }}
|
||||
platforms: linux/amd64,linux/arm64
|
||||
|
||||
- name: Upload Release Assets
|
||||
id: upload-release-assets
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
|
||||
165
CHANGELOG.md
165
CHANGELOG.md
@@ -13,75 +13,6 @@ All major and minor version changes will be documented in this file. Details of
|
||||
|
||||
## Details
|
||||
|
||||
### [10.20.0] - 2026-01-28
|
||||
- Fixed Optical Character Recognition and added tests [@n1474335] | [ab37c1e]
|
||||
- Fixed JA4 version fallback value [@n1474335] | [7a5225c]
|
||||
- Updated chromedriver [@n1474335] | [0e82e4b]
|
||||
- Fixed RSA Sign and Verify character encodings [@n1474335] | [895a929]
|
||||
- Updated chromedriver [@n1474335] | [d3adfc7]
|
||||
- Added message format arg to RSA Verify operation [@n1474335] | [47c85a1]
|
||||
- Add operation for parsing X.509 CRLs [@robinsandhu] | [#1887]
|
||||
- Fix typo in description of JWT Sign recipe [@GuilhermoReadonly] | [#1961]
|
||||
- Corrected path to generateNodeIndex.mjs [@simonarnell] | [#1959]
|
||||
- Add 'header' ingredient to JWT Sign operation [@RandomByte] | [#1957]
|
||||
- Add Parse TLS record operation [@c65722] | [#1936]
|
||||
- Automatically detect chrome driver version [@gchq] | [#1972]
|
||||
- Add Strip UDP header operation [@c65722] | [#1900]
|
||||
- Add Strip TCP header operation [@c65722] | [#1898]
|
||||
- Webpack compress with gzip and brotli [@max0x53] | [#1955]
|
||||
- add offset field to 'Add Line Numbers' operation [@Adamkadaban] | [#1866]
|
||||
- Disable flakey URL test [@a3957273] | [#1973]
|
||||
- Add Strip IPv4 header operation [@c65722] | [#1899]
|
||||
- IPv6 Transition Operation [@jb30795] | [#1780]
|
||||
- fix: Blowfish - ignore IV length in ECB mode [@FranciscoPombal] | [#1902]
|
||||
- Add 'Drop nth bytes' operation [@Oshawk] | [#1914]
|
||||
- Add 'Take nth bytes' operation [@Oshawk] | [#1915]
|
||||
- Add Leet Speak [@bartblaze] | [#1971]
|
||||
- Fix Generate TOTP & HOPT [@exactlyaron] | [#1966]
|
||||
- Updated luhn checksum operation to work with different bases [@k3ach] | [#1933]
|
||||
- automatically theme mode based on user preference [@vs4vijay] | [#1921]
|
||||
- fix: DES/Triple DES - misleading error messages [@FranciscoPombal] | [#1904]
|
||||
- fix: ROT13 - shifting numbers by negative amounts [@FranciscoPombal] | [#1903]
|
||||
- Introduce Yubico's Modhex for Conversion [@linuxgemini] | [#1105]
|
||||
- Feature: MIME RFC2047 Decoding [@MShwed] | [#630]
|
||||
- CC-1889 add _ option [@depperm] | [#1977]
|
||||
- chore(root): add cspell [@evenstensberg] | [#1976]
|
||||
- Preserve uppercase for Leet Speak [@bartblaze] | [#1981]
|
||||
- Load the user's preferred color scheme if the URL contains an invalid theme [@0xh3xa] | [#2007]
|
||||
- Add SM2 Encrypt and Decrypt Operations [@flakjacket95] | [#1909]
|
||||
- Support jq as an operation. [@zhzy0077] | [#1604]
|
||||
- Add fingerprints to the 'Parse X.509 certificate' operation [@JSCU-CNI] | [#1863]
|
||||
- Added a JSON to YAML and a YAML to JSON operation [@ccarpo] | [#1286]
|
||||
- Add CRC Operation [@r4mos] | [#1993]
|
||||
- Bug Fix: selected theme not loading when refreshing [@0xh3xa] | [#2006]
|
||||
- Fix(RecipeWaiter): sanitize user input in addOperation to prevent XSS [@0xh3xa] | [#2014]
|
||||
- Docker multiplatform build support [@PathToLife] | [#1974]
|
||||
- Add Base32 Hex Extended Alphabet and Base32 Tests. [@peterc-s] | [#1991]
|
||||
- Add ECB/NoPadding and CBC/NoPadding support to AES encryption [@plvie] | [#2013]
|
||||
- Add new operation: PHP Serialize [@brun0ne] | [#1548]
|
||||
- Push input through postmessage [@kenduguay1] | [#1992]
|
||||
- Add jsonata query operation [@jonking-ajar] | [#1587]
|
||||
- Re-enable Npm Release in github workflows [@PathToLife] | [#2031]
|
||||
- Add to ECDSA Verify the message format [@r4mos] | [#2027]
|
||||
- Added alternating caps functionality [@sw5678] | [#1897]
|
||||
- XOR Checksum operation added [@jg42526] | [#2035]
|
||||
- Add GenerateAllChecksums operation * Remove checksums from GenerateAllHashes operation [@es45411] | [66d445c]
|
||||
- Update GenerateAllChecksums infoURL [@es45411] | [#2037]
|
||||
- Add toggle "+" character to URLDecode operation [@es45411] | [#2040]
|
||||
- Workaround for Safari load bug [@GCHQDeveloper94872] | [#2038]
|
||||
- Updated Dockerfile to correctly build on ARM64 platforms [@Sma-Das] | [#2042]
|
||||
- Addresses bug report #2008 Added explicit support for octal IP addresses. Changed approach to IPv4 regex to be string manipulation generated. Added some unit tests for IP address parsing - probably not full coverage. Added lookahead and lookbehind tricks to resolve warned issue that 1.2.3.256 would still be extracted as 1.2.3.25. Now only accepts valid IP addresses. Warning replaced with clause about infinite length dotted decimal forms. [@gchqdev364] | [#2041]
|
||||
- Remove trim from rail fence [@Odyhibit] | [#1986]
|
||||
- Fix email regex [@ericli-splunk] | [#2025]
|
||||
- Add Blake3 hashing [@xumptex] | [#2023]
|
||||
- Use defaultIndex instead of 0 in transformArgs [@bartvanandel] | [#2015]
|
||||
- Add "Generate UUID" and "Analyse UUID" operations [@bartvanandel] | [#2011]
|
||||
- Add new operation: Template [@kendallgoto] | [#2021]
|
||||
- Add more clear build instructions [@remingtr] | [#1873]
|
||||
- Show On Map updated to use leaflet over WikiMedia [@0xff1ce] | [#1884]
|
||||
- Fixed ToDecimal signed logic [@starplanet] | [#1545]
|
||||
- Use BigInt for encoding/decoding VarInt [@mikecat] | [#1978]
|
||||
|
||||
### [10.19.0] - 2024-06-21
|
||||
- Add support for ECDSA and DSA in 'Parse CSR' [@robinsandhu] | [#1828]
|
||||
- Fix typos in SIGABA.mjs [@eltociear] | [#1834]
|
||||
@@ -509,7 +440,6 @@ All major and minor version changes will be documented in this file. Details of
|
||||
## [4.0.0] - 2016-11-28
|
||||
- Initial open source commit [@n1474335] | [b1d73a72](https://github.com/gchq/CyberChef/commit/b1d73a725dc7ab9fb7eb789296efd2b7e4b08306)
|
||||
|
||||
[10.20.0]: https://github.com/gchq/CyberChef/releases/tag/v10.20.0
|
||||
[10.19.0]: https://github.com/gchq/CyberChef/releases/tag/v10.19.0
|
||||
[10.18.0]: https://github.com/gchq/CyberChef/releases/tag/v10.18.0
|
||||
[10.17.0]: https://github.com/gchq/CyberChef/releases/tag/v10.17.0
|
||||
@@ -700,60 +630,6 @@ All major and minor version changes will be documented in this file. Details of
|
||||
[@cplussharp]: https://github.com/cplussharp
|
||||
[@robinsandhu]: https://github.com/robinsandhu
|
||||
[@eltociear]: https://github.com/eltociear
|
||||
[@GuilhermoReadonly]: https://github.com/GuilhermoReadonly
|
||||
[@simonarnell]: https://github.com/simonarnell
|
||||
[@RandomByte]: https://github.com/RandomByte
|
||||
[@c65722]: https://github.com/c65722
|
||||
[@c65722]: https://github.com/c65722
|
||||
[@c65722]: https://github.com/c65722
|
||||
[@max0x53]: https://github.com/max0x53
|
||||
[@Adamkadaban]: https://github.com/Adamkadaban
|
||||
[@c65722]: https://github.com/c65722
|
||||
[@jb30795]: https://github.com/jb30795
|
||||
[@FranciscoPombal]: https://github.com/FranciscoPombal
|
||||
[@Oshawk]: https://github.com/Oshawk
|
||||
[@Oshawk]: https://github.com/Oshawk
|
||||
[@bartblaze]: https://github.com/bartblaze
|
||||
[@exactlyaron]: https://github.com/exactlyaron
|
||||
[@k3ach]: https://github.com/k3ach
|
||||
[@vs4vijay]: https://github.com/vs4vijay
|
||||
[@FranciscoPombal]: https://github.com/FranciscoPombal
|
||||
[@FranciscoPombal]: https://github.com/FranciscoPombal
|
||||
[@linuxgemini]: https://github.com/linuxgemini
|
||||
[@depperm]: https://github.com/depperm
|
||||
[@evenstensberg]: https://github.com/evenstensberg
|
||||
[@bartblaze]: https://github.com/bartblaze
|
||||
[@0xh3xa]: https://github.com/0xh3xa
|
||||
[@flakjacket95]: https://github.com/flakjacket95
|
||||
[@zhzy0077]: https://github.com/zhzy0077
|
||||
[@JSCU-CNI]: https://github.com/JSCU-CNI
|
||||
[@ccarpo]: https://github.com/ccarpo
|
||||
[@r4mos]: https://github.com/r4mos
|
||||
[@0xh3xa]: https://github.com/0xh3xa
|
||||
[@0xh3xa]: https://github.com/0xh3xa
|
||||
[@PathToLife]: https://github.com/PathToLife
|
||||
[@peterc-s]: https://github.com/peterc-s
|
||||
[@plvie]: https://github.com/plvie
|
||||
[@kenduguay1]: https://github.com/kenduguay1
|
||||
[@jonking-ajar]: https://github.com/jonking-ajar
|
||||
[@PathToLife]: https://github.com/PathToLife
|
||||
[@r4mos]: https://github.com/r4mos
|
||||
[@jg42526]: https://github.com/jg42526
|
||||
[@es45411]: https://github.com/es45411
|
||||
[@gchq]: https://github.com/gchq
|
||||
[@gchqdev364]: https://github.com/gchqdev364
|
||||
[@GCHQDeveloper94872]: https://github.com/GCHQDeveloper94872
|
||||
[@Sma-Das]: https://github.com/Sma-Das
|
||||
[@gchq]: https://github.com/gchq
|
||||
[@Odyhibit]: https://github.com/Odyhibit
|
||||
[@ericli-splunk]: https://github.com/ericli-splunk
|
||||
[@xumptex]: https://github.com/xumptex
|
||||
[@bartvanandel]: https://github.com/bartvanandel
|
||||
[@bartvanandel]: https://github.com/bartvanandel
|
||||
[@kendallgoto]: https://github.com/kendallgoto
|
||||
[@remingtr]: https://github.com/remingtr
|
||||
[@0xff1ce]: https://github.com/0xff1ce
|
||||
[@starplanet]: https://github.com/starplanet
|
||||
|
||||
|
||||
[8ad18b]: https://github.com/gchq/CyberChef/commit/8ad18bc7db6d9ff184ba3518686293a7685bf7b7
|
||||
@@ -766,46 +642,6 @@ All major and minor version changes will be documented in this file. Details of
|
||||
[760eff4]: https://github.com/gchq/CyberChef/commit/760eff49b5307aaa3104c5e5b437ffe62299acd1
|
||||
[65ffd8d]: https://github.com/gchq/CyberChef/commit/65ffd8d65d88eb369f6f61a5d1d0f807179bffb7
|
||||
[0a353ee]: https://github.com/gchq/CyberChef/commit/0a353eeb378b9ca5d49e23c7dfc175ae07107b08
|
||||
[66d445c]: https://github.com/gchq/CyberChef/commit/66d445c5ef4e8bd896fd15396e3ce2d660d8ace1
|
||||
[ab37c1e]: https://github.com/gchq/CyberChef/commit/ab37c1e562dbee0495ed32876ecbb8225282af25
|
||||
[965570d]: https://github.com/gchq/CyberChef/commit/965570d2504c17ee1f96211a1dc10ed40cd2b332
|
||||
[a477f47]: https://github.com/gchq/CyberChef/commit/a477f47aecd01d78b11fe186ed4b20d9c487cfac
|
||||
[7a5225c]: https://github.com/gchq/CyberChef/commit/7a5225c961a5e0d192b03152117cd10a761f73d6
|
||||
[5f88ae4]: https://github.com/gchq/CyberChef/commit/5f88ae44ec77228d9bed8f11e8cc8e7dcfb36914
|
||||
[0e82e4b]: https://github.com/gchq/CyberChef/commit/0e82e4b7c6c77cadb8be61cb145e081d6ecfdc88
|
||||
[d635cca]: https://github.com/gchq/CyberChef/commit/d635cca2106aae2a59caf0e5d7e3633ee1ea3155
|
||||
[895a929]: https://github.com/gchq/CyberChef/commit/895a9299255525cb57886deb9d9fd4ba17ae9548
|
||||
[270a333]: https://github.com/gchq/CyberChef/commit/270a33317944612d27ea1cc15275ad6b0ed097e5
|
||||
[d3adfc7]: https://github.com/gchq/CyberChef/commit/d3adfc7c3e5719279524356bce5261bd8350c0f8
|
||||
[47c85a1]: https://github.com/gchq/CyberChef/commit/47c85a105ddbdd4cabfa44ddddbc56e3907a8c33
|
||||
[3822c6c]: https://github.com/gchq/CyberChef/commit/3822c6c520a0b4200abc675c33f46082f5b9efc6
|
||||
[66d445c]: https://github.com/gchq/CyberChef/commit/66d445c5ef4e8bd896fd15396e3ce2d660d8ace1
|
||||
[ab37c1e]: https://github.com/gchq/CyberChef/commit/ab37c1e562dbee0495ed32876ecbb8225282af25
|
||||
[965570d]: https://github.com/gchq/CyberChef/commit/965570d2504c17ee1f96211a1dc10ed40cd2b332
|
||||
[a477f47]: https://github.com/gchq/CyberChef/commit/a477f47aecd01d78b11fe186ed4b20d9c487cfac
|
||||
[7a5225c]: https://github.com/gchq/CyberChef/commit/7a5225c961a5e0d192b03152117cd10a761f73d6
|
||||
[5f88ae4]: https://github.com/gchq/CyberChef/commit/5f88ae44ec77228d9bed8f11e8cc8e7dcfb36914
|
||||
[0e82e4b]: https://github.com/gchq/CyberChef/commit/0e82e4b7c6c77cadb8be61cb145e081d6ecfdc88
|
||||
[d635cca]: https://github.com/gchq/CyberChef/commit/d635cca2106aae2a59caf0e5d7e3633ee1ea3155
|
||||
[895a929]: https://github.com/gchq/CyberChef/commit/895a9299255525cb57886deb9d9fd4ba17ae9548
|
||||
[270a333]: https://github.com/gchq/CyberChef/commit/270a33317944612d27ea1cc15275ad6b0ed097e5
|
||||
[d3adfc7]: https://github.com/gchq/CyberChef/commit/d3adfc7c3e5719279524356bce5261bd8350c0f8
|
||||
[47c85a1]: https://github.com/gchq/CyberChef/commit/47c85a105ddbdd4cabfa44ddddbc56e3907a8c33
|
||||
[3822c6c]: https://github.com/gchq/CyberChef/commit/3822c6c520a0b4200abc675c33f46082f5b9efc6
|
||||
[66d445c]: https://github.com/gchq/CyberChef/commit/66d445c5ef4e8bd896fd15396e3ce2d660d8ace1
|
||||
[ab37c1e]: https://github.com/gchq/CyberChef/commit/ab37c1e562dbee0495ed32876ecbb8225282af25
|
||||
[965570d]: https://github.com/gchq/CyberChef/commit/965570d2504c17ee1f96211a1dc10ed40cd2b332
|
||||
[a477f47]: https://github.com/gchq/CyberChef/commit/a477f47aecd01d78b11fe186ed4b20d9c487cfac
|
||||
[7a5225c]: https://github.com/gchq/CyberChef/commit/7a5225c961a5e0d192b03152117cd10a761f73d6
|
||||
[5f88ae4]: https://github.com/gchq/CyberChef/commit/5f88ae44ec77228d9bed8f11e8cc8e7dcfb36914
|
||||
[0e82e4b]: https://github.com/gchq/CyberChef/commit/0e82e4b7c6c77cadb8be61cb145e081d6ecfdc88
|
||||
[d635cca]: https://github.com/gchq/CyberChef/commit/d635cca2106aae2a59caf0e5d7e3633ee1ea3155
|
||||
[895a929]: https://github.com/gchq/CyberChef/commit/895a9299255525cb57886deb9d9fd4ba17ae9548
|
||||
[270a333]: https://github.com/gchq/CyberChef/commit/270a33317944612d27ea1cc15275ad6b0ed097e5
|
||||
[d3adfc7]: https://github.com/gchq/CyberChef/commit/d3adfc7c3e5719279524356bce5261bd8350c0f8
|
||||
[47c85a1]: https://github.com/gchq/CyberChef/commit/47c85a105ddbdd4cabfa44ddddbc56e3907a8c33
|
||||
[3822c6c]: https://github.com/gchq/CyberChef/commit/3822c6c520a0b4200abc675c33f46082f5b9efc6
|
||||
[66d445c]: https://github.com/gchq/CyberChef/commit/66d445c5ef4e8bd896fd15396e3ce2d660d8ace1
|
||||
|
||||
[#95]: https://github.com/gchq/CyberChef/pull/299
|
||||
[#173]: https://github.com/gchq/CyberChef/pull/173
|
||||
@@ -942,3 +778,4 @@ All major and minor version changes will be documented in this file. Details of
|
||||
[#512]: https://github.com/gchq/CyberChef/issues/512
|
||||
[#1732]: https://github.com/gchq/CyberChef/issues/1732
|
||||
[#1789]: https://github.com/gchq/CyberChef/issues/1789
|
||||
|
||||
|
||||
@@ -27,9 +27,6 @@ RUN npm run build
|
||||
#########################################
|
||||
# Package static build files into nginx #
|
||||
#########################################
|
||||
# We are using Github Actions: redhat-actions/buildah-build@v2 which needs manual selection of arch in base image
|
||||
# Remove TARGETARCH if docker buildx is supported in the CI release as --platform=$TARGETPLATFORM will be automatically set
|
||||
ARG TARGETPLATFORM
|
||||
FROM --platform=${TARGETPLATFORM} nginx:stable-alpine AS cyberchef
|
||||
FROM nginx:stable-alpine AS cyberchef
|
||||
|
||||
COPY --from=builder /app/build/prod /usr/share/nginx/html/
|
||||
|
||||
21
README.md
21
README.md
@@ -20,36 +20,21 @@ Cryptographic operations in CyberChef should not be relied upon to provide secur
|
||||
|
||||
[A live demo can be found here][1] - have fun!
|
||||
|
||||
## Running Locally with Docker
|
||||
## Containers
|
||||
|
||||
**Prerequisites**
|
||||
If you would like to try out CyberChef locally you can either build it yourself:
|
||||
|
||||
- [Docker](hhttps://www.docker.com/products/docker-desktop/)
|
||||
- Docker Desktop must be open and running on your machine
|
||||
|
||||
|
||||
#### Option 1: Build the Docker Image Yourself
|
||||
|
||||
1. Build the docker image
|
||||
```bash
|
||||
docker build --tag cyberchef --ulimit nofile=10000 .
|
||||
```
|
||||
2. Run the docker container
|
||||
```bash
|
||||
docker run -it -p 8080:80 cyberchef
|
||||
```
|
||||
3. Navigate to `http://localhost:8080` in your browser
|
||||
|
||||
#### Option 2: Use the pre-built Docker Image
|
||||
|
||||
If you prefer to skip the build process, you can use the pre-built image
|
||||
Or you can use our image directly:
|
||||
|
||||
```bash
|
||||
docker run -it -p 8080:80 ghcr.io/gchq/cyberchef:latest
|
||||
```
|
||||
|
||||
Just like before, navigate to `http://localhost:8080` in your browser.
|
||||
|
||||
This image is built and published through our [GitHub Workflows](.github/workflows/releases.yml)
|
||||
|
||||
## How it works
|
||||
|
||||
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "cyberchef",
|
||||
"version": "10.20.0",
|
||||
"version": "10.19.4",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "cyberchef",
|
||||
"version": "10.20.0",
|
||||
"version": "10.19.4",
|
||||
"hasInstallScript": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "cyberchef",
|
||||
"version": "10.20.0",
|
||||
"version": "10.19.4",
|
||||
"description": "The Cyber Swiss Army Knife for encryption, encoding, compression and data analysis.",
|
||||
"author": "n1474335 <n1474335@gmail.com>",
|
||||
"homepage": "https://gchq.github.io/CyberChef",
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/**
|
||||
* @author j433866 [j433866@gmail.com]
|
||||
* @author 0xff1ce [github.com/0xff1ce]
|
||||
* @copyright Crown Copyright 2024
|
||||
* @copyright Crown Copyright 2019
|
||||
* @license Apache-2.0
|
||||
*/
|
||||
|
||||
@@ -23,7 +22,7 @@ class ShowOnMap extends Operation {
|
||||
this.name = "Show on map";
|
||||
this.module = "Hashing";
|
||||
this.description = "Displays co-ordinates on a slippy map.<br><br>Co-ordinates will be converted to decimal degrees before being shown on the map.<br><br>Supported formats:<ul><li>Degrees Minutes Seconds (DMS)</li><li>Degrees Decimal Minutes (DDM)</li><li>Decimal Degrees (DD)</li><li>Geohash</li><li>Military Grid Reference System (MGRS)</li><li>Ordnance Survey National Grid (OSNG)</li><li>Universal Transverse Mercator (UTM)</li></ul><br>This operation will not work offline.";
|
||||
this.infoURL = "https://osmfoundation.org/wiki/Terms_of_Use";
|
||||
this.infoURL = "https://foundation.wikimedia.org/wiki/Maps_Terms_of_Use";
|
||||
this.inputType = "string";
|
||||
this.outputType = "string";
|
||||
this.presentType = "html";
|
||||
@@ -86,10 +85,10 @@ class ShowOnMap extends Operation {
|
||||
data = "0, 0";
|
||||
}
|
||||
const zoomLevel = args[0];
|
||||
const tileUrl = "https://tile.openstreetmap.org/{z}/{x}/{y}.png",
|
||||
tileAttribution = "© <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors",
|
||||
leafletUrl = "https://unpkg.com/leaflet@1.9.4/dist/leaflet.js",
|
||||
leafletCssUrl = "https://unpkg.com/leaflet@1.9.4/dist/leaflet.css";
|
||||
const tileUrl = "https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png",
|
||||
tileAttribution = "<a href=\"https://wikimediafoundation.org/wiki/Maps_Terms_of_Use\">Wikimedia maps</a> | © <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors",
|
||||
leafletUrl = "https://unpkg.com/leaflet@1.5.0/dist/leaflet.js",
|
||||
leafletCssUrl = "https://unpkg.com/leaflet@1.5.0/dist/leaflet.css";
|
||||
return `<link rel="stylesheet" href="${leafletCssUrl}" crossorigin=""/>
|
||||
<style>
|
||||
#output-text .cm-content,
|
||||
|
||||
@@ -45,12 +45,11 @@ class ToDecimal extends Operation {
|
||||
* @returns {string}
|
||||
*/
|
||||
run(input, args) {
|
||||
input = new Uint8Array(input);
|
||||
const delim = Utils.charRep(args[0]),
|
||||
signed = args[1];
|
||||
if (signed) {
|
||||
input = new Int8Array(input);
|
||||
} else {
|
||||
input = new Uint8Array(input);
|
||||
input = input.map(v => v > 0x7F ? v - 0xFF - 1 : v);
|
||||
}
|
||||
return input.join(delim);
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ class VarIntDecode extends Operation {
|
||||
this.description = "Decodes a VarInt encoded integer. VarInt is an efficient way of encoding variable length integers and is commonly used with Protobuf.";
|
||||
this.infoURL = "https://developers.google.com/protocol-buffers/docs/encoding#varints";
|
||||
this.inputType = "byteArray";
|
||||
this.outputType = "string";
|
||||
this.outputType = "number";
|
||||
this.args = [];
|
||||
}
|
||||
|
||||
@@ -35,18 +35,7 @@ class VarIntDecode extends Operation {
|
||||
*/
|
||||
run(input, args) {
|
||||
try {
|
||||
if (typeof BigInt === "function") {
|
||||
let result = BigInt(0);
|
||||
let offset = BigInt(0);
|
||||
for (let i = 0; i < input.length; i++) {
|
||||
result |= BigInt(input[i] & 0x7f) << offset;
|
||||
if (!(input[i] & 0x80)) break;
|
||||
offset += BigInt(7);
|
||||
}
|
||||
return result.toString();
|
||||
} else {
|
||||
return Protobuf.varIntDecode(input).toString();
|
||||
}
|
||||
return Protobuf.varIntDecode(input);
|
||||
} catch (err) {
|
||||
throw new OperationError(err);
|
||||
}
|
||||
|
||||
@@ -23,31 +23,19 @@ class VarIntEncode extends Operation {
|
||||
this.module = "Default";
|
||||
this.description = "Encodes a Vn integer as a VarInt. VarInt is an efficient way of encoding variable length integers and is commonly used with Protobuf.";
|
||||
this.infoURL = "https://developers.google.com/protocol-buffers/docs/encoding#varints";
|
||||
this.inputType = "string";
|
||||
this.inputType = "number";
|
||||
this.outputType = "byteArray";
|
||||
this.args = [];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} input
|
||||
* @param {number} input
|
||||
* @param {Object[]} args
|
||||
* @returns {byteArray}
|
||||
*/
|
||||
run(input, args) {
|
||||
try {
|
||||
if (typeof BigInt === "function") {
|
||||
let value = BigInt(input);
|
||||
if (value < 0) throw new OperationError("Negative values cannot be represented as VarInt");
|
||||
const result = [];
|
||||
while (value >= 0x80) {
|
||||
result.push(Number(value & BigInt(0x7f)) | 0x80);
|
||||
value >>= BigInt(7);
|
||||
}
|
||||
result.push(Number(value));
|
||||
return result;
|
||||
} else {
|
||||
return Protobuf.varIntEncode(Number(input));
|
||||
}
|
||||
return Protobuf.varIntEncode(input);
|
||||
} catch (err) {
|
||||
throw new OperationError(err);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user