Создаю на Python публичный приватный ключи, после чего подписываю приватным строку, отправляю по сети хекс сигнатуры и публичный ключ, на той стороне проверяю C++ кодом либой Openssl/ RSA_verify. И пишет что подпись не валидная. Пробовал на плюсах сделать сигнатуру этим же приватным и ту же строку, то хекс от сигнатуры вообще другой получается. Я так понимаю алгоритмы разные у разных либ/языков?
Вот как создаю ключи на Питоне:
public, private = rsa.newkeys(len_key)
pub = public.save_pkcs1()
pri = private.save_pkcs1()
Делаю подпись
signatur = rsa.sign(data, rsa.PrivateKey.load_pkcs1(privateKey), 'SHA-512')
Чекаю на плюсах:
RSA_verify(NID_sha512, (const unsigned char*) text.c_str(), text.length(), (const unsigned char*) sign.c_str(), sign.length(), publicRSA);
Пробовал на Python использовать pyOpenSSL, но это не помогло.
Кто что подскажет? в чем косяк?