ssl_code.h 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #ifndef _SSL_CODE_H_
  2. #define _SSL_CODE_H_
  3. #include "ssl3.h"
  4. #include "tls1.h"
  5. /* Used in SSL_set_shutdown()/SSL_get_shutdown(); */
  6. # define SSL_SENT_SHUTDOWN 1
  7. # define SSL_RECEIVED_SHUTDOWN 2
  8. /*
  9. * The following 3 states are kept in ssl->rlayer.rstate when reads fail, you
  10. * should not need these
  11. */
  12. # define SSL_ST_READ_HEADER 0xF0
  13. # define SSL_ST_READ_BODY 0xF1
  14. # define SSL_ST_READ_DONE 0xF2
  15. # define SSL_NOTHING 1
  16. # define SSL_WRITING 2
  17. # define SSL_READING 3
  18. # define SSL_X509_LOOKUP 4
  19. # define SSL_ASYNC_PAUSED 5
  20. # define SSL_ASYNC_NO_JOBS 6
  21. # define SSL_ERROR_NONE 0
  22. # define SSL_ERROR_SSL 1
  23. # define SSL_ERROR_WANT_READ 2
  24. # define SSL_ERROR_WANT_WRITE 3
  25. # define SSL_ERROR_WANT_X509_LOOKUP 4
  26. # define SSL_ERROR_SYSCALL 5/* look at error stack/return value/errno */
  27. # define SSL_ERROR_ZERO_RETURN 6
  28. # define SSL_ERROR_WANT_CONNECT 7
  29. # define SSL_ERROR_WANT_ACCEPT 8
  30. # define SSL_ERROR_WANT_ASYNC 9
  31. # define SSL_ERROR_WANT_ASYNC_JOB 10
  32. /* Message flow states */
  33. typedef enum {
  34. /* No handshake in progress */
  35. MSG_FLOW_UNINITED,
  36. /* A permanent error with this connection */
  37. MSG_FLOW_ERROR,
  38. /* We are about to renegotiate */
  39. MSG_FLOW_RENEGOTIATE,
  40. /* We are reading messages */
  41. MSG_FLOW_READING,
  42. /* We are writing messages */
  43. MSG_FLOW_WRITING,
  44. /* Handshake has finished */
  45. MSG_FLOW_FINISHED
  46. } MSG_FLOW_STATE;
  47. typedef enum {
  48. TLS_ST_BEFORE,
  49. TLS_ST_OK,
  50. DTLS_ST_CR_HELLO_VERIFY_REQUEST,
  51. TLS_ST_CR_SRVR_HELLO,
  52. TLS_ST_CR_CERT,
  53. TLS_ST_CR_CERT_STATUS,
  54. TLS_ST_CR_KEY_EXCH,
  55. TLS_ST_CR_CERT_REQ,
  56. TLS_ST_CR_SRVR_DONE,
  57. TLS_ST_CR_SESSION_TICKET,
  58. TLS_ST_CR_CHANGE,
  59. TLS_ST_CR_FINISHED,
  60. TLS_ST_CW_CLNT_HELLO,
  61. TLS_ST_CW_CERT,
  62. TLS_ST_CW_KEY_EXCH,
  63. TLS_ST_CW_CERT_VRFY,
  64. TLS_ST_CW_CHANGE,
  65. TLS_ST_CW_NEXT_PROTO,
  66. TLS_ST_CW_FINISHED,
  67. TLS_ST_SW_HELLO_REQ,
  68. TLS_ST_SR_CLNT_HELLO,
  69. DTLS_ST_SW_HELLO_VERIFY_REQUEST,
  70. TLS_ST_SW_SRVR_HELLO,
  71. TLS_ST_SW_CERT,
  72. TLS_ST_SW_KEY_EXCH,
  73. TLS_ST_SW_CERT_REQ,
  74. TLS_ST_SW_SRVR_DONE,
  75. TLS_ST_SR_CERT,
  76. TLS_ST_SR_KEY_EXCH,
  77. TLS_ST_SR_CERT_VRFY,
  78. TLS_ST_SR_NEXT_PROTO,
  79. TLS_ST_SR_CHANGE,
  80. TLS_ST_SR_FINISHED,
  81. TLS_ST_SW_SESSION_TICKET,
  82. TLS_ST_SW_CERT_STATUS,
  83. TLS_ST_SW_CHANGE,
  84. TLS_ST_SW_FINISHED
  85. } OSSL_HANDSHAKE_STATE;
  86. #endif