Skip to content

Latest commit

 

History

History
61 lines (32 loc) · 1.27 KB

README.md

File metadata and controls

61 lines (32 loc) · 1.27 KB

MemSafeCrypto

A subset of BouncyCastle crypto primitives, refactored to use DirectByteBuffer instead of primitive arrays, to avoid leaving sensitive data in memory due to internal copying and garbage compactification done by the JVM.

Summary of Changes

  • introducted ICryptoZeroable interface
  • created CByteArray, CIntArray, and CLongArray classes based on DirectByteBuffer
  • modified BouncyCastle classes to use new array types

Supported Primitives

  • Argon2
  • Blake2b
  • DigestRandomGenerator
  • HKDFBytesGenerator
  • Poly1305
  • Salsa20Engine
  • Scrypt
  • SHA256Digest
  • XSalsa20Engine

Dependencies

None.

(Bouncycastle library is used for tests only).

Original Code

This project is based on BouncyCastle release 1.69:

https://github.com/bcgit/bc-java

Projects That Use MemSafeCrypto

Access Panel

DirCrypt

Passwørd Safe

SecDB

License

The project is licensed under Apache 2.0 license, which I believe is compatible with the BouncyCastle license LICENSE.html.