A modular cryptographic toolkit combining the powers of encryption to handle both asymmetric (RSA) and symmetric (AES) encryption tasks with ease.
Built for modern apps that need to juggle certificates, keys, and encrypted data — across Node.js and browser environments. ✨
This suite is composed of three powerful and lightweight modules:
-
TinyCertCrypto
– Handles X.509 certificates, RSA key pairs, and public/private encryption. -
TinyOlm
– Implements Olm protocol for end-to-end encryption, managing identity keys, sessions, and message exchange securely. -
TinyCrypto
– Provides AES-256-GCM symmetric encryption and supports complex JavaScript data types out-of-the-box.
Together, they form a flexible system for secure communication, configuration handling, and data protection across platforms.
- 🔐 Generate and validate X.509 certificates
- 📩 Send encrypted JSON between services using RSA
- 🗄️ Store encrypted configurations or secrets using AES
- 🧬 Serialize/deserialize sensitive objects securely
- 🌍 Build portable, encrypted apps that work both in browser and Node.js
npm install tiny-crypto-suite
// Import the module
import { TinyCrypto, TinyCertCrypto } from 'tiny-crypto-suite';
// Create an instance of TinyCrypto
const crypto = new TinyCrypto();
// Create an instance of TinyCertCrypto (Node.js only for full features)
const tinyCert = new TinyCertCrypto({
publicCertPath: 'cert.pem',
privateKeyPath: 'key.pem'
});
tinyCert.startCrypto();
Use this when you need:
- RSA key generation (Node.js only)
- Self-signed X.509 certificates
- Public key encryption / Private key decryption
- Certificate metadata extraction
- PEM-based certificate management
➡️ Full documentation: See TinyCertCrypto README
Use this for:
- Fast and portable AES-256-GCM encryption
- Serializing JavaScript objects like
Date
,Map
,Set
, etc. - Decrypting with type validation
- Saving/loading keys and configurations (Node.js + browser)
➡️ Full documentation: See TinyCrypto README
Whether you need high-level encrypted configs or low-level cert management, this suite has you covered:
- Use TinyCertCrypto to handle certificates, keys, and secure communication.
- Use TinyCrypto to serialize, encrypt, and store complex app data safely.
- Combine both for maximum flexibility and layered security. 🔐
Looking for detailed module explanations and usage examples?
Check out the full documentation here:
Feel free to fork, contribute, and create pull requests for improvements! Whether it's a bug fix or an additional feature, contributions are always welcome.
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.
🧠 Note: This documentation was written by ChatGPT, an AI assistant developed by OpenAI, based on the project structure and descriptions provided by the repository author.
If you find any inaccuracies or need improvements, feel free to contribute or open an issue!