npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

she_encrypt

v2.2.2

Published

Cryptographic function for ciphering SHE commands args (M1-M3/M4-M5)

Readme

SHE_encrypt

[TOC]

This NodeJS package contains an implementation for ciphering SHE messages (M1/M2/M3-M4/M5) from CID, Keys and channels. It contains several software components:

  • one NodeJS prototyped instance SHE_encrypt.js
  • one command using the SHE_encrypt.js instance

For using the 'SHE_encrypt.js' component refers to the test.js test file for API. For using the command refers to the test.ts test file for command examples. For running tests use:

$ npm test

Installing

Use :

$ npm install

SHE messages generation

# First setup the environment for accessing NodeJS
a047461@FRUH112777 MINGW64 ~/OneDrive - Alliance/Sources/MAC/export/repos/all_mac/SHE_encrypt$ . ~/.bashrc
Use 'WITH_ALL=y . ~/.bashrc' for  defining all dev env
Use 'export WITH_NODEJS=y' for defining NodeJS env
Use 'export WITH_RUST=y' for defining Rust env
Use 'export WITH_JAVA=y' for defining Java rt env
Use 'export WITH_PERL=y' for defining Python rt env
Use 'export WITH_PYTHON=y' for defining Python rt env
Use 'export WITH_GCLOUD=y' for defining GCloud Workstations env
Use 'export WITH_LLVM=y' for defining LLVM env
And source again bash init file with 'source ~/.bashrc' ...

# The WITH_NODEJS=y allows to access NodeJS on my setup. Once set, source bashrc again ...
a047461@FRUH112777 MINGW64 ~/OneDrive - Alliance/Sources/MAC/export/repos/all_mac/SHE_encrypt$ export WITH_NODEJS=y

# And it will provides access with NodeJS
a047461@FRUH112777 MINGW64 ~/OneDrive - Alliance/Sources/MAC/export/repos/all_mac/SHE_encrypt$ . ~/.bashrc
Use 'WITH_ALL=y . ~/.bashrc' for  defining all dev env
Setting up NodeJS ... done!
Use 'export WITH_RUST=y' for defining Rust env
Use 'export WITH_JAVA=y' for defining Java rt env
Use 'export WITH_PERL=y' for defining Python rt env
Use 'export WITH_PYTHON=y' for defining Python rt env
Use 'export WITH_GCLOUD=y' for defining GCloud Workstations env
Use 'export WITH_LLVM=y' for defining LLVM env
And source again bash init file with 'source ~/.bashrc' ...

# Once done, use npm install for setting up the application
a047461@FRUH112777 MINGW64 ~/OneDrive - Alliance/Sources/MAC/export/repos/all_mac/SHE_encrypt$ npm install

up to date in 10s

32 packages are looking for funding
  run `npm fund` for details

# The first thing to do is verifying unitary tests are OK ... Use 'npm test' for this purpose:
a047461@FRUH112777 MINGW64 ~/OneDrive - Alliance/Sources/MAC/export/repos/all_mac/SHE_encrypt$ npm test

> [email protected] test
> jest

 PASS  ./test.js
 PASS  ./test.ts (8.762 s)

Test Suites: 2 passed, 2 total
Tests:       54 passed, 54 total
Snapshots:   0 total
Time:        9.972 s
Ran all test suites.

# Use the generate_she.js command in the bin directory by passing '-h' argument for displaying help ...
a047461@FRUH112777 MINGW64 ~/OneDrive - Alliance/Sources/MAC/export/repos/all_mac/SHE_encrypt$ ./bin/generate_she.js -h
generate_she.js: Usage: generate_she.js [<OPTIONS>] <COMMAND> [<ARGUMENTS>]
                 This command aims at generating SHE messages for MAC keys provisi-
                 onning.
          OPTIONS:
                 -v|--verbose               be more verbose when running. Use sev-
                                            eral times in order to raise verbosity.
          COMMANDS:
                 -h|--help                  display this help message.

          ARGUMENTS:
                 -K|--iskmac                generate a Kmac instead of Kmaster.
                 -k|--key[=]<kmac>          Kmac to be provisionned.
                 -m|--master[=]<kmaster>    Kmaster to be provisionned.
                 -c|--cid[=]<cid>           the CID to be used.
                 -C|--channel[=]<channel>   the channel to be used for Kmac.

Copyright  2023 RENAULT GROUP / Rmi COHEN SCALI <[email protected]>

# Then let's start to generate a new master key: A123456789B123456789C123456789D1 with the old one 1F987654321E987654321D987654321C
# CID is 0x2000001
a047461@FRUH112777 MINGW64 ~/OneDrive - Alliance/Sources/MAC/export/repos/all_mac/SHE_encrypt$ ./bin/generate_she.js -k A123456789B123456789C123456789D1 -m 1F987654321E987654321D987654321C -c 0x2000001
CID      = 33554433 (0x2000001)
M1       = 00000000000000000000000000000011
M2       = c44f5059d23ce5fd079a19cc8b1b5804aacc41183dc38b140c392f16a21c2a92
M3       = fff0a3eb96f502d96e64edac0bc338a2
M4       = 00000000000000000000000000000011a7e57c5f614167ee29e745c8777632e4
M5       = 8ceef7c0a4aa4bef36762e0de066d8db
M1|M2|M3 = 00000000000000000000000000000011 c44f5059d23ce5fd079a19cc8b1b5804aacc41183dc38b140c392f16a21c2a92 fff0a3eb96f502d96e64edac0bc338a2
M4|M5    = 00000000000000000000000000000011a7e57c5f614167ee29e745c8777632e4 8ceef7c0a4aa4bef36762e0de066d8db

# Then generate a Kmac key for channel 1: 123456789B123456789C123456789D12 using the new master key: A123456789B123456789C123456789D1
a047461@FRUH112777 MINGW64 ~/OneDrive - Alliance/Sources/MAC/export/repos/all_mac/SHE_encrypt$ ./bin/generate_she.js -K -k 123456789B123456789C123456789D12 -m A123456789B123456789C123456789D1 -c 0x2000002 -C 1
CID      = 33554434 (0x2000002)
M1       = 00000000000000000000000000000041
M2       = eeb96ef0669d947bdb5986718728728067125e06117dc0f61318952c008f7e96
M3       = 546a16ca23f1e3b890c74cb7a57840d4
M4       = 0000000000000000000000000000004131c320f97774c22a51d4c1a8da8428f4
M5       = 480aaf9db1b896f1829355f132437802
M1|M2|M3 = 00000000000000000000000000000041 eeb96ef0669d947bdb5986718728728067125e06117dc0f61318952c008f7e96 546a16ca23f1e3b890c74cb7a57840d4
M4|M5    = 0000000000000000000000000000004131c320f97774c22a51d4c1a8da8428f4 480aaf9db1b896f1829355f132437802

# Then generate a Kmac key for channel 2: 23456789B123456789C123456789D123 using the new master key: A123456789B123456789C123456789D1
a047461@FRUH112777 MINGW64 ~/OneDrive - Alliance/Sources/MAC/export/repos/all_mac/SHE_encrypt$ ./bin/generate_she.js -K -k 23456789B123456789C123456789D123 -m A123456789B123456789C123456789D1 -c 0x2000003 -C 2
CID      = 33554435 (0x2000003)
M1       = 00000000000000000000000000000051
M2       = d719bb4cd7ee7466235668e914c8da40db467e3ab4738cbc0b3e9b4f2e32605b
M3       = ce732465323c03b7df4380776c05f6e4
M4       = 000000000000000000000000000000517c7c0878a832a4f20498558698949418
M5       = 4ec5c0f63578cc66e4293bb0761e61f8
M1|M2|M3 = 00000000000000000000000000000051 d719bb4cd7ee7466235668e914c8da40db467e3ab4738cbc0b3e9b4f2e32605b ce732465323c03b7df4380776c05f6e4
M4|M5    = 000000000000000000000000000000517c7c0878a832a4f20498558698949418 4ec5c0f63578cc66e4293bb0761e61f8

