// Copyright © 2015, Peter Atashian
// Licensed under the MIT License <LICENSE.md>
//! Public Definitions for MIN SCHANNEL Security Provider

pub const SECPKG_ATTR_ISSUER_LIST: ::DWORD = 0x50;
pub const SECPKG_ATTR_REMOTE_CRED: ::DWORD = 0x51;
pub const SECPKG_ATTR_LOCAL_CRED: ::DWORD = 0x52;
pub const SECPKG_ATTR_REMOTE_CERT_CONTEXT: ::DWORD = 0x53;
pub const SECPKG_ATTR_LOCAL_CERT_CONTEXT: ::DWORD = 0x54;
pub const SECPKG_ATTR_ROOT_STORE: ::DWORD = 0x55;
pub const SECPKG_ATTR_SUPPORTED_ALGS: ::DWORD = 0x56;
pub const SECPKG_ATTR_CIPHER_STRENGTHS: ::DWORD = 0x57;
pub const SECPKG_ATTR_SUPPORTED_PROTOCOLS: ::DWORD = 0x58;
pub const SECPKG_ATTR_ISSUER_LIST_EX: ::DWORD = 0x59;
pub const SECPKG_ATTR_CONNECTION_INFO: ::DWORD = 0x5a;
pub const SECPKG_ATTR_EAP_KEY_BLOCK: ::DWORD = 0x5b;
pub const SECPKG_ATTR_MAPPED_CRED_ATTR: ::DWORD = 0x5c;
pub const SECPKG_ATTR_SESSION_INFO: ::DWORD = 0x5d;
pub const SECPKG_ATTR_APP_DATA: ::DWORD = 0x5e;
pub const SECPKG_ATTR_REMOTE_CERTIFICATES: ::DWORD = 0x5F;
pub const SECPKG_ATTR_CLIENT_CERT_POLICY: ::DWORD = 0x60;
pub const SECPKG_ATTR_CC_POLICY_RESULT: ::DWORD = 0x61;
pub const SECPKG_ATTR_USE_NCRYPT: ::DWORD = 0x62;
pub const SECPKG_ATTR_LOCAL_CERT_INFO: ::DWORD = 0x63;
pub const SECPKG_ATTR_CIPHER_INFO: ::DWORD = 0x64;
pub const SECPKG_ATTR_EAP_PRF_INFO: ::DWORD = 0x65;
pub const SECPKG_ATTR_SUPPORTED_SIGNATURES: ::DWORD = 0x66;
pub const SECPKG_ATTR_REMOTE_CERT_CHAIN: ::DWORD = 0x67;
pub const SECPKG_ATTR_UI_INFO: ::DWORD = 0x68;
pub const SECPKG_ATTR_EARLY_START: ::DWORD = 0x69;

STRUCT!{struct SecPkgCred_SupportedAlgs {
	cSupportedAlgs: ::DWORD,
	palgSupportedAlgs: ::ALG_ID,
}}

STRUCT!{struct SecPkgCred_CipherStrengths {
	dwMinimumCipherStrength: ::DWORD,
	dwMaximumCipherStrength: ::DWORD,
}}

STRUCT!{struct SecPkgCred_SupportedProtocols {
	grbitProtocol: ::DWORD,
}}

STRUCT!{struct SecPkgCred_ClientCertPolicy {
	dwFlags: ::DWORD,
	guidPolicyId: ::GUID,
	dwCertFlags: ::DWORD,
	dwUrlRetrievalTimeout: ::DWORD,
	fCheckRevocationFreshnessTime: ::BOOL,
	dwRevocationFreshnessTime: ::DWORD,
	fOmitUsageCheck: ::BOOL,
	pwszSslCtlStoreName: ::LPWSTR,
	pwszSslCtlIdentifier: ::LPWSTR,
}}