2

会社から提供されたsafenet認証usbトークンを持っていますが、内部にデジタル公開鍵証明書があると言われました。彼らは私にパスワードとそれが内部の証明書を検出できることを私が見ることができるソフトウェアをくれました。次に、このトークンの証明書にアクセスする必要があります。次に、開発コードを使用して、署名、暗号化、および復号化を使用する必要があります。しかし、会社は私にSDKを提供しなかったので、私はC ++MicrosoftCryptoAPIですべてを行う必要があります。グーグルで検索しましたが、正しい方向に進んでいるかどうかわかりません

このコードでは、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トークンを介してアクセスできるかどうかを考えましたが、トークンではなくスマートカードだけのようです。

私はこのタスクを完了するために必死です。専門家が知っている場合は、私を案内するか、正しいチュートリアルを見せてください。または、そのような種類のタスクのために何をすべきかを私に提案してください。

4

1 に答える 1

1

PKCS#11とCryptoAPIの両方の機能を使用します。

PKCS#11は、主にハードウェアトークンとの通信に使用されます。すべてのハードウェアベンダーは、ハードウェアトークン用にPKCS#11インターフェイスを実装しているはずです。あなたのものがetokenであるなら、safenetはそれを持っています。また、safenetには、トークンとの通信に使用できるCryptoAPICSPがあります。

CryptoAPIは、トークンに存在する証明書を処理するための豊富な機能を提供します。

于 2012-11-30T14:52:46.893 に答える