14 zlibStatic = pkgsStatic.zlib.override {
15 splitStaticOutput = false;
21 nasslOpensslFlagsCommon = [
25 "--with-zlib-lib=${zlibStatic.out}/lib"
26 "--with-zlib-include=${zlibStatic.out.dev}/include"
36 opensslStatic = (openssl.override nasslOpensslArgs).overrideAttrs (
38 name = "openssl-${version}";
41 url = "https://www.openssl.org/source/${name}.tar.gz";
42 sha256 = "1ncmcnh5bmxkwrvm0m1q4kdcjjfpwvlyjspjhibkxc6p9dvsi72w";
44 configureFlags = oldAttrs.configureFlags ++ nasslOpensslFlagsCommon ++ [
45 "enable-weak-ssl-ciphers"
49 buildInputs = oldAttrs.buildInputs ++ [ zlibStatic cacert ];
52 opensslLegacyStatic = (openssl.override nasslOpensslArgs).overrideAttrs (
54 name = "openssl-${version}";
57 url = "https://www.openssl.org/source/${name}.tar.gz";
58 sha256 = "1zqb1rff1wikc62a7vj5qxd1k191m8qif5d05mwdxz2wnzywlg72";
60 configureFlags = oldAttrs.configureFlags ++ nasslOpensslFlagsCommon;
62 buildInputs = oldAttrs.buildInputs ++ [ zlibStatic ];
63 # openssl_1_0_2 needs `withDocs = false`
64 outputs = lib.remove "doc" oldAttrs.outputs;
68 buildPythonPackage rec {
72 src = fetchFromGitHub {
76 sha256 = "1x1v0fpb6gcc2r0k2rsy0mc3v25s3qbva78apvi46n08c2l309ci";
80 legacyOpenSSLVersion = lib.replaceStrings ["."] ["_"] opensslLegacyStatic.version;
81 modernOpenSSLVersion = lib.replaceStrings ["."] ["_"] opensslStatic.version;
82 zlibVersion = zlibStatic.version;
84 mkdir -p deps/openssl-OpenSSL_${legacyOpenSSLVersion}/
85 cp ${opensslLegacyStatic.out}/lib/libssl.a \
86 ${opensslLegacyStatic.out}/lib/libcrypto.a \
87 deps/openssl-OpenSSL_${legacyOpenSSLVersion}/
88 ln -s ${opensslLegacyStatic.out.dev}/include deps/openssl-OpenSSL_${legacyOpenSSLVersion}/include
89 ln -s ${opensslLegacyStatic.bin}/bin deps/openssl-OpenSSL_${legacyOpenSSLVersion}/apps
91 mkdir -p deps/openssl-OpenSSL_${modernOpenSSLVersion}/
92 cp ${opensslStatic.out}/lib/libssl.a \
93 ${opensslStatic.out}/lib/libcrypto.a \
94 deps/openssl-OpenSSL_${modernOpenSSLVersion}/
95 ln -s ${opensslStatic.out.dev}/include deps/openssl-OpenSSL_${modernOpenSSLVersion}/include
96 ln -s ${opensslStatic.bin}/bin deps/openssl-OpenSSL_${modernOpenSSLVersion}/apps
98 mkdir -p deps/zlib-${zlibVersion}/
99 cp ${zlibStatic.out}/lib/libz.a deps/zlib-${zlibVersion}/
102 propagatedBuildInputs = [ tls-parser ];
104 nativeBuildInputs = [ invoke ];
111 checkInputs = [ pytestCheckHook ];
115 pytest -k 'not Online'
119 homepage = "https://github.com/nabla-c0d3/nassl";
120 description = "Low-level OpenSSL wrapper for Python 3.7+";
121 platforms = with platforms; linux ++ darwin;
122 license = licenses.agpl3;
123 maintainers = with maintainers; [ veehaitch ];