@crysteam/cryptrack (0.1.5)
Published 2025-06-06 12:43:59 +00:00 by Kiefe
Installation
@crysteam:registry=
npm install @crysteam/cryptrack@0.1.5
"@crysteam/cryptrack": "0.1.5"
About this package
🔐 Cryptrack
Cryptrack
— лёгкая TypeScript-библиотека для безопасного обмена данными между сервисами с использованием ECDH (secp256k1
) и симметричного шифрования (AES).
✨ Возможности
- ECDH-вычисление общего секрета между двумя ключами
- Шифрование и расшифровка с помощью AES
- Хранение sharedKey в in-memory Map
- Минимум зависимостей
📦 Установка
npm install @crysteam/cryptrack
🚀 Быстрый старт
import { Cryptrack } from '@crysteam/cryptrack';
import { ec } from 'elliptic';
// Создаём экземпляр Cryptrack
const cryptrack = new Cryptrack();
// Имитируем стороннего клиента
const client = new ec('secp256k1').genKeyPair();
const clientPublicKey = client.getPublic('hex');
// Регистрируем клиента
cryptrack.register('client-1', clientPublicKey);
// Шифруем сообщение
const encrypted = cryptrack.encrypt('client-1', 'Привет, клиент!');
console.log('🔐 Encrypted:', encrypted);
// Расшифровываем
const decrypted = cryptrack.decrypt('client-1', encrypted);
console.log('📬 Decrypted:', decrypted);
// 🔑 Работа с токенами
const token = await cryptrack.signToken('client-1', { role: 'admin' }, '30m');
const payload = await cryptrack.verifyToken(token);
🧩 Методы
register(id: string, publicKeyHex: string): string
Регистрирует клиента и сохраняет sharedKey на основе его публичного ключа.
getKey(id: string): string | undefined
Возвращает ранее сохранённый sharedKey по идентификатору.
encrypt(id: string, data: string): string
Шифрует строку data
с помощью AES и sharedKey, связанного с id
.
decrypt(id: string, encrypted: string): string
Расшифровывает строку с использованием sharedKey, связанного с id
.
getPublicKey(): string
Возвращает публичный ключ текущего Cryptrack-инстанса (hex).
📄 Лицензия
MIT
Dependencies
Dependencies
ID | Version |
---|---|
crypto-js | ^4.2.0 |
elliptic | ^6.6.1 |
jose | ^6.0.11 |
Development Dependencies
ID | Version |
---|---|
@types/crypto-js | ^4.2.2 |
@types/elliptic | ^6.4.18 |
@types/node | ^22.15.29 |
ts-node | ^10.9.2 |
typescript | ^5.8.3 |