Load/Export 随机数

Load/Export RandomNumber

在自制的ECDHE应用程序的框架中,客户端和服务器都必须发送一个随机生成的数字(rng),以便稍后在MasterSecret期间构建握手(类似 TLS)...

使用 crypto++,创建这些数字很容易,感谢:

AutoSeededRandomPool rng;

我的问题是 1) 将它们导出 到字符串或等价物,以及 2) 从字符串加载它们

我必须将这些数字放在一个框架内,而且 Class definition, nor the examples 也不精确。

在网上我没能找到 Save/Load 个示例(比如 RSA::PublicKeys 的示例)。

显然我是第一个想要这个的人,因为他们 examples 在同一个程序 中生成客户端和服务器 ,因此不需要传送号码。

而且,作为这次握手的一部分,我也尝试对 curvesID 做同样的事情...

这个问题是我的误会,所以我解释一下,以防大家有同样的疑问。它的灵感主要来自 crypto++ wiki...

有 2 个不同的对象:

AutoSeededRandomPool prng;

prng.GenerateBlock( scratch, scratch.size() );

AutoSeededRandomPool prng; 是随机数生成器(将自动播种)

prng.GenerateBlock 是将从该随机数中提取位以构建所需长度的 std::string scratch 的命令。

而且由于 scratch 是一个字符串,我们可以用它做任何我们想做的事,在任何地方使用它...所以请参考 string import/export .