Создание цифровой подписи для запросов API в bashPython

Программы на Python
Anonymous
Создание цифровой подписи для запросов API в bash

Сообщение Anonymous »

У меня есть скрипт Python для создания подписи/токена для запросов API. Работает нормально.
Я написал почти все строки с Python на Bash. Теперь я не могу декодировать/переводить приведенные ниже строки из Python в Bash, чтобы была создана правильная подпись и я завершил свой сценарий Bash.

Код: Выделить всё

    from Crypto.PublicKey import RSA
from Crypto.Signature import pss
from Crypto.Hash import SHA256

# Load private key
try:
with open(private_key_location, 'r') as file:
# Read the contents of the file
private_key_string = file.read()

# Load private key
private_key = RSA.import_key(
private_key_string, passphrase=passphrase if passphrase else None)

# Sign
h = SHA256.new(signing_string.encode('utf-8'))
signature = pss.new(private_key).sign(h)

# Encode
encoded_signature = base64encode(signature)
Первое, на чем я застрял, это строка Signing_string.encode('utf-8'), поскольку в Python она создаст строку байтов b'. Я попробовал iconv в bash для байтовой строки, но, похоже, это не помогло. Но я могу ошибаться.
Второе, что я пытался подписать, и все это с помощью команды ниже в bash.

Код: Выделить всё

echo -n $MESSAGE | openssl dgst -sha256 -hmac $SECRET -binary | base64
это выводит небольшое количество символов, которые, когда я запускаю Python One, дают много символов, заключенных в несколько строк.
Тоже попробовал ниже,

Код: Выделить всё

echo $MESSAGE | openssl dgst -sha256 -sign private.pem | base64
это дает много символов, заключенных в несколько строк, как в Python, но не создает правильную подпись для авторизации сервера, поэтому проблема с логикой.
Нужна помощь в переводе кода Python выше в bash, чтобы иметь возможность генерировать подпись.
Я знаю, что могу пойти дальше и использовать весь этот код в bash, используя команду python -c "" и т. д. и т. д., но мой цель — чистый bash-скрипт.

Подробнее здесь: https://stackoverflow.com/questions/790 ... ts-in-bash

Вернуться в «Python»