@crysteam/cryptrack (0.1.3)

Published 2025-06-06 12:30:39 +00:00 by Kiefe

Installation

@crysteam:registry=
npm install @crysteam/cryptrack@0.1.3
"@crysteam/cryptrack": "0.1.3"

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
Details
npm
2025-06-06 12:30:39 +00:00
1
Crysteam
ISC
3.7 KiB
Assets (1)
Versions (8) View all
0.1.6 2025-06-07
0.1.6-0 2025-06-07
0.1.5 2025-06-06
0.1.4 2025-06-06
0.1.3 2025-06-06