다음을 통해 공유


서명된 데이터 디코딩

다음 일반 프로세스는 서명된 데이터 형식을 디코딩합니다.

서명된 메시지를 디코딩하려면

  1. 인코딩된 BLOB에 대한 포인터를 가져옵니다.
  2. CryptMsgOpenToDecode를 호출하여 필요한 인수를 전달합니다.
  3. CryptMsgUpdate를 한 번 호출하여 2단계에서 검색된 핸들과 디코딩할 데이터에 대한 포인터를 전달합니다. 이렇게 하면 메시지 유형에 따라 메시지에 대한 적절한 작업이 수행됩니다.
  4. CryptMsgGetParam을 호출하여 2단계에서 검색된 핸들과 적절한 매개 변수 형식을 전달하여 디코딩된 데이터에 액세스합니다. 예를 들어 CMSG_CONTENT_PARAM 전달하여 디코딩된 콘텐츠에 대한 포인터를 가져옵니다.

다음 일반 프로세스는 디코딩된 서명된 메시지의 서명을 확인합니다.

디코딩된 서명된 메시지의 서명을 확인하려면

  1. CryptMsgGetParam을 호출하여 메시지 핸들을 전달하고 CMSG_SIGNER_CERT_INFO_PARAM 메시지에서 서명자의 CERT_INFO 가져옵니다.
  2. CertOpenStore를 호출하여 메시지의 인증서로 초기화된 임시 저장소를 엽니다.
  3. CertGetSubjectCertificateFromStore를 호출하여 메시지에 포함된 인증서에서 서명자의 CERT_INFO 가져옵니다.
  4. CryptMsgControl을 호출하고 CMSG_CTRL_VERIFY_SIGNATURE 전달하여 서명을 확인합니다.
  5. CryptMsgClose를 호출하여 메시지를 닫습니다.

이러한 절차의 결과는 서명이 확인되고 서명된 메시지를 디코딩하기 위한 프로시저의 4단계에서 가져온 디코딩된 메시지 콘텐츠에 대한 포인터가 검색된다는 것입니다.

C 코딩 세부 정보는 예제 C 프로그램: 서명, 인코딩, 디코딩 및 메시지 확인을 참조하세요.