Подписание сообщения с использованием ECDSA в OpenSSL

Как установить закрытый ключ для подписи сообщений при использовании ECDSA в OpenSSL программно? У меня есть следующий код:

static int create_signature(unsigned char* hash)
{
  EC_KEY *eckey=NULL;
  EC_GROUP *ecgroup=NULL;
  EVP_PKEY *evpkey=NULL;
  unsigned char *signature=NULL;
  point_conversion_form_t form = POINT_CONVERSION_UNCOMPRESSED;
  int signature_size, block_size;
  unsigned char * block=NULL;

  ecgroup = get_ec_group_192();
  EC_GROUP_set_asn1_flag(ecgroup, OPENSSL_EC_NAMED_CURVE);
  EC_GROUP_set_point_conversion_form(ecgroup, form);
  eckey=EC_KEY_new();
  EC_KEY_set_group(eckey,ecgroup);
  EC_KEY_generate_key(eckey);
  evpkey=EVP_PKEY_new();
  EVP_PKEY_assign_EC_KEY(evpkey,eckey);
  signature=OPENSSL_malloc(EVP_PKEY_size(evpkey));

  ECDSA_sign(0, hash, sizeof(hash), signature, &signature_size, eckey);

  printf("%s", signature);
  return 0;
}

Функцияget_ec_group_192() создается путем запускаopenssl ecparam -C -name secp192k1 -genkey который также генерирует некоторыеEC PARAMETERS иEC PRIVATE KEY.

Я пытаюсь зашифровать сообщение, содержащееся вhash с моим закрытым ключом, так что только открытый ключ может расшифровать его. Возможно ли это с помощью приведенного выше кода, или я делаю это совершенно неправильно?

Ответы на вопрос(2)

Ваш ответ на вопрос