Gpg encryption in usermin

it works, i can now send adn encrypt messages also sign messages, i will try this with a other email to

but the signing of a new key takes still long time, i have to stop the process, the wired is i have stoppet the process after 1hour loading screen in usermin mail, and the signing works

edit: signing still not works, i have stopped the loading screen, but send a email and sign them is not working

Try this patch as well:

sudo sed -i.bak '/^sub sign_data$/,/^sub verify_data$/ s|--batch --passphrase-file |--batch --pinentry-mode loopback --passphrase-file |' /usr/share/usermin/gnupg/gnupg-lib.pl

not working on page domain:20000/gnupg/signkey.cgi, i have also restartet usermin, still the same, the loading never stops and the key is not signed

Is there anything useful logged in the /var/usermin/miniserv.error log file?

Are there any errors in the browser console?

no errors in the browserconsole
miniserv.error alot of:

created 2026-03-25
“Test2 (for test) test2@example.com

print() on unopened filehandle DEBUG at ./mailbox-lib.pl line 1642.
print() on unopened filehandle DEBUG at ./mailbox-lib.pl line 1642.
wait_for(IO::Pty=GLOB(0x56349e770540),passphrase:,key,\s+ID\s+(\S+),failed.\n,error.\n,invalid.\n,signal caught.\n)
File handle=IO::Pty=GLOB(0x56349e770540) fd=11
g
gp
gpg
gpg:
gpg:
gpg: e
gpg: en
gpg: enc
gpg: encr
gpg: encry
gpg: encryp
gpg: encrypt
gpg: encrypte
gpg: encrypted
gpg: encrypted
gpg: encrypted w
gpg: encrypted wi
gpg: encrypted wit
gpg: encrypted with
gpg: encrypted with
gpg: encrypted with 2
gpg: encrypted with 20
gpg: encrypted with 204
gpg: encrypted with 2048
gpg: encrypted with 2048-
gpg: encrypted with 2048-b
gpg: encrypted with 2048-bi
gpg: encrypted with 2048-bit
gpg: encrypted with 2048-bit
gpg: encrypted with 2048-bit R
gpg: encrypted with 2048-bit RS
gpg: encrypted with 2048-bit RSA
gpg: encrypted with 2048-bit RSA
gpg: encrypted with 2048-bit RSA k
gpg: encrypted with 2048-bit RSA ke
gpg: encrypted with 2048-bit RSA key
gpg: encrypted with 2048-bit RSA key,
gpg: encrypted with 2048-bit RSA key,
gpg: encrypted with 2048-bit RSA key, I
gpg: encrypted with 2048-bit RSA key, ID
gpg: encrypted with 2048-bit RSA key, ID
gpg: encrypted with 2048-bit RSA key, ID 9
gpg: encrypted with 2048-bit RSA key, ID 93
gpg: encrypted with 2048-bit RSA key, ID 93A
gpg: encrypted with 2048-bit RSA key, ID 93AC
gpg: encrypted with 2048-bit RSA key, ID 93AC0
gpg: encrypted with 2048-bit RSA key, ID 93AC0E
gpg: encrypted with 2048-bit RSA key, ID 93AC0E3
gpg: encrypted with 2048-bit RSA key, ID 93AC0E3C
gpg: encrypted with 2048-bit RSA key, ID 93AC0E3C7
gpg: encrypted with 2048-bit RSA key, ID 93AC0E3C7F
gpg: encrypted with 2048-bit RSA key, ID 93AC0E3C7FC
gpg: encrypted with 2048-bit RSA key, ID 93AC0E3C7FC7
gpg: encrypted with 2048-bit RSA key, ID 93AC0E3C7FC7B
gpg: encrypted with 2048-bit RSA key, ID 93AC0E3C7FC7B4
gpg: encrypted with 2048-bit RSA key, ID 93AC0E3C7FC7B4B
gpg: encrypted with 2048-bit RSA key, ID 93AC0E3C7FC7B4B5
gpg: encrypted with 2048-bit RSA key, ID 93AC0E3C7FC7B4B5,
wait_for(IO::Pty=GLOB(0x56349e770540),passphrase:,key,\s+ID\s+(\S+),failed.\n,error.\n,invalid.\n,signal caught.\n)
File handle=IO::Pty=GLOB(0x56349e770540) fd=11

