tortls_states.h 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414
  1. /* Copyright (c) 2003, Roger Dingledine
  2. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
  3. * Copyright (c) 2007-2011, The Tor Project, Inc. */
  4. /* See LICENSE for licensing information */
  5. /* Helper file: included only in tortls.c */
  6. #ifndef _TORTLS_STATES_H
  7. #define _TORTLS_STATES_H
  8. /* The main body of this file was mechanically generated with this
  9. perl script:
  10. my %keys = ();
  11. for $fn (@ARGV) {
  12. open(F, $fn);
  13. while (<F>) {
  14. next unless /^#define ((?:SSL|DTLS)\w*_ST_\w*)/;
  15. $keys{$1} = 1;
  16. }
  17. close(F);
  18. }
  19. for $k (sort keys %keys) {
  20. print "#ifdef $k\n S($k),\n#endif\n"
  21. }
  22. */
  23. /** Mapping from allowed value of SSL.state to the name of C macro for that
  24. * state. Used for debugging an openssl connection. */
  25. static const struct { int state; const char *name; } state_map[] = {
  26. #define S(state) { state, #state }
  27. #ifdef DTLS1_ST_CR_HELLO_VERIFY_REQUEST_A
  28. S(DTLS1_ST_CR_HELLO_VERIFY_REQUEST_A),
  29. #endif
  30. #ifdef DTLS1_ST_CR_HELLO_VERIFY_REQUEST_B
  31. S(DTLS1_ST_CR_HELLO_VERIFY_REQUEST_B),
  32. #endif
  33. #ifdef DTLS1_ST_SW_HELLO_VERIFY_REQUEST_A
  34. S(DTLS1_ST_SW_HELLO_VERIFY_REQUEST_A),
  35. #endif
  36. #ifdef DTLS1_ST_SW_HELLO_VERIFY_REQUEST_B
  37. S(DTLS1_ST_SW_HELLO_VERIFY_REQUEST_B),
  38. #endif
  39. #ifdef SSL23_ST_CR_SRVR_HELLO_A
  40. S(SSL23_ST_CR_SRVR_HELLO_A),
  41. #endif
  42. #ifdef SSL23_ST_CR_SRVR_HELLO_B
  43. S(SSL23_ST_CR_SRVR_HELLO_B),
  44. #endif
  45. #ifdef SSL23_ST_CW_CLNT_HELLO_A
  46. S(SSL23_ST_CW_CLNT_HELLO_A),
  47. #endif
  48. #ifdef SSL23_ST_CW_CLNT_HELLO_B
  49. S(SSL23_ST_CW_CLNT_HELLO_B),
  50. #endif
  51. #ifdef SSL23_ST_SR_CLNT_HELLO_A
  52. S(SSL23_ST_SR_CLNT_HELLO_A),
  53. #endif
  54. #ifdef SSL23_ST_SR_CLNT_HELLO_B
  55. S(SSL23_ST_SR_CLNT_HELLO_B),
  56. #endif
  57. #ifdef SSL2_ST_CLIENT_START_ENCRYPTION
  58. S(SSL2_ST_CLIENT_START_ENCRYPTION),
  59. #endif
  60. #ifdef SSL2_ST_GET_CLIENT_FINISHED_A
  61. S(SSL2_ST_GET_CLIENT_FINISHED_A),
  62. #endif
  63. #ifdef SSL2_ST_GET_CLIENT_FINISHED_B
  64. S(SSL2_ST_GET_CLIENT_FINISHED_B),
  65. #endif
  66. #ifdef SSL2_ST_GET_CLIENT_HELLO_A
  67. S(SSL2_ST_GET_CLIENT_HELLO_A),
  68. #endif
  69. #ifdef SSL2_ST_GET_CLIENT_HELLO_B
  70. S(SSL2_ST_GET_CLIENT_HELLO_B),
  71. #endif
  72. #ifdef SSL2_ST_GET_CLIENT_HELLO_C
  73. S(SSL2_ST_GET_CLIENT_HELLO_C),
  74. #endif
  75. #ifdef SSL2_ST_GET_CLIENT_MASTER_KEY_A
  76. S(SSL2_ST_GET_CLIENT_MASTER_KEY_A),
  77. #endif
  78. #ifdef SSL2_ST_GET_CLIENT_MASTER_KEY_B
  79. S(SSL2_ST_GET_CLIENT_MASTER_KEY_B),
  80. #endif
  81. #ifdef SSL2_ST_GET_SERVER_FINISHED_A
  82. S(SSL2_ST_GET_SERVER_FINISHED_A),
  83. #endif
  84. #ifdef SSL2_ST_GET_SERVER_FINISHED_B
  85. S(SSL2_ST_GET_SERVER_FINISHED_B),
  86. #endif
  87. #ifdef SSL2_ST_GET_SERVER_HELLO_A
  88. S(SSL2_ST_GET_SERVER_HELLO_A),
  89. #endif
  90. #ifdef SSL2_ST_GET_SERVER_HELLO_B
  91. S(SSL2_ST_GET_SERVER_HELLO_B),
  92. #endif
  93. #ifdef SSL2_ST_GET_SERVER_VERIFY_A
  94. S(SSL2_ST_GET_SERVER_VERIFY_A),
  95. #endif
  96. #ifdef SSL2_ST_GET_SERVER_VERIFY_B
  97. S(SSL2_ST_GET_SERVER_VERIFY_B),
  98. #endif
  99. #ifdef SSL2_ST_SEND_CLIENT_CERTIFICATE_A
  100. S(SSL2_ST_SEND_CLIENT_CERTIFICATE_A),
  101. #endif
  102. #ifdef SSL2_ST_SEND_CLIENT_CERTIFICATE_B
  103. S(SSL2_ST_SEND_CLIENT_CERTIFICATE_B),
  104. #endif
  105. #ifdef SSL2_ST_SEND_CLIENT_CERTIFICATE_C
  106. S(SSL2_ST_SEND_CLIENT_CERTIFICATE_C),
  107. #endif
  108. #ifdef SSL2_ST_SEND_CLIENT_CERTIFICATE_D
  109. S(SSL2_ST_SEND_CLIENT_CERTIFICATE_D),
  110. #endif
  111. #ifdef SSL2_ST_SEND_CLIENT_FINISHED_A
  112. S(SSL2_ST_SEND_CLIENT_FINISHED_A),
  113. #endif
  114. #ifdef SSL2_ST_SEND_CLIENT_FINISHED_B
  115. S(SSL2_ST_SEND_CLIENT_FINISHED_B),
  116. #endif
  117. #ifdef SSL2_ST_SEND_CLIENT_HELLO_A
  118. S(SSL2_ST_SEND_CLIENT_HELLO_A),
  119. #endif
  120. #ifdef SSL2_ST_SEND_CLIENT_HELLO_B
  121. S(SSL2_ST_SEND_CLIENT_HELLO_B),
  122. #endif
  123. #ifdef SSL2_ST_SEND_CLIENT_MASTER_KEY_A
  124. S(SSL2_ST_SEND_CLIENT_MASTER_KEY_A),
  125. #endif
  126. #ifdef SSL2_ST_SEND_CLIENT_MASTER_KEY_B
  127. S(SSL2_ST_SEND_CLIENT_MASTER_KEY_B),
  128. #endif
  129. #ifdef SSL2_ST_SEND_REQUEST_CERTIFICATE_A
  130. S(SSL2_ST_SEND_REQUEST_CERTIFICATE_A),
  131. #endif
  132. #ifdef SSL2_ST_SEND_REQUEST_CERTIFICATE_B
  133. S(SSL2_ST_SEND_REQUEST_CERTIFICATE_B),
  134. #endif
  135. #ifdef SSL2_ST_SEND_REQUEST_CERTIFICATE_C
  136. S(SSL2_ST_SEND_REQUEST_CERTIFICATE_C),
  137. #endif
  138. #ifdef SSL2_ST_SEND_REQUEST_CERTIFICATE_D
  139. S(SSL2_ST_SEND_REQUEST_CERTIFICATE_D),
  140. #endif
  141. #ifdef SSL2_ST_SEND_SERVER_FINISHED_A
  142. S(SSL2_ST_SEND_SERVER_FINISHED_A),
  143. #endif
  144. #ifdef SSL2_ST_SEND_SERVER_FINISHED_B
  145. S(SSL2_ST_SEND_SERVER_FINISHED_B),
  146. #endif
  147. #ifdef SSL2_ST_SEND_SERVER_HELLO_A
  148. S(SSL2_ST_SEND_SERVER_HELLO_A),
  149. #endif
  150. #ifdef SSL2_ST_SEND_SERVER_HELLO_B
  151. S(SSL2_ST_SEND_SERVER_HELLO_B),
  152. #endif
  153. #ifdef SSL2_ST_SEND_SERVER_VERIFY_A
  154. S(SSL2_ST_SEND_SERVER_VERIFY_A),
  155. #endif
  156. #ifdef SSL2_ST_SEND_SERVER_VERIFY_B
  157. S(SSL2_ST_SEND_SERVER_VERIFY_B),
  158. #endif
  159. #ifdef SSL2_ST_SEND_SERVER_VERIFY_C
  160. S(SSL2_ST_SEND_SERVER_VERIFY_C),
  161. #endif
  162. #ifdef SSL2_ST_SERVER_START_ENCRYPTION
  163. S(SSL2_ST_SERVER_START_ENCRYPTION),
  164. #endif
  165. #ifdef SSL2_ST_X509_GET_CLIENT_CERTIFICATE
  166. S(SSL2_ST_X509_GET_CLIENT_CERTIFICATE),
  167. #endif
  168. #ifdef SSL2_ST_X509_GET_SERVER_CERTIFICATE
  169. S(SSL2_ST_X509_GET_SERVER_CERTIFICATE),
  170. #endif
  171. #ifdef SSL3_ST_CR_CERT_A
  172. S(SSL3_ST_CR_CERT_A),
  173. #endif
  174. #ifdef SSL3_ST_CR_CERT_B
  175. S(SSL3_ST_CR_CERT_B),
  176. #endif
  177. #ifdef SSL3_ST_CR_CERT_REQ_A
  178. S(SSL3_ST_CR_CERT_REQ_A),
  179. #endif
  180. #ifdef SSL3_ST_CR_CERT_REQ_B
  181. S(SSL3_ST_CR_CERT_REQ_B),
  182. #endif
  183. #ifdef SSL3_ST_CR_CERT_STATUS_A
  184. S(SSL3_ST_CR_CERT_STATUS_A),
  185. #endif
  186. #ifdef SSL3_ST_CR_CERT_STATUS_B
  187. S(SSL3_ST_CR_CERT_STATUS_B),
  188. #endif
  189. #ifdef SSL3_ST_CR_CHANGE_A
  190. S(SSL3_ST_CR_CHANGE_A),
  191. #endif
  192. #ifdef SSL3_ST_CR_CHANGE_B
  193. S(SSL3_ST_CR_CHANGE_B),
  194. #endif
  195. #ifdef SSL3_ST_CR_FINISHED_A
  196. S(SSL3_ST_CR_FINISHED_A),
  197. #endif
  198. #ifdef SSL3_ST_CR_FINISHED_B
  199. S(SSL3_ST_CR_FINISHED_B),
  200. #endif
  201. #ifdef SSL3_ST_CR_KEY_EXCH_A
  202. S(SSL3_ST_CR_KEY_EXCH_A),
  203. #endif
  204. #ifdef SSL3_ST_CR_KEY_EXCH_B
  205. S(SSL3_ST_CR_KEY_EXCH_B),
  206. #endif
  207. #ifdef SSL3_ST_CR_SESSION_TICKET_A
  208. S(SSL3_ST_CR_SESSION_TICKET_A),
  209. #endif
  210. #ifdef SSL3_ST_CR_SESSION_TICKET_B
  211. S(SSL3_ST_CR_SESSION_TICKET_B),
  212. #endif
  213. #ifdef SSL3_ST_CR_SRVR_DONE_A
  214. S(SSL3_ST_CR_SRVR_DONE_A),
  215. #endif
  216. #ifdef SSL3_ST_CR_SRVR_DONE_B
  217. S(SSL3_ST_CR_SRVR_DONE_B),
  218. #endif
  219. #ifdef SSL3_ST_CR_SRVR_HELLO_A
  220. S(SSL3_ST_CR_SRVR_HELLO_A),
  221. #endif
  222. #ifdef SSL3_ST_CR_SRVR_HELLO_B
  223. S(SSL3_ST_CR_SRVR_HELLO_B),
  224. #endif
  225. #ifdef SSL3_ST_CW_CERT_A
  226. S(SSL3_ST_CW_CERT_A),
  227. #endif
  228. #ifdef SSL3_ST_CW_CERT_B
  229. S(SSL3_ST_CW_CERT_B),
  230. #endif
  231. #ifdef SSL3_ST_CW_CERT_C
  232. S(SSL3_ST_CW_CERT_C),
  233. #endif
  234. #ifdef SSL3_ST_CW_CERT_D
  235. S(SSL3_ST_CW_CERT_D),
  236. #endif
  237. #ifdef SSL3_ST_CW_CERT_VRFY_A
  238. S(SSL3_ST_CW_CERT_VRFY_A),
  239. #endif
  240. #ifdef SSL3_ST_CW_CERT_VRFY_B
  241. S(SSL3_ST_CW_CERT_VRFY_B),
  242. #endif
  243. #ifdef SSL3_ST_CW_CHANGE_A
  244. S(SSL3_ST_CW_CHANGE_A),
  245. #endif
  246. #ifdef SSL3_ST_CW_CHANGE_B
  247. S(SSL3_ST_CW_CHANGE_B),
  248. #endif
  249. #ifdef SSL3_ST_CW_CLNT_HELLO_A
  250. S(SSL3_ST_CW_CLNT_HELLO_A),
  251. #endif
  252. #ifdef SSL3_ST_CW_CLNT_HELLO_B
  253. S(SSL3_ST_CW_CLNT_HELLO_B),
  254. #endif
  255. #ifdef SSL3_ST_CW_FINISHED_A
  256. S(SSL3_ST_CW_FINISHED_A),
  257. #endif
  258. #ifdef SSL3_ST_CW_FINISHED_B
  259. S(SSL3_ST_CW_FINISHED_B),
  260. #endif
  261. #ifdef SSL3_ST_CW_FLUSH
  262. S(SSL3_ST_CW_FLUSH),
  263. #endif
  264. #ifdef SSL3_ST_CW_KEY_EXCH_A
  265. S(SSL3_ST_CW_KEY_EXCH_A),
  266. #endif
  267. #ifdef SSL3_ST_CW_KEY_EXCH_B
  268. S(SSL3_ST_CW_KEY_EXCH_B),
  269. #endif
  270. #ifdef SSL3_ST_SR_CERT_A
  271. S(SSL3_ST_SR_CERT_A),
  272. #endif
  273. #ifdef SSL3_ST_SR_CERT_B
  274. S(SSL3_ST_SR_CERT_B),
  275. #endif
  276. #ifdef SSL3_ST_SR_CERT_VRFY_A
  277. S(SSL3_ST_SR_CERT_VRFY_A),
  278. #endif
  279. #ifdef SSL3_ST_SR_CERT_VRFY_B
  280. S(SSL3_ST_SR_CERT_VRFY_B),
  281. #endif
  282. #ifdef SSL3_ST_SR_CHANGE_A
  283. S(SSL3_ST_SR_CHANGE_A),
  284. #endif
  285. #ifdef SSL3_ST_SR_CHANGE_B
  286. S(SSL3_ST_SR_CHANGE_B),
  287. #endif
  288. #ifdef SSL3_ST_SR_CLNT_HELLO_A
  289. S(SSL3_ST_SR_CLNT_HELLO_A),
  290. #endif
  291. #ifdef SSL3_ST_SR_CLNT_HELLO_B
  292. S(SSL3_ST_SR_CLNT_HELLO_B),
  293. #endif
  294. #ifdef SSL3_ST_SR_CLNT_HELLO_C
  295. S(SSL3_ST_SR_CLNT_HELLO_C),
  296. #endif
  297. #ifdef SSL3_ST_SR_FINISHED_A
  298. S(SSL3_ST_SR_FINISHED_A),
  299. #endif
  300. #ifdef SSL3_ST_SR_FINISHED_B
  301. S(SSL3_ST_SR_FINISHED_B),
  302. #endif
  303. #ifdef SSL3_ST_SR_KEY_EXCH_A
  304. S(SSL3_ST_SR_KEY_EXCH_A),
  305. #endif
  306. #ifdef SSL3_ST_SR_KEY_EXCH_B
  307. S(SSL3_ST_SR_KEY_EXCH_B),
  308. #endif
  309. #ifdef SSL3_ST_SW_CERT_A
  310. S(SSL3_ST_SW_CERT_A),
  311. #endif
  312. #ifdef SSL3_ST_SW_CERT_B
  313. S(SSL3_ST_SW_CERT_B),
  314. #endif
  315. #ifdef SSL3_ST_SW_CERT_REQ_A
  316. S(SSL3_ST_SW_CERT_REQ_A),
  317. #endif
  318. #ifdef SSL3_ST_SW_CERT_REQ_B
  319. S(SSL3_ST_SW_CERT_REQ_B),
  320. #endif
  321. #ifdef SSL3_ST_SW_CERT_STATUS_A
  322. S(SSL3_ST_SW_CERT_STATUS_A),
  323. #endif
  324. #ifdef SSL3_ST_SW_CERT_STATUS_B
  325. S(SSL3_ST_SW_CERT_STATUS_B),
  326. #endif
  327. #ifdef SSL3_ST_SW_CHANGE_A
  328. S(SSL3_ST_SW_CHANGE_A),
  329. #endif
  330. #ifdef SSL3_ST_SW_CHANGE_B
  331. S(SSL3_ST_SW_CHANGE_B),
  332. #endif
  333. #ifdef SSL3_ST_SW_FINISHED_A
  334. S(SSL3_ST_SW_FINISHED_A),
  335. #endif
  336. #ifdef SSL3_ST_SW_FINISHED_B
  337. S(SSL3_ST_SW_FINISHED_B),
  338. #endif
  339. #ifdef SSL3_ST_SW_FLUSH
  340. S(SSL3_ST_SW_FLUSH),
  341. #endif
  342. #ifdef SSL3_ST_SW_HELLO_REQ_A
  343. S(SSL3_ST_SW_HELLO_REQ_A),
  344. #endif
  345. #ifdef SSL3_ST_SW_HELLO_REQ_B
  346. S(SSL3_ST_SW_HELLO_REQ_B),
  347. #endif
  348. #ifdef SSL3_ST_SW_HELLO_REQ_C
  349. S(SSL3_ST_SW_HELLO_REQ_C),
  350. #endif
  351. #ifdef SSL3_ST_SW_KEY_EXCH_A
  352. S(SSL3_ST_SW_KEY_EXCH_A),
  353. #endif
  354. #ifdef SSL3_ST_SW_KEY_EXCH_B
  355. S(SSL3_ST_SW_KEY_EXCH_B),
  356. #endif
  357. #ifdef SSL3_ST_SW_SESSION_TICKET_A
  358. S(SSL3_ST_SW_SESSION_TICKET_A),
  359. #endif
  360. #ifdef SSL3_ST_SW_SESSION_TICKET_B
  361. S(SSL3_ST_SW_SESSION_TICKET_B),
  362. #endif
  363. #ifdef SSL3_ST_SW_SRVR_DONE_A
  364. S(SSL3_ST_SW_SRVR_DONE_A),
  365. #endif
  366. #ifdef SSL3_ST_SW_SRVR_DONE_B
  367. S(SSL3_ST_SW_SRVR_DONE_B),
  368. #endif
  369. #ifdef SSL3_ST_SW_SRVR_HELLO_A
  370. S(SSL3_ST_SW_SRVR_HELLO_A),
  371. #endif
  372. #ifdef SSL3_ST_SW_SRVR_HELLO_B
  373. S(SSL3_ST_SW_SRVR_HELLO_B),
  374. #endif
  375. #ifdef SSL_ST_ACCEPT
  376. S(SSL_ST_ACCEPT),
  377. #endif
  378. #ifdef SSL_ST_BEFORE
  379. S(SSL_ST_BEFORE),
  380. #endif
  381. #ifdef SSL_ST_CONNECT
  382. S(SSL_ST_CONNECT),
  383. #endif
  384. #ifdef SSL_ST_INIT
  385. S(SSL_ST_INIT),
  386. #endif
  387. #ifdef SSL_ST_MASK
  388. S(SSL_ST_MASK),
  389. #endif
  390. #ifdef SSL_ST_OK
  391. S(SSL_ST_OK),
  392. #endif
  393. #ifdef SSL_ST_READ_BODY
  394. S(SSL_ST_READ_BODY),
  395. #endif
  396. #ifdef SSL_ST_READ_DONE
  397. S(SSL_ST_READ_DONE),
  398. #endif
  399. #ifdef SSL_ST_READ_HEADER
  400. S(SSL_ST_READ_HEADER),
  401. #endif
  402. #ifdef SSL_ST_RENEGOTIATE
  403. S(SSL_ST_RENEGOTIATE),
  404. #endif
  405. { 0, NULL }
  406. };
  407. #endif