簡體   English   中英

無法使用OpenSSL將X509對象讀入臨時文件以進行Windows C編程

[英]Cannot read X509 object into a temporary file using openssl for windows C programming

int _tmain(int argc, _TCHAR* argv[])
{
    X509 *x;
    EVP_PKEY *pkey;
    PKCS12 *p12;
    STACK_OF(X509) *ca=NULL;
    FILE *fp;
    int code;



    CRYPTO_malloc_init();
    SSL_library_init();
    SSL_load_error_strings();
    ERR_load_BIO_strings();
    OpenSSL_add_all_algorithms();
    ERR_load_crypto_strings();


    x = X509_new();


    code = fopen_s(&fp,PRIVATE_CERTIFICATE, "rb"); 
    //fp = fopen(PRIVATE_CERTIFICATE, "rb");

    p12 = d2i_PKCS12_fp(fp, NULL);

    fclose(fp);

    if (!PKCS12_parse(p12, KEYPASS, &pkey, &x, &ca)) {
        printf(" Error while parsing\n");
    }
    PKCS12_free(p12);

    code = fopen_s(&fp,TEMP_STORE_CERTIFICATE, "w"); 



    PEM_write_X509(fp, x);
    fclose(fp);



    //RSA Private Certificate
    fp = fopen(TEMP_STORE_KEY_CERTIFICATE,"w");
    PEM_write_PrivateKey(fp, pkey, NULL, NULL, 0, NULL, NULL);
    fclose(fp);


    return 0;
}

當執行執行到PEM_write_X509時,它被卡住並且無法繼續。 我猜,它進入了無限循環,執行沒有超出此范圍。 控制台只是打開而不會消失。 有人請幫忙

將由fp指向的文件打開為“ rb”模式,其中PEM_write_fp將嘗試在已打開為讀取模式的文件上進行寫操作。 在寫入之前,請關閉文件並使其進入寫入模式。

而且,覆蓋文件的內容似乎不太好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM