Это первый раз, когда я работаю с паролями открытых и закрытых ключей RSA в API, поэтому будьте осторожны:)
Я пытаюсь использовать API, который шифрует свой ответ с помощью созданного мной открытого и закрытого сертификата и комбинации ключей. Я сгенерировал файл .crt и личный файл .key с помощью команды openssl на своем компьютере и отправил поставщику услуг мой открытый ключ для шифрования.
Однако, когда я пытаюсь расшифровать строку, используя свой закрытый ключ, он выдает
OpenSSL::PKey::RSAError (padding check failed) error on my console.
Я попытался сгенерировать несколько различных пар открытых и закрытых ключей, и у всех одна и та же проблема. Клиент сообщает мне, что они использовали стандарт заполнения PKCS # 12, но, насколько я понимаю, PKCS # 12 - это просто другой формат. хранения открытых и закрытых ключей (.pfx / .p12). Пожалуйста, поправьте меня, если я ошибаюсь в этом отношении.
Команды, которые я использую для расшифровки
encrypted_string = "B/2uayrTTAxvt/2bz0VpxGIq+YHLtNqwB76q3kRdVAYzPhp5CE/sf16FQOXuo2q3SRENZbJZjG9x\r\nFitFLwxttXi148Yt2DBZaC5azAC7hrZIm6PxLGjkBiMjQqELG1MROSR7srMr2w2jITWZSdvuCS3I\r\nihOdpX/jPKezxRf9KmbYI/0blLvl+x3TjaEpn+5RJECl1Igjy85pZSEHQjoTtAC4ZJzqCDE9ALVQ\r\nVh0lBoS5SqWQ8PYxQ0dqtzY7fNZPhbgFH52WfdjUaxr9XW/xEY2tsVePrMyO13UMQGoRj/GAF4ET\r\nTxN0X1SNRoVTpuaMmccfEc8scJj30/Hye0Mqc1CDLupYprlDPVGjUnJScQ7fIEApOsxrMuNxkS4o\r\nrwVSejerHvyVhpwy+Re9/4+96teYvWRonBJC3C4jGcqSLra0BRRzITvYiHR7+57OxUXNM1IBSXW/\r\nb9UYZHIpZegOvjdbJlZZw2m1ctoTfkguMKo3iAonDHIBgwQYUcOawtW6z7YAGjscw9HU82tlrAvS\r\nJjvwitfnwhJfRezhaT04sUtIDmt097h07bk14f6CqyTnUPETraA/wXbOhmrsXjWnMSxZVyF/Ttlj\r\n9KUSp5h1pUDpaHDZb+BIAh0/q+KycTWZs1+iG95L2UmxfxtS+9/M+vBU6C0xuWm7XK5gWZBVc9w="
path = "/path/to/private.key"
private_key = OpenSSL::PKey::RSA.new(File.open(path))
private_key.private_decrypt(Base64.decode64(encrypted_string))
, который возвращает:
Traceback (most recent call last):
3: from (irb):10
2: from (irb):10:in `rescue in irb_binding'
1: from (irb):10:in `private_decrypt'
OpenSSL::PKey::RSAError (padding check failed)
Я не знаю, что здесь делать или что я делаю не так. Я могу предоставить здесь открытый и закрытый ключи для справки (не волнуйтесь, создайте новые, как только это будет решено)
Я пропустил какую-то конфигурацию или допустил ошибку при генерации ключа?