1{
2 lib,
3 buildPythonPackage,
4 cryptography,
5 fetchPypi,
6 poetry-core,
7 pyscard,
8 pytestCheckHook,
9}:
10
11buildPythonPackage rec {
12 pname = "fido2";
13 version = "2.0.0";
14 pyproject = true;
15
16 src = fetchPypi {
17 inherit pname version;
18 hash = "sha256-MGHNBec7Og72r8O4A9V8gmqi1qlzLRar1ydzYfWOeWQ=";
19 };
20
21 build-system = [ poetry-core ];
22
23 pythonRelaxDeps = [ "cryptography" ];
24
25 dependencies = [ cryptography ];
26
27 optional-dependencies = {
28 pcsc = [ pyscard ];
29 };
30
31 nativeCheckInputs = [ pytestCheckHook ];
32
33 pytestFlags = [
34 "-v"
35 "--no-device"
36 ];
37
38 pythonImportsCheck = [ "fido2" ];
39
40 meta = with lib; {
41 description = "Provides library functionality for FIDO 2.0, including communication with a device over USB";
42 homepage = "https://github.com/Yubico/python-fido2";
43 changelog = "https://github.com/Yubico/python-fido2/releases/tag/${version}";
44 license = licenses.bsd2;
45 maintainers = with maintainers; [ prusnak ];
46 };
47}