DecryptMessage 함수(sspi.h)
DecryptMessage(다이제스트) 함수는 메시지의 암호를 해독합니다. 일부 패키지는 메시지를 암호화 및 암호 해독하는 것이 아니라 무결성 해시를 수행하고 검사.
다이제스트 SSP(보안 지원 공급자 )는 클라이언트와 서버 간에 교환되는 메시지에 대한 암호화 및 암호 해독 기밀성을 SASL 메커니즘으로만 제공합니다.
구문
SECURITY_STATUS SEC_ENTRY DecryptMessage(
[in] PCtxtHandle phContext,
[in, out] PSecBufferDesc pMessage,
[in] unsigned long MessageSeqNo,
[out] unsigned long *pfQOP
);
매개 변수
[in] phContext
메시지 암호를 해독하는 데 사용할 보안 컨텍스트 에 대한 핸들입니다.
[in, out] pMessage
SecBufferDesc 구조체에 대한 포인터입니다. 입력 시 구조체는 하나 이상의 SecBuffer 구조를 참조합니다. 이들 중 하나 이상이 SECBUFFER_DATA 형식이어야 합니다. 해당 버퍼에는 암호화된 메시지가 포함됩니다. 암호화된 메시지는 현재 위치에서 암호 해독되어 버퍼의 원래 내용을 덮어씁니다.
다이제스트 SSP를 사용하는 경우 입력 시 구조체는 하나 이상의 SecBuffer 구조를 참조합니다. 이 중 하나는 SECBUFFER_DATA 또는 SECBUFFER_STREAM 형식이어야 하며 암호화된 메시지를 포함해야 합니다.
[in] MessageSeqNo
전송 애플리케이션에서 예상하는 시퀀스 번호(있는 경우)입니다. 전송 애플리케이션에서 시퀀스 번호를 유지하지 않는 경우 이 매개 변수를 0으로 설정해야 합니다.
Digest SSP를 사용하는 경우 이 매개 변수를 0으로 설정해야 합니다. Digest SSP는 내부적으로 시퀀스 번호 매기기를 관리합니다.
[out] pfQOP
보호 품질을 나타내는 패키지별 플래그를 수신하는 ULONG 형식의 변수에 대한 포인터입니다.
이 매개 변수는 다음 플래그 중 하나일 수 있습니다.
값 | 의미 |
---|---|
|
메시지는 암호화되지 않았지만 헤더 또는 트레일러가 생성되었습니다.
참고 KERB_WRAP_NO_ENCRYPT 값과 의미가 동일합니다.
|
|
다이제스트 SSP를 사용하는 경우 보안 컨텍스트가 서명 만 확인하도록 설정된 경우 이 플래그를 사용합니다. 자세한 내용은 보호 품질을 참조하세요. |
반환 값
함수가 메시지가 올바른 순서로 수신되었는지 확인하면 함수는 SEC_E_OK 반환합니다.
함수가 메시지의 암호를 해독하지 못하면 다음 오류 코드 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
메시지 버퍼가 너무 작습니다. 다이제스트 SSP와 함께 사용됩니다. |
|
보안 컨텍스트에 대해 선택한 암호는 지원되지 않습니다. 다이제스트 SSP와 함께 사용됩니다. |
|
입력 버퍼의 데이터가 불완전합니다. 애플리케이션은 서버에서 더 많은 데이터를 읽고 DecryptMessage(다이제스트) 를 다시 호출해야 합니다. |
|
유효하지 않은 컨텍스트 핸들이 phContext 매개 변수에 지정되었습니다. 다이제스트 SSP와 함께 사용됩니다. |
|
메시지가 변경되었습니다. 다이제스트 SSP와 함께 사용됩니다. |
|
메시지가 올바른 순서로 수신되지 않았습니다. |
|
기밀성이나 무결성 은 보안 컨텍스트에서 지원되지 않습니다. 다이제스트 SSP와 함께 사용됩니다. |
설명
경우에 따라 애플리케이션은 원격 당사자의 데이터를 읽고 , DecryptMessage(다이제스트)를 사용하여 암호를 해독하려고 시도하고, DecryptMessage(다이제스트) 가 성공했지만 출력 버퍼가 비어 있음을 발견합니다. 이는 정상적인 동작이며 애플리케이션에서 처리할 수 있어야 합니다.
Windows XP: 이 함수를 UnsealMessage라고도 합니다. 이제 애플리케이션은 DecryptMessage(다이제스트) 만 사용해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | sspi.h(Security.h 포함) |
라이브러리 | Secur32.lib |
DLL | Secur32.dll |