Vai al contenuto principale

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.

Libreria crittografica Suite25519 per le risorse del mondo reale

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 come atob/btoa.

Come iniziare

0. Installare tramite npm:

npm install @leachain/suite25519
  1. 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.

Seguiteci: Facebook | Twitter | Github

Centro per le preferenze sulla privacy