1 module sspi.defines; 2 3 version(Windows): 4 import core.sys.windows.ntsecpkg; 5 import core.sys.windows.sspi; 6 import core.sys.windows.security; 7 8 9 enum SecPkgFlag 10 { 11 integrity = SECPKG_FLAG_INTEGRITY, 12 privacy = SECPKG_FLAG_PRIVACY, 13 tokenOnly = SECPKG_FLAG_TOKEN_ONLY, 14 datagram = SECPKG_FLAG_DATAGRAM, 15 connection = SECPKG_FLAG_CONNECTION, 16 multiRequired = SECPKG_FLAG_MULTI_REQUIRED, 17 clientOnly = SECPKG_FLAG_CLIENT_ONLY, 18 extendedError = SECPKG_FLAG_EXTENDED_ERROR, 19 impersonation = SECPKG_FLAG_IMPERSONATION, 20 acceptWin32Name = SECPKG_FLAG_ACCEPT_WIN32_NAME, 21 stream = SECPKG_FLAG_STREAM, 22 } 23 24 25 enum SecPackageAttribute 26 { 27 authority = SECPKG_ATTR_AUTHORITY, 28 connectionInfo = SECPKG_ATTR_CONNECTION_INFO, 29 issuerList = SECPKG_ATTR_ISSUER_LIST, 30 issuerListEx = SECPKG_ATTR_ISSUER_LIST_EX, 31 keyInfo = SECPKG_ATTR_KEY_INFO, 32 lifespan = SECPKG_ATTR_LIFESPAN, 33 localCertContext = SECPKG_ATTR_LOCAL_CERT_CONTEXT, 34 localCred = SECPKG_ATTR_LOCAL_CRED, 35 names = SECPKG_ATTR_NAMES, 36 protoInfo = SECPKG_ATTR_PROTO_INFO, 37 remoteCertContext = SECPKG_ATTR_REMOTE_CERT_CONTEXT, 38 remoteCred = SECPKG_ATTR_REMOTE_CRED, 39 sizes = SECPKG_ATTR_SIZES, 40 streamSizes = SECPKG_ATTR_STREAM_SIZES, 41 } 42 43 struct SecPkgContext_NegotiationInfoW 44 { 45 SecPkgInfoW* packageInfo; 46 ulong negotiationState; 47 } 48 49 50 enum SecurityStatus 51 { 52 okay = 0, 53 // bufferTooSmall = SECURITY_STATUS.SEC_E_BUFFER_TOO_SMALL, 54 // contextExpired = SECURITY_STATUS.SEC_E_CONTEXT_EXPIRED, 55 // SEC_E_CERT_EXPIRED = (-2146893016), 56 // cryptoSystemInvalid = SECURITY_STATUS.SEC_E_CRYPTO_SYSTEM_INVALID, 57 insufficientMemory =(-2146893056), 58 invalidHandle = (-2146893055), 59 invalidToken = (-2146893048), 60 qopNotSupported = (-2146893046), 61 //outOfSequence = SECURITY_STATUS.SEC_E_OUT_OF_SEQUENCE, 62 //messageAltered = SECURITY_STATUS.SEC_E_MESSAGE_ALTERED, 63 completeAndContinue = 590612, 64 completeNeeded = 590611, 65 } 66 /+ 67 enum :SECURITY_STATUS{ 68 SEC_E_OK = 0, 69 SEC_E_CERT_EXPIRED = (-2146893016), 70 SEC_E_INCOMPLETE_MESSAGE = (-2146893032), 71 SEC_E_INSUFFICIENT_MEMORY = (-2146893056), 72 SEC_E_INTERNAL_ERROR = (-2146893052), 73 SEC_E_INVALID_HANDLE = (-2146893055), 74 SEC_E_INVALID_TOKEN = (-2146893048), 75 SEC_E_LOGON_DENIED = (-2146893044), 76 SEC_E_NO_AUTHENTICATING_AUTHORITY = (-2146893039), 77 SEC_E_NO_CREDENTIALS = (-2146893042), 78 SEC_E_TARGET_UNKNOWN = (-2146893053), 79 SEC_E_UNSUPPORTED_FUNCTION = (-2146893054), 80 SEC_E_UNTRUSTED_ROOT = (-2146893019), 81 SEC_E_WRONG_PRINCIPAL = (-2146893022), 82 SEC_E_SECPKG_NOT_FOUND = (-2146893051), 83 SEC_E_QOP_NOT_SUPPORTED = (-2146893046), 84 SEC_E_UNKNOWN_CREDENTIALS = (-2146893043), 85 SEC_E_NOT_OWNER = (-2146893050), 86 } 87 enum :SECURITY_STATUS { 88 SEC_I_RENEGOTIATE = 590625, 89 SEC_I_COMPLETE_AND_CONTINUE = 590612, 90 SEC_I_COMPLETE_NEEDED = 590611, 91 SEC_I_CONTINUE_NEEDED = 590610, 92 SEC_I_INCOMPLETE_CREDENTIALS = 590624, 93 } 94 +/ 95 96 97 enum IscReq 98 { 99 delegate_ = ISC_REQ_DELEGATE, 100 mutualAuth = ISC_REQ_MUTUAL_AUTH, 101 replayDetect = ISC_REQ_REPLAY_DETECT, 102 sequenceDetect = ISC_REQ_SEQUENCE_DETECT, 103 confidentiality = ISC_REQ_CONFIDENTIALITY, 104 useSessionKey = ISC_REQ_USE_SESSION_KEY, 105 promptForCreds = ISC_REQ_PROMPT_FOR_CREDS, 106 useSuppliedCreds = ISC_REQ_USE_SUPPLIED_CREDS, 107 allocateMemory = ISC_REQ_ALLOCATE_MEMORY, 108 useDceStyle = ISC_REQ_USE_DCE_STYLE, 109 datagram = ISC_REQ_DATAGRAM, 110 connection = ISC_REQ_CONNECTION, 111 extendedError = ISC_REQ_EXTENDED_ERROR, 112 stream = ISC_REQ_STREAM, 113 integrity = ISC_REQ_INTEGRITY, 114 manualCredValidation = ISC_REQ_MANUAL_CRED_VALIDATION, 115 http = ISC_REQ_HTTP, 116 } 117