c++ - 签署 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(¶ms, 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;
解决方案
推荐阅读
- mongodb - 无法使用 $toString 将数字转换为字符串
- swift - 不同的导航项
- excel - 使用 UiPath 在 Excel 文件中循环 URL
- python - 根据其他形式的值在循环中重复烧瓶形式
- javascript - 有没有办法检查两个对象是否具有共同的属性?
- javascript - 未应用 Datatables.js 样式
- python - Python:for循环迭代对象,而不是字符串
- java - 我的 KeyListener 无法读取按键输入
- python - Python 字符串,默认编码和解码(UTF-8?)
- javascript - 更改代表获取行 ID 的按钮名称