+
+(define-public python-service-identity
+ (package
+ (name "python-service-identity")
+ (version "18.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "service_identity" version))
+ (sha256
+ (base32
+ "0b9f5qiqjy8ralzgwjgkhx82h6h8sa7532psmb8mkd65md5aan08"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-attrs" ,python-attrs)
+ ("python-pyasn1" ,python-pyasn1)
+ ("python-pyasn1-modules" ,python-pyasn1-modules)
+ ("python-pyopenssl" ,python-pyopenssl)))
+ (home-page "https://service-identity.readthedocs.io/")
+ (synopsis "Service identity verification for PyOpenSSL")
+ (description
+ "@code{service_identity} aspires to give you all the tools you need
+for verifying whether a certificate is valid for the intended purposes.
+In the simplest case, this means host name verification. However,
+service_identity implements RFC 6125 fully and plans to add other
+relevant RFCs too.")
+ (license license:expat)))
+
+(define-public python2-service-identity
+ (package-with-python2 python-service-identity))
+
+(define-public python-hkdf
+ (package
+ (name "python-hkdf")
+ (version "0.0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "hkdf" version))
+ (sha256
+ (base32
+ "1jhxk5vhxmxxjp3zj526ry521v9inzzl8jqaaf0ma65w6k332ak2"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-nose" ,python-nose)))
+ (home-page "https://github.com/casebeer/python-hkdf")
+ (synopsis "HMAC-based Extract-and-Expand Key Derivation Function (HKDF)")
+ (description "This package provides a Python implementation of the HMAC Key
+Derivation function (HKDF) defined in RFC 5869.")
+ (license license:bsd-2)))
+
+(define-public python-spake2
+ (package
+ (name "python-spake2")
+ (version "0.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "spake2" version))
+ (sha256
+ (base32
+ "1x16r7lrbklvfzbacb66qv9iiih6liq1y612dqh2chgf555n2yn1"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-hkdf" ,python-hkdf)))
+ (home-page "https://github.com/warner/python-spake2")
+ (synopsis "SPAKE2 password-authenticated key exchange in Python")
+ (description "This package provides a Python implementation of the SPAKE2
+Password-Authenticated Key Exchange algorithm.")
+ (license license:expat)))
+
+(define-public python-txtorcon
+ (package
+ (name "python-txtorcon")
+ (version "19.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "txtorcon" version))
+ (sha256
+ (base32
+ "0fxzhsc62bhmr730vj9pzallmw56gz6iykvl28a5agrycm0bfc9p"))))
+ (build-system python-build-system)
+ (arguments
+ ;; The tests fail immediately due to a missing file. Reported upstream:
+ ;; <https://github.com/meejah/txtorcon/issues/330>
+ `(#:tests? #f))
+ (propagated-inputs
+ `(("python-automat" ,python-automat)
+ ("python-idna" ,python-idna)
+ ("python-incremental" ,python-incremental)
+ ("python-ipaddress" ,python-ipaddress)
+ ("python-service-identity" ,python-service-identity)
+ ("python-twisted" ,python-twisted)
+ ("python-zope-interface" ,python-zope-interface)))
+ (home-page "https://github.com/meejah/txtorcon")
+ (synopsis "Twisted-based Tor controller client")
+ (description "This package provides a Twisted-based Tor controller client,
+with state-tracking and configuration abstractions.")
+ (license license:expat)))
+
+(define-public python-keyutils
+ (package
+ (name "python-keyutils")
+ (version "0.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "keyutils" version))
+ (sha256
+ (base32
+ "0lipygpzhwzzsq2k5imb1jgkmj8y4khxdwhzadjs3bd56g6bmkx9"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("python-pytest-runner" ,python-pytest-runner)))
+ (inputs
+ `(("keyutils" ,keyutils)))
+ (arguments
+ '(#:tests? #f))
+ (home-page "https://github.com/sassoftware/python-keyutils")
+ (synopsis "Python bindings for keyutils")
+ (description
+ "This is a set of python bindings for keyutils, a key management suite
+that leverages the infrastructure provided by the Linux kernel for safely
+storing and retrieving sensitive information in your programs.")
+ (license license:asl2.0)))
+
+(define-public python-mcuboot-imgtool
+ (package
+ (name "python-mcuboot-imgtool")
+ (version "1.4.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuulLabs-OSS/mcuboot")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1m1csyvzq4jx81zg635ssy1n7sc0z539z0myh872ll3nwqx7wa0q"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-broken-test
+ (lambda _
+ (substitute* "scripts/imgtool/keys/ed25519_test.py"
+ (("raw_sign") "sign_digest"))
+ #t))
+ (add-before 'build 'change-directory
+ (lambda _
+ (chdir "scripts")
+ #t)))))
+ (propagated-inputs
+ `(("python-click" ,python-click)
+ ("python-intelhex" ,python-intelhex)
+ ("python-cryptography" ,python-cryptography)))
+ (home-page "https://mcuboot.com")
+ (synopsis "Tool to securely sign firmware images for booting by MCUboot")
+ (description "MCUboot is a secure bootloader for 32-bit MCUs. This
+package provides a tool to securely sign firmware images for booting by
+MCUboot.")
+ (license license:expat)))
+
+(define-public python-secretstorage
+ (package
+ (name "python-secretstorage")
+ (version "3.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "SecretStorage" version))
+ (sha256
+ (base32
+ "1xmzr0j3066s220bss4nkgqbiwb5k4kkp2rkpqlqwjb5kfc8mnhm"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:tests? #f)) ; Tests require a running dbus service.
+ (propagated-inputs
+ `(("python-cryptography" ,python-cryptography)
+ ("python-jeepney" ,python-jeepney)))
+ (home-page "https://github.com/mitya57/secretstorage")
+ (synopsis "Python bindings to FreeDesktop.org Secret Service API")
+ (description
+ "@code{python-secretstorage} provides a way for securely storing passwords
+and other secrets. It uses D-Bus Secret Service API that is supported by GNOME
+Keyring (since version 2.30) and KSecretsService. SecretStorage supports most
+of the functions provided by Secret Service, including creating and deleting
+items and collections, editing items, locking and unlocking collections
+(asynchronous unlocking is also supported).")
+ (license license:bsd-3)))
+
+(define-public python-jeepney
+ (package
+ (name "python-jeepney")
+ (version "0.4.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jeepney" version))
+ (sha256
+ (base32
+ "1fz9lb5fl831sijg2j0sbki698j2z6awbblas7mz3gp9jz2xi9hb"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-testpath" ,python-testpath)
+ ("python-tornado" ,python-tornado)
+ ("python-pytest" ,python-pytest)))
+ (home-page "https://gitlab.com/takluyver/jeepney")
+ (synopsis "Low-level, pure Python DBus protocol wrapper")
+ (description
+ "This is a low-level, pure Python DBus protocol client. It has an
+I/O-free core, and integration modules for different event loops.")
+ (license license:expat)))