pertama buat private key dan public key terlebih dahulu dengan openssl
openssl req -nodes -x509 -sha256 -newkey rsa:4096 -keyout tes.key -out tes.crt -days 365 -subj "/C=ID/ST=JAKARTA/L=Rotterdam/O=TES Network/OU=IT Dept/CN=TES"dari execute diatas menghasilkan tes.key (private key) dan tes.crt (public key). setelah mendapatkan privat dan public key kita membuat file yang akan di sign
echo "Hallow" > tes.txttelah mendapat file tes.txt kita coba sign dengan private key dan nanti kita buka dengan public key menggunakan perintah
openssl dgst -sha256 -sign "tes.key" -out tes.txt.sha256 tes.txt
kommand diatas akan menghasilkan file tes.txt.sha256 (bisa di costum nama filenya)
untuk memverifikasi apakah tes.txt.sha256 sama dengan tes.txt kita menggunakan public key untuk memverifikasi. karena mode enskripsi asimetris.
openssl dgst -sha256 -verify <(openssl x509 -in "tes.crt" -pubkey -noout) -signature tes.txt.sha256 tes.txttambahan:
buat public key pem :
openssl rsa -in tes.key -pubout -out tes.pem
untuk sign dengan public key pem :
openssl dgst -sign tes.pem -keyform PEM -sha256 -out data.zip.sign -binary file.zip
verification from pem:
openssl dgst -verify key.pub -keyform PEM -sha256 -signature data.zip.sign -binary data.zip