问题标签 [gost3410]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1348 浏览

ruby - 在 Ruby 中使用 OpenSSL 进行 GOST 数字签名验证

我有 Base64 格式的证书、源文档和分离签名。UEC(通用电子卡 - 俄罗斯智能卡项目)在 Windows 上在 CryptoARM 程序中创建的签名(我认为使用了 GOST 哈希函数)。

我正在使用 Ubuntu 13.10 并安装了 OpenSSL 1.0.1e(默认情况下包括 GOST 支持 AFAIK)。

我已经在 Ubuntu CA 商店中安装了 UEC CA 证书:

并且控制台验证成功(确定文件是否未更改):

因此,我正在尝试在 Ruby(2.0.0 和 2.1.0)中进行验证,如以下问题所述:Digital signature verification with OpenSSL

所以,我真的不知道为什么它只是返回 false,我的引擎加载是否会影响任何东西。如何PKCS7#verify使用 GOST 引擎提供的正确算法?

有任何想法吗?

文件:

PS 要使 OpenSSL 正常工作,需要执行以下步骤(在此处找到):

此字符串应添加到最顶部/etc/ssl/openssl.cnf

这些字符串应该添加到最底部/etc/ssl/openssl.cnf

之后下一个命令应该显示下一个输出:

0 投票
1 回答
652 浏览

java - 无法验证 pdf 签名。文本,pdf,GOST3410

我正在尝试验证 pdf 文件中的签名。其中有三个。我已经用我在互联网上找到的代码签署了该文件并采用了我的需要,所以它也可能是不正确的。这是签名文件pdf文件

验证码在这里:

我已经签署了使用 GOST3411 制作的文件摘要,并带有在 cryptopro 网站上生成的测试证书。

当我用 pdf 阅读器打开这个文件时,它说有 3 个签名。我真的签了三遍。但是上面的代码从pdf签名中取出了不等于我写的名字的名字。它们看起来像 Signature1、Signature2 等。在所有三种情况下都应该写“CN”。请帮忙。我做错了什么?

0 投票
2 回答
928 浏览

c# - 如何获取证书支持的算法列表

这是创建数字签名的代码:

如何获取证书支持的算法列表?以及如何使用列表中的指定算法创建数字签名?

以下是旨在创建数字签名的专有软件之一的屏幕截图示例:

第一个证书的算法列表:

在此处输入图像描述

第二个证书的算法列表:

在此处输入图像描述

0 投票
1 回答
974 浏览

python - 如何使用修改过的 OpenSSL(支持俄罗斯 GOST)编译 python?

我正在尝试强制 python 2.7 与修改后的 openssl 库一起使用。我需要支持俄罗斯 GOST 密码。所以我像这样配置了OpenSSL

并安装它(制作依赖,制作,制作测试,制作安装)。openssl.conf 包含

该命令/my/path/bin/openssl ciphers | tr ":" "\n" | grep GOST返回后

openssl s_client -connect test.domain.ru:443成功连接,我可以发送 GET 请求(标准 OpenSSL 不适用于此站点)。之后,我尝试使用该 openssl lib 编译 python:我取消注释并将 Modules/Setup.dist 中的 SSL 变量更改为/my/path及其下的相关行,并且还更改了 setup.py 中ssl_incsssl_libs变量。我已将 python 安装到我的主文件夹并从该文件夹运行脚本。但是当我这样运行脚本时

我仍然有错误

我应该怎么做才能强制python使用新的OpenSSL(gost引擎),可能有什么简单的方法可以做到这一点?

操作系统:Linux Mint 17 x64

0 投票
1 回答
812 浏览

encryption - gost2001如何解密消息

如何解密消息:

?

文件 ENC_KEY:

解密:

0 投票
1 回答
523 浏览

java - 公钥生成和签名计算的椭圆曲线应该相同吗?

