2013-05-05 163 views
3

我需要以編程方式將證書導入Windows存儲。 CryptUIWizImport函數運行良好,但Windows要求用戶創建其他密碼以保護證書。 但用戶可以選擇不設置此密碼。CryptUIWizImport和保護密碼

是否可以避免Windows UI並以編程方式設置此附加密碼?

回答

0

如下面的代碼,你應該清空密碼字段:

#include "stdafx.h" 
#include "windows.h" 
#include "Cryptuiapi.h" 

#pragma comment(lib, "Cryptui.lib") 

int _tmain(int argc, _TCHAR* argv[]){ 
    CRYPTUI_WIZ_IMPORT_SRC_INFO importSrc;  
    memset(&importSrc, 0, sizeof(CRYPTUI_WIZ_IMPORT_SRC_INFO));  
    importSrc.dwSize = sizeof(CRYPTUI_WIZ_IMPORT_SRC_INFO);  
    importSrc.dwSubjectChoice = CRYPTUI_WIZ_IMPORT_SUBJECT_FILE;  
    importSrc.pwszFileName = L"C:\\PathToPFX\\cert.pfx";  
    importSrc.pwszPassword = L"";  
    importSrc.dwFlags = CRYPT_EXPORTABLE | CRYPT_USER_PROTECTED;    
    if (CryptUIWizImport( 
     CRYPTUI_WIZ_NO_UI,  
     NULL,  
     NULL,  
     &importSrc,  
     NULL  
    ) == 0)  
    {  
     printf(「CryptUIWizImport error 0x%x\n」, GetLastError());  
    } 
    return 0; 
}