E2e encryption test: full lifecycle covering init, add encrypted + plaintext, checkpoint, modify, status (no DEK needed), re-checkpoint, restore, verify, re-open with unlock, diff, slot management, passphrase change, old passphrase rejection. Docs updated: - ARCHITECTURE.md: package structure (encrypt.go, encrypt_fido2.go, encrypt CLI), Garden struct (dek field, encryption methods), auth.go descriptions updated for JWT - README.md: encryption commands table, encryption section with usage - CLAUDE.md: added jwt/argon2/chacha20 deps, encryption file mentions flake.nix: vendorHash updated for new deps. Phase 3 complete. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
47 lines
1.2 KiB
Nix
47 lines
1.2 KiB
Nix
{
|
|
description = "sgard — Shimmering Clarity Gardener: dotfile management";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
};
|
|
|
|
outputs = { self, nixpkgs, flake-utils }:
|
|
flake-utils.lib.eachDefaultSystem (system:
|
|
let
|
|
pkgs = import nixpkgs { inherit system; };
|
|
in
|
|
{
|
|
packages = {
|
|
sgard = pkgs.buildGoModule {
|
|
pname = "sgard";
|
|
version = "2.0.0";
|
|
src = pkgs.lib.cleanSource ./.;
|
|
subPackages = [ "cmd/sgard" "cmd/sgardd" ];
|
|
|
|
vendorHash = "sha256-0YpP1YfpAIAgY8k+7DlWosYN6MT5a2KLtNhQFvKT7pM=";
|
|
|
|
ldflags = [ "-s" "-w" ];
|
|
|
|
meta = {
|
|
description = "Shimmering Clarity Gardener: dotfile management";
|
|
mainProgram = "sgard";
|
|
};
|
|
};
|
|
|
|
default = self.packages.${system}.sgard;
|
|
};
|
|
|
|
devShells.default = pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
go
|
|
golangci-lint
|
|
protobuf
|
|
protoc-gen-go
|
|
protoc-gen-go-grpc
|
|
];
|
|
};
|
|
}
|
|
);
|
|
}
|