A JavaScript implementation of the OpenPGP protocol for encryption, decryption, signing, and verification.
OpenPGP.js is a JavaScript library that implements the OpenPGP standard for encrypting, decrypting, signing, and verifying data. It enables developers to add end-to-end encryption and digital signatures to web and Node.js applications, securing communications and data storage using public-key cryptography.
JavaScript developers building applications that require encryption, secure messaging, file protection, or digital signatures, particularly those targeting both browser and Node.js environments.
It provides a fully standards-compliant, performant OpenPGP implementation with modern elliptic curve support, leveraging native Web Crypto APIs for speed, and offers a lightweight build for reduced bundle sizes.
OpenPGP implementation for JavaScript
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements RFC 9580 for encryption, decryption, signing, and verification, ensuring interoperability with other PGP tools like GnuPG.
Supports curves like Curve25519 and Ed25519, offering faster and stronger security compared to traditional RSA, with native optimizations.
Leverages the Web Cryptography API and Node.js crypto module for efficient operations, reducing JavaScript overhead.
Uses the Web Streams API to handle large files or data streams in browsers and Node.js, enabling memory-efficient processing.
Offers a lightweight build that lazily loads non-default curves, reducing initial bundle size for web applications.
Major updates, like v6, introduce significant changes such as dropping Node.js native streams, requiring code adjustments and migration efforts.
Requires manual polyfilling for Web Streams API in unsupported browsers, adding complexity and potential side-effects like overwriting native APIs.
Deno integration is marked as experimental, meaning it may not be stable or fully functional for production use.
Enabling authenticated encryption modes can break interoperability with other OpenPGP implementations that haven't yet adopted RFC 9580.