首页 > 解决方案 > 签署 gcrypt 数据返回 16777281

问题描述

我将以下 gcrypt 代码设置为首先签名,然后验证数据。但是,这已经返回 16777281 作为签名操作的结果。但我找不到任何与此匹配的错误消息。

编辑:附加信息:

通过 gcry_strerror 的错误代码导致“无效对象”

std::cout << gcry_check_version(nullptr) << std::endl;
gcry_control(GCRYCTL_SUSPEND_SECMEM_WARN);
gcry_control (GCRYCTL_INIT_SECMEM, 16384, 0);
gcry_control(GCRYCTL_RESUME_SECMEM_WARN);
gcry_control(GCRYCTL_INITIALIZATION_FINISHED, 0);

gcry_sexp_t keypair;

gcry_sexp_t params;

gcry_sexp_build(&params, nullptr, "(genkey (rsa (nbits 4:3072)))");

gcry_pk_genkey(&keypair, params);

assert(keypair != nullptr);
gcry_sexp_release(params);

gcry_sexp_t priv = gcry_sexp_find_token(keypair, "private-key", 0);
gcry_sexp_t pub = gcry_sexp_find_token(keypair, "public-key", 0);

assert(priv != nullptr);
assert(pub != nullptr);

gcry_sexp_t data;
gcry_sexp_t r_sig;

gcry_sexp_build(&data, nullptr, "(data (flags raw) (value (100, 2, 254, 88, 90, 45, 23))");

std::cout << gcry_pk_sign(&r_sig, data, priv)  << std::endl;

标签: c++gnupglibgcrypt

解决方案


推荐阅读