eccrypto.h提供了基于椭圆曲线加密操作的一系列模板类,将这些类设计成模板主要的原因是有两种类型椭圆曲线。因此,类EC2N(ec2n.h)代表的是基于GF(2n)的椭圆曲线算法;而类ECP(ecp.h)代表的是基于GF(p)的椭圆曲线算法。
椭圆曲线的参数保存在模板类ECParameters中,参数能够以多种方式初始化;但是其中一个更实用的用法是使用函数LoadRecommendedParameters(),它提供了建议参数之一,定义在oids.h中。
下面看几个实例代码:
1)生成一个EC2N密钥对,并保存之:
// ECPrivateKey is used directly only because the private key
// won't actually be used to perform any cryptographic operation.
AutoSeededRandomPool rng;
ECPrivateKey privkey(rng, ASN1::sect233k1);
Base64Encoder privkeysink(new FileSink("c://privkey.txt"));
privkey.DEREncode(privkeysink);
privkeysink.MessageEnd(); // Need to flush Base64Encoder's buffer
// Suppose we want to store the public key separately,
// possibly because we will be sending the public key to a third party.
ECPublicKey pubkey(privkey);
Base64Encoder pubkeysink(new FileSink("c://pubkey.txt"));
pubkey.DEREncode(pubkeysink);
pubkeysink.MessageEnd(); // Need to flush Base64Encoder's buffer
2)加载公钥,并加密一个文件:
string sContents;
FileSource("c://tobesigned.dat", true,
new StringSink(sContents));
ECEncryptor pubkey(
FileSource("c://pubkey.txt", true,
new Base64Decoder)));
// Cannot use std::string for buffer;
// its internal storage might not be contiguous
SecByteBlock sbbCipherText(pubkey.CipherTextLength(sContents.size()));
// ECIES encryption is nice because it handles the entire encryption
// process internally, regardless of the length of input data.
// We don't have to generate a symmetric session key and encrypt
// with it separately.
AutoSeededRandomPool rng;
pubkey.Encrypt(
rng,
(byte const*) sContents.data(),
sContents.size(),
sbbCipherText.Begin());
FileSink("c://encrypted.dat").Put(sbbCipherText.Begin(), sbbCipherText.Size());
分享到:
相关推荐
ASCE(American Society of Civil Engineers,美国土木工程师学会)是一个知名的国际专业组织,而"asce.zip_ASCE_list"可能是指一个与ASCE相关的软件开发项目,具体来说,它是一个MFC(Microsoft Foundation Classes...
asce1885-blogasce1885的博客
PHASE II OF THE ASCE BENCHMARK STUDY ON SHM
此为ASCE的第三代基准模型代码,可供土木工程领域学者使用。
ASCE为全球最大的土木工程信息知识的出版机构,每年出版超过5万页的出版物,包括专业和技术期刊、专业会议录、图书、实践手册、标准专论等。 ASCE期刊是土木工程学科的主要核心期刊,包括30种专业技术期刊,由专业...
EndNote软件提供了各种预设的样式模板,用户可以根据需要选择对应的期刊格式,如ASCE Journals或APA,将引用的文献信息导入后,EndNote会自动按照选定的样式格式化引用。用户还可以自定义样式,以满足特定期刊的特殊...
ASCE LaTeX 指南主要介绍了土木工程学会(American Society of Civil Engineers,简称ASCE)期刊的LaTeX投稿流程和注意事项。由于ASCE期刊接受LaTeX格式的投稿,因此作者需要按照特定的模板和格式要求提交论文。本文...
### ASCE7-10《建筑物和其他结构最小设计荷载》关键知识点解析 #### 一、规范内容简介 美国土木工程师学会(American Society of Civil Engineers, ASCE)发布的ASCE7-10标准《建筑物和其他结构最小设计荷载》,...
在功能上,ASCE Research Library提供了多种检索方式,用户可以按期刊、作者、主题进行检索,甚至进行二次检索以精确定位所需信息。例如,如果研究方向是“遥感技术在环境中的应用”,可以使用关键词如“遥感技术”...
ASCE 7-10美国建筑荷载规范(中文版) ASCE 7-10《建筑物和其他结构最小设计荷载》(Minimum Design Loads for Buildings and Other Structures)是由美国土木工程学会(ASCE)发布的一份重要的建筑荷载规范。该...
ASCE-7-2005美国荷载规范中文版知识点总结 ASCE-7-2005美国荷载规范中文版是美国 土木工程师协会(ASCE)发布的一份最小设计荷载规范。该规范涵盖了建筑和其他结构的设计荷载要求,旨在确保建筑和结构的安全和可靠...
eclipse 配置AmaterasUML时需要的3个jar 包,以及配置文档 http://blog.csdn.net/asce1885/article/details/40744163
ANSI ASCE CI 71-21 Identifying, Quantifying, and Proving Loss of Productivity.pdf
根据给定文件信息,本篇文档是关于Android研发工程师高级进阶技能的介绍,涉及了函数响应式编程、Android Support Annotations、RxJava、Android应用性能优化、Fragment使用、依赖注入、ASCE1885动态启发技术等技术...
15. ACL(Access Control List):访问控制列表,用于定义网络安全策略,限制或允许特定流量通过网络设备。 以上仅是部分网络工程师需要了解的英语词汇,实际上还有许多其他术语,如AP(Access Point)、API...
2. **处理鼠标按下事件**:当用户按下鼠标按钮时,你需要在`mousePressEvent`事件处理器中创建一个`QDrag`实例,并设置其数据源,通常是`QMimeData`。 3. **开始拖放操作**:使用`QDrag::start()`开始拖放操作。你...
结构安全和结构动力学有许多领域,通常需要计算随机变量函数的前几个统计矩。 通常的近似是泰勒展开法。 这种方法需要计算导数。 为了避免导数的计算,已经提出了概率矩的点估计。 然而,准确度非常低,并且有时,...
在数据库产品中,iGroup提供了多个知名的科学与技术出版社的资源,如AIP(美国物理联合会)、APS(美国物理学会)、ASCE(美国土木工程师学会)、ASME(美国机械工程师学会)、SPIE(国际光学工程学会),以及ACM、...