VerifySignature 함수(sspi.h)
MakeSignature 함수를 사용하여 서명된 메시지가 올바른 순서로 수신되었으며 수정되지 않은지 확인합니다.
구문
KSECDDDECLSPEC SECURITY_STATUS SEC_ENTRY VerifySignature(
[in] PCtxtHandle phContext,
[in] PSecBufferDesc pMessage,
[in] unsigned long MessageSeqNo,
[out] unsigned long *pfQOP
);
매개 변수
[in] phContext
메시지에 사용할 보안 컨텍스트 에 대한 핸들입니다.
[in] pMessage
확인할 메시지와 서명을 포함하는 SecBuffer 구조체 집합을 참조하는 SecBufferDesc 구조체에 대한 포인터입니다. 서명은 SECBUFFER_TOKEN 형식의 SecBuffer 구조에 있습니다.
[in] MessageSeqNo
전송 애플리케이션에서 예상하는 시퀀스 번호(있는 경우)를 지정합니다. 전송 애플리케이션에서 시퀀스 번호를 유지하지 않는 경우 이 매개 변수는 0입니다.
[out] pfQOP
보호 품질을 나타내는 패키지별 플래그를 수신하는 ULONG 변수에 대한 포인터입니다.
일부 보안 패키지는 이 매개 변수를 무시합니다.
반환 값
함수가 메시지가 올바른 순서로 수신되었고 수정되지 않은 것을 확인하면 반환 값이 SEC_E_OK.
함수가 서명의 정보에 따라 메시지가 올바르지 않다고 판단하는 경우 반환 값은 다음 오류 코드 중 하나일 수 있습니다.
반환 코드 | 설명 |
---|---|
|
메시지가 올바른 순서로 수신되지 않았습니다. |
|
메시지가 변경되었습니다. |
|
phContext에서 지정한 컨텍스트 핸들이 잘못되었습니다. |
|
pMessage 에 유효한 SECBUFFER_TOKEN 버퍼가 없거나 버퍼가 너무 적습니다. |
|
클라이언트와 서버 간에 협상된 보호 품질에는 무결성 검사가 포함되지 않았습니다. |
설명
메시지가 다른 버전의 Windows에서 RsaSignPssSha512 알고리즘을 사용하여 서명된 경우 VerifySignature 함수가 실패합니다. 예를 들어 Windows 8 MakeSignature 함수를 호출하여 서명된 메시지로 인해 Windows 8.1 VerifySignature 함수가 실패합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | sspi.h(Security.h 포함) |
라이브러리 | Secur32.lib |
DLL | Secur32.dll |