openssl RSA 内存读取密钥

主要注意一下密钥的格式

#include <openssl/pem.h>
#include <openssl/err.h>

bool CEncipher::CreatePubKey()
{
    BIO* bp = NULL;
    string strPublicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCmm9GRVbi5+myHYztzOyWvMdo1\
                          4b0fwRF3va9A8bd19oW9ZUCpALVIC4d4I1Zvkfcgnpvswf/DOHD9umT+pevmwICF                          /mU8LNe/MT8kGh0IAIHdJVrXw/2TEWCVEgFlFfloWzCNmzOcx4BH8yIw50RjG1ED                          5Fl5QKFrirgcU11IhQIDAQAB";
    int nPublicKeyLen = strPublicKey.size();
    for(int i = 64; i < nPublicKeyLen; i+=64)
    {
        if(strPublicKey[i] != ‘\n‘)
        {
            strPublicKey.insert(i, "\n");
        }
        i++;
    }
    strPublicKey.insert(0, "-----BEGIN PUBLIC KEY-----\n");
    strPublicKey.append("\n-----END PUBLIC KEY-----\n");

    char *chPublicKey = const_cast<char *>(strPublicKey.c_str());
    if ((bp = BIO_new_mem_buf(chPublicKey, -1)) == NULL)
    {
        printf("BIO_new_mem_buf failed!\n");
        return false;
    }

    pPubKey_ = PEM_read_bio_RSA_PUBKEY(bp, NULL, NULL, NULL);

    if (NULL == pPubKey_)
    {
        ERR_load_crypto_strings();
        char errBuf[512];
        ERR_error_string_n(ERR_get_error(), errBuf, sizeof(errBuf));
        printf("load public key failed[%s]\n", errBuf);
        return false;
    }
    BIO_free_all(bp);

    return true;
}
时间: 2024-10-01 19:48:26

openssl RSA 内存读取密钥的相关文章

openssl从内存中读取私钥进行签名

麻痹的找了好久,真恶心! #include <stdio.h> #include <stdlib.h> #ifdef WIN32 #include <windows.h> #endif #include "openssl/rsa.h" #include "openssl/pem.h" #include "Base64.h" #ifdef WIN32 #pragma comment(lib,"User3

2.openssl rsa/pkey

分别是RSA密钥的处理工具和通用非对称密钥处理工具.它们用法基本一致,所以只介绍openssl rsa. [[email protected] tmp]# man rsa NAME rsa - RSA key processing tool SYNOPSIS openssl rsa [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in filename] [-passin arg] [-out filename] [-passout arg] [-s

(4) openssl rsa/pkey

openssl  rsa      是RSA密钥的处理工具 openssl  pkey   是通用非对称密钥处理工具,它们用法基本一致,所以只举例说明openssl rsa. 它们的用法很简单,基本上就是输入和输出私钥或公钥的作用. openssl   rsa      [-in filename]   [-passin arg]    [-passout arg]   [-out filename]     [-des|-des3|-idea]   [-text] [-noout] [-pub

Openssl rsa命令

一.简介 Rsa命令用于处理RSA密钥.格式转换和打印信息 二.语法 openssl rsa [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in filename] [-passin arg] [-out filename] [-passout arg] [-sgckey] [-text] [-noout] [-modulus] [-check] [-pubin] [-pubout] [-engine id] [-des] [-des3] [-id

mac上使用生成RSA公钥和密钥

关于RSA加密解密的问题,没事弄了一下,先把主要的流程保存下来,以备交流或者以后用. 首先确保你的电脑上安装了openssl,一般mac系统安装后都会自动安装!怎么安装??.....请百度...... 安装命令如下: sudo apt-get install openssl 在你的任何地方创建一个Folder来保存你的公钥和密钥, 打开终端Terminal,cd命令进入到你创建的Folder中,比如在桌面新建一个”RSA公钥私钥“文件夹,进入这个文件夹,命令如图: 接下来我们开始生成公钥和密钥:

openssl - rsa加解密例程

原文链接: http://www.cnblogs.com/cswuyg/p/3187462.html openssl是可以很方便加密解密的库,可以使用它来对需要在网络中传输的数据加密.可以使用非对称加密:公钥加密,私钥解密.openssl提供了对RSA的支持,但RSA存在计算效率低的问题,所以一般的做法是使用对称密钥加密数据,然后再把这个只在当前有效的临时生成的对称密钥用非对称密钥的公钥加密之后传递给目标方,目标方使用约定好的非对称密钥中的私钥解开,得到数据加密的密钥,再进行数据解密,得到数据,

openssl -- RSA秘钥格式 PEM/PKCS#8

1.PEM私钥格式文件 -----BEGIN RSA PRIVATE KEY----- -----END RSA PRIVATE KEY----- 2. PKCS8私钥格式格式 -----BEGIN PRIVATE KEY----- -----END PRIVATE KEY----- 2. PEM公钥格式文件 -----BEGIN PUBLIC KEY----- -----END PUBLIC KEY----- 3. PEM RSAPublicKey公钥格式文件 -----BEGIN RSA P

ffmpeg从内存读取文件

正常情况,ffmpeg直接从文件读取 AVFormatContext * _ctx = NULL; avformat_open_input(&_ctx, _filePath, 0, 0); 我们也可以自定义从内存读取,这样,可以用于读取一些加密的视频文件 int fill_iobuffer(void * opaque,uint8_t *buf, int bufsize){ if(!feof(fp_open)){ int true_size=fread(buf,1,bufsize,fp_open)

openssl Rsa 分段加密解密

密钥长度 1024 openssl genrsa -out rsa_private_key.pem 1024 openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem function readPublicKey($keyPath) { $key = file_get_contents($keyPath); $this->rsaPublicKey = openssl_pkey_get_public($key) } fu