2016-12-18 15 views

答えて

0

アンマネージドCryptoAPI関数(もちろんp/invokeを使用)を使用してCRLをアンロールする必要があります。一般的に、次のハイレベルなステップバイステップになります。

  1. CertCreateCRLContext - この機能はCRL_CONTEXT構造体へのポインタを返します。
  2. Marshal.PtrToStructure .NETメソッドを使用してpCrlInfoポインターをCRL_CONTEXT構造体のCRL_INFO構造体に変換します。
  3. rgCRLEntryは、ポインタの配列です(配列のサイズはcCRLEntryのメンバで、CRL_INFOによって決まります)。
  4. 開始ポインタをCRL_ENTRY構造体のサイズだけインクリメントしてこの配列を反復処理します。
  5. SerialNumberCRL_ENTRYのメンバーはバイト配列です。 Marshal.Copy(IntPtr, Byte[], Int32, Int32)メソッドを直接使用して、管理されていない配列を管理対象にコピーすることができます。これはシリアル番号を与えるでしょう。各CRLエントリに対して手順4〜5を繰り返します。

は、メモリリークを防ぐために、終了時にCertFreeCRLContext関数を呼び出すことによってCRL_CONTEXT構造体へのポインタを解放することを忘れないでください。

関連する問題