yb: init at 0.1.0 (#464310)

This commit is contained in:
Benjamin Staffin
2025-12-08 16:49:49 +00:00
committed by GitHub
+97
View File
@@ -0,0 +1,97 @@
{
lib,
python3Packages,
fetchFromGitHub,
opensc,
openssl,
yubico-piv-tool,
yubikey-manager,
}:
python3Packages.buildPythonApplication rec {
pname = "yb";
version = "0.1.0";
pyproject = true;
src = fetchFromGitHub {
owner = "douzebis";
repo = "yb";
rev = "v${version}";
hash = "sha256-Eq3qFDzi/G4qQ3UUZWyl42zMYAO2C0ipV2yXxt2EAUw=";
};
build-system = with python3Packages; [
setuptools
wheel
];
dependencies = with python3Packages; [
click
cryptography
prompt-toolkit
pyscard
pyyaml
yubikey-manager
];
nativeCheckInputs = with python3Packages; [
pytestCheckHook
];
buildInputs = [
opensc
openssl
yubico-piv-tool
yubikey-manager
];
makeWrapperArgs = [
"--prefix"
"PATH"
":"
"${lib.makeBinPath [
opensc
openssl
yubico-piv-tool
yubikey-manager
]}"
"--set"
"LD_LIBRARY_PATH"
"${yubico-piv-tool}/lib"
];
pythonImportsCheck = [
"yb"
];
# Run subset of tests that don't require YubiKey hardware
doCheck = true;
pytestFlagsArray = [
"tests"
];
meta = {
description = "CLI tool for securely storing and retrieving binary blobs using YubiKey";
longDescription = ''
yb is a command-line tool that provides secure blob storage using a YubiKey device.
It leverages the YubiKey's PIV (Personal Identity Verification) application to store
encrypted or unencrypted binary data in custom PIV data objects. The tool uses hybrid
encryption (ECDH + AES-256-CBC) to protect sensitive data with hardware-backed
cryptographic keys.
Features:
- Hardware-backed encryption using YubiKey PIV
- ~36 KB storage capacity (expandable to ~48 KB)
- PIN-protected management key mode
- Multi-device support with interactive selection
- Shell auto-completion for blob names
- Glob pattern filtering
'';
homepage = "https://github.com/douzebis/yb";
changelog = "https://github.com/douzebis/yb/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ douzebis ];
mainProgram = "yb";
platforms = lib.platforms.linux;
};
}