0
私はMS PKI証明書失効リストの配布ポイントに接続し、CRLを取得しましたサードパーティライブラリを使用せずにC#の証明書失効リストからシリアル番号のリストを抽出するにはどうすればよいですか?
サードパーティのライブラリを使用せずにCRLからシリアル番号のリストを抽出する最も簡単な方法は何ですか?
私はMS PKI証明書失効リストの配布ポイントに接続し、CRLを取得しましたサードパーティライブラリを使用せずにC#の証明書失効リストからシリアル番号のリストを抽出するにはどうすればよいですか?
サードパーティのライブラリを使用せずにCRLからシリアル番号のリストを抽出する最も簡単な方法は何ですか?
アンマネージドCryptoAPI関数(もちろんp/invokeを使用)を使用してCRLをアンロールする必要があります。一般的に、次のハイレベルなステップバイステップになります。
Marshal.PtrToStructure
.NETメソッドを使用してpCrlInfo
ポインターをCRL_CONTEXT
構造体のCRL_INFO
構造体に変換します。rgCRLEntry
は、ポインタの配列です(配列のサイズはcCRLEntry
のメンバで、CRL_INFO
によって決まります)。CRL_ENTRY
構造体のサイズだけインクリメントしてこの配列を反復処理します。SerialNumber
CRL_ENTRY
のメンバーはバイト配列です。 Marshal.Copy(IntPtr, Byte[], Int32, Int32)
メソッドを直接使用して、管理されていない配列を管理対象にコピーすることができます。これはシリアル番号を与えるでしょう。各CRLエントリに対して手順4〜5を繰り返します。 は、メモリリークを防ぐために、終了時にCertFreeCRLContext関数を呼び出すことによってCRL_CONTEXT
構造体へのポインタを解放することを忘れないでください。