다음을 통해 공유


QueryContextAttributes(Schannel) 함수

QueryContextAttributes(Schannel) 함수를 사용하면 전송 애플리케이션이 보안 컨텍스트의 특정 특성에 대해 Schannel 보안 패키지를 쿼리할 수 있습니다.

구문

SECURITY_STATUS SEC_ENTRY QueryContextAttributes(
  _In_  PCtxtHandle phContext,
  _In_  ULONG       ulAttribute,
  _Out_ PVOID       pBuffer
);

매개 변수

phContext [in]

쿼리할 보안 컨텍스트 에 대한 핸들입니다.

ulAttribute [in]

반환할 컨텍스트의 특성을 지정합니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
SECPKG_ATTR_ACCESS_TOKEN
13
pBuffer 매개 변수는 SecPkgContext_AccessToken 구조체에 대한 포인터를 포함합니다.
액세스 토큰에 대한 핸들을 반환합니다.
SECPKG_ATTR_APP_DATA
0x5e
pBuffer 매개 변수는 SecPkgContext_SessionAppData 구조체에 대한 포인터를 포함합니다.
세션에 대한 애플리케이션 데이터를 반환하거나 지정합니다.
이 특성은 Schannel 보안 패키지에서만 지원됩니다.
SECPKG_ATTR_AUTHORITY
6
pBuffer 매개 변수는 SecPkgContext_Authority 구조체에 대한 포인터를 포함합니다.
인증 기관의 이름을 쿼리합니다.
SECPKG_ATTR_CIPHER_INFO
0x64
pBuffer 매개 변수는 SecPkgContext_CipherInfo 구조체에 대한 포인터를 포함합니다.
새 CNG 암호 정보 구조를 반환합니다.
SECPKG_ATTR_CONNECTION_INFO
0x5a
pBuffer 매개 변수는 SecPkgContext_ConnectionInfo 구조체에 대한 포인터를 포함합니다.
설정된 연결에 대한 자세한 정보를 반환합니다.
SECPKG_ATTR_KEYING_MATERIAL
0x6b
pBuffer 매개 변수는 SecPkgContext_KeyingMaterial 구조체에 대한 포인터를 포함합니다. 키링 재질 내보내기 기능은 RFC 5705 표준을 따릅니다.
master 비밀이 생성되기 전이나 SECPKG_ATTR_KEYING_MATERIAL_INFO 특성이 설정되기 전에 이 특성을 쿼리하면 오류가 발생합니다.
이 특성은 Windows 10 및 Windows Server 2016 이상 버전의 Schannel 보안 패키지에서만 지원됩니다.
SECPKG_ATTR_CREDS_2
0x80000086
pBuffer 매개 변수에는 클라이언트 자격 증명을 지정하는 SecPkgContext_ClientCreds 구조체에 대한 포인터가 포함되어 있습니다.
클라이언트 자격 증명이 사용자 이름 및 암호인 경우 버퍼는 압축된 KERB_INTERACTIVE_LOGON 구조입니다.
클라이언트 자격 증명이 사용자 이름 및 스마트 카드 PIN인 경우 버퍼는 압축된 KERB_CERTIFICATE_LOGON 구조입니다.
클라이언트 자격 증명이 온라인 ID 자격 증명인 경우 버퍼는 마샬링된 SEC_WINNT_AUTH_IDENTITY_EX2 구조입니다.
이 특성은 CredSSP 서버에서만 지원됩니다.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.
SECPKG_ATTR_DCE_INFO
3
pBuffer 매개 변수는 SecPkgContext_DceInfo 구조체에 대한 포인터를 포함합니다.
DCE 서비스에서 사용하는 권한 부여 데이터에 대한 쿼리입니다.
SECPKG_ATTR_EAP_KEY_BLOCK
0x5b
pBuffer 매개 변수는 SecPkgContext_EapKeyBlock 구조체에 대한 포인터를 포함합니다.
EAP TLS 프로토콜에서 사용하는 키 데이터에 대한 쿼리입니다.
이 특성은 Schannel 보안 패키지에서만 지원됩니다.
SECPKG_ATTR_ENDPOINT_BINDINGS
26
pBuffer 매개 변수는 TLS에 대한 채널 바인딩(RFC 5929)을 포함하는 SecPkgContext_Bindings 구조체에 대한 포인터를 포함합니다.
Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.
SECPKG_ATTR_FLAGS
14
pBuffer 매개 변수는 SecPkgContext_Flags 구조체에 대한 포인터를 포함합니다.
협상된 컨텍스트 플래그에 대한 정보를 반환합니다.
SECPKG_ATTR_ISSUER_LIST_EX
0x59
pBuffer 매개 변수는 SecPkgContext_IssuerListInfoEx 구조체에 대한 포인터를 포함합니다.
서버에서 허용하는 인증서 발급자 목록을 반환합니다.
이 특성은 Schannel 보안 패키지에서만 지원됩니다.
SECPKG_ATTR_KEY_INFO
5
pBuffer 매개 변수는 SecPkgContext_KeyInfo 구조체에 대한 포인터를 포함합니다.
보안 컨텍스트에서 사용되는 키에 대한 정보를 쿼리합니다.
SECPKG_ATTR_LIFESPAN
2
pBuffer 매개 변수는 SecPkgContext_Lifespan 구조체에 대한 포인터를 포함합니다.
컨텍스트의 수명을 쿼리합니다.
SECPKG_ATTR_LOCAL_CERT_CONTEXT
0x54
pBuffer 매개 변수는 PCCERT_CONTEXT구조체에 대한 포인터를 포함합니다.
로컬 엔드 인증서가 포함된 인증서 컨텍스트를 찾습니다.
이 특성은 Schannel 보안 패키지에서만 지원됩니다.
SECPKG_ATTR_LOCAL_CRED
pBuffer 매개 변수는 SecPkgContext_LocalCredentialInfo 구조체에 대한 포인터를 포함합니다. 이 항목은 사용되지 않습니다.
SECPKG_ATTR_LOCAL_CERT_CONTEXT 대체됩니다.
SECPKG_ATTR_NAMES
1
pBuffer 매개 변수는 SecPkgContext_Names 구조체에 대한 포인터를 포함합니다.
컨텍스트와 연결된 이름을 쿼리합니다.
SECPKG_ATTR_NATIVE_NAMES
13
pBuffer 매개 변수는 SecPkgContext_NativeNames 구조체에 대한 포인터를 포함합니다.
아웃바운드 티켓에서 보안 주체 이름(CNAME)을 반환합니다.
SECPKG_ATTR_NEGOTIATION_INFO
12
pBuffer 매개 변수는 SecPkgContext_NegotiationInfo 구조체에 대한 포인터를 포함합니다.
협상 프로세스와 함께 사용할 보안 패키지 및 해당 패키지 사용을 위한 협상의 현재 상태에 대한 정보를 반환합니다.
SECPKG_ATTR_PACKAGE_INFO
10
pBuffer 매개 변수는 SecPkgContext_PackageInfo 구조체에 대한 포인터를 포함합니다.
사용 중인 SSP에 대한 정보를 반환합니다.
SECPKG_ATTR_PASSWORD_EXPIRY
8
pBuffer 매개 변수는 SecPkgContext_PasswordExpiry 구조체에 대한 포인터를 포함합니다.
암호 만료 정보를 반환합니다.
SECPKG_ATTR_REMOTE_CERT_CONTEXT
0x53
pBuffer 매개 변수는 PCCERT_CONTEXT구조체에 대한 포인터를 포함합니다.
서버에서 제공하는 최종 인증서가 포함된 인증서 컨텍스트를 찾습니다.
이 특성은 Schannel 보안 패키지에서만 지원됩니다.
SECPKG_ATTR_ROOT_STORE
0x55
pBuffer 매개 변수는 HCERTCONTEXT에 대한 포인터를 포함합니다. 루트 저장소에서 제공하는 인증서가 포함된 인증서 컨텍스트를 찾습니다.
SECPKG_ATTR_SESSION_INFO
0x5d
pBuffer 매개 변수는 SecPkgContext_SessionInfo 구조체에 대한 포인터를 포함합니다.
세션에 대한 정보를 반환합니다.
Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.
SECPKG_ATTR_SESSION_KEY
9
pBuffer 매개 변수는 SecPkgContext_SessionKey 구조체에 대한 포인터를 포함합니다.
세션 키에 대한 정보를 반환합니다.
SECPKG_ATTR_SIZES
0
pBuffer 매개 변수는 SecPkgContext_Sizes 구조체에 대한 포인터를 포함합니다.
메시지별 함수에 사용되는 구조체의 크기를 쿼리합니다.
SECPKG_ATTR_STREAM_SIZES
4
pBuffer 매개 변수는 SecPkgContext_StreamSizes 구조체에 대한 포인터를 포함합니다.
메시지별 함수에 사용되는 스트림의 다양한 부분의 크기를 쿼리합니다.
SECPKG_ATTR_SUPPORTED_SIGNATURES
0x66
pBuffer 매개 변수는 SecPkgContext_SupportedSignatures 구조체에 대한 포인터를 포함합니다.
이 값은 연결에 지원되는 서명 형식에 대한 정보를 반환합니다.
Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.
SECPKG_ATTR_TARGET_INFORMATION
17
pBuffer 매개 변수는 SecPkgContext_TargetInformation 구조체에 대한 포인터를 포함합니다.
원격 서버의 이름에 대한 정보를 반환합니다.
SECPKG_ATTR_UNIQUE_BINDINGS
25
pBuffer 매개 변수는 채널 바인딩 정보를 포함하는 SecPkgContext_Bindings 구조체에 대한 포인터를 포함합니다.
Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.
SECPKG_ATTR_APPLICATION_PROTOCOL
35
pBuffer 매개 변수에는 협상된 애플리케이션 프로토콜이 포함되어 있습니다.
SECPKG_ATTR_DTLS_MTU
34
DTLS에 사용할 MTU(최대 전송 단위) 값을 설정하고 검색합니다. 보안 컨텍스트에서 DTLS를 사용하도록 설정하지 않은 경우 이 특성은 지원되지 않습니다.
유효한 값은 200바이트에서 64킬로바이트 사이입니다. Schannel의 기본 DTLS MTU 값은 1096바이트입니다.

 