Prototype mismatch: sub extensions::decode_utf8: none vs ($;$) at /usr/lib/x86_64-linux-gnu/perl-base/Exporter.pm line 63.
at (eval 195) line 1.

Alright, try this patch and let me know if that work!?

sudo curl -fsSL https://raw.githubusercontent.com/webmin/webmin/master/webmin/gnupg-lib.pl -o /usr/share/usermin/gnupg/gnupg-lib.pl && sudo chmod 755 /usr/share/usermin/gnupg/gnupg-lib.pl
sudo systemctl restart usermin

miniserv.log

[26/Mar/2026:19:24:08 +0100] "GET / HTTP/1.1" 200 80249
 [26/Mar/2026:19:24:08 +0100] "POST /xhr.cgi HTTP/1.1" 200 92
 [26/Mar/2026:19:24:08 +0100] "POST /xhr.cgi HTTP/1.1" 200 1
 [26/Mar/2026:19:24:08 +0100] "GET /gnupg/ HTTP/1.1" 200 5713
 [26/Mar/2026:19:24:10 +0100] "GET /service-worker.js HTTP/1.1" 200 94
 [26/Mar/2026:19:24:10 +0100] "POST /gnupg/list_keys.cgi HTTP/1.1" 200 10900
 [26/Mar/2026:19:24:11 +0100] "POST /xhr.cgi?type=file&action=motd&subtype=receive HTTP/1.1" 200 11
 [26/Mar/2026:19:24:14 +0100] "POST /gnupg/edit_key.cgi?idx=2 HTTP/1.1" 200 9314
 [26/Mar/2026:19:24:15 +0100] "GET /gnupg/signkey.cgi?idx=2 HTTP/1.1" 200 4004
 [26/Mar/2026:19:31:12 +0100] "POST /xhr.cgi?type=file&action=motd&subtype=receive HTTP/1.1" 200 11
 [26/Mar/2026:19:38:12 +0100] "POST /xhr.cgi?type=file&action=motd&subtype=receive HTTP/1.1" 200 11

i have installed the missing user::utmp perl modul, is still endless loading

[26/Mar/2026:19:01:15 +0100] Shutting down
[26/Mar/2026:19:01:18 +0100] miniserv.pl started
[26/Mar/2026:19:01:18 +0100] Using MD5 module Digest::MD5
[26/Mar/2026:19:01:18 +0100] Using SHA512 module Crypt::SHA
[26/Mar/2026:19:01:18 +0100] PAM authentication enabled
[26/Mar/2026:19:01:18 +0100] Perl module User::Utmp needed for Utmp logging is not installed : Can't locate User/Utmp.pm in @INC (you may need to install the User::Utmp module) (@INC contains: /usr/share/usermin /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.36.0 /usr/local/share/perl/5.36.0 /usr/lib/x86_64-linux-gnu/perl5/5.36 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.36 /usr/share/perl/5.36 /usr/local/lib/site_perl) at (eval 22) line 1.
BEGIN failed--compilation aborted at (eval 22) line 1.

Prototype mismatch: sub extensions::decode_utf8: none vs ($;$) at /usr/lib/x86_64-linux-gnu/perl-base/Exporter.pm line 63.
 at (eval 195) line 1.
Prototype mismatch: sub extensions::decode_utf8: none vs ($;$) at /usr/lib/x86_64-linux-gnu/perl-base/Exporter.pm line 63.
 at (eval 195) line 1.
Prototype mismatch: sub extensions::decode_utf8: none vs ($;$) at /usr/lib/x86_64-linux-gnu/perl-base/Exporter.pm line 63.
 at (eval 195) line 1.
Prototype mismatch: sub extensions::decode_utf8: none vs ($;$) at /usr/lib/x86_64-linux-gnu/perl-base/Exporter.pm line 63.
 at (eval 195) line 1.
Prototype mismatch: sub extensions::decode_utf8: none vs ($;$) at /usr/lib/x86_64-linux-gnu/perl-base/Exporter.pm line 63.
 at (eval 195) line 1.
Prototype mismatch: sub extensions::decode_utf8: none vs ($;$) at /usr/lib/x86_64-linux-gnu/perl-base/Exporter.pm line 63.
 at (eval 195) line 1.