根据维基百科,ECDSA 中的公钥是私钥(随机数)乘以椭圆曲线 C 上的某个基点 G。而且我们在签名和验证中都使用了 C。

我可以使用一些 G1 和 C1 生成公钥,使用其他曲线 C2 进行签名和验证吗?

我知道这听起来很奇怪,但我的实际目标是在 ECDSA 中使用 GOST 私钥(我已经拥有它们并且必须使用它们)。因此,GOST public 可能是从特殊的 C1、G1 和 JavaSHA256withECDSA可能使用其他知道的曲线生成的。

  1. 如何检测曲线使用的Signature ecdsaSign = Signature.getInstance("SHA256withECDSA", "BC");
  2. 如果签名和验证返回 true,是否意味着我提供给 ECDSA 的 GOST 密钥与 ECDSA 兼容?

    /li>

请注意,GOST 密钥生成的曲线和内部曲线SHA256withECDSA 可能不相等,这就是我问这个问题的原因。

更新

回答

我可以使用一些 G1 和 C1 生成公钥,使用其他曲线 C2 进行签名和验证吗?

不,C1 必须等于 C2。

检测 BC 曲线是可能的——我查看了 BC 的 SignatureSpi 源,发现曲线参数取自密钥。并发现 C2 等于已知 C1。换句话说,不是,SHA256withECDSA而是prKey.getAlgorithm()决定。

但!!密钥的兼容性并不意味着使用它是安全的。GOST 曲线具有特殊的不变量,可能会影响某些 ECDSA 步骤 - 这是一个有趣但非常困难的问题 - ECDSA 中是否存在 GOST 曲线的任何弱点。所以,答案是“兼容但在使用前仔细检查数学人员”

请注意,KBKDF 不会从 ECDSA 中的 GOST 曲线弱点中拯救出来(如果它确实存在于“数学-加密-场景”后面)

0 投票
2 回答
251 浏览

pdf - 将 GOST3411 摘要算法添加到 Adob​​e Reader

我能够使用 GOST3411 摘要和 ECGOST3410 签名算法签署 pdf 文件。现在,我希望 Adob​​e Reader 读取签名,但它说没有摘要算法或摘要未知。无论如何,阅读器无法解密文档中的签名。如果有人有办法解决这个问题,请帮忙。

谢谢!

0 投票
2 回答
250 浏览

c# - 我正在尝试创建 GOSTR3410 公钥。CKR_ATTRIBUTE_TYPE_INVALID 异常

再会!ObjectHandle我正在尝试基于来自客户端通过发布请求的十六进制字符串创建公钥。

我正在根据文档进行操作,但它返回给我CKR_ATTRIBUTE_TYPE_INVALID例外。

完整的例外消息:Net.Pkcs11Interop.Common.Pkcs11Exception: 'Method C_CreateObject returned CKR_ATTRIBUTE_VALUE_INVALID'

内部异常为空

你能帮我弄清楚我做错了什么吗?

这是我的代码:

0 投票
0 回答
95 浏览

java - 是否可以将“GostR3410”标准证书文件导入 JKS 并使用 keytool 或 bouncycastle 包与 java 获取私钥?

是否可以从以“GostR3410-2001-CryptoPro-A”标准颁发的证书和外部加密服务提供商获取私钥以使用“ECGOST3410”算法生成数字签名?

我已经拥有该类型的证书,包括 pfx 文件类型中的私钥。

如何将其导入 JKC 并获取私钥以在 bouncycastle 中使用ECGOST3410_2012Signer生成数字签名?

0 投票
0 回答
291 浏览

https - 使用 GOST 2012 (ГОСТ Р 34.10-2012) 和 Python 2.7.15+ 的 https 连接:

我在 Linux Mint 上安装了带有“GOST 引擎的参考实现”的 OpenSSL 1.1.1。

我尝试使用 python-requests 连接 https-server:

结果是:

这个错误的原因是什么?我能做什么?