52 lines
1 KiB
Bash
Executable file
52 lines
1 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
function usage(){
|
|
cat << _EOT_
|
|
Usage :
|
|
$0 [-g] [-]
|
|
|
|
Description:
|
|
Generate 2048 bit Rsa key pair and Display modulus and public exponent
|
|
|
|
Options:
|
|
-g generate rsa key pair, default on
|
|
-s only show modulus and public exponent
|
|
_EOT_
|
|
exit 1
|
|
}
|
|
|
|
FLAG_G="on"
|
|
FLAG_S="off"
|
|
|
|
while getopts gsh OPT
|
|
do
|
|
case $OPT in
|
|
g)
|
|
FLAG_G="on"
|
|
;;
|
|
s)
|
|
FLAG_S="on"
|
|
FLAG_G="off"
|
|
;;
|
|
h)
|
|
usage
|
|
;;
|
|
\?)
|
|
usage
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [ $FLAG_G = "on" ]; then
|
|
# generate 2048bit Rsa private key
|
|
openssl genrsa 2048 2> /dev/null > private-key.pem
|
|
# expose public key
|
|
openssl rsa -in private-key.pem -pubout -out public-key.pem 2> /dev/null
|
|
fi
|
|
|
|
if [ $FLAG_S = "on" ]; then
|
|
# display modulus and exponent
|
|
openssl rsa -modulus < private-key.pem 2>/dev/null | grep Modulus=
|
|
openssl rsa -text < private-key.pem 2> /dev/null | grep publicExponent
|
|
fi
|
|
|