2011-12-25 271 views
1

我的代碼是:驗證失敗

FILE * fp = fopen(inputdata, "r"); 
    PKCS12 * p12 = d2i_PKCS12_fp(fp, NULL); 

    if (p12 == NULL) 
    { 
     NSLog(@"Error loading PKCS12 file to p12 \n"); 
    } 
    if ((ret = PKCS12_verify_mac(p12,"tcs",3))){ 
     lblmsg.text = @"password validated"; 
     NSLog(@"Password validated %s",ppvc_pfxPassPhrase); 
    } 
    NSLog(@"ret value %d",ret); 

我能夠將文件加載到P12,但無法驗證的PKCS12文件。我得到0作爲從PKCS12_verify_mac返回。

爲什麼它返回0?

回答

2

嘗試使用ERR_print_errors找出原因。例如:

ret = PKCS12_verify_mac(p12, "tcs", 3); 
if (ret == 0) { 
    ERR_print_errors(stderr); 
    // Abort? 
} else { 
    lblmsg.text = @"password validated"; 
    NSLog(@"Password validated %s",ppvc_pfxPassPhrase); 
} 
+4

嗨@Jweyrich, 當我打印的錯誤,這是未知的算法例外。所以我加了 「OpenSSL_add_all_algorithms();」我添加了這個加載所有的算法,它修復了,現在驗證並返回1 ... :)感謝您的幫助。 – chetan 2011-12-25 08:31:27