スマートカードプログラミングを行っていますが、次のような状況を説明したいと思います。
カードからの証明書がローカルストアにインポートされませんでした(これは指定されたものではなく、現在の問題の原因です)
プロバイダーの名前は指定されていません
2番目の基準は、次のようにRSACryptoServiceProviderのインスタンスを作成して証明書を取得することに頼ることができないことを意味します。
CspParameters cspParameters = new CspParameters(1, "provider name");
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cspParameters);
したがって、HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Cryptography \ Defaults\ProviderまたはHKEY_LOCAL_MACHINE\Software \ Wow6432Node \ Microsoft \ Cryptography \ Defaults \ Providerのいずれかからレジストリからすべてのプロバイダーの名前を読み取り、それぞれからRSACryptoServiceProviderインスタンスを作成します。コンテナがそれ自体をハードウェアデバイスとして識別しているかどうかを確認します。カードリーダーから直接証明書にアクセスする簡単な方法があるようです。
P / InvokeとAPIの使用を見てきましたが、これに使用できるAPI呼び出しも特定できません。