User Guide:eccrypto.h学习笔记(翻译)
来源:互联网 发布:网络话费卡怎么用 编辑:程序博客网 时间:2024/06/10 01:01
User Guide:eccrypto.h学习笔记(翻译)
原文链接
https://www.cryptopp.com/wiki/User_Guide:_eccrypto.h
eccrypto.h
eccrypto.h给椭圆曲线密码操作提供模板类.这些类主要是模板,原因是在使用两种类型的椭圆曲线被人们使用;因此,GF(2^n)基础上的
用EC2N(ec2n.h)代表,GF(p)用ECP(ecp.h)代表
椭圆曲线参数用模板类ECParameters表示.参数可以用多种方式初始化;但是更常用的一个是使用方法LoadRecommendedParameters()
这个方法提供其中一个推荐参数OIDs(recommended-parameters-OIDs), 后者被定义在oids.h中
示例-生成一个EC2N密钥对并且保存它
// ECPrivateKey 被直接使用因为次要不会被用来做任何密码操作 AutoSeededRandomPool rng; ECPrivateKey privkey(rng, ASN1::sect233k1); Base64Encoder privkeysink(new FileSink("c:\\privkey.txt")); privkey.DEREncode(privkeysink); privkeysink.MessageEnd(); // 清除base64Encoder缓存区 // 假设由于要发送给第三方,我们需要分开存储公钥 ECPublicKey pubkey(privkey); Base64Encoder pubkeysink(new FileSink("c:\\pubkey.txt")); pubkey.DEREncode(pubkeysink); pubkeysink.MessageEnd(); // Need to flush Base64Encoder's buffer
示例-加载公钥并且加密文件
string sContents; FileSource("c:\\tobesigned.dat", true, new StringSink(sContents)); ECEncryptor pubkey( FileSource("c:\\pubkey.txt", true, new Base64Decoder))); // 不能使用std::string作为缓存区因为它的内存可能不是连续的 SecByteBlock sbbCipherText(pubkey.CipherTextLength(sContents.size())); // ECIES encryption 很棒因为他能在内部处理整个加密过程,无论数据的长短 // 我们不需要生成对称密钥并且分开加密 AutoSeededRandomPool rng; pubkey.Encrypt( rng, (byte const*) sContents.data(), sContents.size(), sbbCipherText.Begin()); FileSink("c:\\encrypted.dat").Put(sbbCipherText.Begin(), sbbCipherText.Size());
阅读全文
0 0
- User Guide:eccrypto.h学习笔记(翻译)
- crypto++ User Guide: filters.h学习笔记
- ASM学习笔记--ASM 4 user guide 第一章翻译
- OpenFOAM User Guide 第五章 翻译和阅读笔记
- JBoss AOP - User Guide 学习笔记
- Flume 学习笔记 一 : Flume User Guide
- Gradle Plugin User Guide翻译
- Graphlab user guide笔记
- numpy user guide 笔记
- cilk之User Guide学习笔记(3)Cilk执行模型
- cilk之User Guide学习笔记(4)cilk_for的分析
- cilk之User Guide学习笔记(6)操作系统相关
- hadoop2.7.2学习笔记15-HDFS user guide
- UserGuide:cryptlib.h学习笔记(翻译)
- Cal3d库user guide里部分翻译
- Cal3d库user guide里部分翻译
- [mule3doc]Mule3 user guide翻译计划
- 《ASCE1885的信息安全》のCrypto++用户手册のeccrypto.h
- MapStruct处理Java中枚举Enum类型使用与举例
- Linux 远程登录
- Ubuntu下tomcat的docker镜像下载
- 逆序对
- 【LeetCode】506. Relative Ranks
- User Guide:eccrypto.h学习笔记(翻译)
- leetcode[Longest Substring Without Repeating Characters]//待整理多种解法
- JavaScript的跨域访问问题
- 4、python面向对象之多态
- B-Tree、B+Tree、红黑树、B*Tree数据结构
- 蓝牙4.0详解
- bat加密及解密方法
- linux程序开机自启动顺序
- Writing A Threadpool in Rus