PEM_read_bio_PUBKEY的替代函数,用于从.crt文件中读取密钥

时间:2016-09-15 14:11:18

标签: openssl

我正在使用此功能:PEM_read_bio_PUBKEY读取公钥。 是否有任何替代功能,而不是PEM文件,您可以从X509 crt文件中读取密钥?

1 个答案:

答案 0 :(得分:0)

我通过debuging openssl cli util找到了一个解决方案: 我下载了openssl代码并使用以下参数对其进行了调整: x509 -in E:/mycert.crt -pubkey -out E:/mypubkey.pem

static EVP_PKEY *getPubKeyFromCRT(const char *filename) {
    EVP_PKEY *pubkey = NULL;
    X509_STORE *ctx_store = NULL;
    X509 *x509_crt = NULL;

    ctx_store = X509_STORE_new();
    //TODO ERROR HANDLING

    X509_STORE_set_verify_cb(ctx_store, callback_verify_cert);

    if(!X509_STORE_set_default_paths(ctx_store)) {
        //TODO ERROR HANDLING
    }

    x509_crt = getCertFromCRTFile(filename);
    //TODO ERROR HANDLING

    pubkey = X509_get_pubkey(x509_crt);
}