Suite25519 è una libreria crittografica per beni reali, progettata per essere sicura, semplice ed efficiente. Costruita nell'ambito dell'ecosistema LEA Blockchain, è progettata per gli sviluppatori che necessitano di strumenti di crittografia ad alte prestazioni con un overhead minimo.
Alimentata dagli eccellenti pacchetti @noble/ciphers, @noble/curves e @noble/hashes, Suite25519 si sovrappone a queste librerie verificate e performanti per fornire un'API pulita e minimale agli sviluppatori che necessitano di capacità crittografiche senza l'overhead.

Cosa fa
Suite25519 offre una suite mirata di funzioni crittografiche costruite attorno a Ed25519 e X25519, con il supporto della moderna serializzazione CBOR e l'utilizzo isomorfico tra gli ambienti.
Questa libreria crittografica per le risorse del mondo reale include...
- Generazione di coppie di chiavi
Genera coppie di chiavi Ed25519 per la firma sicura dei messaggi e l'identità. - Firme digitali
Firmate i messaggi utilizzando Ed25519 e verificate l'autenticità con un attrito API minimo. - Verifica della firma
Verifica i payload firmati per garantire l'integrità dei dati e l'autenticità della fonte. - Crittografia tramite ECIES
Crittografare i dati utilizzando Elliptic Curve Integrated Encryption Scheme (X25519 + HKDF-SHA256 + AES-GCM-SIV) per garantire riservatezza e integrità. - Decifrazione tramite ECIES
Decifrare i payload in arrivo crittografati con la propria chiave pubblica. - Operazioni combinate
Avete bisogno di firmare e poi criptare o decriptare e poi verificare? Suite25519 rende queste azioni composte ergonomiche e sicure. - Serializzazione CBOR
Sfrutta cbor per una codifica binaria compatta ed efficiente. Include aiutanti per l'esportazione/importazione di chiavi in base64. - Supporto isomorfico
Scrivete una volta, eseguite ovunque: funziona in Node.js (v16+) e nei browser moderni che supportano Web Crypto API. Utilizza TextEncoder/TextDecoder nativi e aiutanti base64 comeatob
/btoa
.
Come iniziare
0. Installare tramite npm:
npm install @leachain/suite25519
- Generare chiavi e firmare un messaggio
import { PrivateKey, signMessage } from './suite25519.js';
// Generate a new identity (key pair)
const myPrivateKey = PrivateKey.randomPrivateKey();
const myPublicKey = myPrivateKey.publicKey;
// Create a signature for a message
const message = "This is my message";
const signedPayload = signMessage(message, myPrivateKey, true, true); // Include msg & key
console.log("Message signed successfully! Payload contains signature, message, and public key.");
// You would typically send 'signedPayload' (Uint8Array) to someone who has 'myPublicKey' to verify.For encryption:
2. Crittografare e decrittografare un messaggio
Si tratta di criptare un messaggio in modo che solo il destinatario (che possiede la chiave privata corrispondente) possa leggerlo.
import { PrivateKey, encryptMessage, decryptMessage } from './suite25519.js';
// Assume we have the recipient's public key
const recipientPrivateKey = PrivateKey.randomPrivateKey(); // Recipient keeps this secret
const recipientPublicKey = recipientPrivateKey.publicKey; // This is shared publicly
// Encrypt a secret message for the recipient
const secret = "Meet me at midnight";
const encryptedPayload = encryptMessage(secret, recipientPublicKey);
// Only the recipient can decrypt it
const decryptedBytes = decryptMessage(encryptedPayload, recipientPrivateKey);
console.log("Message encrypted and decrypted successfully.");
// console.log("Decrypted:", new TextDecoder().decode(decryptedBytes)); // "Meet me at midnight"
3. Firma, poi cripta e decripta, poi verifica
Combina la firma e la crittografia. Il messaggio viene prima firmato dal mittente e poi crittografato per il destinatario. Il destinatario lo decifra e poi verifica la firma del mittente, garantendo sia la riservatezza che l'autenticità.
import { PrivateKey, signAndEncryptMessage, decryptAndVerifyMessage } from './suite25519.js';
// Keys for sender and recipient
const senderPrivateKey = PrivateKey.randomPrivateKey();
const senderPublicKey = senderPrivateKey.publicKey;
const recipientPrivateKey = PrivateKey.randomPrivateKey();
const recipientPublicKey = recipientPrivateKey.publicKey;
// Message to send securely and with proof of origin
const importantMessage = "Order confirmed: #12345";
// Sender signs *then* encrypts
const signedEncryptedPayload = signAndEncryptMessage(
importantMessage,
senderPrivateKey, // Sign with sender's private key
recipientPublicKey // Encrypt for recipient's public key
);
// Recipient decrypts *then* verifies
const originalVerifiedBytes = decryptAndVerifyMessage(
signedEncryptedPayload,
recipientPrivateKey, // Decrypt with recipient's private key
senderPublicKey // Verify against sender's public key
);
console.log("Message securely transmitted and sender verified.");
// console.log("Original Message:", new TextDecoder().decode(originalVerifiedBytes)); // "Order confirmed: #12345"
Per saperne di più
Sia che stiate costruendo con LEA o altrove, Suite25519 è una libreria crittografica per le risorse del mondo reale che dà priorità alla sicurezza e alla semplicità.
Consultate la documentazione o esplorate il codice sorgente su GitHub. Suite25519 è in fase di sviluppo attivo, con al centro sicurezza e semplicità.
Se state costruendo con LEA o avete semplicemente bisogno di primitive crittografiche affidabili con un'API semplice, Suite25519 vi copre le spalle.
Sicuro. Semplice. Suite25519.