rho-tau-extensions 5.5.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (661) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +2 -0
  3. data/LICENSE +21 -0
  4. data/README.md +6 -0
  5. data/Rakefile +90 -0
  6. data/libs/crosswalk.rb +2 -0
  7. data/libs/crosswalk/crosswalk.rb +2 -0
  8. data/libs/crosswalk/ext.yml +21 -0
  9. data/libs/crosswalk/ext/Crosswalk.xml +27 -0
  10. data/libs/crosswalk/ext/build +19 -0
  11. data/libs/crosswalk/ext/build.bat +29 -0
  12. data/libs/crosswalk/ext/platform/android/AndroidManifest.xml +9 -0
  13. data/libs/crosswalk/ext/platform/android/Rakefile +141 -0
  14. data/libs/crosswalk/ext/platform/android/adds/lib/armeabi/libxwalkcore.so +0 -0
  15. data/libs/crosswalk/ext/platform/android/adds/lib/armeabi/libxwalkdummy.so +0 -0
  16. data/libs/crosswalk/ext/platform/android/adds/lib/x86/libxwalkcore.so +0 -0
  17. data/libs/crosswalk/ext/platform/android/adds/lib/x86/libxwalkdummy.so +0 -0
  18. data/libs/crosswalk/ext/platform/android/adds/lib/xwalk_core_library_java.jar +0 -0
  19. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/bubble.9.png +0 -0
  20. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/bubble_arrow_up.png +0 -0
  21. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/color_picker_advanced_select_handle.png +0 -0
  22. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/crosswalk.png +0 -0
  23. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/dropdown_popup_background_down.9.png +0 -0
  24. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/dropdown_popup_background_up.9.png +0 -0
  25. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/ic_menu_share_holo_light.png +0 -0
  26. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/ic_search.png +0 -0
  27. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/ic_warning.png +0 -0
  28. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/ondemand_overlay.9.png +0 -0
  29. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/verify_checkmark.png +0 -0
  30. data/libs/crosswalk/ext/platform/android/adds/res/drawable-ldpi/crosswalk.png +0 -0
  31. data/libs/crosswalk/ext/platform/android/adds/res/drawable-mdpi/crosswalk.png +0 -0
  32. data/libs/crosswalk/ext/platform/android/adds/res/drawable-v21/button_borderless_compat.xml +10 -0
  33. data/libs/crosswalk/ext/platform/android/adds/res/drawable-v21/button_compat.xml +9 -0
  34. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/bubble.9.png +0 -0
  35. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/bubble_arrow_up.png +0 -0
  36. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/color_picker_advanced_select_handle.png +0 -0
  37. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/crosswalk.png +0 -0
  38. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/dropdown_popup_background_down.9.png +0 -0
  39. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/dropdown_popup_background_up.9.png +0 -0
  40. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/ic_menu_share_holo_light.png +0 -0
  41. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/ic_search.png +0 -0
  42. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/ic_warning.png +0 -0
  43. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/ondemand_overlay.9.png +0 -0
  44. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/verify_checkmark.png +0 -0
  45. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xxhdpi/ic_menu_share_holo_light.png +0 -0
  46. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xxhdpi/ic_search.png +0 -0
  47. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xxhdpi/ic_warning.png +0 -0
  48. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xxhdpi/verify_checkmark.png +0 -0
  49. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xxxhdpi/ic_menu_share_holo_light.png +0 -0
  50. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xxxhdpi/ic_search.png +0 -0
  51. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xxxhdpi/ic_warning.png +0 -0
  52. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xxxhdpi/verify_checkmark.png +0 -0
  53. data/libs/crosswalk/ext/platform/android/adds/res/drawable/autofill_chip_inset.xml +15 -0
  54. data/libs/crosswalk/ext/platform/android/adds/res/drawable/bubble.9.png +0 -0
  55. data/libs/crosswalk/ext/platform/android/adds/res/drawable/bubble_arrow_up.png +0 -0
  56. data/libs/crosswalk/ext/platform/android/adds/res/drawable/button_compat_shape.xml +9 -0
  57. data/libs/crosswalk/ext/platform/android/adds/res/drawable/color_button_background.xml +36 -0
  58. data/libs/crosswalk/ext/platform/android/adds/res/drawable/color_picker_advanced_select_handle.png +0 -0
  59. data/libs/crosswalk/ext/platform/android/adds/res/drawable/color_picker_border.xml +12 -0
  60. data/libs/crosswalk/ext/platform/android/adds/res/drawable/dropdown_label_color.xml +11 -0
  61. data/libs/crosswalk/ext/platform/android/adds/res/drawable/dropdown_popup_background.xml +13 -0
  62. data/libs/crosswalk/ext/platform/android/adds/res/drawable/dropdown_popup_background_down.9.png +0 -0
  63. data/libs/crosswalk/ext/platform/android/adds/res/drawable/dropdown_popup_background_up.9.png +0 -0
  64. data/libs/crosswalk/ext/platform/android/adds/res/drawable/ic_menu_share_holo_light.png +0 -0
  65. data/libs/crosswalk/ext/platform/android/adds/res/drawable/ic_search.png +0 -0
  66. data/libs/crosswalk/ext/platform/android/adds/res/drawable/ic_warning.png +0 -0
  67. data/libs/crosswalk/ext/platform/android/adds/res/drawable/launchscreen_bg.xml +19 -0
  68. data/libs/crosswalk/ext/platform/android/adds/res/drawable/ondemand_overlay.9.png +0 -0
  69. data/libs/crosswalk/ext/platform/android/adds/res/drawable/verify_checkmark.png +0 -0
  70. data/libs/crosswalk/ext/platform/android/adds/res/layout-land/date_time_picker_dialog.xml +42 -0
  71. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/autofill_keyboard_accessory_item.xml +40 -0
  72. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/autofill_suggestion_item.xml +18 -0
  73. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/color_picker_advanced_component.xml +46 -0
  74. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/color_picker_dialog_content.xml +51 -0
  75. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/color_picker_dialog_title.xml +41 -0
  76. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/date_time_suggestion.xml +35 -0
  77. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/dropdown_item.xml +58 -0
  78. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/multi_field_time_picker_dialog.xml +122 -0
  79. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/two_field_date_picker.xml +38 -0
  80. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/validation_message_bubble.xml +72 -0
  81. data/libs/crosswalk/ext/platform/android/adds/res/layout/autofill_keyboard_accessory_icon.xml +13 -0
  82. data/libs/crosswalk/ext/platform/android/adds/res/layout/autofill_keyboard_accessory_item.xml +17 -0
  83. data/libs/crosswalk/ext/platform/android/adds/res/layout/autofill_suggestion_item.xml +7 -0
  84. data/libs/crosswalk/ext/platform/android/adds/res/layout/color_picker_advanced_component.xml +30 -0
  85. data/libs/crosswalk/ext/platform/android/adds/res/layout/color_picker_dialog_content.xml +36 -0
  86. data/libs/crosswalk/ext/platform/android/adds/res/layout/color_picker_dialog_title.xml +25 -0
  87. data/libs/crosswalk/ext/platform/android/adds/res/layout/date_time_picker_dialog.xml +42 -0
  88. data/libs/crosswalk/ext/platform/android/adds/res/layout/date_time_suggestion.xml +16 -0
  89. data/libs/crosswalk/ext/platform/android/adds/res/layout/dropdown_item.xml +34 -0
  90. data/libs/crosswalk/ext/platform/android/adds/res/layout/multi_field_time_picker_dialog.xml +50 -0
  91. data/libs/crosswalk/ext/platform/android/adds/res/layout/two_field_date_picker.xml +26 -0
  92. data/libs/crosswalk/ext/platform/android/adds/res/layout/validation_message_bubble.xml +47 -0
  93. data/libs/crosswalk/ext/platform/android/adds/res/menu/select_action_menu.xml +54 -0
  94. data/libs/crosswalk/ext/platform/android/adds/res/raw/contacts_api.js +206 -0
  95. data/libs/crosswalk/ext/platform/android/adds/res/raw/device_capabilities_api.js +231 -0
  96. data/libs/crosswalk/ext/platform/android/adds/res/raw/empty.wav +0 -0
  97. data/libs/crosswalk/ext/platform/android/adds/res/raw/icudtl.dat +0 -0
  98. data/libs/crosswalk/ext/platform/android/adds/res/raw/launch_screen_api.js +9 -0
  99. data/libs/crosswalk/ext/platform/android/adds/res/raw/messaging_api.js +359 -0
  100. data/libs/crosswalk/ext/platform/android/adds/res/raw/presentation_api.js +144 -0
  101. data/libs/crosswalk/ext/platform/android/adds/res/raw/wifidirect_api.js +227 -0
  102. data/libs/crosswalk/ext/platform/android/adds/res/raw/xwalk.pak +0 -0
  103. data/libs/crosswalk/ext/platform/android/adds/res/values-am/android_content_strings.xml +15 -0
  104. data/libs/crosswalk/ext/platform/android/adds/res/values-am/android_ui_strings.xml +47 -0
  105. data/libs/crosswalk/ext/platform/android/adds/res/values-ar/android_content_strings.xml +15 -0
  106. data/libs/crosswalk/ext/platform/android/adds/res/values-ar/android_ui_strings.xml +47 -0
  107. data/libs/crosswalk/ext/platform/android/adds/res/values-bg/android_content_strings.xml +15 -0
  108. data/libs/crosswalk/ext/platform/android/adds/res/values-bg/android_ui_strings.xml +47 -0
  109. data/libs/crosswalk/ext/platform/android/adds/res/values-ca/android_content_strings.xml +15 -0
  110. data/libs/crosswalk/ext/platform/android/adds/res/values-ca/android_ui_strings.xml +47 -0
  111. data/libs/crosswalk/ext/platform/android/adds/res/values-cs/android_content_strings.xml +15 -0
  112. data/libs/crosswalk/ext/platform/android/adds/res/values-cs/android_ui_strings.xml +47 -0
  113. data/libs/crosswalk/ext/platform/android/adds/res/values-da/android_content_strings.xml +15 -0
  114. data/libs/crosswalk/ext/platform/android/adds/res/values-da/android_ui_strings.xml +47 -0
  115. data/libs/crosswalk/ext/platform/android/adds/res/values-de/android_content_strings.xml +15 -0
  116. data/libs/crosswalk/ext/platform/android/adds/res/values-de/android_ui_strings.xml +47 -0
  117. data/libs/crosswalk/ext/platform/android/adds/res/values-el/android_content_strings.xml +15 -0
  118. data/libs/crosswalk/ext/platform/android/adds/res/values-el/android_ui_strings.xml +47 -0
  119. data/libs/crosswalk/ext/platform/android/adds/res/values-en-rGB/android_content_strings.xml +15 -0
  120. data/libs/crosswalk/ext/platform/android/adds/res/values-en-rGB/android_ui_strings.xml +47 -0
  121. data/libs/crosswalk/ext/platform/android/adds/res/values-es-rUS/android_content_strings.xml +15 -0
  122. data/libs/crosswalk/ext/platform/android/adds/res/values-es-rUS/android_ui_strings.xml +47 -0
  123. data/libs/crosswalk/ext/platform/android/adds/res/values-es/android_content_strings.xml +15 -0
  124. data/libs/crosswalk/ext/platform/android/adds/res/values-es/android_ui_strings.xml +47 -0
  125. data/libs/crosswalk/ext/platform/android/adds/res/values-fa/android_content_strings.xml +15 -0
  126. data/libs/crosswalk/ext/platform/android/adds/res/values-fa/android_ui_strings.xml +47 -0
  127. data/libs/crosswalk/ext/platform/android/adds/res/values-fi/android_content_strings.xml +15 -0
  128. data/libs/crosswalk/ext/platform/android/adds/res/values-fi/android_ui_strings.xml +47 -0
  129. data/libs/crosswalk/ext/platform/android/adds/res/values-fr/android_content_strings.xml +15 -0
  130. data/libs/crosswalk/ext/platform/android/adds/res/values-fr/android_ui_strings.xml +47 -0
  131. data/libs/crosswalk/ext/platform/android/adds/res/values-hi/android_content_strings.xml +15 -0
  132. data/libs/crosswalk/ext/platform/android/adds/res/values-hi/android_ui_strings.xml +47 -0
  133. data/libs/crosswalk/ext/platform/android/adds/res/values-hr/android_content_strings.xml +15 -0
  134. data/libs/crosswalk/ext/platform/android/adds/res/values-hr/android_ui_strings.xml +47 -0
  135. data/libs/crosswalk/ext/platform/android/adds/res/values-hu/android_content_strings.xml +15 -0
  136. data/libs/crosswalk/ext/platform/android/adds/res/values-hu/android_ui_strings.xml +47 -0
  137. data/libs/crosswalk/ext/platform/android/adds/res/values-in/android_content_strings.xml +15 -0
  138. data/libs/crosswalk/ext/platform/android/adds/res/values-in/android_ui_strings.xml +47 -0
  139. data/libs/crosswalk/ext/platform/android/adds/res/values-it/android_content_strings.xml +15 -0
  140. data/libs/crosswalk/ext/platform/android/adds/res/values-it/android_ui_strings.xml +47 -0
  141. data/libs/crosswalk/ext/platform/android/adds/res/values-iw/android_content_strings.xml +15 -0
  142. data/libs/crosswalk/ext/platform/android/adds/res/values-iw/android_ui_strings.xml +47 -0
  143. data/libs/crosswalk/ext/platform/android/adds/res/values-ja/android_content_strings.xml +15 -0
  144. data/libs/crosswalk/ext/platform/android/adds/res/values-ja/android_ui_strings.xml +47 -0
  145. data/libs/crosswalk/ext/platform/android/adds/res/values-ko/android_content_strings.xml +15 -0
  146. data/libs/crosswalk/ext/platform/android/adds/res/values-ko/android_ui_strings.xml +47 -0
  147. data/libs/crosswalk/ext/platform/android/adds/res/values-lt/android_content_strings.xml +15 -0
  148. data/libs/crosswalk/ext/platform/android/adds/res/values-lt/android_ui_strings.xml +47 -0
  149. data/libs/crosswalk/ext/platform/android/adds/res/values-lv/android_content_strings.xml +15 -0
  150. data/libs/crosswalk/ext/platform/android/adds/res/values-lv/android_ui_strings.xml +47 -0
  151. data/libs/crosswalk/ext/platform/android/adds/res/values-nb/android_content_strings.xml +15 -0
  152. data/libs/crosswalk/ext/platform/android/adds/res/values-nb/android_ui_strings.xml +47 -0
  153. data/libs/crosswalk/ext/platform/android/adds/res/values-nl/android_content_strings.xml +15 -0
  154. data/libs/crosswalk/ext/platform/android/adds/res/values-nl/android_ui_strings.xml +47 -0
  155. data/libs/crosswalk/ext/platform/android/adds/res/values-pl/android_content_strings.xml +15 -0
  156. data/libs/crosswalk/ext/platform/android/adds/res/values-pl/android_ui_strings.xml +47 -0
  157. data/libs/crosswalk/ext/platform/android/adds/res/values-pt-rBR/android_content_strings.xml +15 -0
  158. data/libs/crosswalk/ext/platform/android/adds/res/values-pt-rBR/android_ui_strings.xml +47 -0
  159. data/libs/crosswalk/ext/platform/android/adds/res/values-pt-rPT/android_content_strings.xml +15 -0
  160. data/libs/crosswalk/ext/platform/android/adds/res/values-pt-rPT/android_ui_strings.xml +47 -0
  161. data/libs/crosswalk/ext/platform/android/adds/res/values-ro/android_content_strings.xml +15 -0
  162. data/libs/crosswalk/ext/platform/android/adds/res/values-ro/android_ui_strings.xml +47 -0
  163. data/libs/crosswalk/ext/platform/android/adds/res/values-ru/android_content_strings.xml +15 -0
  164. data/libs/crosswalk/ext/platform/android/adds/res/values-ru/android_ui_strings.xml +47 -0
  165. data/libs/crosswalk/ext/platform/android/adds/res/values-sk/android_content_strings.xml +15 -0
  166. data/libs/crosswalk/ext/platform/android/adds/res/values-sk/android_ui_strings.xml +47 -0
  167. data/libs/crosswalk/ext/platform/android/adds/res/values-sl/android_content_strings.xml +15 -0
  168. data/libs/crosswalk/ext/platform/android/adds/res/values-sl/android_ui_strings.xml +47 -0
  169. data/libs/crosswalk/ext/platform/android/adds/res/values-sr/android_content_strings.xml +15 -0
  170. data/libs/crosswalk/ext/platform/android/adds/res/values-sr/android_ui_strings.xml +47 -0
  171. data/libs/crosswalk/ext/platform/android/adds/res/values-sv/android_content_strings.xml +15 -0
  172. data/libs/crosswalk/ext/platform/android/adds/res/values-sv/android_ui_strings.xml +47 -0
  173. data/libs/crosswalk/ext/platform/android/adds/res/values-sw/android_content_strings.xml +15 -0
  174. data/libs/crosswalk/ext/platform/android/adds/res/values-sw/android_ui_strings.xml +47 -0
  175. data/libs/crosswalk/ext/platform/android/adds/res/values-th/android_content_strings.xml +15 -0
  176. data/libs/crosswalk/ext/platform/android/adds/res/values-th/android_ui_strings.xml +47 -0
  177. data/libs/crosswalk/ext/platform/android/adds/res/values-tl/android_content_strings.xml +15 -0
  178. data/libs/crosswalk/ext/platform/android/adds/res/values-tl/android_ui_strings.xml +47 -0
  179. data/libs/crosswalk/ext/platform/android/adds/res/values-tr/android_content_strings.xml +15 -0
  180. data/libs/crosswalk/ext/platform/android/adds/res/values-tr/android_ui_strings.xml +47 -0
  181. data/libs/crosswalk/ext/platform/android/adds/res/values-uk/android_content_strings.xml +15 -0
  182. data/libs/crosswalk/ext/platform/android/adds/res/values-uk/android_ui_strings.xml +47 -0
  183. data/libs/crosswalk/ext/platform/android/adds/res/values-v14/theme.xml +16 -0
  184. data/libs/crosswalk/ext/platform/android/adds/res/values-v17/styles.xml +19 -0
  185. data/libs/crosswalk/ext/platform/android/adds/res/values-v17/ui_java_styles.xml +41 -0
  186. data/libs/crosswalk/ext/platform/android/adds/res/values-v21/styles.xml +14 -0
  187. data/libs/crosswalk/ext/platform/android/adds/res/values-v21/ui_java_styles.xml +14 -0
  188. data/libs/crosswalk/ext/platform/android/adds/res/values-vi/android_content_strings.xml +15 -0
  189. data/libs/crosswalk/ext/platform/android/adds/res/values-vi/android_ui_strings.xml +47 -0
  190. data/libs/crosswalk/ext/platform/android/adds/res/values-zh-rCN/android_content_strings.xml +15 -0
  191. data/libs/crosswalk/ext/platform/android/adds/res/values-zh-rCN/android_ui_strings.xml +47 -0
  192. data/libs/crosswalk/ext/platform/android/adds/res/values-zh-rTW/android_content_strings.xml +15 -0
  193. data/libs/crosswalk/ext/platform/android/adds/res/values-zh-rTW/android_ui_strings.xml +47 -0
  194. data/libs/crosswalk/ext/platform/android/adds/res/values/android_content_strings.xml +15 -0
  195. data/libs/crosswalk/ext/platform/android/adds/res/values/android_ui_strings.xml +47 -0
  196. data/libs/crosswalk/ext/platform/android/adds/res/values/android_xwalk_strings.xml +17 -0
  197. data/libs/crosswalk/ext/platform/android/adds/res/values/ui_java_attrs.xml +9 -0
  198. data/libs/crosswalk/ext/platform/android/adds/res/values/ui_java_dimens.xml +31 -0
  199. data/libs/crosswalk/ext/platform/android/adds/res/values/ui_java_strings.xml +16 -0
  200. data/libs/crosswalk/ext/platform/android/adds/res/values/ui_java_styles.xml +101 -0
  201. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_app_strings.xml +28 -0
  202. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_attrs.xml +11 -0
  203. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_colors.xml +13 -0
  204. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_core_internal_java_strings.xml +16 -0
  205. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_core_java_strings.xml +16 -0
  206. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_dimens.xml +11 -0
  207. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_resources_list.xml +7 -0
  208. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_styles.xml +40 -0
  209. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_values.xml +10 -0
  210. data/libs/crosswalk/ext/platform/android/ext_java.files +14 -0
  211. data/libs/crosswalk/ext/platform/android/ext_native.files +7 -0
  212. data/libs/crosswalk/ext/platform/android/jni/Crosswalk_impl.cpp +61 -0
  213. data/libs/crosswalk/ext/platform/android/src/com/rho/crosswalk/Crosswalk.java +14 -0
  214. data/libs/crosswalk/ext/platform/android/src/com/rho/crosswalk/CrosswalkFactory.java +18 -0
  215. data/libs/crosswalk/ext/platform/android/src/com/rho/crosswalk/CrosswalkSingleton.java +24 -0
  216. data/libs/crosswalk/ext/platform/android/src/com/tautechnologies/tau/crosswalk/CrosswalkExtension.java +16 -0
  217. data/libs/crosswalk/ext/platform/android/src/com/tautechnologies/tau/crosswalk/RhodesListener.java +18 -0
  218. data/libs/crosswalk/ext/platform/android/src/com/tautechnologies/tau/crosswalk/TauXWResourceClient.java +182 -0
  219. data/libs/crosswalk/ext/platform/android/src/com/tautechnologies/tau/crosswalk/TauXWUIClient.java +125 -0
  220. data/libs/crosswalk/ext/platform/android/src/com/tautechnologies/tau/crosswalk/TauXWalkWebView.java +368 -0
  221. data/libs/crosswalk/ext/platform/iphone/Crosswalk.xcodeproj/project.pbxproj +368 -0
  222. data/libs/crosswalk/ext/platform/iphone/Crosswalk_Prefix.pch +7 -0
  223. data/libs/crosswalk/ext/platform/iphone/Rakefile +73 -0
  224. data/libs/crosswalk/ext/platform/iphone/impl/Crosswalk.h +14 -0
  225. data/libs/crosswalk/ext/platform/iphone/impl/Crosswalk.m +24 -0
  226. data/libs/crosswalk/ext/platform/iphone/impl/CrosswalkFactorySingleton.m +16 -0
  227. data/libs/crosswalk/ext/platform/iphone/impl/CrosswalkSetup.m +9 -0
  228. data/libs/crosswalk/ext/platform/iphone/impl/CrosswalkSingleton.h +17 -0
  229. data/libs/crosswalk/ext/platform/iphone/impl/CrosswalkSingleton.m +23 -0
  230. data/libs/crosswalk/ext/platform/iphone/impl/readme.txt +7 -0
  231. data/libs/crosswalk/ext/platform/qt/Crosswalk.pro +66 -0
  232. data/libs/crosswalk/ext/platform/qt/Rakefile +35 -0
  233. data/libs/crosswalk/ext/platform/qt/src/Crosswalk_impl.cpp +77 -0
  234. data/libs/crosswalk/ext/platform/wm/Crosswalk.sln +52 -0
  235. data/libs/crosswalk/ext/platform/wm/Crosswalk.vcproj +714 -0
  236. data/libs/crosswalk/ext/platform/wm/Crosswalk.vsprops +15 -0
  237. data/libs/crosswalk/ext/platform/wm/src/Crosswalk_impl.cpp +77 -0
  238. data/libs/crosswalk/ext/platform/wp8/Crosswalk.props +18 -0
  239. data/libs/crosswalk/ext/platform/wp8/Crosswalk.vcxproj +170 -0
  240. data/libs/crosswalk/ext/platform/wp8/Crosswalk.vcxproj.filters +50 -0
  241. data/libs/crosswalk/ext/platform/wp8/CrosswalkImpl.csproj +119 -0
  242. data/libs/crosswalk/ext/platform/wp8/CrosswalkImpl.props +8 -0
  243. data/libs/crosswalk/ext/platform/wp8/CrosswalkImpl.targets +7 -0
  244. data/libs/crosswalk/ext/platform/wp8/CrosswalkLib.props +18 -0
  245. data/libs/crosswalk/ext/platform/wp8/CrosswalkLib.vcxproj +185 -0
  246. data/libs/crosswalk/ext/platform/wp8/CrosswalkLib.vcxproj.filters +58 -0
  247. data/libs/crosswalk/ext/platform/wp8/src/Crosswalk_impl.cpp +76 -0
  248. data/libs/crosswalk/ext/platform/wp8/src/Crosswalk_impl.cs +69 -0
  249. data/libs/crosswalk/ext/platform/wp8/src/Properties/AssemblyInfo.cs +37 -0
  250. data/libs/enterprise-barcode/ext.yml +13 -0
  251. data/libs/enterprise-barcode/ext/barcode.xml +2144 -0
  252. data/libs/enterprise-barcode/ext/build +17 -0
  253. data/libs/enterprise-barcode/ext/build.bat +29 -0
  254. data/libs/enterprise-barcode/ext/platform/android/AndroidManifest.xml +31 -0
  255. data/libs/enterprise-barcode/ext/platform/android/ZXing_Info/AUTHORS +58 -0
  256. data/libs/enterprise-barcode/ext/platform/android/ZXing_Info/CHANGES +266 -0
  257. data/libs/enterprise-barcode/ext/platform/android/ZXing_Info/COPYING +201 -0
  258. data/libs/enterprise-barcode/ext/platform/android/ZXing_Info/README +11 -0
  259. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/drawable-hdpi/cancel_icon.png +0 -0
  260. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/drawable-hdpi/ok_icon.png +0 -0
  261. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/drawable-hdpi/retake_icon.png +0 -0
  262. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/drawable/cancel_icon.png +0 -0
  263. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/drawable/ok_icon.png +0 -0
  264. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/drawable/retake_icon.png +0 -0
  265. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/layout/capture.xml +122 -0
  266. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/raw/beep.ogg +0 -0
  267. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/values/attrs.xml +20 -0
  268. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/values/colors.xml +42 -0
  269. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/values/ids.xml +31 -0
  270. data/libs/enterprise-barcode/ext/platform/android/adds/lib/armeabi/liballbarcode.a +0 -0
  271. data/libs/enterprise-barcode/ext/platform/android/adds/lib/x86/liballbarcode.a +0 -0
  272. data/libs/enterprise-barcode/ext/platform/android/allbarcode.jar +0 -0
  273. data/libs/enterprise-barcode/ext/platform/iphone/Barcode.xcodeproj/project.pbxproj +524 -0
  274. data/libs/enterprise-barcode/ext/platform/iphone/Barcode_Prefix.pch +7 -0
  275. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeCallbackHelper.h +27 -0
  276. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeCallbackHelper.mm +231 -0
  277. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeViewController.h +95 -0
  278. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeViewController.m +1017 -0
  279. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeViewFactory.h +7 -0
  280. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeViewFactory.mm +58 -0
  281. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeViewFactoryRegister.mm +18 -0
  282. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeViewManager.h +16 -0
  283. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeViewManager.mm +32 -0
  284. data/libs/enterprise-barcode/ext/platform/iphone/Classes/ImageProvider.cpp +25 -0
  285. data/libs/enterprise-barcode/ext/platform/iphone/Classes/ImageProvider.h +15 -0
  286. data/libs/enterprise-barcode/ext/platform/iphone/Classes/ImageProvider.mm +159 -0
  287. data/libs/enterprise-barcode/ext/platform/iphone/Classes/barcode.m +123 -0
  288. data/libs/enterprise-barcode/ext/platform/iphone/Rakefile +69 -0
  289. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/COPYING +27 -0
  290. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarCameraSimulator.h +45 -0
  291. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarCaptureReader.h +111 -0
  292. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarHelpController.h +60 -0
  293. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarImage.h +69 -0
  294. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarImageScanner.h +51 -0
  295. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarReaderController.h +142 -0
  296. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarReaderView.h +135 -0
  297. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarReaderViewController.h +130 -0
  298. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarSDK.h +34 -0
  299. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarSymbol.h +71 -0
  300. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar.h +1497 -0
  301. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Decoder.h +202 -0
  302. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Exception.h +187 -0
  303. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Image.h +321 -0
  304. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/ImageScanner.h +130 -0
  305. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Processor.h +223 -0
  306. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Scanner.h +162 -0
  307. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Symbol.h +528 -0
  308. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Video.h +170 -0
  309. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Window.h +136 -0
  310. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/LICENSE +504 -0
  311. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/README +59 -0
  312. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Resources/zbar-back.png +0 -0
  313. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Resources/zbar-help.html +88 -0
  314. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Resources/zbar-helpicons.png +0 -0
  315. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Resources/zbar-samples.png +0 -0
  316. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/libzbar.a +0 -0
  317. data/libs/enterprise-barcode/ext/platform/iphone/impl/Barcode.h +21 -0
  318. data/libs/enterprise-barcode/ext/platform/iphone/impl/Barcode.m +132 -0
  319. data/libs/enterprise-barcode/ext/platform/iphone/impl/BarcodeFactory.h +10 -0
  320. data/libs/enterprise-barcode/ext/platform/iphone/impl/BarcodeFactory.m +16 -0
  321. data/libs/enterprise-barcode/ext/platform/iphone/impl/BarcodeFactorySingleton.m +16 -0
  322. data/libs/enterprise-barcode/ext/platform/iphone/impl/BarcodeSetup.m +8 -0
  323. data/libs/enterprise-barcode/ext/platform/iphone/impl/BarcodeSingleton.h +17 -0
  324. data/libs/enterprise-barcode/ext/platform/iphone/impl/BarcodeSingleton.m +22 -0
  325. data/libs/enterprise-barcode/ext/platform/iphone/impl/readme.txt +7 -0
  326. data/libs/enterprise-barcode/ext/platform/wm/Barcode.sln +44 -0
  327. data/libs/enterprise-barcode/ext/platform/wm/Barcode.vcproj +836 -0
  328. data/libs/enterprise-barcode/ext/platform/wm/Barcode.vsprops +15 -0
  329. data/libs/enterprise-barcode/ext/platform/wm/readme.txt +0 -0
  330. data/libs/enterprise-barcode/ext/platform/wm/src/Barcode_impl.cpp +376 -0
  331. data/libs/enterprise-barcode/ext/platform/wm/src/DecodeNotifier.cpp +173 -0
  332. data/libs/enterprise-barcode/ext/platform/wm/src/DecodeNotifier.h +149 -0
  333. data/libs/enterprise-barcode/ext/platform/wm/src/EMDKInterfaceAbstraction.cpp +476 -0
  334. data/libs/enterprise-barcode/ext/platform/wm/src/GetDecoderProperties.cpp +1195 -0
  335. data/libs/enterprise-barcode/ext/platform/wm/src/GetScannerProperties.cpp +553 -0
  336. data/libs/enterprise-barcode/ext/platform/wm/src/KeyInjector.cpp +177 -0
  337. data/libs/enterprise-barcode/ext/platform/wm/src/KeyInjector.h +40 -0
  338. data/libs/enterprise-barcode/ext/platform/wm/src/NotificationLoader.cpp +76 -0
  339. data/libs/enterprise-barcode/ext/platform/wm/src/NotificationLoader.h +44 -0
  340. data/libs/enterprise-barcode/ext/platform/wm/src/RSM.cpp +1211 -0
  341. data/libs/enterprise-barcode/ext/platform/wm/src/Scanner.cpp +2609 -0
  342. data/libs/enterprise-barcode/ext/platform/wm/src/Scanner.h +1099 -0
  343. data/libs/enterprise-barcode/ext/platform/wm/src/ScannerDefines.h +322 -0
  344. data/libs/enterprise-barcode/ext/platform/wm/src/SetDecoderProperties.cpp +2106 -0
  345. data/libs/enterprise-barcode/ext/platform/wm/src/SetScannerProperties.cpp +1060 -0
  346. data/libs/enterprise-barcode/ext/platform/wm/src/Utilities.cpp +184 -0
  347. data/libs/enterprise-barcode/ext/platform/wp8/BarcodeImpl.csproj +119 -0
  348. data/libs/enterprise-barcode/ext/platform/wp8/BarcodeImpl.props +8 -0
  349. data/libs/enterprise-barcode/ext/platform/wp8/BarcodeImpl.targets +35 -0
  350. data/libs/enterprise-barcode/ext/platform/wp8/BarcodeLib.props +18 -0
  351. data/libs/enterprise-barcode/ext/platform/wp8/BarcodeLib.vcxproj +185 -0
  352. data/libs/enterprise-barcode/ext/platform/wp8/BarcodeLib.vcxproj.filters +58 -0
  353. data/libs/enterprise-barcode/ext/platform/wp8/lib/ARM/Nokia.Graphics.Imaging.dll +0 -0
  354. data/libs/enterprise-barcode/ext/platform/wp8/lib/ARM/Nokia.Graphics.Imaging.winmd +0 -0
  355. data/libs/enterprise-barcode/ext/platform/wp8/lib/ARM/Nokia.Graphics.Imaging.xml +4813 -0
  356. data/libs/enterprise-barcode/ext/platform/wp8/lib/ARM/Nokia.InteropServices.WindowsRuntime.dll +0 -0
  357. data/libs/enterprise-barcode/ext/platform/wp8/lib/ARM/Nokia.InteropServices.WindowsRuntime.winmd +0 -0
  358. data/libs/enterprise-barcode/ext/platform/wp8/lib/ARM/Nokia.InteropServices.WindowsRuntime.xml +41 -0
  359. data/libs/enterprise-barcode/ext/platform/wp8/lib/ARM/OpticalReaderLib.dll +0 -0
  360. data/libs/enterprise-barcode/ext/platform/wp8/lib/BarcodeReaderLib.XML +68 -0
  361. data/libs/enterprise-barcode/ext/platform/wp8/lib/BarcodeReaderLib.dll +0 -0
  362. data/libs/enterprise-barcode/ext/platform/wp8/lib/BarcodeReaderLib/BarcodeReaderLib.csproj +120 -0
  363. data/libs/enterprise-barcode/ext/platform/wp8/lib/BarcodeReaderLib/BarcodeReaderLib.sln +34 -0
  364. data/libs/enterprise-barcode/ext/platform/wp8/lib/BarcodeReaderLib/CameraNavigatePage.xaml +32 -0
  365. data/libs/enterprise-barcode/ext/platform/wp8/lib/BarcodeReaderLib/CameraNavigatePage.xaml.cs +235 -0
  366. data/libs/enterprise-barcode/ext/platform/wp8/lib/BarcodeReaderLib/OpticalReaderTask.cs +182 -0
  367. data/libs/enterprise-barcode/ext/platform/wp8/lib/BarcodeReaderLib/Properties/AssemblyInfo.cs +37 -0
  368. data/libs/enterprise-barcode/ext/platform/wp8/lib/Nokia.Graphics.Imaging.Managed.dll +0 -0
  369. data/libs/enterprise-barcode/ext/platform/wp8/lib/Nokia.Graphics.Imaging.Managed.xml +341 -0
  370. data/libs/enterprise-barcode/ext/platform/wp8/lib/x86/Nokia.Graphics.Imaging.dll +0 -0
  371. data/libs/enterprise-barcode/ext/platform/wp8/lib/x86/Nokia.Graphics.Imaging.winmd +0 -0
  372. data/libs/enterprise-barcode/ext/platform/wp8/lib/x86/Nokia.Graphics.Imaging.xml +4813 -0
  373. data/libs/enterprise-barcode/ext/platform/wp8/lib/x86/Nokia.InteropServices.WindowsRuntime.dll +0 -0
  374. data/libs/enterprise-barcode/ext/platform/wp8/lib/x86/Nokia.InteropServices.WindowsRuntime.winmd +0 -0
  375. data/libs/enterprise-barcode/ext/platform/wp8/lib/x86/Nokia.InteropServices.WindowsRuntime.xml +41 -0
  376. data/libs/enterprise-barcode/ext/platform/wp8/lib/x86/OpticalReaderLib.dll +0 -0
  377. data/libs/enterprise-barcode/ext/platform/wp8/lib/zxing.wp8.0.XML +10324 -0
  378. data/libs/enterprise-barcode/ext/platform/wp8/lib/zxing.wp8.0.dll +0 -0
  379. data/libs/enterprise-barcode/ext/platform/wp8/src/Barcode_impl.cs +630 -0
  380. data/libs/enterprise-barcode/ext/platform/wp8/src/Properties/AssemblyInfo.cs +37 -0
  381. data/libs/enterprise-barcode/public/api/generated/Rho.Barcode.js +772 -0
  382. data/libs/ie/rhobrowser.dll +0 -0
  383. data/libs/nodejs.rb +2 -0
  384. data/libs/nodejs/ext.yml +25 -0
  385. data/libs/nodejs/ext/Nodejs.xml +37 -0
  386. data/libs/nodejs/ext/build +19 -0
  387. data/libs/nodejs/ext/build.bat +29 -0
  388. data/libs/nodejs/ext/platform/android/Rakefile +161 -0
  389. data/libs/nodejs/ext/platform/android/ext_native.files +8 -0
  390. data/libs/nodejs/ext/platform/android/jxCore/jx.h +134 -0
  391. data/libs/nodejs/ext/platform/android/jxCore/jx_result.h +221 -0
  392. data/libs/nodejs/ext/platform/android/jxCore/libcares_arm.a +0 -0
  393. data/libs/nodejs/ext/platform/android/jxCore/libcares_ia32.a +0 -0
  394. data/libs/nodejs/ext/platform/android/jxCore/libcares_x64.a +0 -0
  395. data/libs/nodejs/ext/platform/android/jxCore/libchrome_zlib_arm.a +0 -0
  396. data/libs/nodejs/ext/platform/android/jxCore/libchrome_zlib_ia32.a +0 -0
  397. data/libs/nodejs/ext/platform/android/jxCore/libchrome_zlib_x64.a +0 -0
  398. data/libs/nodejs/ext/platform/android/jxCore/libhttp_parser_arm.a +0 -0
  399. data/libs/nodejs/ext/platform/android/jxCore/libhttp_parser_ia32.a +0 -0
  400. data/libs/nodejs/ext/platform/android/jxCore/libhttp_parser_x64.a +0 -0
  401. data/libs/nodejs/ext/platform/android/jxCore/libjx_arm.a +0 -0
  402. data/libs/nodejs/ext/platform/android/jxCore/libjx_ia32.a +0 -0
  403. data/libs/nodejs/ext/platform/android/jxCore/libjx_x64.a +0 -0
  404. data/libs/nodejs/ext/platform/android/jxCore/libopenssl_arm.a +0 -0
  405. data/libs/nodejs/ext/platform/android/jxCore/libopenssl_ia32.a +0 -0
  406. data/libs/nodejs/ext/platform/android/jxCore/libopenssl_x64.a +0 -0
  407. data/libs/nodejs/ext/platform/android/jxCore/libsqlite3_arm.a +0 -0
  408. data/libs/nodejs/ext/platform/android/jxCore/libsqlite3_ia32.a +0 -0
  409. data/libs/nodejs/ext/platform/android/jxCore/libsqlite3_x64.a +0 -0
  410. data/libs/nodejs/ext/platform/android/jxCore/libuv_arm.a +0 -0
  411. data/libs/nodejs/ext/platform/android/jxCore/libuv_ia32.a +0 -0
  412. data/libs/nodejs/ext/platform/android/jxCore/libuv_x64.a +0 -0
  413. data/libs/nodejs/ext/platform/android/jxCore/libv8_base_arm.a +0 -0
  414. data/libs/nodejs/ext/platform/android/jxCore/libv8_base_ia32.a +0 -0
  415. data/libs/nodejs/ext/platform/android/jxCore/libv8_base_x64.a +0 -0
  416. data/libs/nodejs/ext/platform/android/jxCore/libv8_nosnapshot_arm.a +0 -0
  417. data/libs/nodejs/ext/platform/android/jxCore/libv8_nosnapshot_ia32.a +0 -0
  418. data/libs/nodejs/ext/platform/android/jxCore/libv8_nosnapshot_x64.a +0 -0
  419. data/libs/nodejs/ext/platform/iphone/Nodejs.xcodeproj/project.pbxproj +350 -0
  420. data/libs/nodejs/ext/platform/iphone/Nodejs_Prefix.pch +7 -0
  421. data/libs/nodejs/ext/platform/iphone/Rakefile +73 -0
  422. data/libs/nodejs/ext/platform/iphone/jxCore/jx.h +134 -0
  423. data/libs/nodejs/ext/platform/iphone/jxCore/jx_result.h +221 -0
  424. data/libs/nodejs/ext/platform/iphone/jxCore/libcares.a +0 -0
  425. data/libs/nodejs/ext/platform/iphone/jxCore/libchrome_zlib.a +0 -0
  426. data/libs/nodejs/ext/platform/iphone/jxCore/libhttp_parser.a +0 -0
  427. data/libs/nodejs/ext/platform/iphone/jxCore/libjx.a +0 -0
  428. data/libs/nodejs/ext/platform/iphone/jxCore/libmozjs.a +0 -0
  429. data/libs/nodejs/ext/platform/iphone/jxCore/libopenssl.a +0 -0
  430. data/libs/nodejs/ext/platform/iphone/jxCore/libsqlite3.a +0 -0
  431. data/libs/nodejs/ext/platform/iphone/jxCore/libuv.a +0 -0
  432. data/libs/nodejs/ext/shared/jxcore/jx.h +134 -0
  433. data/libs/nodejs/ext/shared/jxcore/jx_result.h +221 -0
  434. data/libs/nodejs/ext/shared/jxcoretau.cpp +454 -0
  435. data/libs/nodejs/ext/shared/jxcoretau.h +20 -0
  436. data/libs/nodejs/ext/shared/nodejs_impl.cpp +106 -0
  437. data/libs/nodejs/nodejs.rb +2 -0
  438. data/libs/openssl-edge.rb +2 -0
  439. data/libs/openssl-edge/ext.yml +4 -0
  440. data/libs/openssl-edge/ext/Rakefile +145 -0
  441. data/libs/openssl-edge/ext/android/Rakefile +107 -0
  442. data/libs/openssl-edge/ext/android/ext_native.files +32 -0
  443. data/libs/openssl-edge/ext/android/extconf.h +91 -0
  444. data/libs/openssl-edge/ext/build +12 -0
  445. data/libs/openssl-edge/ext/build.bat +5 -0
  446. data/libs/openssl-edge/ext/extconf.rb +141 -0
  447. data/libs/openssl-edge/ext/openssl.pro +109 -0
  448. data/libs/openssl-edge/ext/openssl.sln +52 -0
  449. data/libs/openssl-edge/ext/openssl.vcproj +1010 -0
  450. data/libs/openssl-edge/ext/openssl_missing.c +1163 -0
  451. data/libs/openssl-edge/ext/openssl_missing.h +537 -0
  452. data/libs/openssl-edge/ext/ossl.c +1203 -0
  453. data/libs/openssl-edge/ext/ossl.h +242 -0
  454. data/libs/openssl-edge/ext/ossl_asn1.c +2008 -0
  455. data/libs/openssl-edge/ext/ossl_asn1.h +66 -0
  456. data/libs/openssl-edge/ext/ossl_bio.c +118 -0
  457. data/libs/openssl-edge/ext/ossl_bio.h +19 -0
  458. data/libs/openssl-edge/ext/ossl_bn.c +1153 -0
  459. data/libs/openssl-edge/ext/ossl_bn.h +23 -0
  460. data/libs/openssl-edge/ext/ossl_cipher.c +1085 -0
  461. data/libs/openssl-edge/ext/ossl_cipher.h +20 -0
  462. data/libs/openssl-edge/ext/ossl_config.c +89 -0
  463. data/libs/openssl-edge/ext/ossl_config.h +19 -0
  464. data/libs/openssl-edge/ext/ossl_digest.c +453 -0
  465. data/libs/openssl-edge/ext/ossl_digest.h +20 -0
  466. data/libs/openssl-edge/ext/ossl_engine.c +580 -0
  467. data/libs/openssl-edge/ext/ossl_engine.h +19 -0
  468. data/libs/openssl-edge/ext/ossl_hmac.c +398 -0
  469. data/libs/openssl-edge/ext/ossl_hmac.h +18 -0
  470. data/libs/openssl-edge/ext/ossl_ns_spki.c +406 -0
  471. data/libs/openssl-edge/ext/ossl_ns_spki.h +19 -0
  472. data/libs/openssl-edge/ext/ossl_ocsp.c +2013 -0
  473. data/libs/openssl-edge/ext/ossl_ocsp.h +23 -0
  474. data/libs/openssl-edge/ext/ossl_pkcs12.c +261 -0
  475. data/libs/openssl-edge/ext/ossl_pkcs12.h +13 -0
  476. data/libs/openssl-edge/ext/ossl_pkcs5.c +180 -0
  477. data/libs/openssl-edge/ext/ossl_pkcs5.h +6 -0
  478. data/libs/openssl-edge/ext/ossl_pkcs7.c +1157 -0
  479. data/libs/openssl-edge/ext/ossl_pkcs7.h +20 -0
  480. data/libs/openssl-edge/ext/ossl_pkey.c +469 -0
  481. data/libs/openssl-edge/ext/ossl_pkey.h +245 -0
  482. data/libs/openssl-edge/ext/ossl_pkey_dh.c +650 -0
  483. data/libs/openssl-edge/ext/ossl_pkey_dsa.c +672 -0
  484. data/libs/openssl-edge/ext/ossl_pkey_ec.c +1806 -0
  485. data/libs/openssl-edge/ext/ossl_pkey_rsa.c +768 -0
  486. data/libs/openssl-edge/ext/ossl_rand.c +238 -0
  487. data/libs/openssl-edge/ext/ossl_rand.h +18 -0
  488. data/libs/openssl-edge/ext/ossl_ssl.c +2724 -0
  489. data/libs/openssl-edge/ext/ossl_ssl.h +41 -0
  490. data/libs/openssl-edge/ext/ossl_ssl_session.c +352 -0
  491. data/libs/openssl-edge/ext/ossl_version.h +15 -0
  492. data/libs/openssl-edge/ext/ossl_x509.c +186 -0
  493. data/libs/openssl-edge/ext/ossl_x509.h +119 -0
  494. data/libs/openssl-edge/ext/ossl_x509attr.c +328 -0
  495. data/libs/openssl-edge/ext/ossl_x509cert.c +863 -0
  496. data/libs/openssl-edge/ext/ossl_x509crl.c +565 -0
  497. data/libs/openssl-edge/ext/ossl_x509ext.c +480 -0
  498. data/libs/openssl-edge/ext/ossl_x509name.c +547 -0
  499. data/libs/openssl-edge/ext/ossl_x509req.c +492 -0
  500. data/libs/openssl-edge/ext/ossl_x509revoked.c +279 -0
  501. data/libs/openssl-edge/ext/ossl_x509store.c +846 -0
  502. data/libs/openssl-edge/ext/ruby_missing.h +32 -0
  503. data/libs/openssl-edge/openssl-edge.rb +2 -0
  504. data/libs/openssl-edge/openssl.rb +24 -0
  505. data/libs/openssl-edge/openssl/bn.rb +35 -0
  506. data/libs/openssl-edge/openssl/buffering.rb +341 -0
  507. data/libs/openssl-edge/openssl/cipher.rb +65 -0
  508. data/libs/openssl-edge/openssl/digest.rb +61 -0
  509. data/libs/openssl-edge/openssl/ssl-internal.rb +180 -0
  510. data/libs/openssl-edge/openssl/ssl.rb +1 -0
  511. data/libs/openssl-edge/openssl/x509-internal.rb +153 -0
  512. data/libs/openssl-edge/openssl/x509.rb +1 -0
  513. data/libs/openssl.so-edge.rb +2 -0
  514. data/libs/openssl.so-edge/ext.yml +8 -0
  515. data/libs/openssl.so-edge/ext/Rakefile +140 -0
  516. data/libs/openssl.so-edge/ext/android/armeabi/libcrypto.a +0 -0
  517. data/libs/openssl.so-edge/ext/android/armeabi/libssl.a +0 -0
  518. data/libs/openssl.so-edge/ext/android/x86/libcrypto.a +0 -0
  519. data/libs/openssl.so-edge/ext/android/x86/libssl.a +0 -0
  520. data/libs/openssl.so-edge/ext/build +12 -0
  521. data/libs/openssl.so-edge/ext/build.bat +1 -0
  522. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/dh/dh_locl.h +56 -0
  523. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/dsa/dsa_locl.h +76 -0
  524. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/evp/evp_locl.h +66 -0
  525. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/hmac/hmac_lcl.h +33 -0
  526. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/asn1_int.h +94 -0
  527. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/async.h +14 -0
  528. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/bn_conf.h +28 -0
  529. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/bn_dh.h +17 -0
  530. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/bn_int.h +82 -0
  531. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/bn_srp.h +32 -0
  532. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/chacha.h +49 -0
  533. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/cryptlib.h +81 -0
  534. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/cryptlib_int.h +31 -0
  535. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/dso_conf.h +16 -0
  536. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/engine.h +20 -0
  537. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/err_int.h +17 -0
  538. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/evp_int.h +382 -0
  539. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/md32_common.h +383 -0
  540. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/objects.h +12 -0
  541. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/poly1305.h +19 -0
  542. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/rand.h +20 -0
  543. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/x509_int.h +267 -0
  544. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/ocsp/ocsp_lcl.h +216 -0
  545. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/rsa/rsa_locl.h +96 -0
  546. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/x509/x509_lcl.h +142 -0
  547. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/e_os.h +520 -0
  548. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/bio.h +26 -0
  549. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/comp.h +12 -0
  550. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/conf.h +32 -0
  551. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/constant_time_locl.h +185 -0
  552. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/dane.h +103 -0
  553. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/dso.h +216 -0
  554. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/err.h +15 -0
  555. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/numbers.h +68 -0
  556. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/o_dir.h +63 -0
  557. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/o_str.h +17 -0
  558. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/thread_once.h +42 -0
  559. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/__DECC_INCLUDE_EPILOGUE.H +16 -0
  560. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/__DECC_INCLUDE_PROLOGUE.H +20 -0
  561. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/aes.h +92 -0
  562. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/asn1.h +1096 -0
  563. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/asn1_mac.h +10 -0
  564. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/asn1t.h +924 -0
  565. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/async.h +98 -0
  566. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/bio.h +854 -0
  567. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/blowfish.h +61 -0
  568. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/bn.h +575 -0
  569. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/buffer.h +76 -0
  570. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/camellia.h +83 -0
  571. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/cast.h +53 -0
  572. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/cmac.h +41 -0
  573. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/cms.h +512 -0
  574. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/comp.h +72 -0
  575. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/conf.h +216 -0
  576. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/conf_api.h +40 -0
  577. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/crypto.h +463 -0
  578. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ct.h +518 -0
  579. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/des.h +174 -0
  580. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/dh.h +343 -0
  581. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/dsa.h +282 -0
  582. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/dtls1.h +56 -0
  583. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/e_os2.h +311 -0
  584. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ebcdic.h +33 -0
  585. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ec.h +1581 -0
  586. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ecdh.h +10 -0
  587. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ecdsa.h +10 -0
  588. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/engine.h +842 -0
  589. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/err.h +259 -0
  590. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/evp.h +1586 -0
  591. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/hmac.h +49 -0
  592. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/idea.h +64 -0
  593. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/kdf.h +75 -0
  594. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/lhash.h +204 -0
  595. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/md2.h +44 -0
  596. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/md4.h +51 -0
  597. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/md5.h +50 -0
  598. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/mdc2.h +42 -0
  599. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/modes.h +203 -0
  600. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/obj_mac.h +4577 -0
  601. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/objects.h +1097 -0
  602. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ocsp.h +409 -0
  603. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/opensslconf.h +169 -0
  604. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/opensslconf.h.in +141 -0
  605. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/opensslv.h +105 -0
  606. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ossl_typ.h +190 -0
  607. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/pem.h +501 -0
  608. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/pem2.h +20 -0
  609. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/pkcs12.h +282 -0
  610. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/pkcs7.h +404 -0
  611. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/rand.h +89 -0
  612. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/rc2.h +51 -0
  613. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/rc4.h +36 -0
  614. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/rc5.h +63 -0
  615. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ripemd.h +47 -0
  616. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/rsa.h +588 -0
  617. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/safestack.h +164 -0
  618. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/seed.h +98 -0
  619. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/sha.h +119 -0
  620. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/srp.h +131 -0
  621. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/srtp.h +50 -0
  622. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ssl.h +2527 -0
  623. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ssl2.h +24 -0
  624. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ssl3.h +307 -0
  625. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/stack.h +78 -0
  626. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/symhacks.h +52 -0
  627. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/tls1.h +972 -0
  628. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ts.h +643 -0
  629. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/txt_db.h +57 -0
  630. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ui.h +368 -0
  631. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/whrlpool.h +48 -0
  632. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/x509.h +1123 -0
  633. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/x509_vfy.h +539 -0
  634. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/x509v3.h +1005 -0
  635. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/ssl/packet_locl.h +555 -0
  636. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/ssl/record/record.h +240 -0
  637. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/ssl/record/record_locl.h +114 -0
  638. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/ssl/ssl_locl.h +2127 -0
  639. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/ssl/statem/statem.h +123 -0
  640. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/ssl/statem/statem_locl.h +124 -0
  641. data/libs/openssl.so-edge/openssl.so.rb +2 -0
  642. data/libs/webkit.rb +2 -0
  643. data/libs/webkit/ext.yml +4 -0
  644. data/libs/webkit/ext/build +12 -0
  645. data/libs/webkit/ext/build.bat +7 -0
  646. data/libs/webkit/ext/wm/Rakefile +61 -0
  647. data/libs/webkit/ext/wm/RhoMsgs.cpp +17 -0
  648. data/libs/webkit/ext/wm/RhoMsgs.h +14 -0
  649. data/libs/webkit/ext/wm/RhoWKBrowserEngine.cpp +736 -0
  650. data/libs/webkit/ext/wm/RhoWKBrowserEngine.h +105 -0
  651. data/libs/webkit/ext/wm/lib/npapi/rhobridge.dll +0 -0
  652. data/libs/webkit/ext/wm/lib/rhoengine_defs.h +80 -0
  653. data/libs/webkit/ext/wm/lib/rhowebkit.dll +0 -0
  654. data/libs/webkit/ext/wm/webkit.sln +36 -0
  655. data/libs/webkit/ext/wm/webkit.suo +0 -0
  656. data/libs/webkit/ext/wm/webkit.vcproj +800 -0
  657. data/libs/webkit/ext/wm/webkit.vsprops +20 -0
  658. data/libs/webkit/webkit.rb +2 -0
  659. data/rho-tau-extensions.gemspec +23 -0
  660. data/version +1 -0
  661. metadata +705 -0
