@dshfly/crypto
v0.1.0
Published
DSH Fly 的端到端加密与签名原语(纯 JS,Node 与 React Native 通用):
Readme
@dshfly/crypto
DSH Fly 的端到端加密与签名原语(纯 JS,Node 与 React Native 通用):
- X25519 / Ed25519(
@noble/curves) - ChaCha20-Poly1305(IETF, RFC 8439,
@noble/ciphers) - HKDF-SHA256(
@noble/hashes) - E2EE 信封
sealEnvelope/openEnvelope(协议 v2:版本字段 + 方向密钥 + Ed25519 签名 + seq/nonce 防重放)与本地加密sealLocal/openLocal ReplayGuard滑窗防重放
安装
npm i @dshfly/crypto快速使用
import { sealEnvelope, openEnvelope, deriveSessionKey, deriveDirectionalKeys } from '@dshfly/crypto';
const dir = deriveDirectionalKeys(sessionKey); // { up, down }
const env = sealEnvelope(dir.up, {
fromPublicKey: phonePub,
toPublicKey: pcPub,
seq: 1,
identitySecretKey: phoneSecret,
}, plaintext);
const plain = openEnvelope(dir.down, env);加解密必须用方向密钥(
dir.up/dir.down),不要直接传根会话密钥(96-bit nonce 碰撞域按方向隔离)。
