PageRenderTime 71ms CodeModel.GetById 33ms RepoModel.GetById 0ms app.codeStats 0ms

/third_party/rust/winapi/v0_3/crate/src/um/eaptypes.rs

https://github.com/chromium/chromium
Rust | 403 lines | 398 code | 0 blank | 5 comment | 0 complexity | 493fc1f74f962930ede5a9e8916d94ec MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, Apache-2.0, BSD-3-Clause
  1. // Licensed under the Apache License, Version 2.0
  2. // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
  3. // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
  4. // All files in the project carrying such notice may not be copied, modified, or distributed
  5. // except according to those terms.
  6. use shared::guiddef::GUID;
  7. use shared::minwindef::{BOOL, BYTE, DWORD};
  8. use um::winnt::LPWSTR;
  9. pub const eapPropCipherSuiteNegotiation: DWORD = 0x00000001;
  10. pub const eapPropMutualAuth: DWORD = 0x00000002;
  11. pub const eapPropIntegrity: DWORD = 0x00000004;
  12. pub const eapPropReplayProtection: DWORD = 0x00000008;
  13. pub const eapPropConfidentiality: DWORD = 0x00000010;
  14. pub const eapPropKeyDerivation: DWORD = 0x00000020;
  15. pub const eapPropKeyStrength64: DWORD = 0x00000040;
  16. pub const eapPropKeyStrength128: DWORD = 0x00000080;
  17. pub const eapPropKeyStrength256: DWORD = 0x00000100;
  18. pub const eapPropKeyStrength512: DWORD = 0x00000200;
  19. pub const eapPropKeyStrength1024: DWORD = 0x00000400;
  20. pub const eapPropDictionaryAttackResistance: DWORD = 0x00000800;
  21. pub const eapPropFastReconnect: DWORD = 0x00001000;
  22. pub const eapPropCryptoBinding: DWORD = 0x00002000;
  23. pub const eapPropSessionIndependence: DWORD = 0x00004000;
  24. pub const eapPropFragmentation: DWORD = 0x00008000;
  25. pub const eapPropChannelBinding: DWORD = 0x00010000;
  26. pub const eapPropNap: DWORD = 0x00020000;
  27. pub const eapPropStandalone: DWORD = 0x00040000;
  28. pub const eapPropMppeEncryption: DWORD = 0x00080000;
  29. pub const eapPropTunnelMethod: DWORD = 0x00100000;
  30. pub const eapPropSupportsConfig: DWORD = 0x00200000;
  31. pub const eapPropCertifiedMethod: DWORD = 0x00400000;
  32. pub const eapPropHiddenMethod: DWORD = 0x00800000;
  33. pub const eapPropMachineAuth: DWORD = 0x01000000;
  34. pub const eapPropUserAuth: DWORD = 0x02000000;
  35. pub const eapPropIdentityPrivacy: DWORD = 0x04000000;
  36. pub const eapPropMethodChaining: DWORD = 0x08000000;
  37. pub const eapPropSharedStateEquivalence: DWORD = 0x10000000;
  38. pub const eapPropReserved: DWORD = 0x80000000;
  39. pub const EAP_VALUENAME_PROPERTIES: &'static str = "Properties";
  40. pub type EAP_SESSIONID = DWORD;
  41. STRUCT!{struct EAP_TYPE {
  42. type_: BYTE,
  43. dwVendorId: DWORD,
  44. dwVendorType: DWORD,
  45. }}
  46. STRUCT!{struct EAP_METHOD_TYPE {
  47. eapType: EAP_TYPE,
  48. dwAuthorId: DWORD,
  49. }}
  50. STRUCT!{struct EAP_METHOD_INFO {
  51. eaptype: EAP_METHOD_TYPE,
  52. pwszAuthorName: LPWSTR,
  53. pwszFriendlyName: LPWSTR,
  54. eapProperties: DWORD,
  55. pInnerMethodInfo: *mut EAP_METHOD_INFO,
  56. }}
  57. STRUCT!{struct EAP_METHOD_INFO_EX {
  58. eaptype: EAP_METHOD_TYPE,
  59. pwszAuthorName: LPWSTR,
  60. pwszFriendlyName: LPWSTR,
  61. eapProperties: DWORD,
  62. pInnerMethodInfoArray: *mut EAP_METHOD_INFO_ARRAY_EX,
  63. }}
  64. STRUCT!{struct EAP_METHOD_INFO_ARRAY {
  65. dwNumberOfMethods: DWORD,
  66. pEapMethods: *mut EAP_METHOD_INFO,
  67. }}
  68. STRUCT!{struct EAP_METHOD_INFO_ARRAY_EX {
  69. dwNumberOfMethods: DWORD,
  70. pEapMethods: *mut EAP_METHOD_INFO_EX,
  71. }}
  72. STRUCT!{struct EAP_ERROR {
  73. dwWinError: DWORD,
  74. type_: EAP_METHOD_TYPE,
  75. dwReasonCode: DWORD,
  76. rootCauseGuid: GUID,
  77. repairGuid: GUID,
  78. helpLinkGuid: GUID,
  79. pRootCauseString: LPWSTR,
  80. pRepairString: LPWSTR,
  81. }}
  82. ENUM!{enum EAP_ATTRIBUTE_TYPE {
  83. eatMinimum = 0,
  84. eatUserName = 1,
  85. eatUserPassword = 2,
  86. eatMD5CHAPPassword = 3,
  87. eatNASIPAddress = 4,
  88. eatNASPort = 5,
  89. eatServiceType = 6,
  90. eatFramedProtocol = 7,
  91. eatFramedIPAddress = 8,
  92. eatFramedIPNetmask = 9,
  93. eatFramedRouting = 10,
  94. eatFilterId = 11,
  95. eatFramedMTU = 12,
  96. eatFramedCompression = 13,
  97. eatLoginIPHost = 14,
  98. eatLoginService = 15,
  99. eatLoginTCPPort = 16,
  100. eatUnassigned17 = 17,
  101. eatReplyMessage = 18,
  102. eatCallbackNumber = 19,
  103. eatCallbackId = 20,
  104. eatUnassigned21 = 21,
  105. eatFramedRoute = 22,
  106. eatFramedIPXNetwork = 23,
  107. eatState = 24,
  108. eatClass = 25,
  109. eatVendorSpecific = 26,
  110. eatSessionTimeout = 27,
  111. eatIdleTimeout = 28,
  112. eatTerminationAction = 29,
  113. eatCalledStationId = 30,
  114. eatCallingStationId = 31,
  115. eatNASIdentifier = 32,
  116. eatProxyState = 33,
  117. eatLoginLATService = 34,
  118. eatLoginLATNode = 35,
  119. eatLoginLATGroup = 36,
  120. eatFramedAppleTalkLink = 37,
  121. eatFramedAppleTalkNetwork = 38,
  122. eatFramedAppleTalkZone = 39,
  123. eatAcctStatusType = 40,
  124. eatAcctDelayTime = 41,
  125. eatAcctInputOctets = 42,
  126. eatAcctOutputOctets = 43,
  127. eatAcctSessionId = 44,
  128. eatAcctAuthentic = 45,
  129. eatAcctSessionTime = 46,
  130. eatAcctInputPackets = 47,
  131. eatAcctOutputPackets = 48,
  132. eatAcctTerminateCause = 49,
  133. eatAcctMultiSessionId = 50,
  134. eatAcctLinkCount = 51,
  135. eatAcctEventTimeStamp = 55,
  136. eatMD5CHAPChallenge = 60,
  137. eatNASPortType = 61,
  138. eatPortLimit = 62,
  139. eatLoginLATPort = 63,
  140. eatTunnelType = 64,
  141. eatTunnelMediumType = 65,
  142. eatTunnelClientEndpoint = 66,
  143. eatTunnelServerEndpoint = 67,
  144. eatARAPPassword = 70,
  145. eatARAPFeatures = 71,
  146. eatARAPZoneAccess = 72,
  147. eatARAPSecurity = 73,
  148. eatARAPSecurityData = 74,
  149. eatPasswordRetry = 75,
  150. eatPrompt = 76,
  151. eatConnectInfo = 77,
  152. eatConfigurationToken = 78,
  153. eatEAPMessage = 79,
  154. eatSignature = 80,
  155. eatARAPChallengeResponse = 84,
  156. eatAcctInterimInterval = 85,
  157. eatNASIPv6Address = 95,
  158. eatFramedInterfaceId = 96,
  159. eatFramedIPv6Prefix = 97,
  160. eatLoginIPv6Host = 98,
  161. eatFramedIPv6Route = 99,
  162. eatFramedIPv6Pool = 100,
  163. eatARAPGuestLogon = 8096,
  164. eatCertificateOID = 8097,
  165. eatEAPConfiguration = 8098,
  166. eatPEAPEmbeddedEAPTypeId = 8099,
  167. eatPEAPFastRoamedSession = 8100,
  168. eatFastRoamedSession = 8100,
  169. eatEAPTLV = 8102,
  170. eatCredentialsChanged = 8103,
  171. eatInnerEapMethodType = 8104,
  172. eatClearTextPassword = 8107,
  173. eatQuarantineSoH = 8150,
  174. eatCertificateThumbprint = 8250,
  175. eatPeerId = 9000,
  176. eatServerId = 9001,
  177. eatMethodId = 9002,
  178. eatEMSK = 9003,
  179. eatSessionId = 9004,
  180. eatReserved = 0xFFFFFFFF,
  181. }}
  182. pub type EapAttributeType = EAP_ATTRIBUTE_TYPE;
  183. STRUCT!{struct EAP_ATTRIBUTE {
  184. eaType: EAP_ATTRIBUTE_TYPE,
  185. dwLength: DWORD,
  186. pValue: *mut BYTE,
  187. }}
  188. pub type EapAttribute = EAP_ATTRIBUTE;
  189. STRUCT!{struct EAP_ATTRIBUTES {
  190. dwNumberOfAttributes: DWORD,
  191. pAttribs: *mut EAP_ATTRIBUTE,
  192. }}
  193. pub type EapAttributes = EAP_ATTRIBUTES;
  194. pub const EAP_FLAG_Reserved1: DWORD = 0x00000001;
  195. pub const EAP_FLAG_NON_INTERACTIVE: DWORD = 0x00000002;
  196. pub const EAP_FLAG_LOGON: DWORD = 0x00000004;
  197. pub const EAP_FLAG_PREVIEW: DWORD = 0x00000008;
  198. pub const EAP_FLAG_Reserved2: DWORD = 0x00000010;
  199. pub const EAP_FLAG_MACHINE_AUTH: DWORD = 0x00000020;
  200. pub const EAP_FLAG_GUEST_ACCESS: DWORD = 0x00000040;
  201. pub const EAP_FLAG_Reserved3: DWORD = 0x00000080;
  202. pub const EAP_FLAG_Reserved4: DWORD = 0x00000100;
  203. pub const EAP_FLAG_RESUME_FROM_HIBERNATE: DWORD = 0x00000200;
  204. pub const EAP_FLAG_Reserved5: DWORD = 0x00000400;
  205. pub const EAP_FLAG_Reserved6: DWORD = 0x00000800;
  206. pub const EAP_FLAG_FULL_AUTH: DWORD = 0x00001000;
  207. pub const EAP_FLAG_PREFER_ALT_CREDENTIALS: DWORD = 0x00002000;
  208. pub const EAP_FLAG_Reserved7: DWORD = 0x00004000;
  209. pub const EAP_PEER_FLAG_HEALTH_STATE_CHANGE: DWORD = 0x00008000;
  210. pub const EAP_FLAG_SUPRESS_UI: DWORD = 0x00010000;
  211. pub const EAP_FLAG_PRE_LOGON: DWORD = 0x00020000;
  212. pub const EAP_FLAG_USER_AUTH: DWORD = 0x00040000;
  213. pub const EAP_FLAG_CONFG_READONLY: DWORD = 0x00080000;
  214. pub const EAP_FLAG_Reserved8: DWORD = 0x00100000;
  215. pub const EAP_FLAG_Reserved9: DWORD = 0x00400000;
  216. pub const EAP_FLAG_VPN: DWORD = 0x00800000;
  217. pub const EAP_CONFIG_INPUT_FIELD_PROPS_DEFAULT: DWORD = 0x00000000;
  218. pub const EAP_CONFIG_INPUT_FIELD_PROPS_NON_DISPLAYABLE: DWORD = 0x00000001;
  219. pub const EAP_CONFIG_INPUT_FIELD_PROPS_NON_PERSIST: DWORD = 0x00000002;
  220. pub const EAP_UI_INPUT_FIELD_PROPS_DEFAULT: DWORD = EAP_CONFIG_INPUT_FIELD_PROPS_DEFAULT;
  221. pub const EAP_UI_INPUT_FIELD_PROPS_NON_DISPLAYABLE: DWORD =
  222. EAP_CONFIG_INPUT_FIELD_PROPS_NON_DISPLAYABLE;
  223. pub const EAP_UI_INPUT_FIELD_PROPS_NON_PERSIST: DWORD = 0x00000002;
  224. pub const EAP_UI_INPUT_FIELD_PROPS_READ_ONLY: DWORD = 0x00000004;
  225. ENUM!{enum EAP_CONFIG_INPUT_FIELD_TYPE {
  226. EapConfigInputUsername = 0,
  227. EapConfigInputPassword = 1,
  228. EapConfigInputNetworkUsername = 2,
  229. EapConfigInputNetworkPassword = 3,
  230. EapConfigInputPin = 4,
  231. EapConfigInputPSK = 5,
  232. EapConfigInputEdit = 6,
  233. EapConfigSmartCardUsername = 7,
  234. EapConfigSmartCardError = 8,
  235. }}
  236. pub type PEAP_CONFIG_INPUT_FIELD_TYPE = *mut EAP_CONFIG_INPUT_FIELD_TYPE;
  237. pub const EAP_CREDENTIAL_VERSION: i32 = 1;
  238. pub const EAP_INTERACTIVE_UI_DATA_VERSION: i32 = 1;
  239. pub const EAPHOST_PEER_API_VERSION: i32 = 1;
  240. pub const EAPHOST_METHOD_API_VERSION: i32 = 1;
  241. pub const MAX_EAP_CONFIG_INPUT_FIELD_LENGTH: i32 = 256;
  242. pub const MAX_EAP_CONFIG_INPUT_FIELD_VALUE_LENGTH: i32 = 1024;
  243. STRUCT!{struct EAP_CONFIG_INPUT_FIELD_DATA {
  244. dwSize: DWORD,
  245. Type: EAP_CONFIG_INPUT_FIELD_TYPE,
  246. dwFlagProps: DWORD,
  247. pwszLabel: LPWSTR,
  248. pwszData: LPWSTR,
  249. dwMinDataLength: DWORD,
  250. dwMaxDataLength: DWORD,
  251. }}
  252. pub type PEAP_CONFIG_INPUT_FIELD_DATA = *mut EAP_CONFIG_INPUT_FIELD_DATA;
  253. STRUCT!{struct EAP_CONFIG_INPUT_FIELD_ARRAY {
  254. dwVersion: DWORD,
  255. dwNumberOfFields: DWORD,
  256. pFields: *mut EAP_CONFIG_INPUT_FIELD_DATA,
  257. }}
  258. pub type PEAP_CONFIG_INPUT_FIELD_ARRAY = *mut EAP_CONFIG_INPUT_FIELD_ARRAY;
  259. ENUM!{enum EAP_INTERACTIVE_UI_DATA_TYPE {
  260. EapCredReq = 0,
  261. EapCredResp = 1,
  262. EapCredExpiryReq = 2,
  263. EapCredExpiryResp = 3,
  264. EapCredLogonReq = 4,
  265. EapCredLogonResp = 5,
  266. }}
  267. pub type EAP_CRED_REQ = EAP_CONFIG_INPUT_FIELD_ARRAY;
  268. pub type EAP_CRED_RESP = EAP_CONFIG_INPUT_FIELD_ARRAY;
  269. pub type EAP_CRED_LOGON_REQ = EAP_CONFIG_INPUT_FIELD_ARRAY;
  270. pub type EAP_CRED_LOGON_RESP = EAP_CONFIG_INPUT_FIELD_ARRAY;
  271. STRUCT!{struct EAP_CRED_EXPIRY_REQ {
  272. curCreds: EAP_CONFIG_INPUT_FIELD_ARRAY,
  273. newCreds: EAP_CONFIG_INPUT_FIELD_ARRAY,
  274. }}
  275. pub type EAP_CRED_EXPIRY_RESP = EAP_CRED_EXPIRY_REQ;
  276. UNION!{union EAP_UI_DATA_FORMAT {
  277. [usize; 1],
  278. credData credData_mut: *mut EAP_CRED_REQ,
  279. credExpiryData credExpiryData_mut: *mut EAP_CRED_EXPIRY_REQ,
  280. credLogonData credLogonData_mut: *mut EAP_CRED_LOGON_REQ,
  281. }}
  282. STRUCT!{struct EAP_INTERACTIVE_UI_DATA {
  283. dwVersion: DWORD,
  284. dwSize: DWORD,
  285. dwDataType: EAP_INTERACTIVE_UI_DATA_TYPE,
  286. cbUiData: DWORD,
  287. pbUiData: EAP_UI_DATA_FORMAT,
  288. }}
  289. ENUM!{enum EAP_METHOD_PROPERTY_TYPE {
  290. emptPropCipherSuiteNegotiation = 0,
  291. emptPropMutualAuth = 1,
  292. emptPropIntegrity = 2,
  293. emptPropReplayProtection = 3,
  294. emptPropConfidentiality = 4,
  295. emptPropKeyDerivation = 5,
  296. emptPropKeyStrength64 = 6,
  297. emptPropKeyStrength128 = 7,
  298. emptPropKeyStrength256 = 8,
  299. emptPropKeyStrength512 = 9,
  300. emptPropKeyStrength1024 = 10,
  301. emptPropDictionaryAttackResistance = 11,
  302. emptPropFastReconnect = 12,
  303. emptPropCryptoBinding = 13,
  304. emptPropSessionIndependence = 14,
  305. emptPropFragmentation = 15,
  306. emptPropChannelBinding = 16,
  307. emptPropNap = 17,
  308. emptPropStandalone = 18,
  309. emptPropMppeEncryption = 19,
  310. emptPropTunnelMethod = 20,
  311. emptPropSupportsConfig = 21,
  312. emptPropCertifiedMethod = 22,
  313. emptPropHiddenMethod = 23,
  314. emptPropMachineAuth = 24,
  315. emptPropUserAuth = 25,
  316. emptPropIdentityPrivacy = 26,
  317. emptPropMethodChaining = 27,
  318. emptPropSharedStateEquivalence = 28,
  319. emptLegacyMethodPropertyFlag = 31,
  320. emptPropVendorSpecific = 255,
  321. }}
  322. ENUM!{enum EAP_METHOD_PROPERTY_VALUE_TYPE {
  323. empvtBool = 0,
  324. empvtDword = 1,
  325. empvtString = 2,
  326. }}
  327. STRUCT!{struct EAP_METHOD_PROPERTY_VALUE_BOOL {
  328. length: DWORD,
  329. value: BOOL,
  330. }}
  331. STRUCT!{struct EAP_METHOD_PROPERTY_VALUE_DWORD {
  332. length: DWORD,
  333. value: DWORD,
  334. }}
  335. STRUCT!{struct EAP_METHOD_PROPERTY_VALUE_STRING {
  336. length: DWORD,
  337. value: *mut BYTE,
  338. }}
  339. UNION!{union EAP_METHOD_PROPERTY_VALUE {
  340. [usize; 2],
  341. empvBool empvBool_mut: EAP_METHOD_PROPERTY_VALUE_BOOL,
  342. empvDword empvDword_mut: EAP_METHOD_PROPERTY_VALUE_DWORD,
  343. empvString empvString_mut: EAP_METHOD_PROPERTY_VALUE_STRING,
  344. }}
  345. STRUCT!{struct EAP_METHOD_PROPERTY {
  346. eapMethodPropertyType: EAP_METHOD_PROPERTY_TYPE,
  347. eapMethodPropertyValueType: EAP_METHOD_PROPERTY_VALUE_TYPE,
  348. eapMethodPropertyValue: EAP_METHOD_PROPERTY_VALUE,
  349. }}
  350. STRUCT!{struct EAP_METHOD_PROPERTY_ARRAY {
  351. dwNumberOfProperties: DWORD,
  352. pMethodProperty: *mut EAP_METHOD_PROPERTY,
  353. }}
  354. STRUCT!{struct EAPHOST_IDENTITY_UI_PARAMS {
  355. eapMethodType: EAP_METHOD_TYPE,
  356. dwFlags: DWORD,
  357. dwSizeofConnectionData: DWORD,
  358. pConnectionData: *mut BYTE,
  359. dwSizeofUserData: DWORD,
  360. pUserData: *mut BYTE,
  361. dwSizeofUserDataOut: DWORD,
  362. pUserDataOut: *mut BYTE,
  363. pwszIdentity: LPWSTR,
  364. dwError: DWORD,
  365. pEapError: *mut EAP_ERROR,
  366. }}
  367. STRUCT!{struct EAPHOST_INTERACTIVE_UI_PARAMS {
  368. dwSizeofContextData: DWORD,
  369. pContextData: *mut BYTE,
  370. dwSizeofInteractiveUIData: DWORD,
  371. pInteractiveUIData: *mut BYTE,
  372. dwError: DWORD,
  373. pEapError: *mut EAP_ERROR,
  374. }}
  375. ENUM!{enum EapCredentialType {
  376. EAP_EMPTY_CREDENTIAL = 0,
  377. EAP_USERNAME_PASSWORD_CREDENTIAL = 1,
  378. EAP_WINLOGON_CREDENTIAL = 2,
  379. EAP_CERTIFICATE_CREDENTIAL = 3,
  380. EAP_SIM_CREDENTIAL = 4,
  381. }}
  382. STRUCT!{struct EapUsernamePasswordCredential {
  383. username: LPWSTR,
  384. password: LPWSTR,
  385. }}
  386. pub const CERTIFICATE_HASH_LENGTH: usize = 20;
  387. STRUCT!{struct EapCertificateCredential {
  388. certHash: [BYTE; CERTIFICATE_HASH_LENGTH],
  389. password: LPWSTR,
  390. }}
  391. STRUCT!{struct EapSimCredential {
  392. iccID: LPWSTR,
  393. }}
  394. UNION!{union EapCredentialTypeData {
  395. [u32; 6] [u64; 4],
  396. username_password username_password_mut: EapUsernamePasswordCredential,
  397. certificate certificate_mut: EapCertificateCredential,
  398. sim sim_mut: EapSimCredential,
  399. }}
  400. STRUCT!{struct EapCredential {
  401. credType: EapCredentialType,
  402. credData: EapCredentialTypeData,
  403. }}