如何將USBKey中的憑證註冊到Windows系統中

來源:互聯網
上載者:User

標籤:

本篇文章就介紹一下如何使用微軟CAPI介面完成將USBKey中的憑證註冊到Windows系統中。

(1)        擷取CSP控制代碼。

CryptAcquireContext(
&hTokenProv,NULL,
“EnterSafe ET199Auto CSP V1.0”,
PROV_RSA_FULL,
NULL)

(2)        擷取USBKey內密鑰控制代碼,這時要注意鎖內密鑰的類型是簽名密鑰(AT_SIGNATURE)或者交換密鑰(AT_KEYEXCHANGE)。

CryptGetUserKey(hTokenProv,AT_KEYEXCHANGE,&hKeyCAPI)

(3)        擷取認證資料(只是認證資訊資料,不包括私密金鑰),這時可以通過兩次調用,先擷取認證資料的長度,分配空間,然後再調用一次。

CryptGetKeyParam(hKeyCAPI, KP_CERTIFICATE, pbCert, &dwCertLen, 0)

(4)        建立CERT_CONTEXT結構

pCertContext = CertCreateCertificateContext(
                PKCS_7_ASN_ENCODING | X509_ASN_ENCODING,
                pbCert,
                dwCertLen)

(5)        開啟MY儲存區,這個就是Windows系統中“個人”認證存放的地區。

hSysStore = CertOpenStore(
CERT_STORE_PROV_SYSTEM_REGISTRY,
        0,
        0,
        CERT_SYSTEM_STORE_CURRENT_USER,
        L"MY");

(6)        設定認證內容屬性。這時要先聲明CRYPT_KEY_PROV_INFO結構

CRYPT_KEY_PROV_INFO ckpi = {0};

        ckpi.pwszProvName = L" EnterSafe ET199Auto CSP V1.0";
        ckpi.pwszContainerName = pbWideContainer;
        ckpi.dwProvType = PROV_RSA_FULL;
        ckpi.dwKeySpec = AT_KEYEXCHANGE;
        ckpi.dwFlags = CERT_KEY_CONTEXT_PROP_ID;
        ckpi.cProvParam = 0;
        ckpi.rgProvParam = NULL;

CertSetCertificateContextProperty(
pCertContext,
CERT_KEY_PROV_INFO_PROP_ID, CERT_STORE_NO_CRYPT_RELEASE_FLAG,
&ckpi)

(7)        將憑證註冊到Windows系統中。

CertAddCertificateContextToStore(
hSysStore,
        pCertContext,
        CERT_STORE_ADD_REPLACE_EXISTING,
        NULL);

(8)        釋放CSP控制代碼。

CryptReleaseContext(hTokenProv,0)

通過上述步驟就可以將ET199Auto中的憑證註冊到Windows系統中了。我們可以在IE?Internet選項?內容?認證?個人下面查看到ET199Auto中的認證。

如何將USBKey中的憑證註冊到Windows系統中

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.