Files
leetcrypt 425c299359 Initial commit: Incredigo — local-first RAM-only credential custody
v1: discover → migrate → expiry tracking → sealed export/import.

- vault: memguard mlock/DONTDUMP arena, handle indirection, zeroize-on-drop
- discover: registry + 8 read-only scanners (aws, env, netrc, ssh, docker,
  kube, git) and a file/dir harvester (--path)
- sink: gopass streaming insert; length-prefixed bundle framing; Sealer
  interface with three impls — age (default, authenticated), hmac
  (authenticated, openssl-only encrypt-then-MAC), openssl (CBC fallback,
  unauthenticated; OpenSSL 3.x enc refuses AEAD)
- policy: local expiry engine, 60d/8w threshold parser
- audit: redacted append-only JSONL, injectable clock
- export/import: passphrase from no-echo prompt or $INCREDIGO_PASSPHRASE into
  locked memory; secrets stream gopass<->Sealer as bytes, never Go strings
- tests: scanner leak-checks, vault zeroize, bundle round-trip via fake gopass;
  go test ./... green, -race clean

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 07:57:34 -07:00

21 lines
1.1 KiB
XML

<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Incredigo logo: nested diamonds around a sealed core — layered credential custody">
<defs>
<linearGradient id="strata" x1="48" y1="48" x2="464" y2="464" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#F7B968"/>
<stop offset="0.5" stop-color="#E8772E"/>
<stop offset="1" stop-color="#A8410F"/>
</linearGradient>
<radialGradient id="core" cx="256" cy="256" r="40" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#FBD9A6"/>
<stop offset="1" stop-color="#F08A2C"/>
</radialGradient>
</defs>
<g fill="none" stroke="url(#strata)" stroke-linejoin="round">
<path d="M256 32 L480 256 L256 480 L32 256 Z" stroke-width="18" opacity="0.42"/>
<path d="M256 104 L408 256 L256 408 L104 256 Z" stroke-width="18" opacity="0.68"/>
<path d="M256 172 L340 256 L256 340 L172 256 Z" stroke-width="18"/>
</g>
<path d="M256 222 L290 256 L256 290 L222 256 Z" fill="url(#core)"/>
</svg>