# Then generate a Kmac key for channel 3: 3456789B123456789C123456789D1234 using the new master key: A123456789B123456789C123456789D1
a047461@FRUH112777 MINGW64 ~/OneDrive - Alliance/Sources/MAC/export/repos/all_mac/SHE_encrypt$ ./bin/generate_she.js -K -k 3456789B123456789C123456789D1234 -m A123456789B123456789C123456789D1 -c 0x2000004 -C 3
CID      = 33554436 (0x2000004)
M1       = 00000000000000000000000000000061
M2       = 721fddd669375ee9a4102c756470f45718e8a40ff19995324a33af0b1ed5959d
M3       = e73a7ceffb2f30de4f7a94a68826e5b9
M4       = 0000000000000000000000000000006144a2d4841d4e708aeb1c7c7a0848e055
M5       = 3dc7c6cdd676120f71effba929a191cc
M1|M2|M3 = 00000000000000000000000000000061 721fddd669375ee9a4102c756470f45718e8a40ff19995324a33af0b1ed5959d e73a7ceffb2f30de4f7a94a68826e5b9
M4|M5    = 0000000000000000000000000000006144a2d4841d4e708aeb1c7c7a0848e055 3dc7c6cdd676120f71effba929a191cc

# Then generate a Kmac key for channel 4: 456789B123456789C123456789D12345 using the new master key: A123456789B123456789C123456789D1
a047461@FRUH112777 MINGW64 ~/OneDrive - Alliance/Sources/MAC/export/repos/all_mac/SHE_encrypt$ ./bin/generate_she.js -K -k 456789B123456789C123456789D12345 -m A123456789B123456789C123456789D1 -c 0x2000005 -C 4
CID      = 33554437 (0x2000005)
M1       = 00000000000000000000000000000071
M2       = d22671dc00fcc446d965a621af39c29aac811e52c989b47307377b9eaa6242dd
M3       = a137c4c9c0fdc04daa949bd62c5230a9
M4       = 000000000000000000000000000000717b4b9364cdf0bf0d8959c5a8afe47ba3
M5       = 181a11d0721ce93fa6a8d32e4f1ba57a
M1|M2|M3 = 00000000000000000000000000000071 d22671dc00fcc446d965a621af39c29aac811e52c989b47307377b9eaa6242dd a137c4c9c0fdc04daa949bd62c5230a9
M4|M5    = 000000000000000000000000000000717b4b9364cdf0bf0d8959c5a8afe47ba3 181a11d0721ce93fa6a8d32e4f1ba57a

# Finally generate a Kmac key for channel 5: 56789B123456789C123456789D123456 using the new master key: A123456789B123456789C123456789D1
a047461@FRUH112777 MINGW64 ~/OneDrive - Alliance/Sources/MAC/export/repos/all_mac/SHE_encrypt$ ./bin/generate_she.js -K -k 56789B123456789C123456789D123456 -m A123456789B123456789C123456789D1 -c 0x2000006 -C 5
CID      = 33554438 (0x2000006)
M1       = 00000000000000000000000000000081
M2       = 14d7f1abf977ced2a85d1bfbfae1e9f22eea974476f58cec023ca846017df276
M3       = a5cd817929cdec2e64ed3dc4c7e4e974
M4       = 00000000000000000000000000000081139f68c8839f05dbf4867cc5faf21537
M5       = 14cc3f1eab3332d4acef12d55a221601
M1|M2|M3 = 00000000000000000000000000000081 14d7f1abf977ced2a85d1bfbfae1e9f22eea974476f58cec023ca846017df276 a5cd817929cdec2e64ed3dc4c7e4e974
M4|M5    = 00000000000000000000000000000081139f68c8839f05dbf4867cc5faf21537 14cc3f1eab3332d4acef12d55a221601

a047461@FRUH112777 MINGW64 ~/OneDrive - Alliance/Sources/MAC/export/repos/all_mac/SHE_encrypt$