winapi - CryptUIWiz导入和保护密码

标签 winapi certificate

我需要以编程方式将证书导入到 Windows 存储中。 CryptUIWizImport 功能运行良好,但 Windows 要求用户创建额外的密码来保护证书。 但用户可以选择不设置此密码。

是否可以避开 Windows UI 并以编程方式设置此附加密码?

最佳答案

如以下代码所示,您应该清空密码字段:

#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;
}

关于winapi - CryptUIWiz导入和保护密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16381676/

相关文章:

python-3.x - 从窗口获取文本(记事本)

c++ - MFC:在派生的 CEdit 中没有收到 EN_CHANGE 消息

c++ - 搜索 winapi 函数

centos - 即使在 CentOS 8 上将 CA 证书添加到信任库后也会出现证书错误

c# - ASP.NET - 指定的网络密码不正确

c++ - GradientFill API 未按应有的方式执行

c - windows xp下如何监控windows服务的状态变化?

ssl - 如何使用 OpenSSL 生成自签名 SSL 证书?

.net - 我们是否需要始终在机器上安装根证书?

NGINX proxy_pass 和上游 SSL 证书