@@ -0,0 +1,50 @@
1
+ /*
2
+ * Copyright 2011-2016 The OpenSSL Project Authors. All Rights Reserved.
3
+ *
4
+ * Licensed under the OpenSSL license (the "License"). You may not use
5
+ * this file except in compliance with the License. You can obtain a copy
6
+ * in the file LICENSE in the source distribution or at
7
+ * https://www.openssl.org/source/license.html
8
+ */
9
+
10
+ /*
11
+ * DTLS code by Eric Rescorla <ekr@rtfm.com>
12
+ *
13
+ * Copyright (C) 2006, Network Resonance, Inc. Copyright (C) 2011, RTFM, Inc.
14
+ */
15
+
16
+ #ifndef HEADER_D1_SRTP_H
17
+ # define HEADER_D1_SRTP_H
18
+
19
+ # include <openssl/ssl.h>
20
+
21
+ #ifdef __cplusplus
22
+ extern "C" {
23
+ #endif
24
+
25
+ # define SRTP_AES128_CM_SHA1_80 0x0001
26
+ # define SRTP_AES128_CM_SHA1_32 0x0002
27
+ # define SRTP_AES128_F8_SHA1_80 0x0003
28
+ # define SRTP_AES128_F8_SHA1_32 0x0004
29
+ # define SRTP_NULL_SHA1_80 0x0005
30
+ # define SRTP_NULL_SHA1_32 0x0006
31
+
32
+ /* AEAD SRTP protection profiles from RFC 7714 */
33
+ # define SRTP_AEAD_AES_128_GCM 0x0007
34
+ # define SRTP_AEAD_AES_256_GCM 0x0008
35
+
36
+ # ifndef OPENSSL_NO_SRTP
37
+
38
+ __owur int SSL_CTX_set_tlsext_use_srtp(SSL_CTX *ctx, const char *profiles);
39
+ __owur int SSL_set_tlsext_use_srtp(SSL *ctx, const char *profiles);
40
+
41
+ __owur STACK_OF(SRTP_PROTECTION_PROFILE) *SSL_get_srtp_profiles(SSL *ssl);
42
+ __owur SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *s);
43
+
44
+ # endif
45
+
46
+ #ifdef __cplusplus
47
+ }
48
+ #endif
49
+
50
+ #endif
@@ -0,0 +1,2527 @@
1
+ /*
2
+ * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
3
+ *
4
+ * Licensed under the OpenSSL license (the "License"). You may not use
5
+ * this file except in compliance with the License. You can obtain a copy
6
+ * in the file LICENSE in the source distribution or at
7
+ * https://www.openssl.org/source/license.html
8
+ */
9
+
10
+ /* ====================================================================
11
+ * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
12
+ * ECC cipher suite support in OpenSSL originally developed by
13
+ * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project.
14
+ */
15
+ /* ====================================================================
16
+ * Copyright 2005 Nokia. All rights reserved.
17
+ *
18
+ * The portions of the attached software ("Contribution") is developed by
19
+ * Nokia Corporation and is licensed pursuant to the OpenSSL open source
20
+ * license.
21
+ *
22
+ * The Contribution, originally written by Mika Kousa and Pasi Eronen of
23
+ * Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites
24
+ * support (see RFC 4279) to OpenSSL.
25
+ *
26
+ * No patent licenses or other rights except those expressly stated in
27
+ * the OpenSSL open source license shall be deemed granted or received
28
+ * expressly, by implication, estoppel, or otherwise.
29
+ *
30
+ * No assurances are provided by Nokia that the Contribution does not
31
+ * infringe the patent or other intellectual property rights of any third
32
+ * party or that the license provides you with all the necessary rights
33
+ * to make use of the Contribution.
34
+ *
35
+ * THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN
36
+ * ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA
37
+ * SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY
38
+ * OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR
39
+ * OTHERWISE.
40
+ */
41
+
42
+ #ifndef HEADER_SSL_H
43
+ # define HEADER_SSL_H
44
+
45
+ # include <openssl/e_os2.h>
46
+ # include <openssl/opensslconf.h>
47
+ # include <openssl/comp.h>
48
+ # include <openssl/bio.h>
49
+ # if OPENSSL_API_COMPAT < 0x10100000L
50
+ # include <openssl/x509.h>
51
+ # include <openssl/crypto.h>
52
+ # include <openssl/lhash.h>
53
+ # include <openssl/buffer.h>
54
+ # endif
55
+ # include <openssl/pem.h>
56
+ # include <openssl/hmac.h>
57
+ # include <openssl/async.h>
58
+
59
+ # include <openssl/safestack.h>
60
+ # include <openssl/symhacks.h>
61
+ # include <openssl/ct.h>
62
+
63
+ #ifdef __cplusplus
64
+ extern "C" {
65
+ #endif
66
+
67
+ /* OpenSSL version number for ASN.1 encoding of the session information */
68
+ /*-
69
+ * Version 0 - initial version
70
+ * Version 1 - added the optional peer certificate
71
+ */
72
+ # define SSL_SESSION_ASN1_VERSION 0x0001
73
+
74
+ # define SSL_MAX_SSL_SESSION_ID_LENGTH 32
75
+ # define SSL_MAX_SID_CTX_LENGTH 32
76
+
77
+ # define SSL_MIN_RSA_MODULUS_LENGTH_IN_BYTES (512/8)
78
+ # define SSL_MAX_KEY_ARG_LENGTH 8
79
+ # define SSL_MAX_MASTER_KEY_LENGTH 48
80
+
81
+ /* The maximum number of encrypt/decrypt pipelines we can support */
82
+ # define SSL_MAX_PIPELINES 32
83
+
84
+ /* text strings for the ciphers */
85
+
86
+ /* These are used to specify which ciphers to use and not to use */
87
+
88
+ # define SSL_TXT_LOW "LOW"
89
+ # define SSL_TXT_MEDIUM "MEDIUM"
90
+ # define SSL_TXT_HIGH "HIGH"
91
+ # define SSL_TXT_FIPS "FIPS"
92
+
93
+ # define SSL_TXT_aNULL "aNULL"
94
+ # define SSL_TXT_eNULL "eNULL"
95
+ # define SSL_TXT_NULL "NULL"
96
+
97
+ # define SSL_TXT_kRSA "kRSA"
98
+ # define SSL_TXT_kDHr "kDHr"
99
+ # define SSL_TXT_kDHd "kDHd"
100
+ # define SSL_TXT_kDH "kDH"
101
+ # define SSL_TXT_kEDH "kEDH"/* alias for kDHE */
102
+ # define SSL_TXT_kDHE "kDHE"
103
+ # define SSL_TXT_kECDHr "kECDHr"
104
+ # define SSL_TXT_kECDHe "kECDHe"
105
+ # define SSL_TXT_kECDH "kECDH"
106
+ # define SSL_TXT_kEECDH "kEECDH"/* alias for kECDHE */
107
+ # define SSL_TXT_kECDHE "kECDHE"
108
+ # define SSL_TXT_kPSK "kPSK"
109
+ # define SSL_TXT_kRSAPSK "kRSAPSK"
110
+ # define SSL_TXT_kECDHEPSK "kECDHEPSK"
111
+ # define SSL_TXT_kDHEPSK "kDHEPSK"
112
+ # define SSL_TXT_kGOST "kGOST"
113
+ # define SSL_TXT_kSRP "kSRP"
114
+
115
+ # define SSL_TXT_aRSA "aRSA"
116
+ # define SSL_TXT_aDSS "aDSS"
117
+ # define SSL_TXT_aDH "aDH"
118
+ # define SSL_TXT_aECDH "aECDH"
119
+ # define SSL_TXT_aECDSA "aECDSA"
120
+ # define SSL_TXT_aPSK "aPSK"
121
+ # define SSL_TXT_aGOST94 "aGOST94"
122
+ # define SSL_TXT_aGOST01 "aGOST01"
123
+ # define SSL_TXT_aGOST12 "aGOST12"
124
+ # define SSL_TXT_aGOST "aGOST"
125
+ # define SSL_TXT_aSRP "aSRP"
126
+
127
+ # define SSL_TXT_DSS "DSS"
128
+ # define SSL_TXT_DH "DH"
129
+ # define SSL_TXT_DHE "DHE"/* same as "kDHE:-ADH" */
130
+ # define SSL_TXT_EDH "EDH"/* alias for DHE */
131
+ # define SSL_TXT_ADH "ADH"
132
+ # define SSL_TXT_RSA "RSA"
133
+ # define SSL_TXT_ECDH "ECDH"
134
+ # define SSL_TXT_EECDH "EECDH"/* alias for ECDHE" */
135
+ # define SSL_TXT_ECDHE "ECDHE"/* same as "kECDHE:-AECDH" */
136
+ # define SSL_TXT_AECDH "AECDH"
137
+ # define SSL_TXT_ECDSA "ECDSA"
138
+ # define SSL_TXT_PSK "PSK"
139
+ # define SSL_TXT_SRP "SRP"
140
+
141
+ # define SSL_TXT_DES "DES"
142
+ # define SSL_TXT_3DES "3DES"
143
+ # define SSL_TXT_RC4 "RC4"
144
+ # define SSL_TXT_RC2 "RC2"
145
+ # define SSL_TXT_IDEA "IDEA"
146
+ # define SSL_TXT_SEED "SEED"
147
+ # define SSL_TXT_AES128 "AES128"
148
+ # define SSL_TXT_AES256 "AES256"
149
+ # define SSL_TXT_AES "AES"
150
+ # define SSL_TXT_AES_GCM "AESGCM"
151
+ # define SSL_TXT_AES_CCM "AESCCM"
152
+ # define SSL_TXT_AES_CCM_8 "AESCCM8"
153
+ # define SSL_TXT_CAMELLIA128 "CAMELLIA128"
154
+ # define SSL_TXT_CAMELLIA256 "CAMELLIA256"
155
+ # define SSL_TXT_CAMELLIA "CAMELLIA"
156
+ # define SSL_TXT_CHACHA20 "CHACHA20"
157
+ # define SSL_TXT_GOST "GOST89"
158
+
159
+ # define SSL_TXT_MD5 "MD5"
160
+ # define SSL_TXT_SHA1 "SHA1"
161
+ # define SSL_TXT_SHA "SHA"/* same as "SHA1" */
162
+ # define SSL_TXT_GOST94 "GOST94"
163
+ # define SSL_TXT_GOST89MAC "GOST89MAC"
164
+ # define SSL_TXT_GOST12 "GOST12"
165
+ # define SSL_TXT_GOST89MAC12 "GOST89MAC12"
166
+ # define SSL_TXT_SHA256 "SHA256"
167
+ # define SSL_TXT_SHA384 "SHA384"
168
+
169
+ # define SSL_TXT_SSLV3 "SSLv3"
170
+ # define SSL_TXT_TLSV1 "TLSv1"
171
+ # define SSL_TXT_TLSV1_1 "TLSv1.1"
172
+ # define SSL_TXT_TLSV1_2 "TLSv1.2"
173
+
174
+ # define SSL_TXT_ALL "ALL"
175
+
176
+ /*-
177
+ * COMPLEMENTOF* definitions. These identifiers are used to (de-select)
178
+ * ciphers normally not being used.
179
+ * Example: "RC4" will activate all ciphers using RC4 including ciphers
180
+ * without authentication, which would normally disabled by DEFAULT (due
181
+ * the "!ADH" being part of default). Therefore "RC4:!COMPLEMENTOFDEFAULT"
182
+ * will make sure that it is also disabled in the specific selection.
183
+ * COMPLEMENTOF* identifiers are portable between version, as adjustments
184
+ * to the default cipher setup will also be included here.
185
+ *
186
+ * COMPLEMENTOFDEFAULT does not experience the same special treatment that
187
+ * DEFAULT gets, as only selection is being done and no sorting as needed
188
+ * for DEFAULT.
189
+ */
190
+ # define SSL_TXT_CMPALL "COMPLEMENTOFALL"
191
+ # define SSL_TXT_CMPDEF "COMPLEMENTOFDEFAULT"
192
+
193
+ /*
194
+ * The following cipher list is used by default. It also is substituted when
195
+ * an application-defined cipher list string starts with 'DEFAULT'.
196
+ */
197
+ # define SSL_DEFAULT_CIPHER_LIST "ALL:!COMPLEMENTOFDEFAULT:!eNULL"
198
+ /*
199
+ * As of OpenSSL 1.0.0, ssl_create_cipher_list() in ssl/ssl_ciph.c always
200
+ * starts with a reasonable order, and all we have to do for DEFAULT is
201
+ * throwing out anonymous and unencrypted ciphersuites! (The latter are not
202
+ * actually enabled by ALL, but "ALL:RSA" would enable some of them.)
203
+ */
204
+
205
+ /* Used in SSL_set_shutdown()/SSL_get_shutdown(); */
206
+ # define SSL_SENT_SHUTDOWN 1
207
+ # define SSL_RECEIVED_SHUTDOWN 2
208
+
209
+ #ifdef __cplusplus
210
+ }
211
+ #endif
212
+
213
+ #ifdef __cplusplus
214
+ extern "C" {
215
+ #endif
216
+
217
+ # define SSL_FILETYPE_ASN1 X509_FILETYPE_ASN1
218
+ # define SSL_FILETYPE_PEM X509_FILETYPE_PEM
219
+
220
+ /*
221
+ * This is needed to stop compilers complaining about the 'struct ssl_st *'
222
+ * function parameters used to prototype callbacks in SSL_CTX.
223
+ */
224
+ typedef struct ssl_st *ssl_crock_st;
225
+ typedef struct tls_session_ticket_ext_st TLS_SESSION_TICKET_EXT;
226
+ typedef struct ssl_method_st SSL_METHOD;
227
+ typedef struct ssl_cipher_st SSL_CIPHER;
228
+ typedef struct ssl_session_st SSL_SESSION;
229
+ typedef struct tls_sigalgs_st TLS_SIGALGS;
230
+ typedef struct ssl_conf_ctx_st SSL_CONF_CTX;
231
+ typedef struct ssl_comp_st SSL_COMP;
232
+
233
+ STACK_OF(SSL_CIPHER);
234
+ STACK_OF(SSL_COMP);
235
+
236
+ /* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/
237
+ typedef struct srtp_protection_profile_st {
238
+ const char *name;
239
+ unsigned long id;
240
+ } SRTP_PROTECTION_PROFILE;
241
+
242
+ DEFINE_STACK_OF(SRTP_PROTECTION_PROFILE)
243
+
244
+ typedef int (*tls_session_ticket_ext_cb_fn) (SSL *s,
245
+ const unsigned char *data,
246
+ int len, void *arg);
247
+ typedef int (*tls_session_secret_cb_fn) (SSL *s, void *secret,
248
+ int *secret_len,
249
+ STACK_OF(SSL_CIPHER) *peer_ciphers,
250
+ const SSL_CIPHER **cipher, void *arg);
251
+
252
+ /* Typedefs for handling custom extensions */
253
+
254
+ typedef int (*custom_ext_add_cb) (SSL *s, unsigned int ext_type,
255
+ const unsigned char **out,
256
+ size_t *outlen, int *al, void *add_arg);
257
+
258
+ typedef void (*custom_ext_free_cb) (SSL *s, unsigned int ext_type,
259
+ const unsigned char *out, void *add_arg);
260
+
261
+ typedef int (*custom_ext_parse_cb) (SSL *s, unsigned int ext_type,
262
+ const unsigned char *in,
263
+ size_t inlen, int *al, void *parse_arg);
264
+
265
+ /* Allow initial connection to servers that don't support RI */
266
+ # define SSL_OP_LEGACY_SERVER_CONNECT 0x00000004U
267
+ /* Removed from OpenSSL 0.9.8q and 1.0.0c */
268
+ /* Dead forever, see CVE-2010-4180. */
269
+ # define SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG 0x0U
270
+ # define SSL_OP_TLSEXT_PADDING 0x00000010U
271
+ # define SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER 0x0U
272
+ # define SSL_OP_SAFARI_ECDHE_ECDSA_BUG 0x00000040U
273
+ /* Ancient SSLeay version, retained for compatibility */
274
+ # define SSL_OP_SSLEAY_080_CLIENT_DH_BUG 0x0
275
+ # define SSL_OP_TLS_D5_BUG 0x0U
276
+ /* Removed from OpenSSL 1.1.0 */
277
+ # define SSL_OP_TLS_BLOCK_PADDING_BUG 0x0U
278
+
279
+ /* Hasn't done anything since OpenSSL 0.9.7h, retained for compatibility */
280
+ # define SSL_OP_MSIE_SSLV2_RSA_PADDING 0x0
281
+ /* Refers to ancient SSLREF and SSLv2, retained for compatibility */
282
+ # define SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG 0x0
283
+ /* Related to removed SSLv2 */
284
+ # define SSL_OP_MICROSOFT_SESS_ID_BUG 0x0
285
+ # define SSL_OP_NETSCAPE_CHALLENGE_BUG 0x0
286
+
287
+ /*
288
+ * Disable SSL 3.0/TLS 1.0 CBC vulnerability workaround that was added in
289
+ * OpenSSL 0.9.6d. Usually (depending on the application protocol) the
290
+ * workaround is not needed. Unfortunately some broken SSL/TLS
291
+ * implementations cannot handle it at all, which is why we include it in
292
+ * SSL_OP_ALL.
293
+ */
294
+ /* added in 0.9.6e */
295
+ # define SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS 0x00000800U
296
+
297
+ /*
298
+ * SSL_OP_ALL: various bug workarounds that should be rather harmless. This
299
+ * used to be 0x000FFFFFL before 0.9.7.
300
+ */
301
+ # define SSL_OP_ALL 0x80000BFFU
302
+
303
+ /* DTLS options */
304
+ # define SSL_OP_NO_QUERY_MTU 0x00001000U
305
+ /* Turn on Cookie Exchange (on relevant for servers) */
306
+ # define SSL_OP_COOKIE_EXCHANGE 0x00002000U
307
+ /* Don't use RFC4507 ticket extension */
308
+ # define SSL_OP_NO_TICKET 0x00004000U
309
+ # ifndef OPENSSL_NO_DTLS1_METHOD
310
+ /* Use Cisco's "speshul" version of DTLS_BAD_VER
311
+ * (only with deprecated DTLSv1_client_method()) */
312
+ # define SSL_OP_CISCO_ANYCONNECT 0x00008000U
313
+ # endif
314
+
315
+ /* As server, disallow session resumption on renegotiation */
316
+ # define SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION 0x00010000U
317
+ /* Don't use compression even if supported */
318
+ # define SSL_OP_NO_COMPRESSION 0x00020000U
319
+ /* Permit unsafe legacy renegotiation */
320
+ # define SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION 0x00040000U
321
+ /* Does nothing: retained for compatibility */
322
+ # define SSL_OP_SINGLE_ECDH_USE 0x0
323
+ /* Does nothing: retained for compatibility */
324
+ # define SSL_OP_SINGLE_DH_USE 0x0
325
+ /* Does nothing: retained for compatibility */
326
+ # define SSL_OP_EPHEMERAL_RSA 0x0
327
+ /*
328
+ * Set on servers to choose the cipher according to the server's preferences
329
+ */
330
+ # define SSL_OP_CIPHER_SERVER_PREFERENCE 0x00400000U
331
+ /*
332
+ * If set, a server will allow a client to issue a SSLv3.0 version number as
333
+ * latest version supported in the premaster secret, even when TLSv1.0
334
+ * (version 3.1) was announced in the client hello. Normally this is
335
+ * forbidden to prevent version rollback attacks.
336
+ */
337
+ # define SSL_OP_TLS_ROLLBACK_BUG 0x00800000U
338
+
339
+ # define SSL_OP_NO_SSLv2 0x00000000U
340
+ # define SSL_OP_NO_SSLv3 0x02000000U
341
+ # define SSL_OP_NO_TLSv1 0x04000000U
342
+ # define SSL_OP_NO_TLSv1_2 0x08000000U
343
+ # define SSL_OP_NO_TLSv1_1 0x10000000U
344
+
345
+ # define SSL_OP_NO_DTLSv1 0x04000000U
346
+ # define SSL_OP_NO_DTLSv1_2 0x08000000U
347
+
348
+ # define SSL_OP_NO_SSL_MASK (SSL_OP_NO_SSLv3|\
349
+ SSL_OP_NO_TLSv1|SSL_OP_NO_TLSv1_1|SSL_OP_NO_TLSv1_2)
350
+ # define SSL_OP_NO_DTLS_MASK (SSL_OP_NO_DTLSv1|SSL_OP_NO_DTLSv1_2)
351
+
352
+
353
+ /* Removed from previous versions */
354
+ # define SSL_OP_PKCS1_CHECK_1 0x0
355
+ # define SSL_OP_PKCS1_CHECK_2 0x0
356
+ # define SSL_OP_NETSCAPE_CA_DN_BUG 0x0
357
+ # define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 0x0U
358
+ /*
359
+ * Make server add server-hello extension from early version of cryptopro
360
+ * draft, when GOST ciphersuite is negotiated. Required for interoperability
361
+ * with CryptoPro CSP 3.x
362
+ */
363
+ # define SSL_OP_CRYPTOPRO_TLSEXT_BUG 0x80000000U
364
+
365
+ /*
366
+ * Allow SSL_write(..., n) to return r with 0 < r < n (i.e. report success
367
+ * when just a single record has been written):
368
+ */
369
+ # define SSL_MODE_ENABLE_PARTIAL_WRITE 0x00000001U
370
+ /*
371
+ * Make it possible to retry SSL_write() with changed buffer location (buffer
372
+ * contents must stay the same!); this is not the default to avoid the
373
+ * misconception that non-blocking SSL_write() behaves like non-blocking
374
+ * write():
375
+ */
376
+ # define SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER 0x00000002U
377
+ /*
378
+ * Never bother the application with retries if the transport is blocking:
379
+ */
380
+ # define SSL_MODE_AUTO_RETRY 0x00000004U
381
+ /* Don't attempt to automatically build certificate chain */
382
+ # define SSL_MODE_NO_AUTO_CHAIN 0x00000008U
383
+ /*
384
+ * Save RAM by releasing read and write buffers when they're empty. (SSL3 and
385
+ * TLS only.) "Released" buffers are put onto a free-list in the context or
386
+ * just freed (depending on the context's setting for freelist_max_len).
387
+ */
388
+ # define SSL_MODE_RELEASE_BUFFERS 0x00000010U
389
+ /*
390
+ * Send the current time in the Random fields of the ClientHello and
391
+ * ServerHello records for compatibility with hypothetical implementations
392
+ * that require it.
393
+ */
394
+ # define SSL_MODE_SEND_CLIENTHELLO_TIME 0x00000020U
395
+ # define SSL_MODE_SEND_SERVERHELLO_TIME 0x00000040U
396
+ /*
397
+ * Send TLS_FALLBACK_SCSV in the ClientHello. To be set only by applications
398
+ * that reconnect with a downgraded protocol version; see
399
+ * draft-ietf-tls-downgrade-scsv-00 for details. DO NOT ENABLE THIS if your
400
+ * application attempts a normal handshake. Only use this in explicit
401
+ * fallback retries, following the guidance in
402
+ * draft-ietf-tls-downgrade-scsv-00.
403
+ */
404
+ # define SSL_MODE_SEND_FALLBACK_SCSV 0x00000080U
405
+ /*
406
+ * Support Asynchronous operation
407
+ */
408
+ # define SSL_MODE_ASYNC 0x00000100U
409
+
410
+ /* Cert related flags */
411
+ /*
412
+ * Many implementations ignore some aspects of the TLS standards such as
413
+ * enforcing certificate chain algorithms. When this is set we enforce them.
414
+ */
415
+ # define SSL_CERT_FLAG_TLS_STRICT 0x00000001U
416
+
417
+ /* Suite B modes, takes same values as certificate verify flags */
418
+ # define SSL_CERT_FLAG_SUITEB_128_LOS_ONLY 0x10000
419
+ /* Suite B 192 bit only mode */
420
+ # define SSL_CERT_FLAG_SUITEB_192_LOS 0x20000
421
+ /* Suite B 128 bit mode allowing 192 bit algorithms */
422
+ # define SSL_CERT_FLAG_SUITEB_128_LOS 0x30000
423
+
424
+ /* Perform all sorts of protocol violations for testing purposes */
425
+ # define SSL_CERT_FLAG_BROKEN_PROTOCOL 0x10000000
426
+
427
+ /* Flags for building certificate chains */
428
+ /* Treat any existing certificates as untrusted CAs */
429
+ # define SSL_BUILD_CHAIN_FLAG_UNTRUSTED 0x1
430
+ /* Don't include root CA in chain */
431
+ # define SSL_BUILD_CHAIN_FLAG_NO_ROOT 0x2
432
+ /* Just check certificates already there */
433
+ # define SSL_BUILD_CHAIN_FLAG_CHECK 0x4
434
+ /* Ignore verification errors */
435
+ # define SSL_BUILD_CHAIN_FLAG_IGNORE_ERROR 0x8
436
+ /* Clear verification errors from queue */
437
+ # define SSL_BUILD_CHAIN_FLAG_CLEAR_ERROR 0x10
438
+
439
+ /* Flags returned by SSL_check_chain */
440
+ /* Certificate can be used with this session */
441
+ # define CERT_PKEY_VALID 0x1
442
+ /* Certificate can also be used for signing */
443
+ # define CERT_PKEY_SIGN 0x2
444
+ /* EE certificate signing algorithm OK */
445
+ # define CERT_PKEY_EE_SIGNATURE 0x10
446
+ /* CA signature algorithms OK */
447
+ # define CERT_PKEY_CA_SIGNATURE 0x20
448
+ /* EE certificate parameters OK */
449
+ # define CERT_PKEY_EE_PARAM 0x40
450
+ /* CA certificate parameters OK */
451
+ # define CERT_PKEY_CA_PARAM 0x80
452
+ /* Signing explicitly allowed as opposed to SHA1 fallback */
453
+ # define CERT_PKEY_EXPLICIT_SIGN 0x100
454
+ /* Client CA issuer names match (always set for server cert) */
455
+ # define CERT_PKEY_ISSUER_NAME 0x200
456
+ /* Cert type matches client types (always set for server cert) */
457
+ # define CERT_PKEY_CERT_TYPE 0x400
458
+ /* Cert chain suitable to Suite B */
459
+ # define CERT_PKEY_SUITEB 0x800
460
+
461
+ # define SSL_CONF_FLAG_CMDLINE 0x1
462
+ # define SSL_CONF_FLAG_FILE 0x2
463
+ # define SSL_CONF_FLAG_CLIENT 0x4
464
+ # define SSL_CONF_FLAG_SERVER 0x8
465
+ # define SSL_CONF_FLAG_SHOW_ERRORS 0x10
466
+ # define SSL_CONF_FLAG_CERTIFICATE 0x20
467
+ # define SSL_CONF_FLAG_REQUIRE_PRIVATE 0x40
468
+ /* Configuration value types */
469
+ # define SSL_CONF_TYPE_UNKNOWN 0x0
470
+ # define SSL_CONF_TYPE_STRING 0x1
471
+ # define SSL_CONF_TYPE_FILE 0x2
472
+ # define SSL_CONF_TYPE_DIR 0x3
473
+ # define SSL_CONF_TYPE_NONE 0x4
474
+
475
+ /*
476
+ * Note: SSL[_CTX]_set_{options,mode} use |= op on the previous value, they
477
+ * cannot be used to clear bits.
478
+ */
479
+
480
+ unsigned long SSL_CTX_get_options(const SSL_CTX *ctx);
481
+ unsigned long SSL_get_options(const SSL* s);
482
+ unsigned long SSL_CTX_clear_options(SSL_CTX *ctx, unsigned long op);
483
+ unsigned long SSL_clear_options(SSL *s, unsigned long op);
484
+ unsigned long SSL_CTX_set_options(SSL_CTX *ctx, unsigned long op);
485
+ unsigned long SSL_set_options(SSL *s, unsigned long op);
486
+
487
+ # define SSL_CTX_set_mode(ctx,op) \
488
+ SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL)
489
+ # define SSL_CTX_clear_mode(ctx,op) \
490
+ SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_MODE,(op),NULL)
491
+ # define SSL_CTX_get_mode(ctx) \
492
+ SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,0,NULL)
493
+ # define SSL_clear_mode(ssl,op) \
494
+ SSL_ctrl((ssl),SSL_CTRL_CLEAR_MODE,(op),NULL)
495
+ # define SSL_set_mode(ssl,op) \
496
+ SSL_ctrl((ssl),SSL_CTRL_MODE,(op),NULL)
497
+ # define SSL_get_mode(ssl) \
498
+ SSL_ctrl((ssl),SSL_CTRL_MODE,0,NULL)
499
+ # define SSL_set_mtu(ssl, mtu) \
500
+ SSL_ctrl((ssl),SSL_CTRL_SET_MTU,(mtu),NULL)
501
+ # define DTLS_set_link_mtu(ssl, mtu) \
502
+ SSL_ctrl((ssl),DTLS_CTRL_SET_LINK_MTU,(mtu),NULL)
503
+ # define DTLS_get_link_min_mtu(ssl) \
504
+ SSL_ctrl((ssl),DTLS_CTRL_GET_LINK_MIN_MTU,0,NULL)
505
+
506
+ # define SSL_get_secure_renegotiation_support(ssl) \
507
+ SSL_ctrl((ssl), SSL_CTRL_GET_RI_SUPPORT, 0, NULL)
508
+
509
+ # ifndef OPENSSL_NO_HEARTBEATS
510
+ # define SSL_heartbeat(ssl) \
511
+ SSL_ctrl((ssl),SSL_CTRL_DTLS_EXT_SEND_HEARTBEAT,0,NULL)
512
+ # endif
513
+
514
+ # define SSL_CTX_set_cert_flags(ctx,op) \
515
+ SSL_CTX_ctrl((ctx),SSL_CTRL_CERT_FLAGS,(op),NULL)
516
+ # define SSL_set_cert_flags(s,op) \
517
+ SSL_ctrl((s),SSL_CTRL_CERT_FLAGS,(op),NULL)
518
+ # define SSL_CTX_clear_cert_flags(ctx,op) \
519
+ SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL)
520
+ # define SSL_clear_cert_flags(s,op) \
521
+ SSL_ctrl((s),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL)
522
+
523
+ void SSL_CTX_set_msg_callback(SSL_CTX *ctx,
524
+ void (*cb) (int write_p, int version,
525
+ int content_type, const void *buf,
526
+ size_t len, SSL *ssl, void *arg));
527
+ void SSL_set_msg_callback(SSL *ssl,
528
+ void (*cb) (int write_p, int version,
529
+ int content_type, const void *buf,
530
+ size_t len, SSL *ssl, void *arg));
531
+ # define SSL_CTX_set_msg_callback_arg(ctx, arg) SSL_CTX_ctrl((ctx), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg))
532
+ # define SSL_set_msg_callback_arg(ssl, arg) SSL_ctrl((ssl), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg))
533
+
534
+ # define SSL_get_extms_support(s) \
535
+ SSL_ctrl((s),SSL_CTRL_GET_EXTMS_SUPPORT,0,NULL)
536
+
537
+ # ifndef OPENSSL_NO_SRP
538
+
539
+ /* see tls_srp.c */
540
+ __owur int SSL_SRP_CTX_init(SSL *s);
541
+ __owur int SSL_CTX_SRP_CTX_init(SSL_CTX *ctx);
542
+ int SSL_SRP_CTX_free(SSL *ctx);
543
+ int SSL_CTX_SRP_CTX_free(SSL_CTX *ctx);
544
+ __owur int SSL_srp_server_param_with_username(SSL *s, int *ad);
545
+ __owur int SRP_Calc_A_param(SSL *s);
546
+
547
+ # endif
548
+
549
+ /* 100k max cert list */
550
+ # define SSL_MAX_CERT_LIST_DEFAULT 1024*100
551
+
552
+ # define SSL_SESSION_CACHE_MAX_SIZE_DEFAULT (1024*20)
553
+
554
+ /*
555
+ * This callback type is used inside SSL_CTX, SSL, and in the functions that
556
+ * set them. It is used to override the generation of SSL/TLS session IDs in
557
+ * a server. Return value should be zero on an error, non-zero to proceed.
558
+ * Also, callbacks should themselves check if the id they generate is unique
559
+ * otherwise the SSL handshake will fail with an error - callbacks can do
560
+ * this using the 'ssl' value they're passed by;
561
+ * SSL_has_matching_session_id(ssl, id, *id_len) The length value passed in
562
+ * is set at the maximum size the session ID can be. In SSLv3/TLSv1 it is 32
563
+ * bytes. The callback can alter this length to be less if desired. It is
564
+ * also an error for the callback to set the size to zero.
565
+ */
566
+ typedef int (*GEN_SESSION_CB) (const SSL *ssl, unsigned char *id,
567
+ unsigned int *id_len);
568
+
569
+ # define SSL_SESS_CACHE_OFF 0x0000
570
+ # define SSL_SESS_CACHE_CLIENT 0x0001
571
+ # define SSL_SESS_CACHE_SERVER 0x0002
572
+ # define SSL_SESS_CACHE_BOTH (SSL_SESS_CACHE_CLIENT|SSL_SESS_CACHE_SERVER)
573
+ # define SSL_SESS_CACHE_NO_AUTO_CLEAR 0x0080
574
+ /* enough comments already ... see SSL_CTX_set_session_cache_mode(3) */
575
+ # define SSL_SESS_CACHE_NO_INTERNAL_LOOKUP 0x0100
576
+ # define SSL_SESS_CACHE_NO_INTERNAL_STORE 0x0200
577
+ # define SSL_SESS_CACHE_NO_INTERNAL \
578
+ (SSL_SESS_CACHE_NO_INTERNAL_LOOKUP|SSL_SESS_CACHE_NO_INTERNAL_STORE)
579
+
580
+ LHASH_OF(SSL_SESSION) *SSL_CTX_sessions(SSL_CTX *ctx);
581
+ # define SSL_CTX_sess_number(ctx) \
582
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_NUMBER,0,NULL)
583
+ # define SSL_CTX_sess_connect(ctx) \
584
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT,0,NULL)
585
+ # define SSL_CTX_sess_connect_good(ctx) \
586
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_GOOD,0,NULL)
587
+ # define SSL_CTX_sess_connect_renegotiate(ctx) \
588
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_RENEGOTIATE,0,NULL)
589
+ # define SSL_CTX_sess_accept(ctx) \
590
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT,0,NULL)
591
+ # define SSL_CTX_sess_accept_renegotiate(ctx) \
592
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_RENEGOTIATE,0,NULL)
593
+ # define SSL_CTX_sess_accept_good(ctx) \
594
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_GOOD,0,NULL)
595
+ # define SSL_CTX_sess_hits(ctx) \
596
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_HIT,0,NULL)
597
+ # define SSL_CTX_sess_cb_hits(ctx) \
598
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CB_HIT,0,NULL)
599
+ # define SSL_CTX_sess_misses(ctx) \
600
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_MISSES,0,NULL)
601
+ # define SSL_CTX_sess_timeouts(ctx) \
602
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_TIMEOUTS,0,NULL)
603
+ # define SSL_CTX_sess_cache_full(ctx) \
604
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CACHE_FULL,0,NULL)
605
+
606
+ void SSL_CTX_sess_set_new_cb(SSL_CTX *ctx,
607
+ int (*new_session_cb) (struct ssl_st *ssl,
608
+ SSL_SESSION *sess));
609
+ int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx)) (struct ssl_st *ssl,
610
+ SSL_SESSION *sess);
611
+ void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx,
612
+ void (*remove_session_cb) (struct ssl_ctx_st
613
+ *ctx,
614
+ SSL_SESSION
615
+ *sess));
616
+ void (*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx)) (struct ssl_ctx_st *ctx,
617
+ SSL_SESSION *sess);
618
+ void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx,
619
+ SSL_SESSION *(*get_session_cb) (struct ssl_st
620
+ *ssl,
621
+ const unsigned char
622
+ *data, int len,
623
+ int *copy));
624
+ SSL_SESSION *(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx)) (struct ssl_st *ssl,
625
+ const unsigned char *data,
626
+ int len, int *copy);
627
+ void SSL_CTX_set_info_callback(SSL_CTX *ctx,
628
+ void (*cb) (const SSL *ssl, int type,
629
+ int val));
630
+ void (*SSL_CTX_get_info_callback(SSL_CTX *ctx)) (const SSL *ssl, int type,
631
+ int val);
632
+ void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx,
633
+ int (*client_cert_cb) (SSL *ssl, X509 **x509,
634
+ EVP_PKEY **pkey));
635
+ int (*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx)) (SSL *ssl, X509 **x509,
636
+ EVP_PKEY **pkey);
637
+ # ifndef OPENSSL_NO_ENGINE
638
+ __owur int SSL_CTX_set_client_cert_engine(SSL_CTX *ctx, ENGINE *e);
639
+ # endif
640
+ void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx,
641
+ int (*app_gen_cookie_cb) (SSL *ssl,
642
+ unsigned char
643
+ *cookie,
644
+ unsigned int
645
+ *cookie_len));
646
+ void SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx,
647
+ int (*app_verify_cookie_cb) (SSL *ssl,
648
+ const unsigned char
649
+ *cookie,
650
+ unsigned int
651
+ cookie_len));
652
+ # ifndef OPENSSL_NO_NEXTPROTONEG
653
+ void SSL_CTX_set_next_protos_advertised_cb(SSL_CTX *s,
654
+ int (*cb) (SSL *ssl,
655
+ const unsigned char
656
+ **out,
657
+ unsigned int *outlen,
658
+ void *arg), void *arg);
659
+ void SSL_CTX_set_next_proto_select_cb(SSL_CTX *s,
660
+ int (*cb) (SSL *ssl,
661
+ unsigned char **out,
662
+ unsigned char *outlen,
663
+ const unsigned char *in,
664
+ unsigned int inlen,
665
+ void *arg), void *arg);
666
+ void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data,
667
+ unsigned *len);
668
+ # endif
669
+
670
+ __owur int SSL_select_next_proto(unsigned char **out, unsigned char *outlen,
671
+ const unsigned char *in, unsigned int inlen,
672
+ const unsigned char *client,
673
+ unsigned int client_len);
674
+
675
+ # define OPENSSL_NPN_UNSUPPORTED 0
676
+ # define OPENSSL_NPN_NEGOTIATED 1
677
+ # define OPENSSL_NPN_NO_OVERLAP 2
678
+
679
+ __owur int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos,
680
+ unsigned int protos_len);
681
+ __owur int SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos,
682
+ unsigned int protos_len);
683
+ void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx,
684
+ int (*cb) (SSL *ssl,
685
+ const unsigned char **out,
686
+ unsigned char *outlen,
687
+ const unsigned char *in,
688
+ unsigned int inlen,
689
+ void *arg), void *arg);
690
+ void SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data,
691
+ unsigned int *len);
692
+
693
+ # ifndef OPENSSL_NO_PSK
694
+ /*
695
+ * the maximum length of the buffer given to callbacks containing the
696
+ * resulting identity/psk
697
+ */
698
+ # define PSK_MAX_IDENTITY_LEN 128
699
+ # define PSK_MAX_PSK_LEN 256
700
+ void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx,
701
+ unsigned int (*psk_client_callback) (SSL
702
+ *ssl,
703
+ const
704
+ char
705
+ *hint,
706
+ char
707
+ *identity,
708
+ unsigned
709
+ int
710
+ max_identity_len,
711
+ unsigned
712
+ char
713
+ *psk,
714
+ unsigned
715
+ int
716
+ max_psk_len));
717
+ void SSL_set_psk_client_callback(SSL *ssl,
718
+ unsigned int (*psk_client_callback) (SSL
719
+ *ssl,
720
+ const
721
+ char
722
+ *hint,
723
+ char
724
+ *identity,
725
+ unsigned
726
+ int
727
+ max_identity_len,
728
+ unsigned
729
+ char
730
+ *psk,
731
+ unsigned
732
+ int
733
+ max_psk_len));
734
+ void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx,
735
+ unsigned int (*psk_server_callback) (SSL
736
+ *ssl,
737
+ const
738
+ char
739
+ *identity,
740
+ unsigned
741
+ char
742
+ *psk,
743
+ unsigned
744
+ int
745
+ max_psk_len));
746
+ void SSL_set_psk_server_callback(SSL *ssl,
747
+ unsigned int (*psk_server_callback) (SSL
748
+ *ssl,
749
+ const
750
+ char
751
+ *identity,
752
+ unsigned
753
+ char
754
+ *psk,
755
+ unsigned
756
+ int
757
+ max_psk_len));
758
+ __owur int SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *identity_hint);
759
+ __owur int SSL_use_psk_identity_hint(SSL *s, const char *identity_hint);
760
+ const char *SSL_get_psk_identity_hint(const SSL *s);
761
+ const char *SSL_get_psk_identity(const SSL *s);
762
+ # endif
763
+
764
+ /* Register callbacks to handle custom TLS Extensions for client or server. */
765
+
766
+ __owur int SSL_CTX_has_client_custom_ext(const SSL_CTX *ctx,
767
+ unsigned int ext_type);
768
+
769
+ __owur int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, unsigned int ext_type,
770
+ custom_ext_add_cb add_cb,
771
+ custom_ext_free_cb free_cb,
772
+ void *add_arg,
773
+ custom_ext_parse_cb parse_cb,
774
+ void *parse_arg);
775
+
776
+ __owur int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, unsigned int ext_type,
777
+ custom_ext_add_cb add_cb,
778
+ custom_ext_free_cb free_cb,
779
+ void *add_arg,
780
+ custom_ext_parse_cb parse_cb,
781
+ void *parse_arg);
782
+
783
+ __owur int SSL_extension_supported(unsigned int ext_type);
784
+
785
+ # define SSL_NOTHING 1
786
+ # define SSL_WRITING 2
787
+ # define SSL_READING 3
788
+ # define SSL_X509_LOOKUP 4
789
+ # define SSL_ASYNC_PAUSED 5
790
+ # define SSL_ASYNC_NO_JOBS 6
791
+
792
+ /* These will only be used when doing non-blocking IO */
793
+ # define SSL_want_nothing(s) (SSL_want(s) == SSL_NOTHING)
794
+ # define SSL_want_read(s) (SSL_want(s) == SSL_READING)
795
+ # define SSL_want_write(s) (SSL_want(s) == SSL_WRITING)
796
+ # define SSL_want_x509_lookup(s) (SSL_want(s) == SSL_X509_LOOKUP)
797
+ # define SSL_want_async(s) (SSL_want(s) == SSL_ASYNC_PAUSED)
798
+ # define SSL_want_async_job(s) (SSL_want(s) == SSL_ASYNC_NO_JOBS)
799
+
800
+ # define SSL_MAC_FLAG_READ_MAC_STREAM 1
801
+ # define SSL_MAC_FLAG_WRITE_MAC_STREAM 2
802
+
803
+ #ifdef __cplusplus
804
+ }
805
+ #endif
806
+
807
+ # include <openssl/ssl2.h>
808
+ # include <openssl/ssl3.h>
809
+ # include <openssl/tls1.h> /* This is mostly sslv3 with a few tweaks */
810
+ # include <openssl/dtls1.h> /* Datagram TLS */
811
+ # include <openssl/srtp.h> /* Support for the use_srtp extension */
812
+
813
+ #ifdef __cplusplus
814
+ extern "C" {
815
+ #endif
816
+
817
+ /*
818
+ * These need to be after the above set of includes due to a compiler bug
819
+ * in VisualStudio 2015
820
+ */
821
+ DEFINE_STACK_OF_CONST(SSL_CIPHER)
822
+ DEFINE_STACK_OF(SSL_COMP)
823
+
824
+ /* compatibility */
825
+ # define SSL_set_app_data(s,arg) (SSL_set_ex_data(s,0,(char *)arg))
826
+ # define SSL_get_app_data(s) (SSL_get_ex_data(s,0))
827
+ # define SSL_SESSION_set_app_data(s,a) (SSL_SESSION_set_ex_data(s,0,(char *)a))
828
+ # define SSL_SESSION_get_app_data(s) (SSL_SESSION_get_ex_data(s,0))
829
+ # define SSL_CTX_get_app_data(ctx) (SSL_CTX_get_ex_data(ctx,0))
830
+ # define SSL_CTX_set_app_data(ctx,arg) (SSL_CTX_set_ex_data(ctx,0,(char *)arg))
831
+ DEPRECATEDIN_1_1_0(void SSL_set_debug(SSL *s, int debug))
832
+
833
+
834
+ /*
835
+ * The valid handshake states (one for each type message sent and one for each
836
+ * type of message received). There are also two "special" states:
837
+ * TLS = TLS or DTLS state
838
+ * DTLS = DTLS specific state
839
+ * CR/SR = Client Read/Server Read
840
+ * CW/SW = Client Write/Server Write
841
+ *
842
+ * The "special" states are:
843
+ * TLS_ST_BEFORE = No handshake has been initiated yet
844
+ * TLS_ST_OK = A handshake has been successfully completed
845
+ */
846
+ typedef enum {
847
+ TLS_ST_BEFORE,
848
+ TLS_ST_OK,
849
+ DTLS_ST_CR_HELLO_VERIFY_REQUEST,
850
+ TLS_ST_CR_SRVR_HELLO,
851
+ TLS_ST_CR_CERT,
852
+ TLS_ST_CR_CERT_STATUS,
853
+ TLS_ST_CR_KEY_EXCH,
854
+ TLS_ST_CR_CERT_REQ,
855
+ TLS_ST_CR_SRVR_DONE,
856
+ TLS_ST_CR_SESSION_TICKET,
857
+ TLS_ST_CR_CHANGE,
858
+ TLS_ST_CR_FINISHED,
859
+ TLS_ST_CW_CLNT_HELLO,
860
+ TLS_ST_CW_CERT,
861
+ TLS_ST_CW_KEY_EXCH,
862
+ TLS_ST_CW_CERT_VRFY,
863
+ TLS_ST_CW_CHANGE,
864
+ TLS_ST_CW_NEXT_PROTO,
865
+ TLS_ST_CW_FINISHED,
866
+ TLS_ST_SW_HELLO_REQ,
867
+ TLS_ST_SR_CLNT_HELLO,
868
+ DTLS_ST_SW_HELLO_VERIFY_REQUEST,
869
+ TLS_ST_SW_SRVR_HELLO,
870
+ TLS_ST_SW_CERT,
871
+ TLS_ST_SW_KEY_EXCH,
872
+ TLS_ST_SW_CERT_REQ,
873
+ TLS_ST_SW_SRVR_DONE,
874
+ TLS_ST_SR_CERT,
875
+ TLS_ST_SR_KEY_EXCH,
876
+ TLS_ST_SR_CERT_VRFY,
877
+ TLS_ST_SR_NEXT_PROTO,
878
+ TLS_ST_SR_CHANGE,
879
+ TLS_ST_SR_FINISHED,
880
+ TLS_ST_SW_SESSION_TICKET,
881
+ TLS_ST_SW_CERT_STATUS,
882
+ TLS_ST_SW_CHANGE,
883
+ TLS_ST_SW_FINISHED
884
+ } OSSL_HANDSHAKE_STATE;
885
+
886
+ /*
887
+ * Most of the following state values are no longer used and are defined to be
888
+ * the closest equivalent value in the current state machine code. Not all
889
+ * defines have an equivalent and are set to a dummy value (-1). SSL_ST_CONNECT
890
+ * and SSL_ST_ACCEPT are still in use in the definition of SSL_CB_ACCEPT_LOOP,
891
+ * SSL_CB_ACCEPT_EXIT, SSL_CB_CONNECT_LOOP and SSL_CB_CONNECT_EXIT.
892
+ */
893
+
894
+ # define SSL_ST_CONNECT 0x1000
895
+ # define SSL_ST_ACCEPT 0x2000
896
+
897
+ # define SSL_ST_MASK 0x0FFF
898
+
899
+ # define SSL_CB_LOOP 0x01
900
+ # define SSL_CB_EXIT 0x02
901
+ # define SSL_CB_READ 0x04
902
+ # define SSL_CB_WRITE 0x08
903
+ # define SSL_CB_ALERT 0x4000/* used in callback */
904
+ # define SSL_CB_READ_ALERT (SSL_CB_ALERT|SSL_CB_READ)
905
+ # define SSL_CB_WRITE_ALERT (SSL_CB_ALERT|SSL_CB_WRITE)
906
+ # define SSL_CB_ACCEPT_LOOP (SSL_ST_ACCEPT|SSL_CB_LOOP)
907
+ # define SSL_CB_ACCEPT_EXIT (SSL_ST_ACCEPT|SSL_CB_EXIT)
908
+ # define SSL_CB_CONNECT_LOOP (SSL_ST_CONNECT|SSL_CB_LOOP)
909
+ # define SSL_CB_CONNECT_EXIT (SSL_ST_CONNECT|SSL_CB_EXIT)
910
+ # define SSL_CB_HANDSHAKE_START 0x10
911
+ # define SSL_CB_HANDSHAKE_DONE 0x20
912
+
913
+ /* Is the SSL_connection established? */
914
+ # define SSL_in_connect_init(a) (SSL_in_init(a) && !SSL_is_server(a))
915
+ # define SSL_in_accept_init(a) (SSL_in_init(a) && SSL_is_server(a))
916
+ int SSL_in_init(SSL *s);
917
+ int SSL_in_before(SSL *s);
918
+ int SSL_is_init_finished(SSL *s);
919
+
920
+ /*
921
+ * The following 3 states are kept in ssl->rlayer.rstate when reads fail, you
922
+ * should not need these
923
+ */
924
+ # define SSL_ST_READ_HEADER 0xF0
925
+ # define SSL_ST_READ_BODY 0xF1
926
+ # define SSL_ST_READ_DONE 0xF2
927
+
928
+ /*-
929
+ * Obtain latest Finished message
930
+ * -- that we sent (SSL_get_finished)
931
+ * -- that we expected from peer (SSL_get_peer_finished).
932
+ * Returns length (0 == no Finished so far), copies up to 'count' bytes.
933
+ */
934
+ size_t SSL_get_finished(const SSL *s, void *buf, size_t count);
935
+ size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count);
936
+
937
+ /*
938
+ * use either SSL_VERIFY_NONE or SSL_VERIFY_PEER, the last 2 options are
939
+ * 'ored' with SSL_VERIFY_PEER if they are desired
940
+ */
941
+ # define SSL_VERIFY_NONE 0x00
942
+ # define SSL_VERIFY_PEER 0x01
943
+ # define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02
944
+ # define SSL_VERIFY_CLIENT_ONCE 0x04
945
+
946
+ # define OpenSSL_add_ssl_algorithms() SSL_library_init()
947
+ # if OPENSSL_API_COMPAT < 0x10100000L
948
+ # define SSLeay_add_ssl_algorithms() SSL_library_init()
949
+ # endif
950
+
951
+ /* More backward compatibility */
952
+ # define SSL_get_cipher(s) \
953
+ SSL_CIPHER_get_name(SSL_get_current_cipher(s))
954
+ # define SSL_get_cipher_bits(s,np) \
955
+ SSL_CIPHER_get_bits(SSL_get_current_cipher(s),np)
956
+ # define SSL_get_cipher_version(s) \
957
+ SSL_CIPHER_get_version(SSL_get_current_cipher(s))
958
+ # define SSL_get_cipher_name(s) \
959
+ SSL_CIPHER_get_name(SSL_get_current_cipher(s))
960
+ # define SSL_get_time(a) SSL_SESSION_get_time(a)
961
+ # define SSL_set_time(a,b) SSL_SESSION_set_time((a),(b))
962
+ # define SSL_get_timeout(a) SSL_SESSION_get_timeout(a)
963
+ # define SSL_set_timeout(a,b) SSL_SESSION_set_timeout((a),(b))
964
+
965
+ # define d2i_SSL_SESSION_bio(bp,s_id) ASN1_d2i_bio_of(SSL_SESSION,SSL_SESSION_new,d2i_SSL_SESSION,bp,s_id)
966
+ # define i2d_SSL_SESSION_bio(bp,s_id) ASN1_i2d_bio_of(SSL_SESSION,i2d_SSL_SESSION,bp,s_id)
967
+
968
+ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION)
969
+ # define SSL_AD_REASON_OFFSET 1000/* offset to get SSL_R_... value
970
+ * from SSL_AD_... */
971
+ /* These alert types are for SSLv3 and TLSv1 */
972
+ # define SSL_AD_CLOSE_NOTIFY SSL3_AD_CLOSE_NOTIFY
973
+ /* fatal */
974
+ # define SSL_AD_UNEXPECTED_MESSAGE SSL3_AD_UNEXPECTED_MESSAGE
975
+ /* fatal */
976
+ # define SSL_AD_BAD_RECORD_MAC SSL3_AD_BAD_RECORD_MAC
977
+ # define SSL_AD_DECRYPTION_FAILED TLS1_AD_DECRYPTION_FAILED
978
+ # define SSL_AD_RECORD_OVERFLOW TLS1_AD_RECORD_OVERFLOW
979
+ /* fatal */
980
+ # define SSL_AD_DECOMPRESSION_FAILURE SSL3_AD_DECOMPRESSION_FAILURE
981
+ /* fatal */
982
+ # define SSL_AD_HANDSHAKE_FAILURE SSL3_AD_HANDSHAKE_FAILURE
983
+ /* Not for TLS */
984
+ # define SSL_AD_NO_CERTIFICATE SSL3_AD_NO_CERTIFICATE
985
+ # define SSL_AD_BAD_CERTIFICATE SSL3_AD_BAD_CERTIFICATE
986
+ # define SSL_AD_UNSUPPORTED_CERTIFICATE SSL3_AD_UNSUPPORTED_CERTIFICATE
987
+ # define SSL_AD_CERTIFICATE_REVOKED SSL3_AD_CERTIFICATE_REVOKED
988
+ # define SSL_AD_CERTIFICATE_EXPIRED SSL3_AD_CERTIFICATE_EXPIRED
989
+ # define SSL_AD_CERTIFICATE_UNKNOWN SSL3_AD_CERTIFICATE_UNKNOWN
990
+ /* fatal */
991
+ # define SSL_AD_ILLEGAL_PARAMETER SSL3_AD_ILLEGAL_PARAMETER
992
+ /* fatal */
993
+ # define SSL_AD_UNKNOWN_CA TLS1_AD_UNKNOWN_CA
994
+ /* fatal */
995
+ # define SSL_AD_ACCESS_DENIED TLS1_AD_ACCESS_DENIED
996
+ /* fatal */
997
+ # define SSL_AD_DECODE_ERROR TLS1_AD_DECODE_ERROR
998
+ # define SSL_AD_DECRYPT_ERROR TLS1_AD_DECRYPT_ERROR
999
+ /* fatal */
1000
+ # define SSL_AD_EXPORT_RESTRICTION TLS1_AD_EXPORT_RESTRICTION
1001
+ /* fatal */
1002
+ # define SSL_AD_PROTOCOL_VERSION TLS1_AD_PROTOCOL_VERSION
1003
+ /* fatal */
1004
+ # define SSL_AD_INSUFFICIENT_SECURITY TLS1_AD_INSUFFICIENT_SECURITY
1005
+ /* fatal */
1006
+ # define SSL_AD_INTERNAL_ERROR TLS1_AD_INTERNAL_ERROR
1007
+ # define SSL_AD_USER_CANCELLED TLS1_AD_USER_CANCELLED
1008
+ # define SSL_AD_NO_RENEGOTIATION TLS1_AD_NO_RENEGOTIATION
1009
+ # define SSL_AD_UNSUPPORTED_EXTENSION TLS1_AD_UNSUPPORTED_EXTENSION
1010
+ # define SSL_AD_CERTIFICATE_UNOBTAINABLE TLS1_AD_CERTIFICATE_UNOBTAINABLE
1011
+ # define SSL_AD_UNRECOGNIZED_NAME TLS1_AD_UNRECOGNIZED_NAME
1012
+ # define SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE
1013
+ # define SSL_AD_BAD_CERTIFICATE_HASH_VALUE TLS1_AD_BAD_CERTIFICATE_HASH_VALUE
1014
+ /* fatal */
1015
+ # define SSL_AD_UNKNOWN_PSK_IDENTITY TLS1_AD_UNKNOWN_PSK_IDENTITY
1016
+ /* fatal */
1017
+ # define SSL_AD_INAPPROPRIATE_FALLBACK TLS1_AD_INAPPROPRIATE_FALLBACK
1018
+ # define SSL_AD_NO_APPLICATION_PROTOCOL TLS1_AD_NO_APPLICATION_PROTOCOL
1019
+ # define SSL_ERROR_NONE 0
1020
+ # define SSL_ERROR_SSL 1
1021
+ # define SSL_ERROR_WANT_READ 2
1022
+ # define SSL_ERROR_WANT_WRITE 3
1023
+ # define SSL_ERROR_WANT_X509_LOOKUP 4
1024
+ # define SSL_ERROR_SYSCALL 5/* look at error stack/return
1025
+ * value/errno */
1026
+ # define SSL_ERROR_ZERO_RETURN 6
1027
+ # define SSL_ERROR_WANT_CONNECT 7
1028
+ # define SSL_ERROR_WANT_ACCEPT 8
1029
+ # define SSL_ERROR_WANT_ASYNC 9
1030
+ # define SSL_ERROR_WANT_ASYNC_JOB 10
1031
+ # define SSL_CTRL_SET_TMP_DH 3
1032
+ # define SSL_CTRL_SET_TMP_ECDH 4
1033
+ # define SSL_CTRL_SET_TMP_DH_CB 6
1034
+ # define SSL_CTRL_GET_CLIENT_CERT_REQUEST 9
1035
+ # define SSL_CTRL_GET_NUM_RENEGOTIATIONS 10
1036
+ # define SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS 11
1037
+ # define SSL_CTRL_GET_TOTAL_RENEGOTIATIONS 12
1038
+ # define SSL_CTRL_GET_FLAGS 13
1039
+ # define SSL_CTRL_EXTRA_CHAIN_CERT 14
1040
+ # define SSL_CTRL_SET_MSG_CALLBACK 15
1041
+ # define SSL_CTRL_SET_MSG_CALLBACK_ARG 16
1042
+ /* only applies to datagram connections */
1043
+ # define SSL_CTRL_SET_MTU 17
1044
+ /* Stats */
1045
+ # define SSL_CTRL_SESS_NUMBER 20
1046
+ # define SSL_CTRL_SESS_CONNECT 21
1047
+ # define SSL_CTRL_SESS_CONNECT_GOOD 22
1048
+ # define SSL_CTRL_SESS_CONNECT_RENEGOTIATE 23
1049
+ # define SSL_CTRL_SESS_ACCEPT 24
1050
+ # define SSL_CTRL_SESS_ACCEPT_GOOD 25
1051
+ # define SSL_CTRL_SESS_ACCEPT_RENEGOTIATE 26
1052
+ # define SSL_CTRL_SESS_HIT 27
1053
+ # define SSL_CTRL_SESS_CB_HIT 28
1054
+ # define SSL_CTRL_SESS_MISSES 29
1055
+ # define SSL_CTRL_SESS_TIMEOUTS 30
1056
+ # define SSL_CTRL_SESS_CACHE_FULL 31
1057
+ # define SSL_CTRL_MODE 33
1058
+ # define SSL_CTRL_GET_READ_AHEAD 40
1059
+ # define SSL_CTRL_SET_READ_AHEAD 41
1060
+ # define SSL_CTRL_SET_SESS_CACHE_SIZE 42
1061
+ # define SSL_CTRL_GET_SESS_CACHE_SIZE 43
1062
+ # define SSL_CTRL_SET_SESS_CACHE_MODE 44
1063
+ # define SSL_CTRL_GET_SESS_CACHE_MODE 45
1064
+ # define SSL_CTRL_GET_MAX_CERT_LIST 50
1065
+ # define SSL_CTRL_SET_MAX_CERT_LIST 51
1066
+ # define SSL_CTRL_SET_MAX_SEND_FRAGMENT 52
1067
+ /* see tls1.h for macros based on these */
1068
+ # define SSL_CTRL_SET_TLSEXT_SERVERNAME_CB 53
1069
+ # define SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG 54
1070
+ # define SSL_CTRL_SET_TLSEXT_HOSTNAME 55
1071
+ # define SSL_CTRL_SET_TLSEXT_DEBUG_CB 56
1072
+ # define SSL_CTRL_SET_TLSEXT_DEBUG_ARG 57
1073
+ # define SSL_CTRL_GET_TLSEXT_TICKET_KEYS 58
1074
+ # define SSL_CTRL_SET_TLSEXT_TICKET_KEYS 59
1075
+ /*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT 60 */
1076
+ /*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB 61 */
1077
+ /*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG 62 */
1078
+ # define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB 63
1079
+ # define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG 64
1080
+ # define SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE 65
1081
+ # define SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS 66
1082
+ # define SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS 67
1083
+ # define SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS 68
1084
+ # define SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS 69
1085
+ # define SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP 70
1086
+ # define SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP 71
1087
+ # define SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB 72
1088
+ # define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME_CB 75
1089
+ # define SSL_CTRL_SET_SRP_VERIFY_PARAM_CB 76
1090
+ # define SSL_CTRL_SET_SRP_GIVE_CLIENT_PWD_CB 77
1091
+ # define SSL_CTRL_SET_SRP_ARG 78
1092
+ # define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME 79
1093
+ # define SSL_CTRL_SET_TLS_EXT_SRP_STRENGTH 80
1094
+ # define SSL_CTRL_SET_TLS_EXT_SRP_PASSWORD 81
1095
+ # ifndef OPENSSL_NO_HEARTBEATS
1096
+ # define SSL_CTRL_DTLS_EXT_SEND_HEARTBEAT 85
1097
+ # define SSL_CTRL_GET_DTLS_EXT_HEARTBEAT_PENDING 86
1098
+ # define SSL_CTRL_SET_DTLS_EXT_HEARTBEAT_NO_REQUESTS 87
1099
+ # endif
1100
+ # define DTLS_CTRL_GET_TIMEOUT 73
1101
+ # define DTLS_CTRL_HANDLE_TIMEOUT 74
1102
+ # define SSL_CTRL_GET_RI_SUPPORT 76
1103
+ # define SSL_CTRL_CLEAR_MODE 78
1104
+ # define SSL_CTRL_SET_NOT_RESUMABLE_SESS_CB 79
1105
+ # define SSL_CTRL_GET_EXTRA_CHAIN_CERTS 82
1106
+ # define SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS 83
1107
+ # define SSL_CTRL_CHAIN 88
1108
+ # define SSL_CTRL_CHAIN_CERT 89
1109
+ # define SSL_CTRL_GET_CURVES 90
1110
+ # define SSL_CTRL_SET_CURVES 91
1111
+ # define SSL_CTRL_SET_CURVES_LIST 92
1112
+ # define SSL_CTRL_GET_SHARED_CURVE 93
1113
+ # define SSL_CTRL_SET_SIGALGS 97
1114
+ # define SSL_CTRL_SET_SIGALGS_LIST 98
1115
+ # define SSL_CTRL_CERT_FLAGS 99
1116
+ # define SSL_CTRL_CLEAR_CERT_FLAGS 100
1117
+ # define SSL_CTRL_SET_CLIENT_SIGALGS 101
1118
+ # define SSL_CTRL_SET_CLIENT_SIGALGS_LIST 102
1119
+ # define SSL_CTRL_GET_CLIENT_CERT_TYPES 103
1120
+ # define SSL_CTRL_SET_CLIENT_CERT_TYPES 104
1121
+ # define SSL_CTRL_BUILD_CERT_CHAIN 105
1122
+ # define SSL_CTRL_SET_VERIFY_CERT_STORE 106
1123
+ # define SSL_CTRL_SET_CHAIN_CERT_STORE 107
1124
+ # define SSL_CTRL_GET_PEER_SIGNATURE_NID 108
1125
+ # define SSL_CTRL_GET_SERVER_TMP_KEY 109
1126
+ # define SSL_CTRL_GET_RAW_CIPHERLIST 110
1127
+ # define SSL_CTRL_GET_EC_POINT_FORMATS 111
1128
+ # define SSL_CTRL_GET_CHAIN_CERTS 115
1129
+ # define SSL_CTRL_SELECT_CURRENT_CERT 116
1130
+ # define SSL_CTRL_SET_CURRENT_CERT 117
1131
+ # define SSL_CTRL_SET_DH_AUTO 118
1132
+ # define DTLS_CTRL_SET_LINK_MTU 120
1133
+ # define DTLS_CTRL_GET_LINK_MIN_MTU 121
1134
+ # define SSL_CTRL_GET_EXTMS_SUPPORT 122
1135
+ # define SSL_CTRL_SET_MIN_PROTO_VERSION 123
1136
+ # define SSL_CTRL_SET_MAX_PROTO_VERSION 124
1137
+ # define SSL_CTRL_SET_SPLIT_SEND_FRAGMENT 125
1138
+ # define SSL_CTRL_SET_MAX_PIPELINES 126
1139
+ # define SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE 127
1140
+ # define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB 128
1141
+ # define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG 129
1142
+ # define SSL_CERT_SET_FIRST 1
1143
+ # define SSL_CERT_SET_NEXT 2
1144
+ # define SSL_CERT_SET_SERVER 3
1145
+ # define DTLSv1_get_timeout(ssl, arg) \
1146
+ SSL_ctrl(ssl,DTLS_CTRL_GET_TIMEOUT,0, (void *)arg)
1147
+ # define DTLSv1_handle_timeout(ssl) \
1148
+ SSL_ctrl(ssl,DTLS_CTRL_HANDLE_TIMEOUT,0, NULL)
1149
+ # define SSL_num_renegotiations(ssl) \
1150
+ SSL_ctrl((ssl),SSL_CTRL_GET_NUM_RENEGOTIATIONS,0,NULL)
1151
+ # define SSL_clear_num_renegotiations(ssl) \
1152
+ SSL_ctrl((ssl),SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS,0,NULL)
1153
+ # define SSL_total_renegotiations(ssl) \
1154
+ SSL_ctrl((ssl),SSL_CTRL_GET_TOTAL_RENEGOTIATIONS,0,NULL)
1155
+ # define SSL_CTX_set_tmp_dh(ctx,dh) \
1156
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH,0,(char *)dh)
1157
+ # define SSL_CTX_set_tmp_ecdh(ctx,ecdh) \
1158
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_ECDH,0,(char *)ecdh)
1159
+ # define SSL_CTX_set_dh_auto(ctx, onoff) \
1160
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_DH_AUTO,onoff,NULL)
1161
+ # define SSL_set_dh_auto(s, onoff) \
1162
+ SSL_ctrl(s,SSL_CTRL_SET_DH_AUTO,onoff,NULL)
1163
+ # define SSL_set_tmp_dh(ssl,dh) \
1164
+ SSL_ctrl(ssl,SSL_CTRL_SET_TMP_DH,0,(char *)dh)
1165
+ # define SSL_set_tmp_ecdh(ssl,ecdh) \
1166
+ SSL_ctrl(ssl,SSL_CTRL_SET_TMP_ECDH,0,(char *)ecdh)
1167
+ # define SSL_CTX_add_extra_chain_cert(ctx,x509) \
1168
+ SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509)
1169
+ # define SSL_CTX_get_extra_chain_certs(ctx,px509) \
1170
+ SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,0,px509)
1171
+ # define SSL_CTX_get_extra_chain_certs_only(ctx,px509) \
1172
+ SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,1,px509)
1173
+ # define SSL_CTX_clear_extra_chain_certs(ctx) \
1174
+ SSL_CTX_ctrl(ctx,SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS,0,NULL)
1175
+ # define SSL_CTX_set0_chain(ctx,sk) \
1176
+ SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)sk)
1177
+ # define SSL_CTX_set1_chain(ctx,sk) \
1178
+ SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)sk)
1179
+ # define SSL_CTX_add0_chain_cert(ctx,x509) \
1180
+ SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)x509)
1181
+ # define SSL_CTX_add1_chain_cert(ctx,x509) \
1182
+ SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)x509)
1183
+ # define SSL_CTX_get0_chain_certs(ctx,px509) \
1184
+ SSL_CTX_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509)
1185
+ # define SSL_CTX_clear_chain_certs(ctx) \
1186
+ SSL_CTX_set0_chain(ctx,NULL)
1187
+ # define SSL_CTX_build_cert_chain(ctx, flags) \
1188
+ SSL_CTX_ctrl(ctx,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL)
1189
+ # define SSL_CTX_select_current_cert(ctx,x509) \
1190
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)x509)
1191
+ # define SSL_CTX_set_current_cert(ctx, op) \
1192
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURRENT_CERT, op, NULL)
1193
+ # define SSL_CTX_set0_verify_cert_store(ctx,st) \
1194
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)st)
1195
+ # define SSL_CTX_set1_verify_cert_store(ctx,st) \
1196
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)st)
1197
+ # define SSL_CTX_set0_chain_cert_store(ctx,st) \
1198
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)st)
1199
+ # define SSL_CTX_set1_chain_cert_store(ctx,st) \
1200
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)st)
1201
+ # define SSL_set0_chain(ctx,sk) \
1202
+ SSL_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)sk)
1203
+ # define SSL_set1_chain(ctx,sk) \
1204
+ SSL_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)sk)
1205
+ # define SSL_add0_chain_cert(ctx,x509) \
1206
+ SSL_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)x509)
1207
+ # define SSL_add1_chain_cert(ctx,x509) \
1208
+ SSL_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)x509)
1209
+ # define SSL_get0_chain_certs(ctx,px509) \
1210
+ SSL_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509)
1211
+ # define SSL_clear_chain_certs(ctx) \
1212
+ SSL_set0_chain(ctx,NULL)
1213
+ # define SSL_build_cert_chain(s, flags) \
1214
+ SSL_ctrl(s,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL)
1215
+ # define SSL_select_current_cert(ctx,x509) \
1216
+ SSL_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)x509)
1217
+ # define SSL_set_current_cert(ctx,op) \
1218
+ SSL_ctrl(ctx,SSL_CTRL_SET_CURRENT_CERT, op, NULL)
1219
+ # define SSL_set0_verify_cert_store(s,st) \
1220
+ SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)st)
1221
+ # define SSL_set1_verify_cert_store(s,st) \
1222
+ SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)st)
1223
+ # define SSL_set0_chain_cert_store(s,st) \
1224
+ SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)st)
1225
+ # define SSL_set1_chain_cert_store(s,st) \
1226
+ SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)st)
1227
+ # define SSL_get1_curves(ctx, s) \
1228
+ SSL_ctrl(ctx,SSL_CTRL_GET_CURVES,0,(char *)s)
1229
+ # define SSL_CTX_set1_curves(ctx, clist, clistlen) \
1230
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURVES,clistlen,(char *)clist)
1231
+ # define SSL_CTX_set1_curves_list(ctx, s) \
1232
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURVES_LIST,0,(char *)s)
1233
+ # define SSL_set1_curves(ctx, clist, clistlen) \
1234
+ SSL_ctrl(ctx,SSL_CTRL_SET_CURVES,clistlen,(char *)clist)
1235
+ # define SSL_set1_curves_list(ctx, s) \
1236
+ SSL_ctrl(ctx,SSL_CTRL_SET_CURVES_LIST,0,(char *)s)
1237
+ # define SSL_get_shared_curve(s, n) \
1238
+ SSL_ctrl(s,SSL_CTRL_GET_SHARED_CURVE,n,NULL)
1239
+ # define SSL_CTX_set1_sigalgs(ctx, slist, slistlen) \
1240
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)slist)
1241
+ # define SSL_CTX_set1_sigalgs_list(ctx, s) \
1242
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)s)
1243
+ # define SSL_set1_sigalgs(ctx, slist, slistlen) \
1244
+ SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS,clistlen,(int *)slist)
1245
+ # define SSL_set1_sigalgs_list(ctx, s) \
1246
+ SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)s)
1247
+ # define SSL_CTX_set1_client_sigalgs(ctx, slist, slistlen) \
1248
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)slist)
1249
+ # define SSL_CTX_set1_client_sigalgs_list(ctx, s) \
1250
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)s)
1251
+ # define SSL_set1_client_sigalgs(ctx, slist, slistlen) \
1252
+ SSL_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,clistlen,(int *)slist)
1253
+ # define SSL_set1_client_sigalgs_list(ctx, s) \
1254
+ SSL_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)s)
1255
+ # define SSL_get0_certificate_types(s, clist) \
1256
+ SSL_ctrl(s, SSL_CTRL_GET_CLIENT_CERT_TYPES, 0, (char *)clist)
1257
+ # define SSL_CTX_set1_client_certificate_types(ctx, clist, clistlen) \
1258
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)clist)
1259
+ # define SSL_set1_client_certificate_types(s, clist, clistlen) \
1260
+ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)clist)
1261
+ # define SSL_get_peer_signature_nid(s, pn) \
1262
+ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn)
1263
+ # define SSL_get_server_tmp_key(s, pk) \
1264
+ SSL_ctrl(s,SSL_CTRL_GET_SERVER_TMP_KEY,0,pk)
1265
+ # define SSL_get0_raw_cipherlist(s, plst) \
1266
+ SSL_ctrl(s,SSL_CTRL_GET_RAW_CIPHERLIST,0,plst)
1267
+ # define SSL_get0_ec_point_formats(s, plst) \
1268
+ SSL_ctrl(s,SSL_CTRL_GET_EC_POINT_FORMATS,0,plst)
1269
+ #define SSL_CTX_set_min_proto_version(ctx, version) \
1270
+ SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL)
1271
+ #define SSL_CTX_set_max_proto_version(ctx, version) \
1272
+ SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MAX_PROTO_VERSION, version, NULL)
1273
+ #define SSL_set_min_proto_version(s, version) \
1274
+ SSL_ctrl(s, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL)
1275
+ #define SSL_set_max_proto_version(s, version) \
1276
+ SSL_ctrl(s, SSL_CTRL_SET_MAX_PROTO_VERSION, version, NULL)
1277
+
1278
+ #if OPENSSL_API_COMPAT < 0x10100000L
1279
+ /* Provide some compatibility macros for removed functionality. */
1280
+ # define SSL_CTX_need_tmp_RSA(ctx) 0
1281
+ # define SSL_CTX_set_tmp_rsa(ctx,rsa) 1
1282
+ # define SSL_need_tmp_RSA(ssl) 0
1283
+ # define SSL_set_tmp_rsa(ssl,rsa) 1
1284
+ # define SSL_CTX_set_ecdh_auto(dummy, onoff) ((onoff) != 0)
1285
+ # define SSL_set_ecdh_auto(dummy, onoff) ((onoff) != 0)
1286
+ /*
1287
+ * We "pretend" to call the callback to avoid warnings about unused static
1288
+ * functions.
1289
+ */
1290
+ # define SSL_CTX_set_tmp_rsa_callback(ctx, cb) while(0) (cb)(NULL, 0, 0)
1291
+ # define SSL_set_tmp_rsa_callback(ssl, cb) while(0) (cb)(NULL, 0, 0)
1292
+ #endif
1293
+
1294
+ __owur const BIO_METHOD *BIO_f_ssl(void);
1295
+ __owur BIO *BIO_new_ssl(SSL_CTX *ctx, int client);
1296
+ __owur BIO *BIO_new_ssl_connect(SSL_CTX *ctx);
1297
+ __owur BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx);
1298
+ __owur int BIO_ssl_copy_session_id(BIO *to, BIO *from);
1299
+ void BIO_ssl_shutdown(BIO *ssl_bio);
1300
+
1301
+ __owur int SSL_CTX_set_cipher_list(SSL_CTX *, const char *str);
1302
+ __owur SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth);
1303
+ int SSL_CTX_up_ref(SSL_CTX *ctx);
1304
+ void SSL_CTX_free(SSL_CTX *);
1305
+ __owur long SSL_CTX_set_timeout(SSL_CTX *ctx, long t);
1306
+ __owur long SSL_CTX_get_timeout(const SSL_CTX *ctx);
1307
+ __owur X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *);
1308
+ void SSL_CTX_set_cert_store(SSL_CTX *, X509_STORE *);
1309
+ __owur int SSL_want(const SSL *s);
1310
+ __owur int SSL_clear(SSL *s);
1311
+
1312
+ void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm);
1313
+
1314
+ __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s);
1315
+ __owur int SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits);
1316
+ __owur const char *SSL_CIPHER_get_version(const SSL_CIPHER *c);
1317
+ __owur const char *SSL_CIPHER_get_name(const SSL_CIPHER *c);
1318
+ __owur uint32_t SSL_CIPHER_get_id(const SSL_CIPHER *c);
1319
+ __owur int SSL_CIPHER_get_kx_nid(const SSL_CIPHER *c);
1320
+ __owur int SSL_CIPHER_get_auth_nid(const SSL_CIPHER *c);
1321
+ __owur int SSL_CIPHER_is_aead(const SSL_CIPHER *c);
1322
+
1323
+ __owur int SSL_get_fd(const SSL *s);
1324
+ __owur int SSL_get_rfd(const SSL *s);
1325
+ __owur int SSL_get_wfd(const SSL *s);
1326
+ __owur const char *SSL_get_cipher_list(const SSL *s, int n);
1327
+ __owur char *SSL_get_shared_ciphers(const SSL *s, char *buf, int len);
1328
+ __owur int SSL_get_read_ahead(const SSL *s);
1329
+ __owur int SSL_pending(const SSL *s);
1330
+ __owur int SSL_has_pending(const SSL *s);
1331
+ # ifndef OPENSSL_NO_SOCK
1332
+ __owur int SSL_set_fd(SSL *s, int fd);
1333
+ __owur int SSL_set_rfd(SSL *s, int fd);
1334
+ __owur int SSL_set_wfd(SSL *s, int fd);
1335
+ # endif
1336
+ void SSL_set0_rbio(SSL *s, BIO *rbio);
1337
+ void SSL_set0_wbio(SSL *s, BIO *wbio);
1338
+ void SSL_set_bio(SSL *s, BIO *rbio, BIO *wbio);
1339
+ __owur BIO *SSL_get_rbio(const SSL *s);
1340
+ __owur BIO *SSL_get_wbio(const SSL *s);
1341
+ __owur int SSL_set_cipher_list(SSL *s, const char *str);
1342
+ void SSL_set_read_ahead(SSL *s, int yes);
1343
+ __owur int SSL_get_verify_mode(const SSL *s);
1344
+ __owur int SSL_get_verify_depth(const SSL *s);
1345
+ __owur int (*SSL_get_verify_callback(const SSL *s)) (int, X509_STORE_CTX *);
1346
+ void SSL_set_verify(SSL *s, int mode,
1347
+ int (*callback) (int ok, X509_STORE_CTX *ctx));
1348
+ void SSL_set_verify_depth(SSL *s, int depth);
1349
+ void SSL_set_cert_cb(SSL *s, int (*cb) (SSL *ssl, void *arg), void *arg);
1350
+ # ifndef OPENSSL_NO_RSA
1351
+ __owur int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa);
1352
+ __owur int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, const unsigned char *d, long len);
1353
+ # endif
1354
+ __owur int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey);
1355
+ __owur int SSL_use_PrivateKey_ASN1(int pk, SSL *ssl, const unsigned char *d,
1356
+ long len);
1357
+ __owur int SSL_use_certificate(SSL *ssl, X509 *x);
1358
+ __owur int SSL_use_certificate_ASN1(SSL *ssl, const unsigned char *d, int len);
1359
+
1360
+ /* Set serverinfo data for the current active cert. */
1361
+ __owur int SSL_CTX_use_serverinfo(SSL_CTX *ctx, const unsigned char *serverinfo,
1362
+ size_t serverinfo_length);
1363
+ __owur int SSL_CTX_use_serverinfo_file(SSL_CTX *ctx, const char *file);
1364
+
1365
+ #ifndef OPENSSL_NO_RSA
1366
+ __owur int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type);
1367
+ #endif
1368
+
1369
+ __owur int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type);
1370
+ __owur int SSL_use_certificate_file(SSL *ssl, const char *file, int type);
1371
+
1372
+ #ifndef OPENSSL_NO_RSA
1373
+ __owur int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file, int type);
1374
+ #endif
1375
+ __owur int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type);
1376
+ __owur int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, int type);
1377
+ /* PEM type */
1378
+ __owur int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file);
1379
+ __owur int SSL_use_certificate_chain_file(SSL *ssl, const char *file);
1380
+ __owur STACK_OF(X509_NAME) *SSL_load_client_CA_file(const char *file);
1381
+ __owur int SSL_add_file_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs,
1382
+ const char *file);
1383
+ int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs,
1384
+ const char *dir);
1385
+
1386
+ #if OPENSSL_API_COMPAT < 0x10100000L
1387
+ # define SSL_load_error_strings() \
1388
+ OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \
1389
+ | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL)
1390
+ #endif
1391
+
1392
+ __owur const char *SSL_state_string(const SSL *s);
1393
+ __owur const char *SSL_rstate_string(const SSL *s);
1394
+ __owur const char *SSL_state_string_long(const SSL *s);
1395
+ __owur const char *SSL_rstate_string_long(const SSL *s);
1396
+ __owur long SSL_SESSION_get_time(const SSL_SESSION *s);
1397
+ __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t);
1398
+ __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s);
1399
+ __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t);
1400
+ __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s);
1401
+ __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s);
1402
+ __owur const SSL_CIPHER *SSL_SESSION_get0_cipher(const SSL_SESSION *s);
1403
+ __owur int SSL_SESSION_has_ticket(const SSL_SESSION *s);
1404
+ __owur unsigned long SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *s);
1405
+ void SSL_SESSION_get0_ticket(const SSL_SESSION *s, const unsigned char **tick,
1406
+ size_t *len);
1407
+ __owur int SSL_copy_session_id(SSL *to, const SSL *from);
1408
+ __owur X509 *SSL_SESSION_get0_peer(SSL_SESSION *s);
1409
+ __owur int SSL_SESSION_set1_id_context(SSL_SESSION *s, const unsigned char *sid_ctx,
1410
+ unsigned int sid_ctx_len);
1411
+ __owur int SSL_SESSION_set1_id(SSL_SESSION *s, const unsigned char *sid,
1412
+ unsigned int sid_len);
1413
+
1414
+ __owur SSL_SESSION *SSL_SESSION_new(void);
1415
+ const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s,
1416
+ unsigned int *len);
1417
+ const unsigned char *SSL_SESSION_get0_id_context(const SSL_SESSION *s,
1418
+ unsigned int *len);
1419
+ __owur unsigned int SSL_SESSION_get_compress_id(const SSL_SESSION *s);
1420
+ # ifndef OPENSSL_NO_STDIO
1421
+ int SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *ses);
1422
+ # endif
1423
+ int SSL_SESSION_print(BIO *fp, const SSL_SESSION *ses);
1424
+ int SSL_SESSION_print_keylog(BIO *bp, const SSL_SESSION *x);
1425
+ int SSL_SESSION_up_ref(SSL_SESSION *ses);
1426
+ void SSL_SESSION_free(SSL_SESSION *ses);
1427
+ __owur int i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp);
1428
+ __owur int SSL_set_session(SSL *to, SSL_SESSION *session);
1429
+ __owur int SSL_CTX_add_session(SSL_CTX *s, SSL_SESSION *c);
1430
+ int SSL_CTX_remove_session(SSL_CTX *, SSL_SESSION *c);
1431
+ __owur int SSL_CTX_set_generate_session_id(SSL_CTX *, GEN_SESSION_CB);
1432
+ __owur int SSL_set_generate_session_id(SSL *, GEN_SESSION_CB);
1433
+ __owur int SSL_has_matching_session_id(const SSL *ssl, const unsigned char *id,
1434
+ unsigned int id_len);
1435
+ SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp,
1436
+ long length);
1437
+
1438
+ # ifdef HEADER_X509_H
1439
+ __owur X509 *SSL_get_peer_certificate(const SSL *s);
1440
+ # endif
1441
+
1442
+ __owur STACK_OF(X509) *SSL_get_peer_cert_chain(const SSL *s);
1443
+
1444
+ __owur int SSL_CTX_get_verify_mode(const SSL_CTX *ctx);
1445
+ __owur int SSL_CTX_get_verify_depth(const SSL_CTX *ctx);
1446
+ __owur int (*SSL_CTX_get_verify_callback(const SSL_CTX *ctx)) (int,
1447
+ X509_STORE_CTX *);
1448
+ void SSL_CTX_set_verify(SSL_CTX *ctx, int mode,
1449
+ int (*callback) (int, X509_STORE_CTX *));
1450
+ void SSL_CTX_set_verify_depth(SSL_CTX *ctx, int depth);
1451
+ void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx,
1452
+ int (*cb) (X509_STORE_CTX *, void *),
1453
+ void *arg);
1454
+ void SSL_CTX_set_cert_cb(SSL_CTX *c, int (*cb) (SSL *ssl, void *arg),
1455
+ void *arg);
1456
+ # ifndef OPENSSL_NO_RSA
1457
+ __owur int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa);
1458
+ __owur int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, const unsigned char *d,
1459
+ long len);
1460
+ # endif
1461
+ __owur int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey);
1462
+ __owur int SSL_CTX_use_PrivateKey_ASN1(int pk, SSL_CTX *ctx,
1463
+ const unsigned char *d, long len);
1464
+ __owur int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x);
1465
+ __owur int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len,
1466
+ const unsigned char *d);
1467
+
1468
+ void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb);
1469
+ void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u);
1470
+ pem_password_cb *SSL_CTX_get_default_passwd_cb(SSL_CTX *ctx);
1471
+ void *SSL_CTX_get_default_passwd_cb_userdata(SSL_CTX *ctx);
1472
+ void SSL_set_default_passwd_cb(SSL *s, pem_password_cb *cb);
1473
+ void SSL_set_default_passwd_cb_userdata(SSL *s, void *u);
1474
+ pem_password_cb *SSL_get_default_passwd_cb(SSL *s);
1475
+ void *SSL_get_default_passwd_cb_userdata(SSL *s);
1476
+
1477
+ __owur int SSL_CTX_check_private_key(const SSL_CTX *ctx);
1478
+ __owur int SSL_check_private_key(const SSL *ctx);
1479
+
1480
+ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, const unsigned char *sid_ctx,
1481
+ unsigned int sid_ctx_len);
1482
+
1483
+ SSL *SSL_new(SSL_CTX *ctx);
1484
+ int SSL_up_ref(SSL *s);
1485
+ int SSL_is_dtls(const SSL *s);
1486
+ __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx,
1487
+ unsigned int sid_ctx_len);
1488
+
1489
+ __owur int SSL_CTX_set_purpose(SSL_CTX *s, int purpose);
1490
+ __owur int SSL_set_purpose(SSL *s, int purpose);
1491
+ __owur int SSL_CTX_set_trust(SSL_CTX *s, int trust);
1492
+ __owur int SSL_set_trust(SSL *s, int trust);
1493
+
1494
+ __owur int SSL_set1_host(SSL *s, const char *hostname);
1495
+ __owur int SSL_add1_host(SSL *s, const char *hostname);
1496
+ __owur const char *SSL_get0_peername(SSL *s);
1497
+ void SSL_set_hostflags(SSL *s, unsigned int flags);
1498
+
1499
+ __owur int SSL_CTX_dane_enable(SSL_CTX *ctx);
1500
+ __owur int SSL_CTX_dane_mtype_set(SSL_CTX *ctx, const EVP_MD *md,
1501
+ uint8_t mtype, uint8_t ord);
1502
+ __owur int SSL_dane_enable(SSL *s, const char *basedomain);
1503
+ __owur int SSL_dane_tlsa_add(SSL *s, uint8_t usage, uint8_t selector,
1504
+ uint8_t mtype, unsigned char *data, size_t dlen);
1505
+ __owur int SSL_get0_dane_authority(SSL *s, X509 **mcert, EVP_PKEY **mspki);
1506
+ __owur int SSL_get0_dane_tlsa(SSL *s, uint8_t *usage, uint8_t *selector,
1507
+ uint8_t *mtype, unsigned const char **data,
1508
+ size_t *dlen);
1509
+ /*
1510
+ * Bridge opacity barrier between libcrypt and libssl, also needed to support
1511
+ * offline testing in test/danetest.c
1512
+ */
1513
+ SSL_DANE *SSL_get0_dane(SSL *ssl);
1514
+ /*
1515
+ * DANE flags
1516
+ */
1517
+ unsigned long SSL_CTX_dane_set_flags(SSL_CTX *ctx, unsigned long flags);
1518
+ unsigned long SSL_CTX_dane_clear_flags(SSL_CTX *ctx, unsigned long flags);
1519
+ unsigned long SSL_dane_set_flags(SSL *ssl, unsigned long flags);
1520
+ unsigned long SSL_dane_clear_flags(SSL *ssl, unsigned long flags);
1521
+
1522
+ __owur int SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm);
1523
+ __owur int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm);
1524
+
1525
+ __owur X509_VERIFY_PARAM *SSL_CTX_get0_param(SSL_CTX *ctx);
1526
+ __owur X509_VERIFY_PARAM *SSL_get0_param(SSL *ssl);
1527
+
1528
+ # ifndef OPENSSL_NO_SRP
1529
+ int SSL_CTX_set_srp_username(SSL_CTX *ctx, char *name);
1530
+ int SSL_CTX_set_srp_password(SSL_CTX *ctx, char *password);
1531
+ int SSL_CTX_set_srp_strength(SSL_CTX *ctx, int strength);
1532
+ int SSL_CTX_set_srp_client_pwd_callback(SSL_CTX *ctx,
1533
+ char *(*cb) (SSL *, void *));
1534
+ int SSL_CTX_set_srp_verify_param_callback(SSL_CTX *ctx,
1535
+ int (*cb) (SSL *, void *));
1536
+ int SSL_CTX_set_srp_username_callback(SSL_CTX *ctx,
1537
+ int (*cb) (SSL *, int *, void *));
1538
+ int SSL_CTX_set_srp_cb_arg(SSL_CTX *ctx, void *arg);
1539
+
1540
+ int SSL_set_srp_server_param(SSL *s, const BIGNUM *N, const BIGNUM *g,
1541
+ BIGNUM *sa, BIGNUM *v, char *info);
1542
+ int SSL_set_srp_server_param_pw(SSL *s, const char *user, const char *pass,
1543
+ const char *grp);
1544
+
1545
+ __owur BIGNUM *SSL_get_srp_g(SSL *s);
1546
+ __owur BIGNUM *SSL_get_srp_N(SSL *s);
1547
+
1548
+ __owur char *SSL_get_srp_username(SSL *s);
1549
+ __owur char *SSL_get_srp_userinfo(SSL *s);
1550
+ # endif
1551
+
1552
+ void SSL_certs_clear(SSL *s);
1553
+ void SSL_free(SSL *ssl);
1554
+ # ifdef OSSL_ASYNC_FD
1555
+ /*
1556
+ * Windows application developer has to include windows.h to use these.
1557
+ */
1558
+ __owur int SSL_waiting_for_async(SSL *s);
1559
+ __owur int SSL_get_all_async_fds(SSL *s, OSSL_ASYNC_FD *fds, size_t *numfds);
1560
+ __owur int SSL_get_changed_async_fds(SSL *s, OSSL_ASYNC_FD *addfd,
1561
+ size_t *numaddfds, OSSL_ASYNC_FD *delfd,
1562
+ size_t *numdelfds);
1563
+ # endif
1564
+ __owur int SSL_accept(SSL *ssl);
1565
+ __owur int SSL_connect(SSL *ssl);
1566
+ __owur int SSL_read(SSL *ssl, void *buf, int num);
1567
+ __owur int SSL_peek(SSL *ssl, void *buf, int num);
1568
+ __owur int SSL_write(SSL *ssl, const void *buf, int num);
1569
+ long SSL_ctrl(SSL *ssl, int cmd, long larg, void *parg);
1570
+ long SSL_callback_ctrl(SSL *, int, void (*)(void));
1571
+ long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg);
1572
+ long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void));
1573
+
1574
+ __owur int SSL_get_error(const SSL *s, int ret_code);
1575
+ __owur const char *SSL_get_version(const SSL *s);
1576
+
1577
+ /* This sets the 'default' SSL version that SSL_new() will create */
1578
+ __owur int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth);
1579
+
1580
+ # ifndef OPENSSL_NO_SSL3_METHOD
1581
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_method(void)) /* SSLv3 */
1582
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_server_method(void)) /* SSLv3 */
1583
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_client_method(void)) /* SSLv3 */
1584
+ # endif
1585
+
1586
+ #define SSLv23_method TLS_method
1587
+ #define SSLv23_server_method TLS_server_method
1588
+ #define SSLv23_client_method TLS_client_method
1589
+
1590
+ /* Negotiate highest available SSL/TLS version */
1591
+ __owur const SSL_METHOD *TLS_method(void);
1592
+ __owur const SSL_METHOD *TLS_server_method(void);
1593
+ __owur const SSL_METHOD *TLS_client_method(void);
1594
+
1595
+ # ifndef OPENSSL_NO_TLS1_METHOD
1596
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_method(void)) /* TLSv1.0 */
1597
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_server_method(void)) /* TLSv1.0 */
1598
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_client_method(void)) /* TLSv1.0 */
1599
+ # endif
1600
+
1601
+ # ifndef OPENSSL_NO_TLS1_1_METHOD
1602
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_method(void)) /* TLSv1.1 */
1603
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_server_method(void)) /* TLSv1.1 */
1604
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_client_method(void)) /* TLSv1.1 */
1605
+ # endif
1606
+
1607
+ # ifndef OPENSSL_NO_TLS1_2_METHOD
1608
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_method(void)) /* TLSv1.2 */
1609
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_server_method(void)) /* TLSv1.2 */
1610
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_client_method(void)) /* TLSv1.2 */
1611
+ # endif
1612
+
1613
+ # ifndef OPENSSL_NO_DTLS1_METHOD
1614
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_method(void)) /* DTLSv1.0 */
1615
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_server_method(void)) /* DTLSv1.0 */
1616
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_client_method(void)) /* DTLSv1.0 */
1617
+ # endif
1618
+
1619
+ # ifndef OPENSSL_NO_DTLS1_2_METHOD
1620
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_method(void)) /* DTLSv1.2 */
1621
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_server_method(void)) /* DTLSv1.2 */
1622
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_client_method(void)) /* DTLSv1.2 */
1623
+ #endif
1624
+
1625
+ __owur const SSL_METHOD *DTLS_method(void); /* DTLS 1.0 and 1.2 */
1626
+ __owur const SSL_METHOD *DTLS_server_method(void); /* DTLS 1.0 and 1.2 */
1627
+ __owur const SSL_METHOD *DTLS_client_method(void); /* DTLS 1.0 and 1.2 */
1628
+
1629
+ __owur STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *s);
1630
+ __owur STACK_OF(SSL_CIPHER) *SSL_CTX_get_ciphers(const SSL_CTX *ctx);
1631
+ __owur STACK_OF(SSL_CIPHER) *SSL_get_client_ciphers(const SSL *s);
1632
+ __owur STACK_OF(SSL_CIPHER) *SSL_get1_supported_ciphers(SSL *s);
1633
+
1634
+ __owur int SSL_do_handshake(SSL *s);
1635
+ int SSL_renegotiate(SSL *s);
1636
+ __owur int SSL_renegotiate_abbreviated(SSL *s);
1637
+ __owur int SSL_renegotiate_pending(SSL *s);
1638
+ int SSL_shutdown(SSL *s);
1639
+
1640
+ __owur const SSL_METHOD *SSL_CTX_get_ssl_method(SSL_CTX *ctx);
1641
+ __owur const SSL_METHOD *SSL_get_ssl_method(SSL *s);
1642
+ __owur int SSL_set_ssl_method(SSL *s, const SSL_METHOD *method);
1643
+ __owur const char *SSL_alert_type_string_long(int value);
1644
+ __owur const char *SSL_alert_type_string(int value);
1645
+ __owur const char *SSL_alert_desc_string_long(int value);
1646
+ __owur const char *SSL_alert_desc_string(int value);
1647
+
1648
+ void SSL_set_client_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list);
1649
+ void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list);
1650
+ __owur STACK_OF(X509_NAME) *SSL_get_client_CA_list(const SSL *s);
1651
+ __owur STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(const SSL_CTX *s);
1652
+ __owur int SSL_add_client_CA(SSL *ssl, X509 *x);
1653
+ __owur int SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *x);
1654
+
1655
+ void SSL_set_connect_state(SSL *s);
1656
+ void SSL_set_accept_state(SSL *s);
1657
+
1658
+ __owur long SSL_get_default_timeout(const SSL *s);
1659
+
1660
+ #if OPENSSL_API_COMPAT < 0x10100000L
1661
+ # define SSL_library_init() OPENSSL_init_ssl(0, NULL)
1662
+ #endif
1663
+
1664
+ __owur char *SSL_CIPHER_description(const SSL_CIPHER *, char *buf, int size);
1665
+ __owur STACK_OF(X509_NAME) *SSL_dup_CA_list(STACK_OF(X509_NAME) *sk);
1666
+
1667
+ __owur SSL *SSL_dup(SSL *ssl);
1668
+
1669
+ __owur X509 *SSL_get_certificate(const SSL *ssl);
1670
+ /*
1671
+ * EVP_PKEY
1672
+ */ struct evp_pkey_st *SSL_get_privatekey(const SSL *ssl);
1673
+
1674
+ __owur X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx);
1675
+ __owur EVP_PKEY *SSL_CTX_get0_privatekey(const SSL_CTX *ctx);
1676
+
1677
+ void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode);
1678
+ __owur int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx);
1679
+ void SSL_set_quiet_shutdown(SSL *ssl, int mode);
1680
+ __owur int SSL_get_quiet_shutdown(const SSL *ssl);
1681
+ void SSL_set_shutdown(SSL *ssl, int mode);
1682
+ __owur int SSL_get_shutdown(const SSL *ssl);
1683
+ __owur int SSL_version(const SSL *ssl);
1684
+ __owur int SSL_client_version(const SSL *s);
1685
+ __owur int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx);
1686
+ __owur int SSL_CTX_set_default_verify_dir(SSL_CTX *ctx);
1687
+ __owur int SSL_CTX_set_default_verify_file(SSL_CTX *ctx);
1688
+ __owur int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile,
1689
+ const char *CApath);
1690
+ # define SSL_get0_session SSL_get_session/* just peek at pointer */
1691
+ __owur SSL_SESSION *SSL_get_session(const SSL *ssl);
1692
+ __owur SSL_SESSION *SSL_get1_session(SSL *ssl); /* obtain a reference count */
1693
+ __owur SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl);
1694
+ SSL_CTX *SSL_set_SSL_CTX(SSL *ssl, SSL_CTX *ctx);
1695
+ void SSL_set_info_callback(SSL *ssl,
1696
+ void (*cb) (const SSL *ssl, int type, int val));
1697
+ void (*SSL_get_info_callback(const SSL *ssl)) (const SSL *ssl, int type,
1698
+ int val);
1699
+ __owur OSSL_HANDSHAKE_STATE SSL_get_state(const SSL *ssl);
1700
+
1701
+ void SSL_set_verify_result(SSL *ssl, long v);
1702
+ __owur long SSL_get_verify_result(const SSL *ssl);
1703
+ __owur STACK_OF(X509) *SSL_get0_verified_chain(const SSL *s);
1704
+
1705
+ __owur size_t SSL_get_client_random(const SSL *ssl, unsigned char *out,
1706
+ size_t outlen);
1707
+ __owur size_t SSL_get_server_random(const SSL *ssl, unsigned char *out,
1708
+ size_t outlen);
1709
+ __owur size_t SSL_SESSION_get_master_key(const SSL_SESSION *ssl,
1710
+ unsigned char *out, size_t outlen);
1711
+
1712
+ #define SSL_get_ex_new_index(l, p, newf, dupf, freef) \
1713
+ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL, l, p, newf, dupf, freef)
1714
+ __owur int SSL_set_ex_data(SSL *ssl, int idx, void *data);
1715
+ void *SSL_get_ex_data(const SSL *ssl, int idx);
1716
+ #define SSL_SESSION_get_ex_new_index(l, p, newf, dupf, freef) \
1717
+ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_SESSION, l, p, newf, dupf, freef)
1718
+ __owur int SSL_SESSION_set_ex_data(SSL_SESSION *ss, int idx, void *data);
1719
+ void *SSL_SESSION_get_ex_data(const SSL_SESSION *ss, int idx);
1720
+ #define SSL_CTX_get_ex_new_index(l, p, newf, dupf, freef) \
1721
+ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_CTX, l, p, newf, dupf, freef)
1722
+ __owur int SSL_CTX_set_ex_data(SSL_CTX *ssl, int idx, void *data);
1723
+ void *SSL_CTX_get_ex_data(const SSL_CTX *ssl, int idx);
1724
+
1725
+ __owur int SSL_get_ex_data_X509_STORE_CTX_idx(void);
1726
+
1727
+ # define SSL_CTX_sess_set_cache_size(ctx,t) \
1728
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_SIZE,t,NULL)
1729
+ # define SSL_CTX_sess_get_cache_size(ctx) \
1730
+ SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_SIZE,0,NULL)
1731
+ # define SSL_CTX_set_session_cache_mode(ctx,m) \
1732
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_MODE,m,NULL)
1733
+ # define SSL_CTX_get_session_cache_mode(ctx) \
1734
+ SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_MODE,0,NULL)
1735
+
1736
+ # define SSL_CTX_get_default_read_ahead(ctx) SSL_CTX_get_read_ahead(ctx)
1737
+ # define SSL_CTX_set_default_read_ahead(ctx,m) SSL_CTX_set_read_ahead(ctx,m)
1738
+ # define SSL_CTX_get_read_ahead(ctx) \
1739
+ SSL_CTX_ctrl(ctx,SSL_CTRL_GET_READ_AHEAD,0,NULL)
1740
+ # define SSL_CTX_set_read_ahead(ctx,m) \
1741
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_READ_AHEAD,m,NULL)
1742
+ # define SSL_CTX_get_max_cert_list(ctx) \
1743
+ SSL_CTX_ctrl(ctx,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL)
1744
+ # define SSL_CTX_set_max_cert_list(ctx,m) \
1745
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL)
1746
+ # define SSL_get_max_cert_list(ssl) \
1747
+ SSL_ctrl(ssl,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL)
1748
+ # define SSL_set_max_cert_list(ssl,m) \
1749
+ SSL_ctrl(ssl,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL)
1750
+
1751
+ # define SSL_CTX_set_max_send_fragment(ctx,m) \
1752
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL)
1753
+ # define SSL_set_max_send_fragment(ssl,m) \
1754
+ SSL_ctrl(ssl,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL)
1755
+ # define SSL_CTX_set_split_send_fragment(ctx,m) \
1756
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SPLIT_SEND_FRAGMENT,m,NULL)
1757
+ # define SSL_set_split_send_fragment(ssl,m) \
1758
+ SSL_ctrl(ssl,SSL_CTRL_SET_SPLIT_SEND_FRAGMENT,m,NULL)
1759
+ # define SSL_CTX_set_max_pipelines(ctx,m) \
1760
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_PIPELINES,m,NULL)
1761
+ # define SSL_set_max_pipelines(ssl,m) \
1762
+ SSL_ctrl(ssl,SSL_CTRL_SET_MAX_PIPELINES,m,NULL)
1763
+
1764
+ void SSL_CTX_set_default_read_buffer_len(SSL_CTX *ctx, size_t len);
1765
+ void SSL_set_default_read_buffer_len(SSL *s, size_t len);
1766
+
1767
+ # ifndef OPENSSL_NO_DH
1768
+ /* NB: the |keylength| is only applicable when is_export is true */
1769
+ void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx,
1770
+ DH *(*dh) (SSL *ssl, int is_export,
1771
+ int keylength));
1772
+ void SSL_set_tmp_dh_callback(SSL *ssl,
1773
+ DH *(*dh) (SSL *ssl, int is_export,
1774
+ int keylength));
1775
+ # endif
1776
+
1777
+ __owur const COMP_METHOD *SSL_get_current_compression(SSL *s);
1778
+ __owur const COMP_METHOD *SSL_get_current_expansion(SSL *s);
1779
+ __owur const char *SSL_COMP_get_name(const COMP_METHOD *comp);
1780
+ STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void);
1781
+ __owur STACK_OF(SSL_COMP) *SSL_COMP_set0_compression_methods(STACK_OF(SSL_COMP)
1782
+ *meths);
1783
+ #if OPENSSL_API_COMPAT < 0x10100000L
1784
+ # define SSL_COMP_free_compression_methods() while(0) continue
1785
+ #endif
1786
+ __owur int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm);
1787
+
1788
+ const SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr);
1789
+ int SSL_CIPHER_get_cipher_nid(const SSL_CIPHER *c);
1790
+ int SSL_CIPHER_get_digest_nid(const SSL_CIPHER *c);
1791
+
1792
+ /* TLS extensions functions */
1793
+ __owur int SSL_set_session_ticket_ext(SSL *s, void *ext_data, int ext_len);
1794
+
1795
+ __owur int SSL_set_session_ticket_ext_cb(SSL *s, tls_session_ticket_ext_cb_fn cb,
1796
+ void *arg);
1797
+
1798
+ /* Pre-shared secret session resumption functions */
1799
+ __owur int SSL_set_session_secret_cb(SSL *s,
1800
+ tls_session_secret_cb_fn tls_session_secret_cb,
1801
+ void *arg);
1802
+
1803
+ void SSL_CTX_set_not_resumable_session_callback(SSL_CTX *ctx,
1804
+ int (*cb) (SSL *ssl,
1805
+ int
1806
+ is_forward_secure));
1807
+
1808
+ void SSL_set_not_resumable_session_callback(SSL *ssl,
1809
+ int (*cb) (SSL *ssl,
1810
+ int
1811
+ is_forward_secure));
1812
+ # if OPENSSL_API_COMPAT < 0x10100000L
1813
+ # define SSL_cache_hit(s) SSL_session_reused(s)
1814
+ # endif
1815
+
1816
+ __owur int SSL_session_reused(SSL *s);
1817
+ __owur int SSL_is_server(SSL *s);
1818
+
1819
+ __owur __owur SSL_CONF_CTX *SSL_CONF_CTX_new(void);
1820
+ int SSL_CONF_CTX_finish(SSL_CONF_CTX *cctx);
1821
+ void SSL_CONF_CTX_free(SSL_CONF_CTX *cctx);
1822
+ unsigned int SSL_CONF_CTX_set_flags(SSL_CONF_CTX *cctx, unsigned int flags);
1823
+ __owur unsigned int SSL_CONF_CTX_clear_flags(SSL_CONF_CTX *cctx, unsigned int flags);
1824
+ __owur int SSL_CONF_CTX_set1_prefix(SSL_CONF_CTX *cctx, const char *pre);
1825
+
1826
+ void SSL_CONF_CTX_set_ssl(SSL_CONF_CTX *cctx, SSL *ssl);
1827
+ void SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *cctx, SSL_CTX *ctx);
1828
+
1829
+ __owur int SSL_CONF_cmd(SSL_CONF_CTX *cctx, const char *cmd, const char *value);
1830
+ __owur int SSL_CONF_cmd_argv(SSL_CONF_CTX *cctx, int *pargc, char ***pargv);
1831
+ __owur int SSL_CONF_cmd_value_type(SSL_CONF_CTX *cctx, const char *cmd);
1832
+
1833
+ void SSL_add_ssl_module(void);
1834
+ int SSL_config(SSL *s, const char *name);
1835
+ int SSL_CTX_config(SSL_CTX *ctx, const char *name);
1836
+
1837
+ # ifndef OPENSSL_NO_SSL_TRACE
1838
+ void SSL_trace(int write_p, int version, int content_type,
1839
+ const void *buf, size_t len, SSL *ssl, void *arg);
1840
+ __owur const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c);
1841
+ # endif
1842
+
1843
+ # ifndef OPENSSL_NO_SOCK
1844
+ int DTLSv1_listen(SSL *s, BIO_ADDR *client);
1845
+ # endif
1846
+
1847
+ # ifndef OPENSSL_NO_CT
1848
+
1849
+ /*
1850
+ * A callback for verifying that the received SCTs are sufficient.
1851
+ * Expected to return 1 if they are sufficient, otherwise 0.
1852
+ * May return a negative integer if an error occurs.
1853
+ * A connection should be aborted if the SCTs are deemed insufficient.
1854
+ */
1855
+ typedef int(*ssl_ct_validation_cb)(const CT_POLICY_EVAL_CTX *ctx,
1856
+ const STACK_OF(SCT) *scts, void *arg);
1857
+
1858
+ /*
1859
+ * Sets a |callback| that is invoked upon receipt of ServerHelloDone to validate
1860
+ * the received SCTs.
1861
+ * If the callback returns a non-positive result, the connection is terminated.
1862
+ * Call this function before beginning a handshake.
1863
+ * If a NULL |callback| is provided, SCT validation is disabled.
1864
+ * |arg| is arbitrary userdata that will be passed to the callback whenever it
1865
+ * is invoked. Ownership of |arg| remains with the caller.
1866
+ *
1867
+ * NOTE: A side-effect of setting a CT callback is that an OCSP stapled response
1868
+ * will be requested.
1869
+ */
1870
+ int SSL_set_ct_validation_callback(SSL *s, ssl_ct_validation_cb callback,
1871
+ void *arg);
1872
+ int SSL_CTX_set_ct_validation_callback(SSL_CTX *ctx,
1873
+ ssl_ct_validation_cb callback,
1874
+ void *arg);
1875
+ #define SSL_disable_ct(s) \
1876
+ ((void) SSL_set_validation_callback((s), NULL, NULL))
1877
+ #define SSL_CTX_disable_ct(ctx) \
1878
+ ((void) SSL_CTX_set_validation_callback((ctx), NULL, NULL))
1879
+
1880
+ /*
1881
+ * The validation type enumerates the available behaviours of the built-in SSL
1882
+ * CT validation callback selected via SSL_enable_ct() and SSL_CTX_enable_ct().
1883
+ * The underlying callback is a static function in libssl.
1884
+ */
1885
+ enum {
1886
+ SSL_CT_VALIDATION_PERMISSIVE = 0,
1887
+ SSL_CT_VALIDATION_STRICT
1888
+ };
1889
+
1890
+ /*
1891
+ * Enable CT by setting up a callback that implements one of the built-in
1892
+ * validation variants. The SSL_CT_VALIDATION_PERMISSIVE variant always
1893
+ * continues the handshake, the application can make appropriate decisions at
1894
+ * handshake completion. The SSL_CT_VALIDATION_STRICT variant requires at
1895
+ * least one valid SCT, or else handshake termination will be requested. The
1896
+ * handshake may continue anyway if SSL_VERIFY_NONE is in effect.
1897
+ */
1898
+ int SSL_enable_ct(SSL *s, int validation_mode);
1899
+ int SSL_CTX_enable_ct(SSL_CTX *ctx, int validation_mode);
1900
+
1901
+ /*
1902
+ * Report whether a non-NULL callback is enabled.
1903
+ */
1904
+ int SSL_ct_is_enabled(const SSL *s);
1905
+ int SSL_CTX_ct_is_enabled(const SSL_CTX *ctx);
1906
+
1907
+ /* Gets the SCTs received from a connection */
1908
+ const STACK_OF(SCT) *SSL_get0_peer_scts(SSL *s);
1909
+
1910
+ /*
1911
+ * Loads the CT log list from the default location.
1912
+ * If a CTLOG_STORE has previously been set using SSL_CTX_set_ctlog_store,
1913
+ * the log information loaded from this file will be appended to the
1914
+ * CTLOG_STORE.
1915
+ * Returns 1 on success, 0 otherwise.
1916
+ */
1917
+ int SSL_CTX_set_default_ctlog_list_file(SSL_CTX *ctx);
1918
+
1919
+ /*
1920
+ * Loads the CT log list from the specified file path.
1921
+ * If a CTLOG_STORE has previously been set using SSL_CTX_set_ctlog_store,
1922
+ * the log information loaded from this file will be appended to the
1923
+ * CTLOG_STORE.
1924
+ * Returns 1 on success, 0 otherwise.
1925
+ */
1926
+ int SSL_CTX_set_ctlog_list_file(SSL_CTX *ctx, const char *path);
1927
+
1928
+ /*
1929
+ * Sets the CT log list used by all SSL connections created from this SSL_CTX.
1930
+ * Ownership of the CTLOG_STORE is transferred to the SSL_CTX.
1931
+ */
1932
+ void SSL_CTX_set0_ctlog_store(SSL_CTX *ctx, CTLOG_STORE *logs);
1933
+
1934
+ /*
1935
+ * Gets the CT log list used by all SSL connections created from this SSL_CTX.
1936
+ * This will be NULL unless one of the following functions has been called:
1937
+ * - SSL_CTX_set_default_ctlog_list_file
1938
+ * - SSL_CTX_set_ctlog_list_file
1939
+ * - SSL_CTX_set_ctlog_store
1940
+ */
1941
+ const CTLOG_STORE *SSL_CTX_get0_ctlog_store(const SSL_CTX *ctx);
1942
+
1943
+ # endif /* OPENSSL_NO_CT */
1944
+
1945
+ /* What the "other" parameter contains in security callback */
1946
+ /* Mask for type */
1947
+ # define SSL_SECOP_OTHER_TYPE 0xffff0000
1948
+ # define SSL_SECOP_OTHER_NONE 0
1949
+ # define SSL_SECOP_OTHER_CIPHER (1 << 16)
1950
+ # define SSL_SECOP_OTHER_CURVE (2 << 16)
1951
+ # define SSL_SECOP_OTHER_DH (3 << 16)
1952
+ # define SSL_SECOP_OTHER_PKEY (4 << 16)
1953
+ # define SSL_SECOP_OTHER_SIGALG (5 << 16)
1954
+ # define SSL_SECOP_OTHER_CERT (6 << 16)
1955
+
1956
+ /* Indicated operation refers to peer key or certificate */
1957
+ # define SSL_SECOP_PEER 0x1000
1958
+
1959
+ /* Values for "op" parameter in security callback */
1960
+
1961
+ /* Called to filter ciphers */
1962
+ /* Ciphers client supports */
1963
+ # define SSL_SECOP_CIPHER_SUPPORTED (1 | SSL_SECOP_OTHER_CIPHER)
1964
+ /* Cipher shared by client/server */
1965
+ # define SSL_SECOP_CIPHER_SHARED (2 | SSL_SECOP_OTHER_CIPHER)
1966
+ /* Sanity check of cipher server selects */
1967
+ # define SSL_SECOP_CIPHER_CHECK (3 | SSL_SECOP_OTHER_CIPHER)
1968
+ /* Curves supported by client */
1969
+ # define SSL_SECOP_CURVE_SUPPORTED (4 | SSL_SECOP_OTHER_CURVE)
1970
+ /* Curves shared by client/server */
1971
+ # define SSL_SECOP_CURVE_SHARED (5 | SSL_SECOP_OTHER_CURVE)
1972
+ /* Sanity check of curve server selects */
1973
+ # define SSL_SECOP_CURVE_CHECK (6 | SSL_SECOP_OTHER_CURVE)
1974
+ /* Temporary DH key */
1975
+ # define SSL_SECOP_TMP_DH (7 | SSL_SECOP_OTHER_PKEY)
1976
+ /* SSL/TLS version */
1977
+ # define SSL_SECOP_VERSION (9 | SSL_SECOP_OTHER_NONE)
1978
+ /* Session tickets */
1979
+ # define SSL_SECOP_TICKET (10 | SSL_SECOP_OTHER_NONE)
1980
+ /* Supported signature algorithms sent to peer */
1981
+ # define SSL_SECOP_SIGALG_SUPPORTED (11 | SSL_SECOP_OTHER_SIGALG)
1982
+ /* Shared signature algorithm */
1983
+ # define SSL_SECOP_SIGALG_SHARED (12 | SSL_SECOP_OTHER_SIGALG)
1984
+ /* Sanity check signature algorithm allowed */
1985
+ # define SSL_SECOP_SIGALG_CHECK (13 | SSL_SECOP_OTHER_SIGALG)
1986
+ /* Used to get mask of supported public key signature algorithms */
1987
+ # define SSL_SECOP_SIGALG_MASK (14 | SSL_SECOP_OTHER_SIGALG)
1988
+ /* Use to see if compression is allowed */
1989
+ # define SSL_SECOP_COMPRESSION (15 | SSL_SECOP_OTHER_NONE)
1990
+ /* EE key in certificate */
1991
+ # define SSL_SECOP_EE_KEY (16 | SSL_SECOP_OTHER_CERT)
1992
+ /* CA key in certificate */
1993
+ # define SSL_SECOP_CA_KEY (17 | SSL_SECOP_OTHER_CERT)
1994
+ /* CA digest algorithm in certificate */
1995
+ # define SSL_SECOP_CA_MD (18 | SSL_SECOP_OTHER_CERT)
1996
+ /* Peer EE key in certificate */
1997
+ # define SSL_SECOP_PEER_EE_KEY (SSL_SECOP_EE_KEY | SSL_SECOP_PEER)
1998
+ /* Peer CA key in certificate */
1999
+ # define SSL_SECOP_PEER_CA_KEY (SSL_SECOP_CA_KEY | SSL_SECOP_PEER)
2000
+ /* Peer CA digest algorithm in certificate */
2001
+ # define SSL_SECOP_PEER_CA_MD (SSL_SECOP_CA_MD | SSL_SECOP_PEER)
2002
+
2003
+ void SSL_set_security_level(SSL *s, int level);
2004
+ __owur int SSL_get_security_level(const SSL *s);
2005
+ void SSL_set_security_callback(SSL *s,
2006
+ int (*cb) (const SSL *s, const SSL_CTX *ctx, int op,
2007
+ int bits, int nid, void *other,
2008
+ void *ex));
2009
+ int (*SSL_get_security_callback(const SSL *s)) (const SSL *s, const SSL_CTX *ctx, int op,
2010
+ int bits, int nid,
2011
+ void *other, void *ex);
2012
+ void SSL_set0_security_ex_data(SSL *s, void *ex);
2013
+ __owur void *SSL_get0_security_ex_data(const SSL *s);
2014
+
2015
+ void SSL_CTX_set_security_level(SSL_CTX *ctx, int level);
2016
+ __owur int SSL_CTX_get_security_level(const SSL_CTX *ctx);
2017
+ void SSL_CTX_set_security_callback(SSL_CTX *ctx,
2018
+ int (*cb) (const SSL *s, const SSL_CTX *ctx, int op,
2019
+ int bits, int nid, void *other,
2020
+ void *ex));
2021
+ int (*SSL_CTX_get_security_callback(const SSL_CTX *ctx)) (const SSL *s,
2022
+ const SSL_CTX *ctx,
2023
+ int op, int bits,
2024
+ int nid,
2025
+ void *other,
2026
+ void *ex);
2027
+ void SSL_CTX_set0_security_ex_data(SSL_CTX *ctx, void *ex);
2028
+ __owur void *SSL_CTX_get0_security_ex_data(const SSL_CTX *ctx);
2029
+
2030
+ /* OPENSSL_INIT flag 0x010000 reserved for internal use */
2031
+ #define OPENSSL_INIT_NO_LOAD_SSL_STRINGS 0x00100000L
2032
+ #define OPENSSL_INIT_LOAD_SSL_STRINGS 0x00200000L
2033
+
2034
+ #define OPENSSL_INIT_SSL_DEFAULT \
2035
+ (OPENSSL_INIT_LOAD_SSL_STRINGS | OPENSSL_INIT_LOAD_CRYPTO_STRINGS)
2036
+
2037
+ int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
2038
+
2039
+ # ifndef OPENSSL_NO_UNIT_TEST
2040
+ __owur const struct openssl_ssl_test_functions *SSL_test_functions(void);
2041
+ # endif
2042
+
2043
+ extern const char SSL_version_str[];
2044
+
2045
+ /* BEGIN ERROR CODES */
2046
+ /*
2047
+ * The following lines are auto generated by the script mkerr.pl. Any changes
2048
+ * made after this point may be overwritten when the script is next run.
2049
+ */
2050
+
2051
+ int ERR_load_SSL_strings(void);
2052
+
2053
+ /* Error codes for the SSL functions. */
2054
+
2055
+ /* Function codes. */
2056
+ # define SSL_F_CHECK_SUITEB_CIPHER_LIST 331
2057
+ # define SSL_F_CT_MOVE_SCTS 345
2058
+ # define SSL_F_CT_STRICT 349
2059
+ # define SSL_F_D2I_SSL_SESSION 103
2060
+ # define SSL_F_DANE_CTX_ENABLE 347
2061
+ # define SSL_F_DANE_MTYPE_SET 393
2062
+ # define SSL_F_DANE_TLSA_ADD 394
2063
+ # define SSL_F_DO_DTLS1_WRITE 245
2064
+ # define SSL_F_DO_SSL3_WRITE 104
2065
+ # define SSL_F_DTLS1_BUFFER_RECORD 247
2066
+ # define SSL_F_DTLS1_CHECK_TIMEOUT_NUM 318
2067
+ # define SSL_F_DTLS1_HEARTBEAT 305
2068
+ # define SSL_F_DTLS1_PREPROCESS_FRAGMENT 288
2069
+ # define SSL_F_DTLS1_PROCESS_BUFFERED_RECORDS 424
2070
+ # define SSL_F_DTLS1_PROCESS_RECORD 257
2071
+ # define SSL_F_DTLS1_READ_BYTES 258
2072
+ # define SSL_F_DTLS1_READ_FAILED 339
2073
+ # define SSL_F_DTLS1_RETRANSMIT_MESSAGE 390
2074
+ # define SSL_F_DTLS1_WRITE_APP_DATA_BYTES 268
2075
+ # define SSL_F_DTLSV1_LISTEN 350
2076
+ # define SSL_F_DTLS_CONSTRUCT_CHANGE_CIPHER_SPEC 371
2077
+ # define SSL_F_DTLS_CONSTRUCT_HELLO_VERIFY_REQUEST 385
2078
+ # define SSL_F_DTLS_GET_REASSEMBLED_MESSAGE 370
2079
+ # define SSL_F_DTLS_PROCESS_HELLO_VERIFY 386
2080
+ # define SSL_F_OPENSSL_INIT_SSL 342
2081
+ # define SSL_F_OSSL_STATEM_CLIENT_READ_TRANSITION 417
2082
+ # define SSL_F_OSSL_STATEM_SERVER_READ_TRANSITION 418
2083
+ # define SSL_F_READ_STATE_MACHINE 352
2084
+ # define SSL_F_SSL3_CHANGE_CIPHER_STATE 129
2085
+ # define SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM 130
2086
+ # define SSL_F_SSL3_CTRL 213
2087
+ # define SSL_F_SSL3_CTX_CTRL 133
2088
+ # define SSL_F_SSL3_DIGEST_CACHED_RECORDS 293
2089
+ # define SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC 292
2090
+ # define SSL_F_SSL3_FINAL_FINISH_MAC 285
2091
+ # define SSL_F_SSL3_GENERATE_KEY_BLOCK 238
2092
+ # define SSL_F_SSL3_GENERATE_MASTER_SECRET 388
2093
+ # define SSL_F_SSL3_GET_RECORD 143
2094
+ # define SSL_F_SSL3_INIT_FINISHED_MAC 397
2095
+ # define SSL_F_SSL3_OUTPUT_CERT_CHAIN 147
2096
+ # define SSL_F_SSL3_READ_BYTES 148
2097
+ # define SSL_F_SSL3_READ_N 149
2098
+ # define SSL_F_SSL3_SETUP_KEY_BLOCK 157
2099
+ # define SSL_F_SSL3_SETUP_READ_BUFFER 156
2100
+ # define SSL_F_SSL3_SETUP_WRITE_BUFFER 291
2101
+ # define SSL_F_SSL3_WRITE_BYTES 158
2102
+ # define SSL_F_SSL3_WRITE_PENDING 159
2103
+ # define SSL_F_SSL_ADD_CERT_CHAIN 316
2104
+ # define SSL_F_SSL_ADD_CERT_TO_BUF 319
2105
+ # define SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT 298
2106
+ # define SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT 277
2107
+ # define SSL_F_SSL_ADD_CLIENTHELLO_USE_SRTP_EXT 307
2108
+ # define SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK 215
2109
+ # define SSL_F_SSL_ADD_FILE_CERT_SUBJECTS_TO_STACK 216
2110
+ # define SSL_F_SSL_ADD_SERVERHELLO_RENEGOTIATE_EXT 299
2111
+ # define SSL_F_SSL_ADD_SERVERHELLO_TLSEXT 278
2112
+ # define SSL_F_SSL_ADD_SERVERHELLO_USE_SRTP_EXT 308
2113
+ # define SSL_F_SSL_BAD_METHOD 160
2114
+ # define SSL_F_SSL_BUILD_CERT_CHAIN 332
2115
+ # define SSL_F_SSL_BYTES_TO_CIPHER_LIST 161
2116
+ # define SSL_F_SSL_CERT_ADD0_CHAIN_CERT 346
2117
+ # define SSL_F_SSL_CERT_DUP 221
2118
+ # define SSL_F_SSL_CERT_NEW 162
2119
+ # define SSL_F_SSL_CERT_SET0_CHAIN 340
2120
+ # define SSL_F_SSL_CHECK_PRIVATE_KEY 163
2121
+ # define SSL_F_SSL_CHECK_SERVERHELLO_TLSEXT 280
2122
+ # define SSL_F_SSL_CHECK_SRVR_ECC_CERT_AND_ALG 279
2123
+ # define SSL_F_SSL_CIPHER_PROCESS_RULESTR 230
2124
+ # define SSL_F_SSL_CIPHER_STRENGTH_SORT 231
2125
+ # define SSL_F_SSL_CLEAR 164
2126
+ # define SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD 165
2127
+ # define SSL_F_SSL_CONF_CMD 334
2128
+ # define SSL_F_SSL_CREATE_CIPHER_LIST 166
2129
+ # define SSL_F_SSL_CTRL 232
2130
+ # define SSL_F_SSL_CTX_CHECK_PRIVATE_KEY 168
2131
+ # define SSL_F_SSL_CTX_ENABLE_CT 398
2132
+ # define SSL_F_SSL_CTX_MAKE_PROFILES 309
2133
+ # define SSL_F_SSL_CTX_NEW 169
2134
+ # define SSL_F_SSL_CTX_SET_ALPN_PROTOS 343
2135
+ # define SSL_F_SSL_CTX_SET_CIPHER_LIST 269
2136
+ # define SSL_F_SSL_CTX_SET_CLIENT_CERT_ENGINE 290
2137
+ # define SSL_F_SSL_CTX_SET_CT_VALIDATION_CALLBACK 396
2138
+ # define SSL_F_SSL_CTX_SET_SESSION_ID_CONTEXT 219
2139
+ # define SSL_F_SSL_CTX_SET_SSL_VERSION 170
2140
+ # define SSL_F_SSL_CTX_USE_CERTIFICATE 171
2141
+ # define SSL_F_SSL_CTX_USE_CERTIFICATE_ASN1 172
2142
+ # define SSL_F_SSL_CTX_USE_CERTIFICATE_FILE 173
2143
+ # define SSL_F_SSL_CTX_USE_PRIVATEKEY 174
2144
+ # define SSL_F_SSL_CTX_USE_PRIVATEKEY_ASN1 175
2145
+ # define SSL_F_SSL_CTX_USE_PRIVATEKEY_FILE 176
2146
+ # define SSL_F_SSL_CTX_USE_PSK_IDENTITY_HINT 272
2147
+ # define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY 177
2148
+ # define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_ASN1 178
2149
+ # define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_FILE 179
2150
+ # define SSL_F_SSL_CTX_USE_SERVERINFO 336
2151
+ # define SSL_F_SSL_CTX_USE_SERVERINFO_FILE 337
2152
+ # define SSL_F_SSL_DANE_DUP 403
2153
+ # define SSL_F_SSL_DANE_ENABLE 395
2154
+ # define SSL_F_SSL_DO_CONFIG 391
2155
+ # define SSL_F_SSL_DO_HANDSHAKE 180
2156
+ # define SSL_F_SSL_DUP_CA_LIST 408
2157
+ # define SSL_F_SSL_ENABLE_CT 402
2158
+ # define SSL_F_SSL_GET_NEW_SESSION 181
2159
+ # define SSL_F_SSL_GET_PREV_SESSION 217
2160
+ # define SSL_F_SSL_GET_SERVER_CERT_INDEX 322
2161
+ # define SSL_F_SSL_GET_SIGN_PKEY 183
2162
+ # define SSL_F_SSL_INIT_WBIO_BUFFER 184
2163
+ # define SSL_F_SSL_LOAD_CLIENT_CA_FILE 185
2164
+ # define SSL_F_SSL_MODULE_INIT 392
2165
+ # define SSL_F_SSL_NEW 186
2166
+ # define SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT 300
2167
+ # define SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT 302
2168
+ # define SSL_F_SSL_PARSE_CLIENTHELLO_USE_SRTP_EXT 310
2169
+ # define SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT 301
2170
+ # define SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT 303
2171
+ # define SSL_F_SSL_PARSE_SERVERHELLO_USE_SRTP_EXT 311
2172
+ # define SSL_F_SSL_PEEK 270
2173
+ # define SSL_F_SSL_READ 223
2174
+ # define SSL_F_SSL_SCAN_CLIENTHELLO_TLSEXT 320
2175
+ # define SSL_F_SSL_SCAN_SERVERHELLO_TLSEXT 321
2176
+ # define SSL_F_SSL_SESSION_DUP 348
2177
+ # define SSL_F_SSL_SESSION_NEW 189
2178
+ # define SSL_F_SSL_SESSION_PRINT_FP 190
2179
+ # define SSL_F_SSL_SESSION_SET1_ID 423
2180
+ # define SSL_F_SSL_SESSION_SET1_ID_CONTEXT 312
2181
+ # define SSL_F_SSL_SET_ALPN_PROTOS 344
2182
+ # define SSL_F_SSL_SET_CERT 191
2183
+ # define SSL_F_SSL_SET_CIPHER_LIST 271
2184
+ # define SSL_F_SSL_SET_CT_VALIDATION_CALLBACK 399
2185
+ # define SSL_F_SSL_SET_FD 192
2186
+ # define SSL_F_SSL_SET_PKEY 193
2187
+ # define SSL_F_SSL_SET_RFD 194
2188
+ # define SSL_F_SSL_SET_SESSION 195
2189
+ # define SSL_F_SSL_SET_SESSION_ID_CONTEXT 218
2190
+ # define SSL_F_SSL_SET_SESSION_TICKET_EXT 294
2191
+ # define SSL_F_SSL_SET_WFD 196
2192
+ # define SSL_F_SSL_SHUTDOWN 224
2193
+ # define SSL_F_SSL_SRP_CTX_INIT 313
2194
+ # define SSL_F_SSL_START_ASYNC_JOB 389
2195
+ # define SSL_F_SSL_UNDEFINED_FUNCTION 197
2196
+ # define SSL_F_SSL_UNDEFINED_VOID_FUNCTION 244
2197
+ # define SSL_F_SSL_USE_CERTIFICATE 198
2198
+ # define SSL_F_SSL_USE_CERTIFICATE_ASN1 199
2199
+ # define SSL_F_SSL_USE_CERTIFICATE_FILE 200
2200
+ # define SSL_F_SSL_USE_PRIVATEKEY 201
2201
+ # define SSL_F_SSL_USE_PRIVATEKEY_ASN1 202
2202
+ # define SSL_F_SSL_USE_PRIVATEKEY_FILE 203
2203
+ # define SSL_F_SSL_USE_PSK_IDENTITY_HINT 273
2204
+ # define SSL_F_SSL_USE_RSAPRIVATEKEY 204
2205
+ # define SSL_F_SSL_USE_RSAPRIVATEKEY_ASN1 205
2206
+ # define SSL_F_SSL_USE_RSAPRIVATEKEY_FILE 206
2207
+ # define SSL_F_SSL_VALIDATE_CT 400
2208
+ # define SSL_F_SSL_VERIFY_CERT_CHAIN 207
2209
+ # define SSL_F_SSL_WRITE 208
2210
+ # define SSL_F_STATE_MACHINE 353
2211
+ # define SSL_F_TLS12_CHECK_PEER_SIGALG 333
2212
+ # define SSL_F_TLS1_CHANGE_CIPHER_STATE 209
2213
+ # define SSL_F_TLS1_CHECK_DUPLICATE_EXTENSIONS 341
2214
+ # define SSL_F_TLS1_ENC 401
2215
+ # define SSL_F_TLS1_EXPORT_KEYING_MATERIAL 314
2216
+ # define SSL_F_TLS1_GET_CURVELIST 338
2217
+ # define SSL_F_TLS1_PRF 284
2218
+ # define SSL_F_TLS1_SETUP_KEY_BLOCK 211
2219
+ # define SSL_F_TLS1_SET_SERVER_SIGALGS 335
2220
+ # define SSL_F_TLS_CLIENT_KEY_EXCHANGE_POST_WORK 354
2221
+ # define SSL_F_TLS_CONSTRUCT_CERTIFICATE_REQUEST 372
2222
+ # define SSL_F_TLS_CONSTRUCT_CKE_DHE 404
2223
+ # define SSL_F_TLS_CONSTRUCT_CKE_ECDHE 405
2224
+ # define SSL_F_TLS_CONSTRUCT_CKE_GOST 406
2225
+ # define SSL_F_TLS_CONSTRUCT_CKE_PSK_PREAMBLE 407
2226
+ # define SSL_F_TLS_CONSTRUCT_CKE_RSA 409
2227
+ # define SSL_F_TLS_CONSTRUCT_CKE_SRP 410
2228
+ # define SSL_F_TLS_CONSTRUCT_CLIENT_CERTIFICATE 355
2229
+ # define SSL_F_TLS_CONSTRUCT_CLIENT_HELLO 356
2230
+ # define SSL_F_TLS_CONSTRUCT_CLIENT_KEY_EXCHANGE 357
2231
+ # define SSL_F_TLS_CONSTRUCT_CLIENT_VERIFY 358
2232
+ # define SSL_F_TLS_CONSTRUCT_FINISHED 359
2233
+ # define SSL_F_TLS_CONSTRUCT_HELLO_REQUEST 373
2234
+ # define SSL_F_TLS_CONSTRUCT_SERVER_CERTIFICATE 374
2235
+ # define SSL_F_TLS_CONSTRUCT_SERVER_DONE 375
2236
+ # define SSL_F_TLS_CONSTRUCT_SERVER_HELLO 376
2237
+ # define SSL_F_TLS_CONSTRUCT_SERVER_KEY_EXCHANGE 377
2238
+ # define SSL_F_TLS_GET_MESSAGE_BODY 351
2239
+ # define SSL_F_TLS_GET_MESSAGE_HEADER 387
2240
+ # define SSL_F_TLS_POST_PROCESS_CLIENT_HELLO 378
2241
+ # define SSL_F_TLS_POST_PROCESS_CLIENT_KEY_EXCHANGE 384
2242
+ # define SSL_F_TLS_PREPARE_CLIENT_CERTIFICATE 360
2243
+ # define SSL_F_TLS_PROCESS_CERTIFICATE_REQUEST 361
2244
+ # define SSL_F_TLS_PROCESS_CERT_STATUS 362
2245
+ # define SSL_F_TLS_PROCESS_CERT_VERIFY 379
2246
+ # define SSL_F_TLS_PROCESS_CHANGE_CIPHER_SPEC 363
2247
+ # define SSL_F_TLS_PROCESS_CKE_DHE 411
2248
+ # define SSL_F_TLS_PROCESS_CKE_ECDHE 412
2249
+ # define SSL_F_TLS_PROCESS_CKE_GOST 413
2250
+ # define SSL_F_TLS_PROCESS_CKE_PSK_PREAMBLE 414
2251
+ # define SSL_F_TLS_PROCESS_CKE_RSA 415
2252
+ # define SSL_F_TLS_PROCESS_CKE_SRP 416
2253
+ # define SSL_F_TLS_PROCESS_CLIENT_CERTIFICATE 380
2254
+ # define SSL_F_TLS_PROCESS_CLIENT_HELLO 381
2255
+ # define SSL_F_TLS_PROCESS_CLIENT_KEY_EXCHANGE 382
2256
+ # define SSL_F_TLS_PROCESS_FINISHED 364
2257
+ # define SSL_F_TLS_PROCESS_KEY_EXCHANGE 365
2258
+ # define SSL_F_TLS_PROCESS_NEW_SESSION_TICKET 366
2259
+ # define SSL_F_TLS_PROCESS_NEXT_PROTO 383
2260
+ # define SSL_F_TLS_PROCESS_SERVER_CERTIFICATE 367
2261
+ # define SSL_F_TLS_PROCESS_SERVER_DONE 368
2262
+ # define SSL_F_TLS_PROCESS_SERVER_HELLO 369
2263
+ # define SSL_F_TLS_PROCESS_SKE_DHE 419
2264
+ # define SSL_F_TLS_PROCESS_SKE_ECDHE 420
2265
+ # define SSL_F_TLS_PROCESS_SKE_PSK_PREAMBLE 421
2266
+ # define SSL_F_TLS_PROCESS_SKE_SRP 422
2267
+ # define SSL_F_USE_CERTIFICATE_CHAIN_FILE 220
2268
+
2269
+ /* Reason codes. */
2270
+ # define SSL_R_APP_DATA_IN_HANDSHAKE 100
2271
+ # define SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT 272
2272
+ # define SSL_R_AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE 143
2273
+ # define SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE 158
2274
+ # define SSL_R_BAD_CHANGE_CIPHER_SPEC 103
2275
+ # define SSL_R_BAD_DATA 390
2276
+ # define SSL_R_BAD_DATA_RETURNED_BY_CALLBACK 106
2277
+ # define SSL_R_BAD_DECOMPRESSION 107
2278
+ # define SSL_R_BAD_DH_VALUE 102
2279
+ # define SSL_R_BAD_DIGEST_LENGTH 111
2280
+ # define SSL_R_BAD_ECC_CERT 304
2281
+ # define SSL_R_BAD_ECPOINT 306
2282
+ # define SSL_R_BAD_HANDSHAKE_LENGTH 332
2283
+ # define SSL_R_BAD_HELLO_REQUEST 105
2284
+ # define SSL_R_BAD_LENGTH 271
2285
+ # define SSL_R_BAD_PACKET_LENGTH 115
2286
+ # define SSL_R_BAD_PROTOCOL_VERSION_NUMBER 116
2287
+ # define SSL_R_BAD_RSA_ENCRYPT 119
2288
+ # define SSL_R_BAD_SIGNATURE 123
2289
+ # define SSL_R_BAD_SRP_A_LENGTH 347
2290
+ # define SSL_R_BAD_SRP_PARAMETERS 371
2291
+ # define SSL_R_BAD_SRTP_MKI_VALUE 352
2292
+ # define SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST 353
2293
+ # define SSL_R_BAD_SSL_FILETYPE 124
2294
+ # define SSL_R_BAD_VALUE 384
2295
+ # define SSL_R_BAD_WRITE_RETRY 127
2296
+ # define SSL_R_BIO_NOT_SET 128
2297
+ # define SSL_R_BLOCK_CIPHER_PAD_IS_WRONG 129
2298
+ # define SSL_R_BN_LIB 130
2299
+ # define SSL_R_CA_DN_LENGTH_MISMATCH 131
2300
+ # define SSL_R_CA_KEY_TOO_SMALL 397
2301
+ # define SSL_R_CA_MD_TOO_WEAK 398
2302
+ # define SSL_R_CCS_RECEIVED_EARLY 133
2303
+ # define SSL_R_CERTIFICATE_VERIFY_FAILED 134
2304
+ # define SSL_R_CERT_CB_ERROR 377
2305
+ # define SSL_R_CERT_LENGTH_MISMATCH 135
2306
+ # define SSL_R_CIPHER_CODE_WRONG_LENGTH 137
2307
+ # define SSL_R_CIPHER_OR_HASH_UNAVAILABLE 138
2308
+ # define SSL_R_CLIENTHELLO_TLSEXT 226
2309
+ # define SSL_R_COMPRESSED_LENGTH_TOO_LONG 140
2310
+ # define SSL_R_COMPRESSION_DISABLED 343
2311
+ # define SSL_R_COMPRESSION_FAILURE 141
2312
+ # define SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE 307
2313
+ # define SSL_R_COMPRESSION_LIBRARY_ERROR 142
2314
+ # define SSL_R_CONNECTION_TYPE_NOT_SET 144
2315
+ # define SSL_R_CONTEXT_NOT_DANE_ENABLED 167
2316
+ # define SSL_R_COOKIE_GEN_CALLBACK_FAILURE 400
2317
+ # define SSL_R_COOKIE_MISMATCH 308
2318
+ # define SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED 206
2319
+ # define SSL_R_DANE_ALREADY_ENABLED 172
2320
+ # define SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL 173
2321
+ # define SSL_R_DANE_NOT_ENABLED 175
2322
+ # define SSL_R_DANE_TLSA_BAD_CERTIFICATE 180
2323
+ # define SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE 184
2324
+ # define SSL_R_DANE_TLSA_BAD_DATA_LENGTH 189
2325
+ # define SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH 192
2326
+ # define SSL_R_DANE_TLSA_BAD_MATCHING_TYPE 200
2327
+ # define SSL_R_DANE_TLSA_BAD_PUBLIC_KEY 201
2328
+ # define SSL_R_DANE_TLSA_BAD_SELECTOR 202
2329
+ # define SSL_R_DANE_TLSA_NULL_DATA 203
2330
+ # define SSL_R_DATA_BETWEEN_CCS_AND_FINISHED 145
2331
+ # define SSL_R_DATA_LENGTH_TOO_LONG 146
2332
+ # define SSL_R_DECRYPTION_FAILED 147
2333
+ # define SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC 281
2334
+ # define SSL_R_DH_KEY_TOO_SMALL 394
2335
+ # define SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG 148
2336
+ # define SSL_R_DIGEST_CHECK_FAILED 149
2337
+ # define SSL_R_DTLS_MESSAGE_TOO_BIG 334
2338
+ # define SSL_R_DUPLICATE_COMPRESSION_ID 309
2339
+ # define SSL_R_ECC_CERT_NOT_FOR_SIGNING 318
2340
+ # define SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE 374
2341
+ # define SSL_R_EE_KEY_TOO_SMALL 399
2342
+ # define SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST 354
2343
+ # define SSL_R_ENCRYPTED_LENGTH_TOO_LONG 150
2344
+ # define SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST 151
2345
+ # define SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN 204
2346
+ # define SSL_R_EXCESSIVE_MESSAGE_SIZE 152
2347
+ # define SSL_R_EXTRA_DATA_IN_MESSAGE 153
2348
+ # define SSL_R_FAILED_TO_INIT_ASYNC 405
2349
+ # define SSL_R_FRAGMENTED_CLIENT_HELLO 401
2350
+ # define SSL_R_GOT_A_FIN_BEFORE_A_CCS 154
2351
+ # define SSL_R_HTTPS_PROXY_REQUEST 155
2352
+ # define SSL_R_HTTP_REQUEST 156
2353
+ # define SSL_R_ILLEGAL_SUITEB_DIGEST 380
2354
+ # define SSL_R_INAPPROPRIATE_FALLBACK 373
2355
+ # define SSL_R_INCONSISTENT_COMPRESSION 340
2356
+ # define SSL_R_INCONSISTENT_EXTMS 104
2357
+ # define SSL_R_INVALID_COMMAND 280
2358
+ # define SSL_R_INVALID_COMPRESSION_ALGORITHM 341
2359
+ # define SSL_R_INVALID_CONFIGURATION_NAME 113
2360
+ # define SSL_R_INVALID_CT_VALIDATION_TYPE 212
2361
+ # define SSL_R_INVALID_NULL_CMD_NAME 385
2362
+ # define SSL_R_INVALID_SEQUENCE_NUMBER 402
2363
+ # define SSL_R_INVALID_SERVERINFO_DATA 388
2364
+ # define SSL_R_INVALID_SRP_USERNAME 357
2365
+ # define SSL_R_INVALID_STATUS_RESPONSE 328
2366
+ # define SSL_R_INVALID_TICKET_KEYS_LENGTH 325
2367
+ # define SSL_R_LENGTH_MISMATCH 159
2368
+ # define SSL_R_LENGTH_TOO_LONG 404
2369
+ # define SSL_R_LENGTH_TOO_SHORT 160
2370
+ # define SSL_R_LIBRARY_BUG 274
2371
+ # define SSL_R_LIBRARY_HAS_NO_CIPHERS 161
2372
+ # define SSL_R_MISSING_DSA_SIGNING_CERT 165
2373
+ # define SSL_R_MISSING_ECDSA_SIGNING_CERT 381
2374
+ # define SSL_R_MISSING_RSA_CERTIFICATE 168
2375
+ # define SSL_R_MISSING_RSA_ENCRYPTING_CERT 169
2376
+ # define SSL_R_MISSING_RSA_SIGNING_CERT 170
2377
+ # define SSL_R_MISSING_SRP_PARAM 358
2378
+ # define SSL_R_MISSING_TMP_DH_KEY 171
2379
+ # define SSL_R_MISSING_TMP_ECDH_KEY 311
2380
+ # define SSL_R_NO_CERTIFICATES_RETURNED 176
2381
+ # define SSL_R_NO_CERTIFICATE_ASSIGNED 177
2382
+ # define SSL_R_NO_CERTIFICATE_SET 179
2383
+ # define SSL_R_NO_CIPHERS_AVAILABLE 181
2384
+ # define SSL_R_NO_CIPHERS_SPECIFIED 183
2385
+ # define SSL_R_NO_CIPHER_MATCH 185
2386
+ # define SSL_R_NO_CLIENT_CERT_METHOD 331
2387
+ # define SSL_R_NO_COMPRESSION_SPECIFIED 187
2388
+ # define SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER 330
2389
+ # define SSL_R_NO_METHOD_SPECIFIED 188
2390
+ # define SSL_R_NO_PEM_EXTENSIONS 389
2391
+ # define SSL_R_NO_PRIVATE_KEY_ASSIGNED 190
2392
+ # define SSL_R_NO_PROTOCOLS_AVAILABLE 191
2393
+ # define SSL_R_NO_RENEGOTIATION 339
2394
+ # define SSL_R_NO_REQUIRED_DIGEST 324
2395
+ # define SSL_R_NO_SHARED_CIPHER 193
2396
+ # define SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS 376
2397
+ # define SSL_R_NO_SRTP_PROFILES 359
2398
+ # define SSL_R_NO_VALID_SCTS 216
2399
+ # define SSL_R_NO_VERIFY_COOKIE_CALLBACK 403
2400
+ # define SSL_R_NULL_SSL_CTX 195
2401
+ # define SSL_R_NULL_SSL_METHOD_PASSED 196
2402
+ # define SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED 197
2403
+ # define SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED 344
2404
+ # define SSL_R_PACKET_LENGTH_TOO_LONG 198
2405
+ # define SSL_R_PARSE_TLSEXT 227
2406
+ # define SSL_R_PATH_TOO_LONG 270
2407
+ # define SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE 199
2408
+ # define SSL_R_PEM_NAME_BAD_PREFIX 391
2409
+ # define SSL_R_PEM_NAME_TOO_SHORT 392
2410
+ # define SSL_R_PIPELINE_FAILURE 406
2411
+ # define SSL_R_PROTOCOL_IS_SHUTDOWN 207
2412
+ # define SSL_R_PSK_IDENTITY_NOT_FOUND 223
2413
+ # define SSL_R_PSK_NO_CLIENT_CB 224
2414
+ # define SSL_R_PSK_NO_SERVER_CB 225
2415
+ # define SSL_R_READ_BIO_NOT_SET 211
2416
+ # define SSL_R_READ_TIMEOUT_EXPIRED 312
2417
+ # define SSL_R_RECORD_LENGTH_MISMATCH 213
2418
+ # define SSL_R_RECORD_TOO_SMALL 298
2419
+ # define SSL_R_RENEGOTIATE_EXT_TOO_LONG 335
2420
+ # define SSL_R_RENEGOTIATION_ENCODING_ERR 336
2421
+ # define SSL_R_RENEGOTIATION_MISMATCH 337
2422
+ # define SSL_R_REQUIRED_CIPHER_MISSING 215
2423
+ # define SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING 342
2424
+ # define SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING 345
2425
+ # define SSL_R_SCT_VERIFICATION_FAILED 208
2426
+ # define SSL_R_SERVERHELLO_TLSEXT 275
2427
+ # define SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED 277
2428
+ # define SSL_R_SHUTDOWN_WHILE_IN_INIT 407
2429
+ # define SSL_R_SIGNATURE_ALGORITHMS_ERROR 360
2430
+ # define SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE 220
2431
+ # define SSL_R_SRP_A_CALC 361
2432
+ # define SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES 362
2433
+ # define SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG 363
2434
+ # define SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE 364
2435
+ # define SSL_R_SSL3_EXT_INVALID_SERVERNAME 319
2436
+ # define SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE 320
2437
+ # define SSL_R_SSL3_SESSION_ID_TOO_LONG 300
2438
+ # define SSL_R_SSLV3_ALERT_BAD_CERTIFICATE 1042
2439
+ # define SSL_R_SSLV3_ALERT_BAD_RECORD_MAC 1020
2440
+ # define SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED 1045
2441
+ # define SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED 1044
2442
+ # define SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN 1046
2443
+ # define SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE 1030
2444
+ # define SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE 1040
2445
+ # define SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER 1047
2446
+ # define SSL_R_SSLV3_ALERT_NO_CERTIFICATE 1041
2447
+ # define SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE 1010
2448
+ # define SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE 1043
2449
+ # define SSL_R_SSL_COMMAND_SECTION_EMPTY 117
2450
+ # define SSL_R_SSL_COMMAND_SECTION_NOT_FOUND 125
2451
+ # define SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION 228
2452
+ # define SSL_R_SSL_HANDSHAKE_FAILURE 229
2453
+ # define SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS 230
2454
+ # define SSL_R_SSL_NEGATIVE_LENGTH 372
2455
+ # define SSL_R_SSL_SECTION_EMPTY 126
2456
+ # define SSL_R_SSL_SECTION_NOT_FOUND 136
2457
+ # define SSL_R_SSL_SESSION_ID_CALLBACK_FAILED 301
2458
+ # define SSL_R_SSL_SESSION_ID_CONFLICT 302
2459
+ # define SSL_R_SSL_SESSION_ID_TOO_LONG 408
2460
+ # define SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG 273
2461
+ # define SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH 303
2462
+ # define SSL_R_SSL_SESSION_VERSION_MISMATCH 210
2463
+ # define SSL_R_TLSV1_ALERT_ACCESS_DENIED 1049
2464
+ # define SSL_R_TLSV1_ALERT_DECODE_ERROR 1050
2465
+ # define SSL_R_TLSV1_ALERT_DECRYPTION_FAILED 1021
2466
+ # define SSL_R_TLSV1_ALERT_DECRYPT_ERROR 1051
2467
+ # define SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION 1060
2468
+ # define SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK 1086
2469
+ # define SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY 1071
2470
+ # define SSL_R_TLSV1_ALERT_INTERNAL_ERROR 1080
2471
+ # define SSL_R_TLSV1_ALERT_NO_RENEGOTIATION 1100
2472
+ # define SSL_R_TLSV1_ALERT_PROTOCOL_VERSION 1070
2473
+ # define SSL_R_TLSV1_ALERT_RECORD_OVERFLOW 1022
2474
+ # define SSL_R_TLSV1_ALERT_UNKNOWN_CA 1048
2475
+ # define SSL_R_TLSV1_ALERT_USER_CANCELLED 1090
2476
+ # define SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE 1114
2477
+ # define SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE 1113
2478
+ # define SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE 1111
2479
+ # define SSL_R_TLSV1_UNRECOGNIZED_NAME 1112
2480
+ # define SSL_R_TLSV1_UNSUPPORTED_EXTENSION 1110
2481
+ # define SSL_R_TLS_HEARTBEAT_PEER_DOESNT_ACCEPT 365
2482
+ # define SSL_R_TLS_HEARTBEAT_PENDING 366
2483
+ # define SSL_R_TLS_ILLEGAL_EXPORTER_LABEL 367
2484
+ # define SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST 157
2485
+ # define SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS 314
2486
+ # define SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS 239
2487
+ # define SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES 242
2488
+ # define SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES 243
2489
+ # define SSL_R_UNEXPECTED_MESSAGE 244
2490
+ # define SSL_R_UNEXPECTED_RECORD 245
2491
+ # define SSL_R_UNINITIALIZED 276
2492
+ # define SSL_R_UNKNOWN_ALERT_TYPE 246
2493
+ # define SSL_R_UNKNOWN_CERTIFICATE_TYPE 247
2494
+ # define SSL_R_UNKNOWN_CIPHER_RETURNED 248
2495
+ # define SSL_R_UNKNOWN_CIPHER_TYPE 249
2496
+ # define SSL_R_UNKNOWN_CMD_NAME 386
2497
+ # define SSL_R_UNKNOWN_COMMAND 139
2498
+ # define SSL_R_UNKNOWN_DIGEST 368
2499
+ # define SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE 250
2500
+ # define SSL_R_UNKNOWN_PKEY_TYPE 251
2501
+ # define SSL_R_UNKNOWN_PROTOCOL 252
2502
+ # define SSL_R_UNKNOWN_SSL_VERSION 254
2503
+ # define SSL_R_UNKNOWN_STATE 255
2504
+ # define SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED 338
2505
+ # define SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM 257
2506
+ # define SSL_R_UNSUPPORTED_ELLIPTIC_CURVE 315
2507
+ # define SSL_R_UNSUPPORTED_PROTOCOL 258
2508
+ # define SSL_R_UNSUPPORTED_SSL_VERSION 259
2509
+ # define SSL_R_UNSUPPORTED_STATUS_TYPE 329
2510
+ # define SSL_R_USE_SRTP_NOT_NEGOTIATED 369
2511
+ # define SSL_R_VERSION_TOO_HIGH 166
2512
+ # define SSL_R_VERSION_TOO_LOW 396
2513
+ # define SSL_R_WRONG_CERTIFICATE_TYPE 383
2514
+ # define SSL_R_WRONG_CIPHER_RETURNED 261
2515
+ # define SSL_R_WRONG_CURVE 378
2516
+ # define SSL_R_WRONG_SIGNATURE_LENGTH 264
2517
+ # define SSL_R_WRONG_SIGNATURE_SIZE 265
2518
+ # define SSL_R_WRONG_SIGNATURE_TYPE 370
2519
+ # define SSL_R_WRONG_SSL_VERSION 266
2520
+ # define SSL_R_WRONG_VERSION_NUMBER 267
2521
+ # define SSL_R_X509_LIB 268
2522
+ # define SSL_R_X509_VERIFICATION_SETUP_PROBLEMS 269
2523
+
2524
+ # ifdef __cplusplus
2525
+ }
2526
+ # endif
2527
+ #endif