在自制ECDHE
应用程序的框架中,客户端和服务器都必须发送随机生成的数字(rng),以便在握手期间稍后构建MasterSecret
( TLS-等)...
使用crypto++,可以轻松创建这些数字,这要归功于:
AutoSeededRandomPool rng;
我的问题是1)将它们导出为字符串或等效字符,2)从字符串加载。
我必须将这些数字放在一个框架中,而Class definition和examples也不能将这些数字精确地放在框架中。
在网络上,我无法找到保存/加载示例(例如RSA::PublicKeys
的示例)。
显然我是第一个想要这个,因为他们examples在同一个程序中生成客户端和服务器 ,因此不需要传输数字。
而且,作为握手的一部分,我也尝试使用curvesID ...
答案 0 :(得分:0)
这个问题是我的一个误解,所以我会解释它,如果有人有相同的审讯。它主要来自crypto++ wiki ...
有两个不同的对象:
AutoSeededRandomPool prng;
prng.GenerateBlock( scratch, scratch.size() );
AutoSeededRandomPool prng;
是随机数的生成器(将自动播种)
prng.GenerateBlock
是从该随机数中提取位以构建所需长度的std::string scratch
的命令。
由于划痕是一个字符串,我们可以随心所欲地使用它,在任何地方使用它......所以请参考字符串导入/导出。