2016-12-18 1 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 구조체를 가리키는 포인터를 해제해야합니다.

관련 문제