Certificate exporter/uploader
Signed-off-by: Georg <georg@lysergic.dev>
This commit is contained in:
parent
8e1b0658fd
commit
8136cb2963
65
pounceman.sh
65
pounceman.sh
@ -239,6 +239,7 @@ certman() {
|
|||||||
--menu "" 0 0 8 \
|
--menu "" 0 0 8 \
|
||||||
"1" "Manage Certificate Authority" \
|
"1" "Manage Certificate Authority" \
|
||||||
"2" "Manage Client Certificates" \
|
"2" "Manage Client Certificates" \
|
||||||
|
"3" "Create new client certificate" \
|
||||||
2>&1 1>&3)
|
2>&1 1>&3)
|
||||||
exec 3>&-
|
exec 3>&-
|
||||||
case $certmansel in
|
case $certmansel in
|
||||||
@ -248,6 +249,9 @@ certman() {
|
|||||||
2 )
|
2 )
|
||||||
get_certs
|
get_certs
|
||||||
;;
|
;;
|
||||||
|
3 )
|
||||||
|
add_cert
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -304,10 +308,10 @@ get_certs() {
|
|||||||
CRTRADIOLIST="$CRTRADIOLIST $CRTFILENAME $CRTFILENAME off"
|
CRTRADIOLIST="$CRTRADIOLIST $CRTFILENAME $CRTFILENAME off"
|
||||||
let CRTCOUNTER=CRTCOUNTER+1
|
let CRTCOUNTER=CRTCOUNTER+1
|
||||||
done
|
done
|
||||||
crt_choice=$(dialog --ok-label "Delete" \
|
crt_choice=$(dialog --ok-label "View" \
|
||||||
--cancel-label "Back" \
|
--cancel-label "Back" \
|
||||||
--extra-button \
|
--extra-button \
|
||||||
--extra-label "New Certificate" \
|
--extra-label "Delete" \
|
||||||
--title "Client Certificates" \
|
--title "Client Certificates" \
|
||||||
--backtitle "LibertaCasa IRC Services - Pounce Division - https://liberta.casa/" \
|
--backtitle "LibertaCasa IRC Services - Pounce Division - https://liberta.casa/" \
|
||||||
--radiolist "Manage your client certificates:" 0 0 $CRTCOUNTER \
|
--radiolist "Manage your client certificates:" 0 0 $CRTCOUNTER \
|
||||||
@ -315,9 +319,21 @@ get_certs() {
|
|||||||
2>&1 1>&3)
|
2>&1 1>&3)
|
||||||
exit_status=$?
|
exit_status=$?
|
||||||
case $exit_status in
|
case $exit_status in
|
||||||
0) remove_cert "$crt_choice"
|
0)
|
||||||
|
if [ ! $crt_choice = "" ]; then
|
||||||
|
get_cert "$crt_choice"
|
||||||
|
else
|
||||||
|
get_certs
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
3) add_cert
|
1) certman
|
||||||
|
;;
|
||||||
|
3)
|
||||||
|
if [ ! $crt_choice = "" ]; then
|
||||||
|
remove_cert "$crt_choice"
|
||||||
|
else
|
||||||
|
get_certs
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
exec 3>&-
|
exec 3>&-
|
||||||
@ -341,6 +357,47 @@ get_certs() {
|
|||||||
exec 3>&-
|
exec 3>&-
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_cert() {
|
||||||
|
cert=$1
|
||||||
|
sha1=$(openssl x509 -noout -fingerprint -sha1 -in $pouncedir/users/$USER/certs/$cert)
|
||||||
|
sha256=$(openssl x509 -noout -fingerprint -sha256 -in $pouncedir/users/$USER/certs/$cert)
|
||||||
|
dialog \
|
||||||
|
--backtitle "LibertaCasa IRC Services - Pounce Division - https://liberta.casa/" \
|
||||||
|
--title "Fingerprints" \
|
||||||
|
--ok-label "Back" \
|
||||||
|
--extra-button \
|
||||||
|
--extra-label "Download" \
|
||||||
|
--msgbox "$sha1\n\n$sha256" 10 90
|
||||||
|
exit_status=$?
|
||||||
|
case $exit_status in
|
||||||
|
0 )
|
||||||
|
get_certs
|
||||||
|
;;
|
||||||
|
3 )
|
||||||
|
if [ ! $cert = "" ]; then
|
||||||
|
export_cert "$cert"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
export_cert() {
|
||||||
|
cert=$1
|
||||||
|
exec 3>&1
|
||||||
|
pbincli send -f $pouncedir/users/$USER/certs/$cert -B -q | grep -o "https://.*" | dialog \
|
||||||
|
--backtitle "LibertaCasa IRC Services - Pounce Division - https://liberta.casa/" \
|
||||||
|
--title "Certificate Download" \
|
||||||
|
--programbox "One-time download for client certificate $cert:" \
|
||||||
|
5 150
|
||||||
|
exit_status=$?
|
||||||
|
case $exit_status in
|
||||||
|
0 )
|
||||||
|
get_certs
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
exec 3>&-
|
||||||
|
}
|
||||||
|
|
||||||
add_cert() {
|
add_cert() {
|
||||||
exec 3>&1
|
exec 3>&1
|
||||||
crt_input=$(dialog --ok-label "Submit" \
|
crt_input=$(dialog --ok-label "Submit" \
|
||||||
|
Loading…
Reference in New Issue
Block a user