-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
强烈建议给加密函数开放更多的可选项 #1651
Comments
sm2加密需要支持长数据加密+1 |
实际上GmSSL设计时考虑了这个需求,默认就不必须做DER编码。 |
可是源码里面并没有直接将SM2_CIPHERTEXT 暴露给用户,用户还是需要阅读和修改源码才能得到非der编码的数组,不妨给函数参数加一个控制der编码的标志位,控制输出数组中的内容是否是der编码过的。并且还是希望1、sm2加密需要支持长数据加密;2、对私钥的加密也可关闭;3、sm4 EBC加密(虽然我已经实现了); int sm2_encrypt(const SM2_KEY *key, const uint8_t *in, size_t inlen, uint8_t *out, size_t *outlen)
{
SM2_CIPHERTEXT C;
if (!key || !in || !out || !outlen) {
error_print();
return -1;
}
if (!inlen) {
error_print();
return -1;
}
if (sm2_do_encrypt(key, in, inlen, &C) != 1) {
error_print();
return -1;
}
*outlen = 0;
if (sm2_ciphertext_to_der(&C, &out, outlen) != 1) {
error_print();
return -1;
}
return 1;
} |
在使用gmssl的过程中,由于开发需求,我们不能使用der编码,私钥不能用密码加密,sm2加密需要支持长数据加密,以及sm4分组加密算法需要支持任意长度数据加密。然而!这些特性在gmssl库中都没有,而一个非密码学领域的软件开发者研究怎么从原有的gmssl库中修改这些特性是很困难的。
也许这些需求既不安全也不合理,但这就是上面的需求,我们只能按这个做。
我看Issues中也有好几个人提出了类似的问题,我不是唯一有此需求的人。我不是一个密码学领域的开发者,相信很多使用gmssl的人也是。
作者出于安全性考虑必然出发点是好的,但是我还是强烈建议选择权交给使用者,在函数中调用中增加参数控制这些特性会极大地方便开发者使用。
The text was updated successfully, but these errors were encountered: