@xv-team24/dm-crypto
v0.3.2
Published
V-TAMP DM(ダイレクトメッセージ)用の暗号化パッケージです。 [TweetNaCl](https://tweetnacl.js.org/) をベースに、XSalsa20-Poly1305 対称暗号化と Curve25519 ECDH 鍵交換を提供します。
Readme
@xv-team24/dm-crypto
V-TAMP DM(ダイレクトメッセージ)用の暗号化パッケージです。 TweetNaCl をベースに、XSalsa20-Poly1305 対称暗号化と Curve25519 ECDH 鍵交換を提供します。
インストール
npm install @xv-team24/dm-crypto提供する関数
対称暗号化(XSalsa20-Poly1305)
| 関数 | 説明 |
|------|------|
| generateSymmetricKey() | 32バイトの対称鍵を生成 |
| generateNonceBytes() | 24バイトのノンスを生成 |
| encryptMessageWithKeyBytes(plaintext, keyBytes) | メッセージを暗号化。{ ciphertext, nonce } を返す |
| decryptMessageWithKeyBytes(ciphertext, nonce, keyBytes) | メッセージを復号 |
| encryptMessageWithKeyBase64(plaintext, keyBase64) | Base64キーでメッセージを暗号化 |
| decryptMessageWithKeyBase64(ciphertext, nonce, keyBase64) | Base64キーでメッセージを復号 |
鍵交換(Curve25519 ECDH)
| 関数 | 説明 |
|------|------|
| generateKeyPairBase64() | キーペアを生成。{ publicKey, privateKey } を返す(Base64) |
| getPublicKeyFromPrivateBase64(privateKeyBase64) | 秘密鍵から公開鍵を導出 |
| deriveSharedKeyBase64(privateKeyBase64, peerPublicKeyBase64) | 共有鍵を導出(Base64) |
| deriveSharedKeyBytes(secretKeyBytes, peerPublicKeyBase64) | 共有鍵を導出(Uint8Array) |
ユーティリティ
| 関数 | 説明 |
|------|------|
| arrayToBase64(array) | Uint8Array を Base64 にエンコード |
| base64ToArray(value) | Base64 を Uint8Array にデコード |
| encodeBase64Utf8(value) | UTF-8 文字列を Base64 にエンコード |
| decodeBase64Utf8(value) | Base64 を UTF-8 文字列にデコード |
パッケージの更新(メンテナー向け)
- コードを修正
package.jsonのversionを更新(例:0.2.0→0.3.0)- コミット & プッシュ
- publish:
npm publish --registry https://registry.npmjs.orgnpmjs.com アカウントの2FA認証が求められます。ブラウザで認証を完了してください。
ライセンス
MIT
