aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/password-utils.scm
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2023-01-30 11:33:18 +0200
committerEfraim Flashner <efraim@flashner.co.il>2023-01-30 12:39:40 +0200
commit4cf1acc7f3033b50b0bf19e02c9f522d522d338c (patch)
tree9fd64956ee60304c15387eb394cd649e49f01467 /gnu/packages/password-utils.scm
parentedb8c09addd186d9538d43b12af74d6c7aeea082 (diff)
parent595b53b74e3ef57a1c0c96108ba86d38a170a241 (diff)
downloadguix-4cf1acc7f3033b50b0bf19e02c9f522d522d338c.tar.gz
guix-4cf1acc7f3033b50b0bf19e02c9f522d522d338c.zip
Merge remote-tracking branch 'origin/master' into core-updates
Conflicts: doc/guix.texi gnu/local.mk gnu/packages/admin.scm gnu/packages/base.scm gnu/packages/chromium.scm gnu/packages/compression.scm gnu/packages/databases.scm gnu/packages/diffoscope.scm gnu/packages/freedesktop.scm gnu/packages/gnome.scm gnu/packages/gnupg.scm gnu/packages/guile.scm gnu/packages/inkscape.scm gnu/packages/llvm.scm gnu/packages/openldap.scm gnu/packages/pciutils.scm gnu/packages/ruby.scm gnu/packages/samba.scm gnu/packages/sqlite.scm gnu/packages/statistics.scm gnu/packages/syndication.scm gnu/packages/tex.scm gnu/packages/tls.scm gnu/packages/version-control.scm gnu/packages/xml.scm guix/build-system/copy.scm guix/scripts/home.scm
Diffstat (limited to 'gnu/packages/password-utils.scm')
-rw-r--r--gnu/packages/password-utils.scm274
1 files changed, 242 insertions, 32 deletions
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 003e346305..9ea1ce00a5 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -36,6 +36,9 @@
;;; Copyright © 2021 David Dashyan <mail@davie.li>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
+;;; Copyright © 2022 ( <paren@disroot.org>
+;;; Copyright © 2022 Nicolas Graves <ngraves@ngraves.fr>
+;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -56,13 +59,16 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
+ #:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix packages)
+ #:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages aidc)
@@ -80,6 +86,7 @@
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
+ #:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
#:use-module (gnu packages gtk)
@@ -98,6 +105,7 @@
#:use-module (gnu packages python)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages rdesktop)
#:use-module (gnu packages readline)
#:use-module (gnu packages ruby)
#:use-module (gnu packages security-token)
@@ -109,8 +117,7 @@
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)
- #:use-module (gnu packages xml)
- #:use-module (guix build-system python))
+ #:use-module (gnu packages xml))
(define-public pwgen
(package
@@ -135,7 +142,7 @@ human.")
(define-public keepassxc
(package
(name "keepassxc")
- (version "2.7.1")
+ (version "2.7.4")
(source
(origin
(method url-fetch)
@@ -143,7 +150,7 @@ human.")
"/releases/download/" version "/keepassxc-"
version "-src.tar.xz"))
(sha256
- (base32 "1ryk2ndv93jb155cp7qkjm7jd8hjy0v5gqvdvbdidhrmdiibl0b0"))))
+ (base32 "1knywp38byq0jq9vdyp1ykha9prh09k1y5srwwkr6f503nb5402n"))))
(build-system cmake-build-system)
(arguments
(list
@@ -153,8 +160,13 @@ human.")
#:imported-modules `(,@%cmake-build-system-modules
(guix build qt-utils))
#:configure-flags
- #~(list "-DWITH_XC_ALL=YES"
- "-DWITH_XC_UPDATECHECK=NO")
+ #~(append
+ (list "-DWITH_XC_ALL=YES"
+ "-DWITH_XC_UPDATECHECK=NO")
+ #$(if (member (%current-system)
+ (package-transitive-supported-systems ruby-asciidoctor))
+ #~'()
+ #~(list "-DWITH_XC_DOCS=NO")))
#:phases
#~(modify-phases %standard-phases
(replace 'check
@@ -168,7 +180,12 @@ human.")
(lambda* (#:key inputs #:allow-other-keys)
(wrap-qt-program "keepassxc" #:output #$output #:inputs inputs))))))
(native-inputs
- (list qttools-5 ruby-asciidoctor))
+ (append
+ (list qttools-5)
+ (if (member (%current-system)
+ (package-transitive-supported-systems ruby-asciidoctor))
+ (list ruby-asciidoctor)
+ '())))
(inputs
(list argon2
botan
@@ -183,6 +200,7 @@ human.")
qrencode
qtbase-5
qtsvg-5
+ qtwayland-5
qtx11extras
quazip-0 ; XC_KEESHARE
readline
@@ -204,7 +222,7 @@ algorithms AES or Twofish.")
(define-public pwsafe
(package
(name "pwsafe")
- (version "3.54.1")
+ (version "3.60.0")
(home-page "https://www.pwsafe.org/")
(source
(origin
@@ -213,23 +231,20 @@ algorithms AES or Twofish.")
(url "https://github.com/pwsafe/pwsafe")
(commit version)))
(sha256
- (base32 "0d51dlw98mv23nwb0b5jyji8gnb9f5cnig6kivfljl97lmr6lhvf"))
+ (base32 "064y78sqr8h9mq922spi4r13ga0a1j09mfh4kc4pn7j697nl6b5y"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(native-inputs
- `(("gettext" ,gettext-minimal)
- ("gtest" ,googletest)
- ("perl" ,perl)
- ("zip" ,zip)))
- (inputs `(("curl" ,curl)
- ("file" ,file)
- ("libuuid" ,util-linux "lib")
- ("libxt" ,libxt)
- ("libxtst" ,libxtst)
- ("openssl" ,openssl)
- ("qrencode" ,qrencode)
- ("wxwidgets" ,wxwidgets)
- ("xerces-c" ,xerces-c)))
+ (list gettext-minimal googletest perl zip))
+ (inputs (list curl
+ file
+ `(,util-linux "lib")
+ libxt
+ libxtst
+ openssl
+ qrencode
+ wxwidgets
+ xerces-c))
(arguments '(#:configure-flags (list "-DNO_GTEST=YES")
#:phases (modify-phases %standard-phases
(add-after 'unpack 'add-gtest
@@ -336,6 +351,34 @@ applications, there is xclip integration." )
(home-page "https://dthompson.us/projects/shroud.html")
(license license:gpl3+)))
+(define-public ssh-to-age
+ (let* ((commit "37365ce80fa64d8794855ec3c63cc9a071799fea")
+ (revision "0"))
+ (package
+ (name "ssh-to-age")
+ (version (git-version "1.0.2" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Mic92/ssh-to-age")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1fk2vxa854jnnffcw4q3vm1445jk1ck1v3p4mr9fh04yz06g7d28"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/Mic92/ssh-to-age/cmd/ssh-to-age"
+ #:unpack-path "github.com/Mic92/ssh-to-age"))
+ (inputs (list go-golang-org-x-crypto
+ go-filippo-io-edwards25519
+ go-filippo-io-age))
+ (home-page "https://github.com/Mic92/ssh-to-age")
+ (synopsis "Convert SSH @code{ed25519} keys to @code{age} keys.")
+ (description "This package provides a simple command-line tool to
+convert SSH @code{ed25519} keys to @code{age} keys.")
+ (license license:expat))))
+
(define-public yapet
(package
(name "yapet")
@@ -369,7 +412,7 @@ and vice versa.")
(define-public cracklib
(package
(name "cracklib")
- (version "2.9.7")
+ (version "2.9.8")
(source
(origin
(method url-fetch)
@@ -377,7 +420,7 @@ and vice versa.")
"releases/download/v" version "/"
"cracklib-" version ".tar.bz2"))
(sha256
- (base32 "1rimpjsdnmw8f5b7k558cic41p2qy2n2yrlqp5vh7mp4162hk0py"))))
+ (base32 "11p3f0yqg9d32g3n1qik7jfyl2l14pf8i8vzq3bpram3bqw3978z"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -587,6 +630,67 @@ changes to your password database to a git repository that can be managed
through the pass command.")
(license license:gpl2+)))
+(define-public pass-age
+ (package
+ (inherit password-store)
+ (name "pass-age")
+ (version "1.7.4a0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/FiloSottile/passage")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "17899whffnpqqx9x1nx2b8bfxbxlh1pwlglqa0kznl0cn6sb37ql"))))
+ (build-system copy-build-system)
+ (arguments
+ '(#:modules
+ ((guix build copy-build-system)
+ (guix build utils)
+ (srfi srfi-26))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'rename-script
+ (lambda _
+ (rename-file "src/password-store.sh"
+ "src/passage")))
+ (add-after 'install 'wrap-script
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (script (string-append out "/bin/passage")))
+ (substitute* script
+ ;; Avoid ugly ‘.passage-real’ in --help output and elsewhere.
+ (("^(PROGRAM=).*" _ program=)
+ (string-append program= (basename script) "\n")))
+ (wrap-program script
+ `("PATH" ":" prefix
+ ,(map dirname
+ (map (cut search-input-file inputs <>)
+ (list "bin/age"
+ "bin/age-keygen"
+ "bin/getopt"
+ "bin/git"
+ "bin/pkill"
+ "bin/qrencode"
+ "bin/sed"
+ "bin/tree")))))))))
+ #:install-plan
+ '(("src/passage" "/bin/")
+ ("src/completion/pass.bash-completion"
+ "/share/bash-completion/completions/")
+ ("src/completion/pass.zsh-completion"
+ "/share/zsh/site-functions/"))))
+ (inputs
+ (list age age-keygen git procps qrencode sed tree util-linux))
+ (home-page "https://github.com/FiloSottile/passage")
+ (synopsis "Encrypted password manager")
+ (description "This package provides an encrypted password manager, forked
+from the @code{password-store} package. Files are encrypted with the
+@command{age} encryption package with small explicit keys.")
+ (license license:gpl2+)))
+
(define-public pass-otp
(package
(name "pass-otp")
@@ -757,7 +861,7 @@ using password-store through rofi interface:
(define-public tessen
(package
(name "tessen")
- (version "2.1.0")
+ (version "2.1.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -766,7 +870,7 @@ using password-store through rofi interface:
(file-name (git-file-name name version))
(sha256
(base32
- "1ddsjhzp1qy3jfhxlrzcxgp0gza234yc0sdlngwa3xdj0wr40zs0"))))
+ "01jaxakq847k3v2wid8fzhcmq8mraxz0q1j87s1jv75l1gy4qiij"))))
(build-system gnu-build-system)
(arguments
(list #:tests?
@@ -776,13 +880,17 @@ using password-store through rofi interface:
(add-after 'unpack 'patch-wtype-path
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "tessen"
- (("wtype") (search-input-file inputs "/bin/wtype")))))
+ (("notify-send") (search-input-file inputs
+ "/bin/notify-send"))
+ (("wl-copy") (search-input-file inputs "/bin/wl-copy"))
+ (("wtype") (search-input-file inputs "/bin/wtype"))
+ (("xdg-open") (search-input-file inputs "/bin/xdg-open")))))
(delete 'configure)) ;no configure script
#:make-flags
#~(list (string-append "PREFIX="
#$output))))
(native-inputs (list scdoc))
- (inputs (list wtype))
+ (inputs (list libnotify wl-clipboard wtype xdg-utils))
(home-page "https://github.com/ayushnix/tessen")
(synopsis "Frontend for password-store and gopass")
(description "Tessen is a bash script that can autotype and copy data
@@ -863,6 +971,39 @@ also install the browser extension for GNU IceCat or ungoogled-chromium
separately.")
(license license:isc)))
+(define-public cpass
+ (package
+ (name "cpass")
+ (version "0.9.4")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "cpass" version))
+ (sha256
+ (base32
+ "1zp3a8mgqxn916fzj1v2yhgnl7v6s0vnd0qcghqs3qq648qmlwr5"))))
+ (build-system python-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-pass-refs
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "cpass.py"
+ (("'pass'")
+ (string-append "'"
+ (search-input-file inputs
+ "bin/pass")
+ "'"))
+ (("\\.password_store")
+ ".password-store")))))))
+ (inputs (list password-store))
+ (propagated-inputs (list python-urwid))
+ (home-page "https://github.com/OliverLew/cpass")
+ (synopsis "Textual interface for @command{pass}")
+ (description
+ "@command{cpass} is a terminal user interface for @command{pass}.
+It supports both vim-like keybindings and the mouse.")
+ (license license:expat)))
+
(define-public argon2
(package
(name "argon2")
@@ -1115,14 +1256,14 @@ your online accounts makes it necessary.")
(define-public hashcat
(package
(name "hashcat")
- (version "6.2.5")
+ (version "6.2.6")
(source (origin
(method url-fetch)
(uri (string-append "https://hashcat.net/files/hashcat-" version
".tar.gz"))
(sha256
(base32
- "0sc96xcsc20xd4fyby3i45nm9as3hl4nhk9snkvmk5l9mpbrjs3g"))
+ "0akv1cgbmwyw8h8zbw5w5ixh92y95sdadh8qiz60hjgkpivi0pmj"))
(modules '((guix build utils)))
;; Delete bundled libraries.
(snippet
@@ -1211,6 +1352,35 @@ function. Since they all work with @code{STDIN} and @code{STDOUT} you can
group them into chains.")
(license license:expat)))
+(define-public hydra
+ (package
+ (name "hydra")
+ (version "9.4")
+ (home-page "https://github.com/vanhauser-thc/thc-hydra")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0dbx7yaqf4nl63pi8wmr19cxnp5v4w7fsd369krdy8hlc8k0qjgr"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ;no test suite
+ #:make-flags (list (string-append "CC="
+ ,(cc-for-target)))))
+ (native-inputs (list pkg-config))
+ (inputs (list freerdp gtk+ openssl zlib))
+ (synopsis "Gain access to a remote system by trying logins and passwords")
+ (description
+ "This package provides a tool to demonstrate how easy it is to gain
+unauthorized access to a system by automatically attempting logins and
+passwords. It supports a wide range of protocols including SSH, SMTP and
+HTTP.")
+ (license license:agpl3+)))
+
(define-public bruteforce-luks
(package
(name "bruteforce-luks")
@@ -1276,7 +1446,7 @@ encryption algorithm if so desired.")
(define-public pass-tomb
(package
(name "pass-tomb")
- (version "1.2")
+ (version "1.3")
(source
(origin
(method git-fetch)
@@ -1285,7 +1455,7 @@ encryption algorithm if so desired.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1qj7vx7svk1ljwihj3kv310k17mafnf919n30n4qn1yxmmsvj924"))))
+ (base32 "1sjkbdm2i3v77nbnap8sypbfdqwxckc8h66g3ixjnyr6cqgcrdli"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
@@ -1315,3 +1485,43 @@ are not using it. It uses the same GPG key to encrypt passwords and tomb,
therefore you don't need to manage more key or secret. Moreover, you can ask
pass-tomb to automatically close your store after a given time.")
(license license:gpl3+)))
+
+(define-public xkcdpass
+ (package
+ (name "xkcdpass")
+ (version "1.19.3")
+ (home-page "https://github.com/redacted/XKCD-password-generator")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "xkcdpass-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0xfrmx9k2vinlagv476rfcfdp41aix1ldy6qnzzx26n985gcyk7p"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-manpage
+ (lambda* (#:key outputs #:allow-other-keys)
+ (install-file
+ "xkcdpass.1"
+ (string-append (assoc-ref outputs "out") "/share/man/man1")))))))
+ (synopsis
+ "Generate secure multiword passwords/passphrases, inspired by XKCD")
+ (description
+ "This package provides a flexible and scriptable password generator which
+generates strong passphrases, inspired by
+@url{https://xkcd.com/936/,XKCD 936}.")
+ (license (list license:bsd-3 ;code
+ license:cc0 ;spanish, eff_large_de, french word lists
+ license:cc-by-sa3.0 ;finnish, italian word list
+ license:cc-by-sa4.0 ;norwegian word list
+ license:eupl1.1 ;finnish word list
+ license:gpl2 ;portuguese word list
+ license:gpl3 ;ger-anix word list
+ license:lgpl2.0 ;finnish word list
+ license:lgpl2.1 ;portuguese word list
+ license:mpl1.1)))) ;portuguese word list