From f18b3cd6f63946e3af625588b566cb9f723b8b53 Mon Sep 17 00:00:00 2001 From: Didactic Drunk <1479616+didactic-drunk@users.noreply.github.com> Date: Tue, 15 Jun 2021 15:23:02 -0700 Subject: [PATCH] Add Crypto::Secret::Bidet --- src/crypto-secret/bidet.cr | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/crypto-secret/bidet.cr 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