openssl pem文件的讀取



准備工作

生成私鑰文件(里面已包含公鑰)

openssl genrsa -out private.pem 1024

從私鑰文件中提取公鑰
openssl rsa -in private.pem -pubout -out public.pem

如果用
openssl rsa -in private.pem -RSAPublicKey_out -out public.pem
報錯 unknown option -RSAPublicKey_out
openssl 是0.9.8e版本的,不知道為啥沒這個參數
沒了這個參數,讀取公鑰的時候只能用 PEM_read_RSA_PUBKEY
而不能用PEM_read_RSAPublicKey,因為帶-RSAPublicKey_out參數生成的pem文件不一樣(不僅僅是頭尾)

網上抄來的
函數PEM_read_RSA_PUBKEY讀取的是
-----BEGIN PUBLIC KEY-----
函數PEM_read_RSAPublicKey讀取的是
-----BEGIN RSA PUBLIC KEY-----

但是!!!,為毛private.pem里面是
-----BEGIN RSA PRIVATE KEY-----
這樣的,

而生成的public.pem竟然是
-----BEGIN PUBLIC KEY-----
的?


#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <openssl/bn.h>
#include <openssl/rsa.h>
#include <openssl/pem.h>

int main()
{
	RSA *rsa;
	
	
	FILE *fp;
	if ((fp = fopen("C:\\openssl_test\\public.pem", "r")) == NULL) {
        return -1;
    }
	
    rsa = PEM_read_RSA_PUBKEY(fp, NULL, NULL, NULL);
	RSA_free(rsa);
	fclose(fp);

	if ((fp = fopen("C:\\openssl_test\\private.pem", "r")) == NULL) {
        return -1;
    }
    rsa = PEM_read_RSAPrivateKey(fp,NULL,NULL,NULL);

	RSA_free(rsa);
	return 0;   
}






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM