nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 argon2-cffi,
3 bcrypt,
4 buildPythonPackage,
5 cryptography,
6 fetchFromGitHub,
7 hatchling,
8 lib,
9 pytest-archon,
10 pytest-xdist,
11 pytestCheckHook,
12 typing-extensions,
13}:
14
15buildPythonPackage rec {
16 pname = "libpass";
17 version = "1.9.3";
18 pyproject = true;
19
20 src = fetchFromGitHub {
21 owner = "ThirVondukr";
22 repo = "passlib";
23 tag = version;
24 hash = "sha256-fzI9HpGE3wNK41ZSOeA5NAr5T4r3Jzdqe5+SHoWVXUs=";
25 };
26
27 build-system = [ hatchling ];
28
29 optional-dependencies = {
30 argon2 = [ argon2-cffi ];
31 bcrypt = [ bcrypt ];
32 totp = [ cryptography ];
33 };
34
35 nativeCheckInputs = [
36 pytest-archon
37 pytest-xdist
38 pytestCheckHook
39 ]
40 ++ lib.concatAttrValues optional-dependencies;
41
42 pythonImportsCheck = [ "passlib" ];
43
44 disabledTestPaths = [
45 # https://github.com/notypecheck/passlib/issues/18
46 "tests/test_handlers_bcrypt.py::bcrypt_bcrypt_test::test_70_hashes"
47 "tests/test_handlers_bcrypt.py::bcrypt_bcrypt_test::test_77_fuzz_input"
48 "tests/test_handlers_django.py::django_bcrypt_test::test_77_fuzz_input"
49 "tests/test_handlers_bcrypt.py::bcrypt_bcrypt_test::test_secret_w_truncate_size"
50 "tests/test_handlers_django.py::django_bcrypt_test::test_secret_w_truncate_size"
51 ];
52
53 disabledTests = [
54 # timming sensitive
55 "test_dummy_verify"
56 "test_encrypt_cost_timing"
57 ];
58
59 meta = {
60 changelog = "https://github.com/ThirVondukr/passlib/blob/${src.tag}/CHANGELOG.md";
61 description = "Comprehensive password hashing framework supporting over 30 schemes";
62 homepage = "https://github.com/ThirVondukr/passlib";
63 license = lib.licenses.bsd3;
64 maintainers = with lib.maintainers; [ dotlambda ];
65 };
66}