Skip to content
Snippets Groups Projects
cryptography.nix 1.79 KiB
Newer Older
  • Learn to ignore specific revisions
  • { stdenv
    , buildPythonPackage
    , fetchFromGitHub
    , openssl
    , cryptography_vectors
    , darwin
    , asn1crypto
    , packaging
    , six
    , pythonOlder
    , enum34
    , ipaddress
    , isPyPy
    , cffi
    , pytest
    , pretend
    , iso8601
    , pytz
    , hypothesis
    }:
    
    buildPythonPackage rec {
    
      version = "2.7"; # Also update the hash in vectors.nix
    
    
      src = fetchFromGitHub {
        owner = "pyca";
        repo = "cryptography";
        rev = "2.7";
        sha256 = "145byri5c3b8m6dbhwb6yxrv9jrr652l3z1w16mz205z8dz38qja";
      };
    
    
      outputs = [ "out" "dev" ];
    
      buildInputs = [ openssl ]
                 ++ stdenv.lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
      propagatedBuildInputs = [
        asn1crypto
        packaging
        six
      ] ++ stdenv.lib.optional (pythonOlder "3.4") enum34
      ++ stdenv.lib.optional (pythonOlder "3.3") ipaddress
      ++ stdenv.lib.optional (!isPyPy) cffi;
    
      checkInputs = [
        cryptography_vectors
        hypothesis
        iso8601
        pretend
        pytest
        pytz
      ];
    
      checkPhase = ''
        py.test --disable-pytest-warnings tests
      '';
    
      # IOKit's dependencies are inconsistent between OSX versions, so this is the best we
      # can do until nix 1.11's release
      __impureHostDeps = [ "/usr/lib" ];
    
      meta = with stdenv.lib; {
        description = "A package which provides cryptographic recipes and primitives";
        longDescription = ''
          Cryptography includes both high level recipes and low level interfaces to
          common cryptographic algorithms such as symmetric ciphers, message
          digests, and key derivation functions.
          Our goal is for it to be your "cryptographic standard library". It
          supports Python 2.7, Python 3.4+, and PyPy 5.3+.
        '';
        homepage = https://github.com/pyca/cryptography;
        license = with licenses; [ asl20 bsd3 psfl ];
        maintainers = with maintainers; [ primeos ];
      };
    }