@andgohq/cassl
v1.0.4
Published
CASSL: Configurable Authenticated Secret Sharing Library
Downloads
18
Readme
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/cassl
Usage
import { split, combine, genKeyPair } from "@andgohq/cassl";
const MODE = "MAC-SSS";
const data = Buffer.from("hello, world", "utf8");
const keyPair = genKeyPair();
// split data into 5 shares, 3 of them are required to recover the data
const shares = split(MODE, data, 5, 3, keyPair.publicKey);
// combine 3 shares to recover the data
const recovered = combine(MODE, shares.slice(0, 3), keyPair.secretKey).toString(
"utf8"
);
console.log(recovered === "hello, world"); // true
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.pem
After 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
# build
npm run build
# publish
npm publish