首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Poco::Crypto::DigestEngine in Poco::HMACEngine

使用Poco::Crypto::DigestEngine in Poco::HMACEngine
EN

Stack Overflow用户
提问于 2014-03-11 09:31:19
回答 1查看 1.4K关注 0票数 1

Poco支持具有不同哈希函数的HMACEngine。例如,要创建HMAC-SHA1 1函数,可以使用HMACEngine<SHA1Engine> hmca_sha1("secret");

这很适用于DigestEngine,比如SHA1EngineMD5Engine,它们都有一个没有参数的构造函数。

是否可以将HMACEngine与来自OpenSSL的哈希函数一起使用,因为它们是由Poco::Crypto::DigestEngine提供的

问题是,这些函数在其构造函数中接受一个字符串参数,该参数指定要使用的散列算法。这意味着HMACEngine<Poco::Crypto:DigestEngine> hmca_xxx("secret");不能工作。

知道怎么做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-13 19:56:33

我认为这将需要在Poco方面进行一些编码。HMAC正在接受任何类作为模板参数,并希望它是一个Digest类ans,它使用的方法(例如摘要())甚至可能不存在。将类实例化为模板的HMACEngine,因此不能将任何内容传递给它的构造函数。事实上,我并不认为这是模板的一个很好的使用,虽然我还不太熟悉使用这个C++资源,我认为人们不应该期望从模板类中得到任何可用的东西。

Crypto模块(而不是Foundation模块)创建一个新的Foundation可能会更好。但是看起来更像Poco::Crypto::RSADigestEngine的方法会比基于当前模板的方法更好。我最近修改了Poco::Crypto::RSADigestEngine,使其基于Poco::Crypto::DigestEngine而不是旧的Poco::DigestEngine,因此在下一个版本中,它还将支持OpenSSL支持的所有散列。基本上,RSADigestEngine创建一个Poco::Crypto::DigestEngine的实例作为基础,并使用它。

如果你在github创建一个补丁方案,我可以帮上忙。Poco::Crypto确实需要更新:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22321544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档