Prototype mismatch: sub extensions::decode_utf8: none vs ($;$) at /usr/lib/x86_64-linux-gnu/perl-base/Exporter.pm line 63.
 at (eval 195) line 1.
[26/Mar/2026:19:10:05 +0100] Shutting down
[26/Mar/2026:19:10:05 +0100] Shutting down
[26/Mar/2026:19:10:07 +0100] miniserv.pl started
[26/Mar/2026:19:10:07 +0100] Using MD5 module Digest::MD5
[26/Mar/2026:19:10:07 +0100] Using SHA512 module Crypt::SHA
[26/Mar/2026:19:10:07 +0100] PAM authentication enabled
[26/Mar/2026:19:10:07 +0100] UTMP logging enabled

This is a strange error. Do you get the same error when you switch to the Framed Theme?

i have changed the theme and have this:

[28/Mar/2026:06:56:29 +0100] miniserv.pl started
[28/Mar/2026:06:56:29 +0100] Using MD5 module Digest::MD5
[28/Mar/2026:06:56:29 +0100] Using SHA512 module Crypt::SHA
[28/Mar/2026:06:56:29 +0100] PAM authentication enabled
[28/Mar/2026:06:56:29 +0100] UTMP logging enabled
Prototype mismatch: sub extensions::decode_utf8: none vs ($;$) at /usr/lib/x86_64-linux-gnu/perl-base/Exporter.pm line 63.
 at (eval 195) line 1.
Prototype mismatch: sub extensions::decode_utf8: none vs ($;$) at /usr/lib/x86_64-linux-gnu/perl-base/Exporter.pm line 63.
 at (eval 195) line 1.
Prototype mismatch: sub extensions::decode_utf8: none vs ($;$) at /usr/lib/x86_64-linux-gnu/perl-base/Exporter.pm line 63.
 at (eval 195) line 1.

also changed the theme in usermin, i have try to sign a key:
[28/Mar/2026:09:42:58 +0100] [192.] /service-worker.js : File not found
[28/Mar/2026:09:43:03 +0100] [192.] /service-worker.js : File not found

Let’s focus on the issue. Those error messages are not related.

Does email signing and decryption work for you now?

when i sign a key with the framed theme i have a white page with the navigation on the left side, when i sign a key in the authentic theme i have a endles red loading, goes from left to right …

can i see in the webgui when a key is signed?

Thanks for the feedback! Please apply another patch:

webmin patch https://github.com/webmin/webmin/commit/d2b4fa8

its still endles loading, here the logs
[29/Mar/2026:17:16:24 +0200] “GET / HTTP/1.1” 200 80303
[29/Mar/2026:17:16:24 +0200] “POST /xhr.cgi HTTP/1.1” 200 1
[29/Mar/2026:17:16:24 +0200] “GET /gnupg/edit_key.cgi?idx=0 HTTP/1.1” 200 9304
[29/Mar/2026:17:16:25 +0200] “POST /xhr.cgi HTTP/1.1” 200 92
[29/Mar/2026:17:16:26 +0200] “GET /service-worker.js HTTP/1.1” 200 94
[29/Mar/2026:17:16:27 +0200] “POST /xhr.cgi?type=file&action=motd&subtype=receive HTTP/1.1” 200 11
[29/Mar/2026:17:16:36 +0200] “POST /gnupg/list_keys.cgi HTTP/1.1” 200 10896
[29/Mar/2026:17:16:40 +0200] “POST /gnupg/edit_key.cgi?idx=0 HTTP/1.1” 200 9301
[29/Mar/2026:17:17:02 +0200] “GET /gnupg/signkey.cgi?idx=0 HTTP/1.1” 200 3998
[29/Mar/2026:17:23:27 +0200] “POST /xhr.cgi?type=file&action=motd&subtype=receive HTTP/1.1” 200 11

I cannot reproduce this issue. I suggest waiting until new Webmin and Usermin releases become available in the repositories, then try again.

If the problem persists, please provide a screencast of the entire Usermin page so I can better understand how it’s not working for you.

i will send a screencast, and will send the link in the ticketpost

Thanks, you can do it now. If it’s a real bug, we’ll fix it before the upcoming Usermin release.

i have send the screencast on the post for staff only