This repository is a high-quality .NET library implementing the OpenBSD BCrypt password hashing algorithm. It serves as a security-critical dependency for authentication systems, providing robust password hashing, verification, and salt generation. The codebase is multi-targeted, supporting legacy .NET Framework versions (4.6.2+) alongside modern .NET standards (2.0/2.1) and recent runtimes (.NET 8.0, 10.0). It includes specialized extensions for ASP.NET Core Identity, allowing seamless integration into existing authentication pipelines without custom implementation. The architecture prioritizes security through constant-time comparisons, secure memory handling, and thread-safe key schedule management using ThreadLocal storage. The library includes extensive test vectors from the original Java reference implementation to ensure algorithmic correctness across different BCrypt revisions (2a, 2b, 2y, 2x). While the core library is production-ready and widely adopted, the repository exhibits some hygiene issues, including the presence of a signing key file in the root directory and a 'dists/' folder containing legacy binary artifacts, which suggests a mix of automated and manual release processes. For engineers evaluating reuse, this library offers a reliable, well-tested foundation for password security. The Identity extension component is particularly valuable for .NET developers needing to replace default password hashers. However, consumers should be aware of the technical drift regarding legacy framework support and the potential security implications of the repository's artifact management practices.
pyUmbral is a Python implementation of the Umbral threshold proxy re-encryption scheme. It enables delegating decryption rights for encrypted data through a process where a data owner (Alice) generates re-encryption key fragments that semi-trusted proxies (Ursulas) use to transform ciphertexts, allowing a delegatee (Bob) to decrypt using his private key when a threshold of proxies participate. The library provides core cryptographic primitives including key generation, encryption, decryption, key fragment generation, re-encryption, and verification mechanisms built on elliptic curve cryptography.