【问题标题】:OpenSSL GOST Parameter setOpenSSL GOST 参数集
【发布时间】:2012-10-12 23:21:15
【问题描述】:

如果有办法以编程方式将自定义参数插入到 GOST 2001 参数集中,应该使用什么 API?在通过模拟 OpenSSLs 的函数设法生成EVP_PKEY 后,我发现参数绑定到 NID,因此需要在其中添加自定义参数。有什么想法吗?

【问题讨论】:

  • GOST 2001 算法对我来说是一个未知的领域,我所能做的就是修改......
  • 修改意味着标准的 OpenSSL 将无法工作,并且必须每次都对其进行修补,并使其完全依赖于当前版本。出于多种原因,编写自己的引擎也不是一种选择。我个人认为动态参数的设置应该在API中进行,否则会很牵强。
  • 大声笑,不,我的意思是这个问题:) 顺便说一句,我在你的另一个问题上悬赏。
  • 你的意思是换个替换框还是别的什么?
  • 让我描述一下我在做什么:主要思想是使用具有自定义参数(例如来自 GOST 标准)和自制随机序列的 GOST 算法以编程方式生成 pkcs#12 容器。为了实现这一点,我设法通过通过 EC_KEY_check_key() 测试的 EC_KEY 获得 EVP_PKEY。要生成容器,还需要 X509 证书。在创建过程中出现错误“X509_PUBKEY_get:public key decode error:x_pubkey.c:164:”导致“FILL_GOST2001_PARAMS:unsupported parameter set:gost2001.c:53:”导致从

标签: c cryptography openssl gost3410


【解决方案1】:

下一个问题解决了:

  1. 如果您没有将CurveName 设置为现有参数集NID 之一,则会出现上层错误FILL_GOST2001_PARAMS:unsupported parameter set,因此它应该是这样的:EC_GROUP_set_curve_name(CurveGroup,NID_id_GostR3410_2001_TestParamSet)
  2. 但是设置默认参数设置为一个并不意味着每次都会使用它,例如在EC_KEY_check_key()函数中,你调用它。 OpenSSL 所做的是 - 它从您的 EC_KEY 对象中获取参数,因此它很容易定制,只要这些参数正确(点在曲线上等)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-07
    • 1970-01-01
    • 2022-11-24
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 2015-11-19
    • 1970-01-01
    相关资源
    最近更新 更多