Skip to content

v0.2.0 MVP tracker #3

@eligrubb

Description

@eligrubb

Features to be implemented:

  • add eqlBuffer or similar helper API to secret types
    • like existing .eql but for comparing with buffer, wraps std.crypto.timing_safe.compare, encourages timing safe crypto usage, discourage mem.eql usage.
  • any use for a move-esque helper method? e.g. toOwnedSlice in std.ArrayList?
  • incorporate std.crypto.timing_safe.classify and .declassify so users can use Valgrind to check for potential side-channel vulnerabilities of any operations using the secret data.
    • Will require rethinking how we internally store the secret since .timing_safe.markSecret expects a fixed size array for a secret.
    • Modify internal storage paradigm of zecrecy? Create custom markSecret that supports slices? Research needed.
  • investigate custom secureZero implementation that includes (compiler-only) atomics
  • investigate updating std.crypto.timing_safe.eql to support slices
    • Current workaround: .timing_safe.compare supports slices and .eql ordering.
  • investigate potential for incorporating any memguard ideas into library.
  • add readWith/mutateWith-type callback functions back as alternative API options
  • investigate need/effort for supporting mLock/VirtualLock to prevent secrets leaking during a disk swap/core dump.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions