2012-11-10 42 views
2

我有一個公司給出的safenet認證usb令牌,他們告訴我他們有數字公鑰證書裏面。他們給了我一個密碼和一個軟件,我可以看到它可以檢測到內部的證書。現在我需要訪問這個令牌的證書,然後我需要使用我的開發代碼來使用簽名,加密和解密。但該公司沒有給我任何SDK,所以我必須通過C++ Microsoft CryptoAPI來做所有事情。我搜索的谷歌,但我不知道如果我在正確的方向如何使用Microsoft加密API與USB加密狗以下PKCS#11

這個代碼不給我正確的手柄爲USB存儲的證書

 // Attempt to acquire a handle to the default key container. 
     bResult = CryptAcquireContext(
        &hProv,   // Variable to hold returned handle. 
        NULL,    // Use default key container. 
        MS_DEF_PROV,  // Use default CSP. 
        PROV_RSA_FULL,  // Type of provider to acquire. 
     0);    

我認爲應該給任何默認連接或者證書它的智能卡或令牌。我試過MS_SCARD_PROV,如果它能讓我通過USB令牌訪問,但它看起來像它只是爲智能卡而不是令牌。

我非常渴望完成這項任務,請指導我或如果你的專家知道任何正確的教程。或者建議我應該爲這類任務做些什麼..

回答

1

您將同時使用PKCS#11和CryptoAPI功能。

PKCS#11將主要用於與硬件令牌進行通話。每個硬件供應商都會爲其硬件令牌實施PKCS#11接口。如果你的意思是說,那麼safenet就有一個。此外,safenet將有他們的CryptoAPI CSP,您可以使用它與令牌進行對話。

CryptoAPI提供豐富的功能來處理令牌中存在的證書。

+0

感謝raj,所以爲了圖書館或有關pkcs#11的接口信息,我必須聯繫safenet? – wolvorinePk

+0

Safenet將爲您提供其令牌的SDK。 Safenet必須在其SDK中使用PKCS#11接口。 PKCS#11是一個通用接口,您必須使用它來編寫代碼。查看RSA網站以瞭解有關PKCS#11的更多信息。如果你已經安裝了他們的SDK,你會找到可以幫助你入門的示例源代碼。 – Raj

+0

感謝raj它幫助了很多... – wolvorinePk