10
opensslコマンドラインを使用すると、人間が読み取り可能なモードで.pem証明書に含まれるすべての情報を抽出することができます。つまり、opensslを使用してプログラムで証明書情報を抽出する
openssl x509 -noout -in <MyCertificate>.pem -text
openssl APIを使用してこの情報を抽出するための適切な手順は何ですか?機能の
よろしく、
opensslコマンドラインを使用すると、人間が読み取り可能なモードで.pem証明書に含まれるすべての情報を抽出することができます。つまり、opensslを使用してプログラムで証明書情報を抽出する
openssl x509 -noout -in <MyCertificate>.pem -text
openssl APIを使用してこの情報を抽出するための適切な手順は何ですか?機能の
よろしく、
X509_print_ex
家族はあなたの答えです。代わりに、PEMのDERフォーマットの証明書を有する場合に、この質問に関連する付加情報として
#include <openssl/x509.h>
#include <openssl/pem.h>
#include <openssl/bio.h>
int main(int argc, char **argv)
{
X509 *x509;
BIO *i = BIO_new(BIO_s_file());
BIO *o = BIO_new_fp(stdout,BIO_NOCLOSE);
if((argc < 2) ||
(BIO_read_filename(i, argv[1]) <= 0) ||
((x509 = PEM_read_bio_X509_AUX(i, NULL, NULL, NULL)) == NULL)) {
return -1;
}
X509_print_ex(o, x509, XN_FLAG_COMPAT, X509_FLAG_COMPAT);
}
。
//Assuming that the DER certificate binary information is stored in
//a byte array (unsigned char) called "pData" whose size is "lenData"
X509* x509;
BIO* input = BIO_new_mem_buf((void*)pData, lenData);
//d2i_X509_bio: Decodes the binary DER certificate
//and parses it to a X509 structure
x509 = d2i_X509_bio(input, NULL);
if (x509 == NULL)
{
//Error in d2i_X509_bio
}
else
{
//"certificateFile" is the full path file
//where to store the certificate information
//in a human readable mode (instead of stdout)
FILE* fd = fopen(certificateFile, "w+");
BIO* output = BIO_new_fp(fd, BIO_NOCLOSE);
X509_print_ex(output, x509, XN_FLAG_COMPAT, X509_FLAG_COMPAT);
fclose(fd);
BIO_free_all(output);
}
BIO_free_all(input);
opensslコマンドを含めてくれてありがとう、私はそれをやっていて、ここに来ました。次のコードを使用して、人間が判読できるモードで情報を抽出することができます。 – Andrey