This repository provides a WebCrypto API polyfill for Node.js, implementing the W3C Web Cryptography API using Node's native crypto module. It supports a comprehensive set of algorithms including AES (CBC, CTR, GCM, ECB, KW, CMAC), DES (CBC, EDE3-CBC), RSA (SSA, PSS, OAEP, ES), ECDSA, ECDH, EdDSA, ECDH-ES, Ed25519, X25519, HMAC, PBKDF2, HKDF, SHA-1/256/384/512, SHA3-256/384/512, and SHAKE128/256. The architecture follows a provider pattern where each algorithm is implemented as a separate class extending a base provider from the 'webcrypto-core' library. Key management is handled through internal CryptoKey classes with serialization support for JWK, raw, PKCS8, and SPKI formats. The library is designed as a drop-in replacement for the browser's crypto.subtle API, enabling isomorphic JavaScript cryptography.
Intel ISA-L Crypto is a production-grade, high-performance cryptographic library optimized for storage and networking workloads. It provides software implementations of AES (CBC, GCM, XTS), multi-buffer hashing (SHA1, SHA256, SHA512, MD5, SM3), multi-hash parallel hashing, rolling hash for content-defined chunking, and FIPS 140 self-tests. The library is not an application but a low-level C library with assembly (x86 SSE/AVX/AVX512/VAES/AVX10, ARM NEON/SVE/SVE2, RISC-V RVV) to maximize throughput on modern CPUs. The codebase is organized by algorithm (aes/ sha1_mb/ mh_sha1/ rolling_hash/) with architecture-specific subdirectories. It uses a robust multi-buffer job manager pattern (init/submit/flush) for all hashing algorithms and a multibinary dispatcher to select the optimal SIMD variant at runtime. Extensive test suites (standard vectors, random, streaming, performance, fuzz) validate correctness against OpenSSL and NIST vectors. The library is actively maintained, supports multiple build systems (autotools, cmake, nmake), and includes CI for Linux, Windows, ARM64, and RISC-V. While the code is professionally engineered with high performance as the primary goal, it suffers from significant duplication across hash algorithms and ISA variants, making maintenance and extraction of individual components non-trivial. It is not a general-purpose crypto library but specifically targets scenarios requiring maximum throughput on Intel and ARM processors, making it ideal for integration into storage appliances, network appliances, and DPDK-based packet processing.