Создание цифровой подписи для запросов 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, он выдает много символов, заключенных в несколько строк.
Я тоже попробовал приведенное ниже :

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

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»