A Node.js addon for interacting with the Nitro Secure Module, which provides Nitro Enclaves with attestation capability. napi-rs based, only for Linux.
- PCR query and manipulation
- Attestation
- Entropy
Please refer to aws/aws-nitro-enclaves-nsm-api.
For Attestation Document details, check the following document: Nitro Enclaves Attestation Process
npm install --save aws-nitro-enclaves-nsm-node
yarn add aws-nitro-enclaves-nsm-node
node14 | node16 | node18 | |
---|---|---|---|
Linux x64 gnu | ✓ | ✓ | ✓ |
Linux x64 musl | ✓ | ✓ | ✓ |
open, alias init
, Initialization function.
close, alias exit
, Exit function.
extendPcr, NSM ExtendPCR
operation.
getPcrDescription, NSM DescribePCR
operation.
lockPcr, NSM LockPCR
operation.
lockPcrs, NSM LockPCRs
operation.
getDescription, NSM Describe
operation.
getAttestationDoc, NSM GetAttestationDoc
operation.
getRandom, NSM GetRandom
operation. Returns up to 256 bytes of random data.
import {
open,
close,
extendPcr,
getPcrDescription,
lockPcr,
lockPcrs,
getDescription,
getAttestationDoc,
getRandom
} from "aws-nitro-enclaves-nsm-node"
const fd = open()
// extendPcr
// getPcrDescription
// lockPcr
// lockPcrs
// getDescription
// getRandom
const attestationDoc = getAttestationDoc(
fd,
Buffer.from("hello world"), // user data
null, // nonce
Buffer.from("my public key"), // public key
)
console.log(attestationDoc)
close(fd)
- Install the latest
Rust
- Install
Node.js@12+
which fully supportedNode-API v4
- Install
yarn@1.x
- yarn
- yarn build
MIT