1.1.5 • Published 8 months ago
@andgohq/cassl v1.1.5
CASSL: Configurable Authenticated Secret Sharing Library
Now internal usage only.
Supported platform: NodeJs Supported mode: MAC-SSS, SMAC-SSS, SSS, SSS-MAC, SSS-SMAC
Install
npm install @andgohq/casslUsage
import { split, combine, genKeyPair, type NONCE_BYTES } from "@andgohq/cassl";
const MODE = "AEAD-SSS";
const data = Buffer.from("hello, world", "utf8");
const keyPair = genKeyPair();
const nonce = Buffer.alloc(NONCE_BYTES);
// split data into 5 shares, 3 of them are required to recover the data
const shares = split(MODE, data, 5, 3, nonce, keyPair.publicKey);
// combine 3 shares to recover the data
const recovered = combine(
  MODE,
  shares.slice(0, 3),
  nonce,
  keyPair.secretKey
).toString("utf8");
console.log(recovered === "hello, world"); // trueEnvironment Variables
- CASSL_LOG_LEVEL: default=info, the log level.
- CASSL_LOG_FILE: when set, the log will be written to the file.
- CASSL_BUFFER_BYTES: default=10MB, the size of the buffer to store the data.
- CASSL_CONTROL_CHUNK_BYTES: default=512KB, the size of the control chunk.
- CASSL_HIGH_WATER_MARK: default=0, the high water mark of the buffer.
Key Pair
In the above, we used genKeyPair().
Alternatevely, we can also generate key pair using openssl.
openssl genpkey -algorithm x25519 -out x25519-priv.pem
openssl pkey -in x25519-priv.pem -pubout -out x25519-pub.pemAfter that, we can import the pem file.
In NodeJs, we can use crypto.createPrivateKey() and crypto.createPublicKey() to import the pem file.
Note that the x25519 algorithm is not supported by the openssl version shipped with macOS.
Development
# install dependencies
npm install
# test
npm run test
# test with long data
npm run test:long
# build
npm run build
# publish
npm publishNotes
- Use globalThis.process.envto avoid the hardcoding by parcel builder.
1.1.1
9 months ago
1.1.0
9 months ago
1.1.5
8 months ago
1.1.4
8 months ago
1.1.3
8 months ago
1.1.2
8 months ago
1.0.2
2 years ago
1.0.1
2 years ago
1.0.0
2 years ago
1.0.4
2 years ago
1.0.3
2 years ago
0.0.9
2 years ago
0.0.8
2 years ago
0.0.5
2 years ago
0.0.4
2 years ago
0.0.7
2 years ago
0.0.6
2 years ago
0.0.3
2 years ago
0.0.2
2 years ago
0.0.1
2 years ago