Я хочу создать пример создания документа, цифровой подписи и проверки.Все работает нормально, пока я не попытаюсь проверить подпись, все, что я получаю, это unable to load key file
Создайте документ, для которого требуется соглашение (подпись):
echo I, Bob, promise to pay Mark £1000 by 1/1/2020 > contract.txt
Создание личного ключа:
openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
Создание открытого ключа из закрытого ключа:
openssl rsa -in private_key.pem -RSAPublicKey_out -out public_key.pem
Цифровая подпись документа:
openssl dgst -sha256 -hex -sign private_key.pem -out signature.sign contract.txt
Затем, если мы просмотрим содержимое signature.sign
:
RSA-SHA256(contract.txt)= 2f5dc8216766562a9fb67a7b09b43b599889e7adea3d4d508194018961a82a9076051ee3c3952af9dbd607cbfe1095976ec5e877e22c0e4a884003ebef672f9a3e598128f819435a178c92ad10e4a409dc28db6e6500dfcee6a58e352446c354dec0852d6d826ee443fe158e6c30a231d30eb00e03c21a3e98855445bcc43a000f205b44ea8fc2f4ed85cd7c03c5708d649ef9a7d737b0948b9bdba322868e18492446eac054e2d4a31f0fa9bfccc627b621da0a9a261fb6169c1f107ec0311844151e77e50aeedb1be860c2b0b58f077c2886f9a7f05e727c0f9d4cc24d668f96bf7d6a2fff40a4b14951e745847c13812b35df95f91d202df0ef6ea5a05078
Для проверки подписи:
openssl dgst -sha256 -hex -verify public_key.pem -signature signature.sign contract.txt
Полный скрипт:
echo I, Bob, promise to pay Mark £1000 by 1/1/2020 > contract.txt
openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
openssl rsa -in private_key.pem -RSAPublicKey_out -out public_key.pem
openssl dgst -sha256 -sign private_key.pem -out signature contract.txt
openssl dgst -sha256 -verify public_key.pem -signature signature contract.txt
Спасибо!