-------------------------------------
--使用说明---------------------------
--1.时 间:2016-01-29
--2.功 能:rsa加解密接口说明,代码改动说明
-------------------------------------
一、接口说明:
----------------------
int Generate_RSA_Key(const int g_nBits,char *pubkey,char *privkey)
----------------------
--生成密钥对接口------------
1. 输入:g_nBits 加密长度(私钥二进制数长度)。
2. 输出:pubkey 生成的公钥;privkey生成的私钥。
3. 返回值:“0”表示生成密钥对成功,“-1”表示生成密钥对失败,“-2”表示获取公钥失败,
“-3”表示获取私钥失败。
----------------------
----------------------
int PublicEncrypt(char *pubkey,char *in_plain,char *cipher);
----------------------
--加密接口------------
1. 输入:pubkey 公钥;in_plain 要加密的信息(明文),明文不限制长度。
2. 输出:cipher 加密后的信息。
3. 返回值:“0”表示加密成功,“-4”表示BIO读取公钥字符串失败,“-5”表示输入公钥不正确,
“-6”表示循环加密失败,“-7”表示对剩余部分加密失败。“-8”表示分段加密失败(最大加密长度的整数倍),
“-9”表示加密失败(小于最大加密长度)。
----------------------
----------------------
int PrivateDecrypt(char *privkey,char *cipher,char *out_plain);
----------------------
--解密接口------------
1. 输入:privkey 私钥;cipher 解密内容(密文),因目前与对方循环解密机制相同,所以不限制输入密文长度。
2. 输出:out_plain 解密后的内容(明文)。
3. 返回值:“0”表示解密成功,“-10”表示BIO读取私钥字符串失败,“-11”表示输入私钥不正确,“-12”表示循环解密失败。
----------------------
二、代码改动说明:
----------------------
1.为了兼容Crypto++库生成的私钥,私钥改采用PKCS#8非加密私钥格式进行存取;
2.由于私钥改为PKCS#8进行存取,对于私钥的格式化也做出了相应的调整。
三、Linux下的编译说明
----------------------
1.直接编译:
gcc [源文件名称] -o [编译后的可执行文件名称] -lcrypto
2.编译调用.so动态库的测试工具源文件:
gcc [源文件名称] -o [编译后的可执行文件名称] -ldl
- 1
- 2
前往页