Files
rcw/README.md
T

37 lines
2.0 KiB
Markdown

# RCW (Randall's Cryptographic Wrappers)
RCW is a cascading symmetric cryptography agent meant to be embedded within Go programs.
It encrypts all data with both AES256-GCM and ChaCha20-Poly1305.
Passwords are securely cached for three minutes and RPC authentication is used to
ensure that only the binary+user responsible for caching the password can utilize it.
This feature is supported on Linux, FreeBSD, MacOS, and Windows. It is disabled if
built with `-tags=interactive`.
RCW also features a sanity check to ensure no data loss occurs due to a user entering the
incorrect password during encryption.
Please note that RCW is a work-in-progress and breaking changes should be expected.
Future versions may not be capable of decrypting the output of the current version.
> [!WARNING]
>It is your responsibility to assess the security and stability of RCW and to ensure it meets your needs before using it.
>I am not responsible for any data loss or breaches of your information resulting from the use of RCW.
>RCW is a new project that is constantly being updated, and though safety and security are priorities, they cannot be guaranteed.
# Usage
For now, please reference [example.go](https://github.com/rwinkhart/randalls-cryptographic-wrappers/blob/main/example.go).
# IMPORTANT - READ FOR FreeBSD+Windows SUPPORT w/RCWD!
There are replacements in the `go.mod` for this module. Make sure you maintain those
same replacements in your importing module, otherwise FreeBSD and Windows support will break
(RCWD support for those operating systems requires patched modules).
# runtime/secret.Do()?
This module does not yet make use of the new `secret.Do()` function in Go 1.26.
The new function is currently in an experimental state and does not function on
non-Linux platforms, thus the current approach to zeroizing in-memory secrets is
a manual one that will work everywhere. If `secret.Do()` becomes more complete in
a future Go version, it will likely be adopted here (on top of the current manual
approach).