pBuffer [out]

특성을 수신하는 구조체에 대한 포인터입니다. 가리키는 구조체의 형식은 ulAttribute 매개 변수에 지정된 값에 따라 달라집니다.

반환 값

함수가 성공하면 반환 값이 SEC_E_OK.

함수가 실패하면 반환 값은 0이 아닌 오류 코드입니다.

설명

pBuffer 매개 변수가 가리키는 구조체는 쿼리되는 특성에 따라 달라집니다. 호출자는 pBuffer 구조 자체를 할당해야 하지만 SSP는 pBuffer 구조체의 가변 크기 멤버를 보유하는 데 필요한 모든 메모리를 할당합니다. SSP에서 할당한 메모리 사용을 마쳤으면 FreeContextBuffer 함수를 호출하여 해제합니다.

SECPKG_ATTR_REMOTE_CERT_CONTEXT 또는 SECPKG_ATTR_LOCAL_CERT_CONTEXT 값을 읽은 후 hCertStore 멤버는 중간 인증서가 포함된 인증서 저장소(있는 경우)에 대한 핸들로 설정됩니다. 또한 애플리케이션은 인증서 컨텍스트에서 사용하는 메모리를 해제하기 위해 CertFreeCertificateContext 를 호출해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 8.1 [데스크톱 앱만 해당]
지원되는 최소 서버
R2 Windows Server 2012 [데스크톱 앱만 해당]
헤더
Sspi.h(Security.h 포함)
라이브러리
Secur32.lib
DLL
Secur32.dll
유니코드 및 ANSI 이름
QueryContextAttributesW (유니코드) 및 QueryContextAttributesA (ANSI)

추가 정보

SSPI 함수

CERT_CONTEXT

FreeContextBuffer

SecPkgContext_Authority

SecPkgContext_ConnectionInfo

SecPkgContext_DceInfo

SecPkgContext_IssuerListInfoEx

SecPkgContext_KeyInfo

SecPkgContext_Lifespan

SecPkgContext_Names

SecPkgContext_Sizes

SecPkgContext_StreamSizes