diff --git a/src/crypto-secret/bidet.cr b/src/crypto-secret/bidet.cr new file mode 100644 index 0000000..468ee5d --- /dev/null +++ b/src/crypto-secret/bidet.cr @@ -0,0 +1,23 @@ +require "./stateless" + +# Leaves less sh** around if you forget to wipe. A safer default for large secrets that may stress mlock limits or low confidentiality secrets. +# +# * Not locked in memory +# * Not access protected +# * No guard pages +module Crypto::Secret + class Bidet + include Stateless + + def self.new(size) + new references: Bytes.new(size) + end + + def initialize(*, references : Bytes) + @bytes = references + end + + delegate_to_slice @bytes + delegate_to_bytesize @bytes.bytesize + end +end