Поскольку нигде в вашем примере кода вы не генерируете ключ или не указываете группу, я не могу быть уверен, в чем проблема:
«Я не знаю, как получить и преобразовать этот шестнадцатеричный файл ...» У вас проблемы с генерацией файла (например, keypuba пуста или не содержит ключа), проблемы с чтением файла или просто нет знаете, как действовать дальше?
FYI, openssl имеет функции преобразования от шестнадцатеричного до большого числа , однако вы, вероятно, не захотите вручную вычислять свои собственные параметры Эфемерного Диффи-Хеллмана, поскольку OpenSSL имеет подпрограмму ecies_encrypt()
который заботится об этом, а также ecies_key_public_get_hex(EC_KEY *key)
, который уже принимает шестнадцатеричный ввод.
К сожалению, библиотека openssl была написана не как общий крипто-API, а как модуль для реализации SSL. Проблема № 1, когда разработчики пытаются использовать вызовы openSSL, заключается в том, чтобы знать, какой интерфейс им следует использовать и какой внутренний интерфейс им не следует использовать.
Если вы не являетесь экспертом и у вас нет веских причин для создания собственной версии ECIES, вам следует использовать встроенные вызовы.