rhodes 7.1.17 → 7.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1157) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +1 -1
  3. data/Gemfile +3 -0
  4. data/LICENSE +1 -1
  5. data/README.html +2 -2
  6. data/README.md +26 -23
  7. data/Rakefile +169 -89
  8. data/appveyor.yml +74 -47
  9. data/bin/rhodes-setup +4 -4
  10. data/doc/application.txt +21 -0
  11. data/doc/oss/DeveloperNotes.md +1 -1
  12. data/doc/oss/WM_CE_Installation_And_Build_Guidelines.md +1 -1
  13. data/ext/extconf.rb +16 -3
  14. data/extensions/instrumentation/ext/platform/iphone/Instrumentation.xcodeproj/project.pbxproj +4 -4
  15. data/extensions/rhoconnect-push/ext/build.bat +1 -1
  16. data/extensions/rhoelementsext/ext/rhoelementsext/platform/android/rhoelements_temp/src/com/rho/rhoelements/graphics/BatteryIndicator.java +14 -1
  17. data/lib/build/buildgem.rb +26 -0
  18. data/lib/build/jake.rb +7 -5
  19. data/lib/commonAPI/ConnectionChecking/ext/build.bat +1 -1
  20. data/lib/commonAPI/RubyServer/ext/build.bat +1 -1
  21. data/lib/commonAPI/RubyServer/ext/platform/iphone/Rakefile +9 -62
  22. data/lib/commonAPI/RubyServer/ext/platform/iphone/RubyServer.xcodeproj/project.pbxproj +4 -4
  23. data/lib/commonAPI/audiocapture/ext/build.bat +1 -1
  24. data/lib/commonAPI/audiocapture/ext/platform/android/src/com/rho/audiocapture/AudioCapture.java +4 -1
  25. data/lib/commonAPI/audiocapture/ext/platform/iphone/Audiocapture.xcodeproj/project.pbxproj +4 -4
  26. data/lib/commonAPI/audiocapture/ext/platform/iphone/Rakefile +9 -63
  27. data/lib/commonAPI/barcode/ext/barcode.xml +2 -6
  28. data/lib/commonAPI/barcode/ext/build +5 -0
  29. data/lib/commonAPI/barcode/ext/build.bat +1 -1
  30. data/lib/commonAPI/barcode/ext/platform/android/AndroidManifest.xml +13 -0
  31. data/lib/commonAPI/barcode/ext/platform/android/Rakefile +229 -0
  32. data/lib/commonAPI/barcode/ext/platform/android/additional_files/res/drawable/barcode_arrow_back.png +0 -0
  33. data/lib/commonAPI/barcode/ext/platform/android/additional_files/res/drawable/barcode_done.png +0 -0
  34. data/lib/commonAPI/barcode/ext/platform/android/additional_files/res/drawable/barcode_flash_off.png +0 -0
  35. data/lib/commonAPI/barcode/ext/platform/android/additional_files/res/drawable/barcode_flash_on.png +0 -0
  36. data/lib/commonAPI/barcode/ext/platform/android/additional_files/res/drawable/barcode_replay.png +0 -0
  37. data/lib/commonAPI/barcode/ext/platform/android/additional_files/res/drawable-hdpi/icon.png +0 -0
  38. data/lib/commonAPI/barcode/ext/platform/android/additional_files/res/layout/barcode_capture.xml +98 -0
  39. data/lib/commonAPI/barcode/ext/platform/android/additional_files/res/values/barcode_strings.xml +12 -0
  40. data/lib/commonAPI/barcode/ext/platform/android/additional_files/res/values/barcode_styles.xml +8 -0
  41. data/lib/commonAPI/barcode/ext/platform/android/additional_files/res/values/dimens.xml +5 -0
  42. data/lib/commonAPI/barcode/ext/platform/android/additional_files/res/values-w820dp/dimens.xml +6 -0
  43. data/lib/commonAPI/barcode/ext/platform/android/ext_java.files +11 -0
  44. data/lib/commonAPI/barcode/ext/platform/android/src/com/google/barcodereader/BarcodeCaptureActivity.java +669 -0
  45. data/lib/commonAPI/barcode/ext/platform/android/src/com/google/barcodereader/BarcodeFormats.java +64 -0
  46. data/lib/commonAPI/barcode/ext/platform/android/src/com/google/barcodereader/BarcodeGraphic.java +94 -0
  47. data/lib/commonAPI/barcode/ext/platform/android/src/com/google/barcodereader/BarcodeGraphicTracker.java +165 -0
  48. data/lib/commonAPI/barcode/ext/platform/android/src/com/google/barcodereader/BarcodeTrackerFactory.java +47 -0
  49. data/lib/commonAPI/barcode/ext/platform/android/src/com/google/barcodereader/ui/camera/CameraSource.java +1166 -0
  50. data/lib/commonAPI/barcode/ext/platform/android/src/com/google/barcodereader/ui/camera/CameraSourcePreview.java +189 -0
  51. data/lib/commonAPI/barcode/ext/platform/android/src/com/google/barcodereader/ui/camera/GraphicOverlay.java +309 -0
  52. data/lib/commonAPI/barcode/ext/platform/android/src/com/rho/barcode/BarcodeCommon.java +199 -0
  53. data/lib/commonAPI/barcode/ext/platform/android/src/com/rho/barcode/BarcodeFactory.java +66 -49
  54. data/lib/commonAPI/barcode/ext/platform/android/src/com/rho/barcode/BarcodeFactoryRhoListener.java +9 -1
  55. data/lib/commonAPI/barcode/ext/platform/android/src/com/rho/barcode/BarcodeRhoExtension.java +9 -1
  56. data/lib/commonAPI/barcode/ext/platform/android/src/com/rho/barcode/BarcodeSingleton.java +75 -23
  57. data/lib/commonAPI/barcode/ext/platform/android/src/com/rho/barcode/InternalAndroidBarcodeScanner.java +184 -0
  58. data/lib/commonAPI/barcode/ext/platform/android/src/com/rho/barcode/ZXingScanner.java +48 -180
  59. data/lib/commonAPI/barcode/ext/platform/android/src/com/rho/barcode/emdk3/EMDK3Scanner.java +8 -1
  60. data/lib/commonAPI/barcode/ext/platform/android/src/com/rho/barcode/emdk3/EMDK3ScannerSettings.java +4 -3
  61. data/lib/commonAPI/barcode/ext/platform/iphone/Barcode.xcodeproj/project.pbxproj +4 -4
  62. data/lib/commonAPI/barcode/ext/platform/iphone/Rakefile +9 -64
  63. data/lib/commonAPI/barcode/ext/platform/iphone/ZXingObjC/ZXingObjC/client/result/ZXResultParser.m +1 -1
  64. data/lib/commonAPI/barcode/ext/platform/iphone/ZXingObjC/ZXingObjC/datamatrix/decoder/ZXDataMatrixDecodedBitStreamParser.m +4 -4
  65. data/lib/commonAPI/barcode/ext/platform/iphone/ZXingObjC/ZXingObjC.xcodeproj/project.pbxproj +6 -6
  66. data/lib/commonAPI/barcode/ext/platform/qt/Barcode.pro +41 -37
  67. data/lib/commonAPI/barcode/ext/platform/qt/src/BarcodeDialogBuilder.h +2 -0
  68. data/lib/commonAPI/barcode/ext/platform/qt/src/BarcodeDialogView.cpp +6 -3
  69. data/lib/commonAPI/barcode/ext/platform/qt/src/BarcodeDialogView.h +1 -1
  70. data/lib/commonAPI/barcode/ext/platform/qt/src/qzxing/zxing/zxing/ZXing.h +5 -5
  71. data/lib/commonAPI/barcode/ext.yml +10 -1
  72. data/lib/commonAPI/bluetooth/ext/build.bat +1 -1
  73. data/lib/commonAPI/bluetooth/ext/platform/android/src/com/rhomobile/rhodes/bluetooth/RhoBluetoothManagerNew.java +2 -0
  74. data/lib/commonAPI/bluetooth/ext/platform/iphone/Bluetooth.xcodeproj/project.pbxproj +6 -16
  75. data/lib/commonAPI/bluetooth/ext/platform/iphone/Rakefile +9 -62
  76. data/lib/commonAPI/bluetooth/ext/platform/qt/Bluetooth.pro +8 -11
  77. data/lib/commonAPI/bluetooth/ext/platform/qt/src/bluetooth/bluetoothserver.h +1 -1
  78. data/lib/commonAPI/clipboard/ext/build.bat +1 -1
  79. data/lib/commonAPI/clipboard/ext/platform/iphone/Clipboard.xcodeproj/project.pbxproj +4 -4
  80. data/lib/commonAPI/clipboard/ext/platform/iphone/Rakefile +9 -62
  81. data/lib/commonAPI/coreapi/RhoNativeTabbarApi.rb +1 -1
  82. data/lib/commonAPI/coreapi/RhoNotificationApi.rb +1 -1
  83. data/lib/commonAPI/coreapi/ext/Application.xml +2 -1
  84. data/lib/commonAPI/coreapi/ext/Timer.xml +21 -13
  85. data/lib/commonAPI/coreapi/ext/build +5 -0
  86. data/lib/commonAPI/coreapi/ext/build.bat +1 -1
  87. data/lib/commonAPI/coreapi/ext/platform/android/ApplicationManifestAdds.erb +0 -1
  88. data/lib/commonAPI/coreapi/ext/platform/android/src/com/rho/intent/IntentSingleton.java +21 -7
  89. data/lib/commonAPI/coreapi/ext/platform/iphone/Coreapi.xcodeproj/project.pbxproj +6 -4
  90. data/lib/commonAPI/coreapi/ext/platform/iphone/cpp_based_impl/SystemImpl.mm +4 -2
  91. data/lib/commonAPI/coreapi/ext/platform/iphone/impl/IntentSingleton.m +2 -2
  92. data/lib/commonAPI/coreapi/ext/platform/iphone/impl/NotificationSingleton.m +2 -2
  93. data/lib/commonAPI/coreapi/ext/platform/qt/coreapi.pro +16 -17
  94. data/lib/commonAPI/coreapi/ext/platform/qt/src/CNativeToolbarImpl.cpp +1 -1
  95. data/lib/commonAPI/coreapi/ext/platform/wm/src/NetworkDetect.h +2 -2
  96. data/lib/commonAPI/coreapi/ext/platform/wm/src/NotificationImpl.cpp +7 -0
  97. data/lib/commonAPI/coreapi/ext/platform/wm/src/SystemImpl.cpp +1 -3
  98. data/lib/commonAPI/coreapi/ext/push.xml +5 -3
  99. data/lib/commonAPI/coreapi/ext/shared/ApplicationImpl.cpp +2 -2
  100. data/lib/commonAPI/coreapi/ext/shared/InitExtension.cpp +8 -8
  101. data/lib/commonAPI/coreapi/ext/shared/NetworkDetectBase.cpp +1 -1
  102. data/lib/commonAPI/coreapi/ext/shared/SystemImplBase.cpp +2 -0
  103. data/lib/commonAPI/coreapi/ext/system.xml +3 -0
  104. data/lib/commonAPI/devicesecurity/ext/DeviceSecurity.xml +2 -2
  105. data/lib/commonAPI/devicesecurity/ext/build.bat +1 -1
  106. data/lib/commonAPI/devicesecurity/ext/platform/iphone/DeviceSecurity.xcodeproj/project.pbxproj +4 -4
  107. data/lib/commonAPI/devicesecurity/ext/platform/iphone/Rakefile +9 -62
  108. data/lib/commonAPI/eventsource/ext/platform/iphone/Eventsource.xcodeproj/project.pbxproj +4 -4
  109. data/lib/commonAPI/eventsource/ext/platform/iphone/Rakefile +9 -64
  110. data/lib/commonAPI/hardwarekeys/ext/platform/android/src/com/rho/keycapture/KeyCaptureRhoListener.java +11 -1
  111. data/lib/commonAPI/hardwarekeys/ext/platform/android/src/com/rho/keycapture/KeyCaptureSingleton.java +14 -1
  112. data/lib/commonAPI/hardwarekeys/ext/platform/iphone/HardwareKeys.xcodeproj/project.pbxproj +4 -4
  113. data/lib/commonAPI/hardwarekeys/ext/platform/iphone/Rakefile +9 -62
  114. data/lib/commonAPI/indicators/ext/platform/iphone/Indicators.xcodeproj/project.pbxproj +4 -4
  115. data/lib/commonAPI/indicators/ext/platform/iphone/Rakefile +9 -62
  116. data/lib/commonAPI/javascriptvm/ext/platform/iphone/Javascriptvm.xcodeproj/project.pbxproj +4 -4
  117. data/lib/commonAPI/javascriptvm/ext/platform/iphone/Rakefile +9 -63
  118. data/lib/commonAPI/logCapture/ext/build.bat +1 -1
  119. data/lib/commonAPI/logCapture/ext/platform/iphone/LogCapture.xcodeproj/project.pbxproj +4 -4
  120. data/lib/commonAPI/logCapture/ext/platform/iphone/Rakefile +9 -62
  121. data/lib/commonAPI/mediacapture/ext/build +5 -0
  122. data/lib/commonAPI/mediacapture/ext/build.bat +1 -1
  123. data/lib/commonAPI/mediacapture/ext/platform/android/AndroidManifest_rhomobile.xml +1 -0
  124. data/lib/commonAPI/mediacapture/ext/platform/android/ApplicationFileProvider.erb +9 -0
  125. data/lib/commonAPI/mediacapture/ext/platform/android/adds/res/xml/image_fileprovider_paths.xml +4 -0
  126. data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/CameraObject.java +60 -3
  127. data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/CameraRhoListener.java +50 -8
  128. data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/videocapture/Videocapture.java +3 -1
  129. data/lib/commonAPI/mediacapture/ext/platform/iphone/Mediacapture.xcodeproj/project.pbxproj +4 -4
  130. data/lib/commonAPI/mediacapture/ext/platform/iphone/Rakefile +9 -62
  131. data/lib/commonAPI/mediacapture/ext/platform/qt/{MediaCapture.pro → Mediacapture.pro} +19 -33
  132. data/lib/commonAPI/mediacapture/ext/platform/qt/src/Camera_impl.cpp +1 -1
  133. data/lib/commonAPI/mediacapture/ext.yml +4 -1
  134. data/lib/commonAPI/mediaplayer/ext/platform/iphone/Mediaplayer.xcodeproj/project.pbxproj +4 -4
  135. data/lib/commonAPI/mediaplayer/ext/platform/iphone/Rakefile +9 -62
  136. data/lib/commonAPI/printing/ext/platform/iphone/Printing.xcodeproj/project.pbxproj +4 -4
  137. data/lib/commonAPI/printing/ext/platform/iphone/Rakefile +9 -62
  138. data/lib/commonAPI/printing_epson/ext/platform/iphone/PrintingEpson.xcodeproj/project.pbxproj +4 -4
  139. data/lib/commonAPI/printing_epson/ext/platform/iphone/Rakefile +9 -62
  140. data/lib/commonAPI/printing_zebra/ext/platform/iphone/PrintingZebra.xcodeproj/project.pbxproj +4 -4
  141. data/lib/commonAPI/printing_zebra/ext/platform/iphone/Rakefile +9 -62
  142. data/lib/commonAPI/screenorientation/ext/platform/android/src/com/rho/screenorientation/ScreenOrientationRhoListener.java +2 -1
  143. data/lib/commonAPI/screenorientation/ext/platform/android/src/com/rho/screenorientation/ScreenOrientationSingleton.java +19 -6
  144. data/lib/commonAPI/screenorientation/ext/platform/iphone/Rakefile +9 -63
  145. data/lib/commonAPI/screenorientation/ext/platform/iphone/Screenorientation.xcodeproj/project.pbxproj +4 -4
  146. data/lib/commonAPI/sensor/ext/platform/iphone/Rakefile +9 -62
  147. data/lib/commonAPI/sensor/ext/platform/iphone/Sensor.xcodeproj/project.pbxproj +4 -4
  148. data/lib/commonAPI/signature/ext/build.bat +8 -0
  149. data/lib/commonAPI/signature/ext/platform/iphone/Rakefile +9 -62
  150. data/lib/commonAPI/signature/ext/platform/iphone/signature.xcodeproj/project.pbxproj +4 -4
  151. data/lib/commonAPI/signature/ext/platform/qt/Signature.pro +26 -12
  152. data/lib/commonAPI/signature/ext.yml +0 -1
  153. data/lib/commonAPI/smartcradle/ext/build.bat +1 -1
  154. data/lib/commonAPI/websocket/ext/platform/iphone/Rakefile +9 -62
  155. data/lib/commonAPI/websocket/ext/platform/iphone/Websocket.xcodeproj/project.pbxproj +4 -4
  156. data/lib/extensions/Development/ext/build.bat +1 -1
  157. data/lib/extensions/Development/ext/platform/iphone/Development.xcodeproj/project.pbxproj +4 -4
  158. data/lib/extensions/Development/ext/platform/iphone/Rakefile +9 -62
  159. data/lib/extensions/applePush/ext/platform/iphone/ApplePush.xcodeproj/project.pbxproj +4 -4
  160. data/lib/extensions/applePush/ext/platform/iphone/Rakefile +9 -62
  161. data/lib/extensions/audiocapture/ext/audiocapture/platform/iphone/Audiocapture.xcodeproj/project.pbxproj +4 -4
  162. data/lib/extensions/audiocapture/ext/audiocapture/platform/iphone/Rakefile +9 -62
  163. data/lib/extensions/bigdecimal/ext/Rakefile +2 -2
  164. data/lib/extensions/bigdecimal/ext/bigdecimal.pro +9 -0
  165. data/lib/extensions/bigdecimal/ext/build +4 -0
  166. data/lib/extensions/bigdecimal/ext/build.bat +1 -1
  167. data/lib/extensions/bigdecimal/ext/iphone/Bigdecimal.xcodeproj/project.pbxproj +4 -4
  168. data/lib/extensions/bigdecimal/ext/iphone/Rakefile +9 -62
  169. data/lib/extensions/debugger/debugger.rb +331 -180
  170. data/lib/extensions/decrypt/ext/build.bat +1 -1
  171. data/lib/extensions/decrypt/ext/platform/iphone/Decrypt.xcodeproj/project.pbxproj +4 -4
  172. data/lib/extensions/decrypt/ext/platform/iphone/Rakefile +9 -62
  173. data/lib/extensions/decryptstub/ext/build.bat +1 -1
  174. data/lib/extensions/decryptstub/ext/platform/iphone/Decryptstub.xcodeproj/project.pbxproj +6 -4
  175. data/lib/extensions/decryptstub/ext/platform/iphone/Rakefile +9 -62
  176. data/lib/extensions/digest/ext/Rakefile +2 -2
  177. data/lib/extensions/digest/ext/build +4 -0
  178. data/lib/extensions/digest/ext/build.bat +1 -1
  179. data/lib/extensions/digest/ext/digest.pro +9 -0
  180. data/lib/extensions/digest/ext/iphone/Digest.xcodeproj/project.pbxproj +4 -4
  181. data/lib/extensions/digest/ext/iphone/Rakefile +9 -62
  182. data/lib/extensions/digest-md5/ext/Rakefile +2 -2
  183. data/lib/extensions/digest-md5/ext/build +4 -0
  184. data/lib/extensions/digest-md5/ext/build.bat +1 -1
  185. data/lib/extensions/digest-md5/ext/digest-md5.pro +9 -0
  186. data/lib/extensions/digest-md5/ext/iphone/Dmd5.xcodeproj/project.pbxproj +4 -4
  187. data/lib/extensions/digest-md5/ext/iphone/Rakefile +9 -62
  188. data/lib/extensions/digest-sha1/ext/Rakefile +2 -2
  189. data/lib/extensions/digest-sha1/ext/build +4 -0
  190. data/lib/extensions/digest-sha1/ext/build.bat +1 -1
  191. data/lib/extensions/digest-sha1/ext/digest-sha1.pro +9 -0
  192. data/lib/extensions/digest-sha1/ext/iphone/Dsha1.xcodeproj/project.pbxproj +4 -4
  193. data/lib/extensions/digest-sha1/ext/iphone/Rakefile +9 -62
  194. data/lib/extensions/digest-sha2/ext/Rakefile +2 -2
  195. data/lib/extensions/digest-sha2/ext/build +4 -0
  196. data/lib/extensions/digest-sha2/ext/build.bat +1 -1
  197. data/lib/extensions/digest-sha2/ext/digest-sha2.pro +9 -0
  198. data/lib/extensions/digest-sha2/ext/iphone/Dsha2.xcodeproj/project.pbxproj +4 -4
  199. data/lib/extensions/digest-sha2/ext/iphone/Rakefile +9 -62
  200. data/lib/extensions/esri/ext/esri/platform/iphone/ESRI.xcodeproj/project.pbxproj +4 -4
  201. data/lib/extensions/esri/ext/esri/platform/iphone/Rakefile +9 -65
  202. data/lib/extensions/fcm-push/ext/iphone/Podfile +11 -0
  203. data/lib/extensions/fcm-push/ext/iphone/Rakefile +13 -66
  204. data/lib/extensions/fcm-push/ext/iphone/fcm-push.xcodeproj/project.pbxproj +99 -48
  205. data/lib/extensions/fcm-push/ext/iphone/impl/PushNotificationsReceiver.h +3 -1
  206. data/lib/extensions/fcm-push/ext/iphone/impl/PushNotificationsReceiver.mm +11 -4
  207. data/lib/extensions/fcm-push/ext/iphone/resources.txt +1 -0
  208. data/lib/extensions/fcm-push/ext.yml +5 -1
  209. data/lib/extensions/fcntl/ext/Rakefile +2 -2
  210. data/lib/extensions/fcntl/ext/build +4 -0
  211. data/lib/extensions/fcntl/ext/build.bat +1 -1
  212. data/lib/extensions/fcntl/ext/fcntl.pro +9 -0
  213. data/lib/extensions/fcntl/ext/iphone/Fcntl.xcodeproj/project.pbxproj +4 -4
  214. data/lib/extensions/fcntl/ext/iphone/Rakefile +9 -62
  215. data/lib/extensions/keyboard/ext/build.bat +1 -1
  216. data/lib/extensions/keyboard/ext/platform/iphone/Keyboard.xcodeproj/project.pbxproj +4 -4
  217. data/lib/extensions/keyboard/ext/platform/iphone/Rakefile +9 -62
  218. data/lib/extensions/openssl/ext/Rakefile +2 -2
  219. data/lib/extensions/openssl/ext/build +4 -0
  220. data/lib/extensions/openssl/ext/build.bat +1 -1
  221. data/lib/extensions/openssl/ext/iphone/Rakefile +9 -62
  222. data/lib/extensions/openssl/ext/iphone/openssl.xcodeproj/project.pbxproj +4 -4
  223. data/lib/extensions/openssl/ext/linux/extconf.h +65 -0
  224. data/lib/extensions/openssl/ext/openssl.pro +10 -0
  225. data/lib/extensions/openssl/ext/openssl_missing.c +4 -2
  226. data/lib/extensions/openssl/ext/ossl.h +3 -0
  227. data/lib/extensions/openssl/ext/ossl_x509cert.c +1 -1
  228. data/lib/extensions/openssl.so/ext/Rakefile +1 -1
  229. data/lib/extensions/openssl.so/ext/android/aarch64/libopenssl.so.a +0 -0
  230. data/lib/extensions/openssl.so/ext/android/armeabi/libopenssl.so.a +0 -0
  231. data/lib/extensions/openssl.so/ext/android/x86/libopenssl.so.a +0 -0
  232. data/lib/extensions/openssl.so/ext/build +4 -0
  233. data/lib/extensions/openssl.so/ext/iphone/OpenSSl.SDK/libcrypto.a +0 -0
  234. data/lib/extensions/{fcm-push/ext/iphone/Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics → openssl.so/ext/iphone/OpenSSl.SDK/libcrypto_sim.a} +0 -0
  235. data/lib/extensions/openssl.so/ext/iphone/OpenSSl.SDK/libssl.a +0 -0
  236. data/lib/extensions/openssl.so/ext/iphone/OpenSSl.SDK/libssl_sim.a +0 -0
  237. data/lib/extensions/openssl.so/ext/iphone/Rakefile +30 -54
  238. data/lib/extensions/openssl.so/ext/iphone/Release-iphoneos/libopenssl.so.a +0 -0
  239. data/lib/extensions/openssl.so/ext/iphone/Release-iphonesimulator/libopenssl.so.a +0 -0
  240. data/lib/extensions/openssl.so/ext/iphone/openssl.xcodeproj/project.pbxproj +116 -10
  241. data/lib/extensions/openssl.so/ext/sources/include/openssl/__DECC_INCLUDE_EPILOGUE.H +9 -3
  242. data/lib/extensions/openssl.so/ext/sources/include/openssl/__DECC_INCLUDE_PROLOGUE.H +10 -4
  243. data/lib/extensions/openssl.so/ext/sources/include/openssl/asn1.h +13 -226
  244. data/lib/extensions/openssl.so/ext/sources/include/openssl/asn1err.h +256 -0
  245. data/lib/extensions/openssl.so/ext/sources/include/openssl/asn1t.h +24 -8
  246. data/lib/extensions/openssl.so/ext/sources/include/openssl/async.h +2 -24
  247. data/lib/extensions/openssl.so/ext/sources/include/openssl/asyncerr.h +42 -0
  248. data/lib/extensions/openssl.so/ext/sources/include/openssl/bio.h +89 -139
  249. data/lib/extensions/openssl.so/ext/sources/include/openssl/bioerr.h +124 -0
  250. data/lib/extensions/openssl.so/ext/sources/include/openssl/bn.h +75 -111
  251. data/lib/extensions/openssl.so/ext/sources/include/openssl/bnerr.h +100 -0
  252. data/lib/extensions/openssl.so/ext/sources/include/openssl/buffer.h +2 -17
  253. data/lib/extensions/openssl.so/ext/sources/include/openssl/buffererr.h +34 -0
  254. data/lib/extensions/openssl.so/ext/sources/include/openssl/cms.h +6 -179
  255. data/lib/extensions/openssl.so/ext/sources/include/openssl/cmserr.h +202 -0
  256. data/lib/extensions/openssl.so/ext/sources/include/openssl/comp.h +2 -21
  257. data/lib/extensions/openssl.so/ext/sources/include/openssl/comperr.h +44 -0
  258. data/lib/extensions/openssl.so/ext/sources/include/openssl/conf.h +2 -51
  259. data/lib/extensions/openssl.so/ext/sources/include/openssl/conferr.h +76 -0
  260. data/lib/extensions/openssl.so/ext/sources/include/openssl/crypto.h +27 -49
  261. data/lib/extensions/openssl.so/ext/sources/include/openssl/cryptoerr.h +57 -0
  262. data/lib/extensions/openssl.so/ext/sources/include/openssl/ct.h +2 -61
  263. data/lib/extensions/openssl.so/ext/sources/include/openssl/cterr.h +80 -0
  264. data/lib/extensions/openssl.so/ext/sources/include/openssl/dh.h +33 -54
  265. data/lib/extensions/openssl.so/ext/sources/include/openssl/dherr.h +88 -0
  266. data/lib/extensions/openssl.so/ext/sources/include/openssl/dsa.h +21 -60
  267. data/lib/extensions/openssl.so/ext/sources/include/openssl/dsaerr.h +72 -0
  268. data/lib/extensions/openssl.so/ext/sources/include/openssl/dtls1.h +7 -8
  269. data/lib/extensions/openssl.so/ext/sources/include/openssl/e_os2.h +21 -19
  270. data/lib/extensions/openssl.so/ext/sources/include/openssl/ec.h +187 -284
  271. data/lib/extensions/openssl.so/ext/sources/include/openssl/ecerr.h +275 -0
  272. data/lib/extensions/openssl.so/ext/sources/include/openssl/engine.h +5 -94
  273. data/lib/extensions/openssl.so/ext/sources/include/openssl/engineerr.h +111 -0
  274. data/lib/extensions/openssl.so/ext/sources/include/openssl/err.h +19 -5
  275. data/lib/extensions/openssl.so/ext/sources/include/openssl/evp.h +250 -180
  276. data/lib/extensions/openssl.so/ext/sources/include/openssl/evperr.h +205 -0
  277. data/lib/extensions/openssl.so/ext/sources/include/openssl/hmac.h +4 -2
  278. data/lib/extensions/openssl.so/ext/sources/include/openssl/kdf.h +51 -29
  279. data/lib/extensions/openssl.so/ext/sources/include/openssl/kdferr.h +55 -0
  280. data/lib/extensions/openssl.so/ext/sources/include/openssl/lhash.h +43 -19
  281. data/lib/extensions/openssl.so/ext/sources/include/openssl/modes.h +11 -6
  282. data/lib/extensions/openssl.so/ext/sources/include/openssl/obj_mac.h +632 -11
  283. data/lib/extensions/openssl.so/ext/sources/include/openssl/objects.h +3 -925
  284. data/lib/extensions/openssl.so/ext/sources/include/openssl/objectserr.h +42 -0
  285. data/lib/extensions/openssl.so/ext/sources/include/openssl/ocsp.h +21 -65
  286. data/lib/extensions/openssl.so/ext/sources/include/openssl/ocsperr.h +78 -0
  287. data/lib/extensions/openssl.so/ext/sources/include/openssl/opensslconf.h +36 -10
  288. data/lib/extensions/openssl.so/ext/sources/include/openssl/opensslv.h +3 -7
  289. data/lib/extensions/openssl.so/ext/sources/include/openssl/ossl_typ.h +8 -1
  290. data/lib/extensions/openssl.so/ext/sources/include/openssl/pem.h +13 -136
  291. data/lib/extensions/openssl.so/ext/sources/include/openssl/pem2.h +4 -11
  292. data/lib/extensions/openssl.so/ext/sources/include/openssl/pemerr.h +103 -0
  293. data/lib/extensions/openssl.so/ext/sources/include/openssl/pkcs12.h +1 -60
  294. data/lib/extensions/openssl.so/ext/sources/include/openssl/pkcs12err.h +81 -0
  295. data/lib/extensions/openssl.so/ext/sources/include/openssl/pkcs7.h +1 -86
  296. data/lib/extensions/openssl.so/ext/sources/include/openssl/pkcs7err.h +103 -0
  297. data/lib/extensions/openssl.so/ext/sources/include/openssl/rand.h +22 -34
  298. data/lib/extensions/openssl.so/ext/sources/include/openssl/rand_drbg.h +130 -0
  299. data/lib/extensions/openssl.so/ext/sources/include/openssl/randerr.h +94 -0
  300. data/lib/extensions/openssl.so/ext/sources/include/openssl/rsa.h +96 -173
  301. data/lib/extensions/openssl.so/ext/sources/include/openssl/rsaerr.h +167 -0
  302. data/lib/extensions/openssl.so/ext/sources/include/openssl/safestack.h +66 -23
  303. data/lib/extensions/openssl.so/ext/sources/include/openssl/srp.h +5 -1
  304. data/lib/extensions/openssl.so/ext/sources/include/openssl/ssl.h +706 -828
  305. data/lib/extensions/openssl.so/ext/sources/include/openssl/ssl3.h +49 -20
  306. data/lib/extensions/openssl.so/ext/sources/include/openssl/sslerr.h +773 -0
  307. data/lib/extensions/openssl.so/ext/sources/include/openssl/stack.h +8 -3
  308. data/lib/extensions/openssl.so/ext/sources/include/openssl/store.h +266 -1
  309. data/lib/extensions/openssl.so/ext/sources/include/openssl/storeerr.h +91 -0
  310. data/lib/extensions/openssl.so/ext/sources/include/openssl/symhacks.h +1 -16
  311. data/lib/extensions/openssl.so/ext/sources/include/openssl/tls1.h +350 -85
  312. data/lib/extensions/openssl.so/ext/sources/include/openssl/ts.h +25 -109
  313. data/lib/extensions/openssl.so/ext/sources/include/openssl/tserr.h +132 -0
  314. data/lib/extensions/openssl.so/ext/sources/include/openssl/txt_db.h +2 -2
  315. data/lib/extensions/openssl.so/ext/sources/include/openssl/ui.h +56 -66
  316. data/lib/extensions/openssl.so/ext/sources/include/openssl/uierr.h +65 -0
  317. data/lib/extensions/openssl.so/ext/sources/include/openssl/x509.h +36 -112
  318. data/lib/extensions/openssl.so/ext/sources/include/openssl/x509_vfy.h +85 -1
  319. data/lib/extensions/openssl.so/ext/sources/include/openssl/x509err.h +130 -0
  320. data/lib/extensions/openssl.so/ext/sources/include/openssl/x509v3.h +72 -141
  321. data/lib/extensions/openssl.so/ext/sources/include/openssl/x509v3err.h +162 -0
  322. data/lib/extensions/openssl.so.src/ext/build +4 -0
  323. data/lib/extensions/rawsensors/ext/rawsensors/platform/iphone/Rakefile +9 -62
  324. data/lib/extensions/rawsensors/ext/rawsensors/platform/iphone/Rawsensors.xcodeproj/project.pbxproj +4 -4
  325. data/lib/extensions/serialport/ext/build.bat +1 -1
  326. data/lib/extensions/serialport/ext/serialport.pro +11 -11
  327. data/lib/extensions/videocapture/ext/videocapture/platform/iphone/Rakefile +9 -62
  328. data/lib/extensions/videocapture/ext/videocapture/platform/iphone/Videocapture.xcodeproj/project.pbxproj +4 -4
  329. data/lib/extensions/zlib/ext/Rakefile +2 -2
  330. data/lib/extensions/zlib/ext/build +4 -0
  331. data/lib/extensions/zlib/ext/build.bat +1 -1
  332. data/lib/extensions/zlib/ext/gzlib.c +1 -1
  333. data/lib/extensions/zlib/ext/gzread.c +2 -2
  334. data/lib/extensions/zlib/ext/gzwrite.c +3 -3
  335. data/lib/extensions/zlib/ext/iphone/Rakefile +9 -62
  336. data/lib/extensions/zlib/ext/iphone/zlib.xcodeproj/project.pbxproj +4 -4
  337. data/lib/extensions/zlib/ext/zlib.pro +24 -16
  338. data/lib/framework/autocomplete/Rho.rb +6 -2
  339. data/lib/framework/autocomplete/Rhodes.rb +1 -1
  340. data/lib/framework/rho/rho.rb +9 -0
  341. data/lib/framework/rho/rhoapplication.rb +4 -0
  342. data/lib/framework/rhodes.rb +2 -2
  343. data/lib/framework/version.rb +1 -1
  344. data/lib/rhodes.rb +2 -2
  345. data/platform/android/Rhodes/AndroidManifest.xml.erb +3 -2
  346. data/platform/android/Rhodes/jni/include/rhodes/RhoClassFactory.h +4 -3
  347. data/platform/android/Rhodes/jni/include/rhodes/sslimpl.h +94 -6
  348. data/platform/android/Rhodes/jni/src/JNIRhoRuby.cpp +1 -1
  349. data/platform/android/Rhodes/jni/src/JNIRhoRubyCppWrapper.cpp +104 -2
  350. data/platform/android/Rhodes/jni/src/RhoClassFactory.cpp +29 -1
  351. data/platform/android/Rhodes/jni/src/fileapi.cpp +2 -1
  352. data/platform/android/Rhodes/jni/src/rhodes.cpp +1 -0
  353. data/platform/android/Rhodes/jni/src/rhodesapp.cpp +18 -0
  354. data/platform/android/Rhodes/jni/src/sslimpl.cpp +317 -3
  355. data/platform/android/Rhodes/src/com/rhomobile/rhodes/BaseActivity.java +15 -1
  356. data/platform/android/Rhodes/src/com/rhomobile/rhodes/LocalFileProvider.java +17 -0
  357. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoRubySingleton.java +33 -0
  358. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +241 -165
  359. data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocationImpl.java +7 -1
  360. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality.java +7 -1
  361. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality01.java +13 -0
  362. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality11.java +9 -0
  363. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality26.java +61 -13
  364. data/platform/android/Rhodes/src/com/rhomobile/rhodes/socket/RhoSocketImpl.java +10 -2
  365. data/platform/android/Rhodes/src/com/rhomobile/rhodes/socket/SSLImpl.java +268 -16
  366. data/platform/android/Rhodes/src/com/rhomobile/rhodes/uri/LocalFileHandler.java +21 -18
  367. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebViewClient.java +47 -1
  368. data/platform/android/build/CMakeLists.txt.erb +3 -33
  369. data/platform/android/build/CMakeListsExts.txt.erb +26 -0
  370. data/platform/android/build/aab_builder.rb +234 -0
  371. data/platform/android/build/android.rake +512 -381
  372. data/platform/android/build/android_studio_project_generator.rb +82 -0
  373. data/platform/android/build/android_tools.rb +111 -26
  374. data/platform/android/build/androidcommon.rb +4 -23
  375. data/platform/android/build/apk_builder.rb +42 -0
  376. data/platform/android/build/libcurl_build.files +1 -1
  377. data/platform/android/build/librhodes_build.files +1 -1
  378. data/platform/android/build/maven_deps_extractor.rb +39 -5
  379. data/platform/android/build/ndkwrapper.rb +9 -11
  380. data/platform/android/proguard/proguard-base-rules.pro +27 -4
  381. data/platform/iphone/Classes/AppManager/AppManager.m +174 -159
  382. data/platform/iphone/Classes/Camera/PickImageDelegate.m +63 -0
  383. data/platform/iphone/Classes/RhoAlert.m +2 -2
  384. data/platform/iphone/Classes/RhoUIWebView.h +1 -1
  385. data/platform/iphone/Classes/RhoUIWebView.m +1 -1
  386. data/platform/iphone/Classes/RhoWKWebView.h +6 -3
  387. data/platform/iphone/Classes/RhoWKWebView.mm +86 -23
  388. data/platform/iphone/Classes/RhoWebView.h +6 -6
  389. data/platform/iphone/Classes/RhoWebViewFabrique.h +1 -1
  390. data/platform/iphone/Classes/RhoWebViewFabrique.m +4 -4
  391. data/platform/iphone/Classes/Rhodes.m +60 -12
  392. data/platform/iphone/Classes/SimpleMainView.m +2 -2
  393. data/platform/iphone/Classes/URLProtocol/CRhoURLProtocol.m +3 -3
  394. data/platform/iphone/Classes/URLProtocol/CRhoWKURLProtocol.m +1 -1
  395. data/platform/iphone/Classes/rho/net/IPhoneNetRequest.mm +1 -1
  396. data/platform/iphone/Default-568h@2x.png +0 -0
  397. data/platform/iphone/Default-667h@2x.png +0 -0
  398. data/platform/iphone/Default-736h@3x.png +0 -0
  399. data/platform/iphone/Default-812h@3x.png +0 -0
  400. data/platform/iphone/Default-896h@2x.png +0 -0
  401. data/platform/iphone/Default-896h@3x.png +0 -0
  402. data/platform/iphone/Default-Landscape-736h@3x.png +0 -0
  403. data/platform/iphone/Default-Landscape-812h@3x.png +0 -0
  404. data/platform/iphone/Default-Landscape-896h@2x.png +0 -0
  405. data/platform/iphone/Default-Landscape-896h@3x.png +0 -0
  406. data/platform/iphone/Default-Landscape.png +0 -0
  407. data/platform/iphone/Default-Landscape@2x.png +0 -0
  408. data/platform/iphone/Default-LandscapeLeft.png +0 -0
  409. data/platform/iphone/Default-LandscapeLeft@2x.png +0 -0
  410. data/platform/iphone/Default-LandscapeRight.png +0 -0
  411. data/platform/iphone/Default-LandscapeRight@2x.png +0 -0
  412. data/platform/iphone/Default-Portrait.png +0 -0
  413. data/platform/iphone/Default-Portrait@2x.png +0 -0
  414. data/platform/iphone/Default-PortraitUpsideDown.png +0 -0
  415. data/platform/iphone/Default-PortraitUpsideDown@2x.png +0 -0
  416. data/platform/iphone/Default.png +0 -0
  417. data/platform/iphone/Default@2x.png +0 -0
  418. data/platform/iphone/Framework/RhoApplication/RhoApplication.xcodeproj/project.pbxproj +9 -7
  419. data/platform/iphone/Framework/Rhodes/Rhodes.xcodeproj/project.pbxproj +14 -6
  420. data/platform/iphone/RhoAppBaseLib/RhoAppBaseLib.xcodeproj/project.pbxproj +7 -7
  421. data/platform/iphone/RhoLib/RhoLib.xcodeproj/project.pbxproj +4 -4
  422. data/platform/iphone/Rhodes.xcodeproj/project.pbxproj +4 -4
  423. data/platform/iphone/curl/curl.xcodeproj/project.pbxproj +11 -7
  424. data/platform/iphone/rbuild/buildextension.rb +115 -0
  425. data/platform/iphone/rbuild/iphone.rake +401 -115
  426. data/platform/iphone/rhoextlib/rhoextlib.xcodeproj/project.pbxproj +5 -4
  427. data/platform/iphone/rhorubylib/rhorubylib.xcodeproj/project.pbxproj +4 -4
  428. data/platform/iphone/rhorunner.xcodeproj/project.pbxproj +3 -3
  429. data/platform/iphone/rhosynclib/rhosynclib.xcodeproj/project.pbxproj +8 -7
  430. data/platform/linux/tasks/control.erb +8 -0
  431. data/platform/linux/tasks/getting sudo instruction.txt +8 -0
  432. data/platform/linux/tasks/install_dev_depes_alt.sh +9 -0
  433. data/platform/linux/tasks/install_dev_depes_astra.sh +7 -0
  434. data/platform/linux/tasks/install_dev_depes_redos.sh +10 -0
  435. data/platform/linux/tasks/install_dev_depes_rosa_r7.sh +15 -0
  436. data/platform/linux/tasks/install_dev_depes_rosa_x4.sh +21 -0
  437. data/platform/linux/tasks/install_dev_depes_ubuntu.sh +18 -0
  438. data/platform/linux/tasks/installation.txt +2 -0
  439. data/platform/linux/tasks/linter_exceptions.erb +2 -0
  440. data/platform/linux/tasks/linux.rake +498 -61
  441. data/platform/linux/tasks/rpm_spec.erb +33 -0
  442. data/platform/osx/bin/RhoSimulator/RhoSimulator.app.zip +0 -0
  443. data/platform/sailfish/build/coreapi.pro.erb +11 -12
  444. data/platform/sailfish/build/curl.pro.erb +12 -14
  445. data/platform/sailfish/build/harbour-SailfishRhodes.pro.erb +2 -2
  446. data/platform/sailfish/build/rho_build.cmd.erb +1 -0
  447. data/platform/sailfish/build/rho_clean.cmd.erb +1 -0
  448. data/platform/sailfish/build/rho_deploy.cmd.erb +1 -0
  449. data/platform/sailfish/build/rho_rpm.cmd.erb +1 -0
  450. data/platform/sailfish/build/rho_rpmvalidation.cmd.erb +1 -0
  451. data/platform/sailfish/build/rhodes.pro.erb +43 -38
  452. data/platform/sailfish/build/rholib.pro.erb +21 -57
  453. data/platform/sailfish/build/rubylib.pro.erb +25 -30
  454. data/platform/sailfish/build/sailfish.rake +56 -9
  455. data/platform/sailfish/build/sqlite3.pro.erb +9 -9
  456. data/platform/sailfish/build/syncengine.pro.erb +9 -16
  457. data/platform/sailfish/build/unzip.pro.erb +66 -0
  458. data/platform/sailfish/build/zlib.pro.erb +72 -0
  459. data/platform/shared/api_generator/Api.h +5 -0
  460. data/platform/shared/common/CMakeLists.txt.erb +2 -52
  461. data/platform/shared/common/IRhoClassFactory.h +54 -2
  462. data/platform/shared/common/RhoDefs.h +0 -1
  463. data/platform/shared/common/RhoFile.h +2 -0
  464. data/platform/shared/common/RhoMutexLock.h +1 -1
  465. data/platform/shared/common/RhodesApp.cpp +50 -7
  466. data/platform/shared/common/RhodesApp.h +5 -1
  467. data/platform/shared/common/iphone/RhoClassfactory.h +1 -1
  468. data/platform/shared/curl/CMakeLists.txt.erb +1 -94
  469. data/platform/shared/curl/lib/asyn-thread.c +2 -1
  470. data/platform/shared/curl/lib/curl_addrinfo.h +39 -0
  471. data/platform/shared/curl/lib/curl_config.h +9 -10
  472. data/platform/shared/curl/lib/curl_setup.h +4 -0
  473. data/platform/shared/curl/lib/multi.c +0 -1
  474. data/platform/shared/curl/lib/transfer.c +21 -2
  475. data/platform/shared/curl/lib/vtls/vtls.h +3 -0
  476. data/platform/shared/db/CMakeLists.txt.erb +1 -6
  477. data/platform/shared/db/DBAdapter.cpp +10 -4
  478. data/platform/shared/json/RJSONTokener.c +1 -8
  479. data/platform/shared/json/json_object.c +2 -2
  480. data/platform/shared/json/json_tokener.c +1 -1
  481. data/platform/shared/json.new/CMakeLists.txt.erb +1 -15
  482. data/platform/shared/json.new/RJSONTokener.c +0 -7
  483. data/platform/shared/json.new/json_object.c +5 -5
  484. data/platform/shared/json.new/json_pointer.c +2 -2
  485. data/platform/shared/json.new/json_tokener.c +1 -1
  486. data/platform/shared/logging/CMakeLists.txt.erb +1 -5
  487. data/platform/shared/logging/RhoLogConf.cpp +82 -3
  488. data/platform/shared/net/CURLNetRequest.cpp +6 -7
  489. data/platform/shared/net/HttpServer.cpp +234 -4
  490. data/platform/shared/net/HttpServer.h +22 -2
  491. data/platform/shared/net/INetRequest.cpp +2 -2
  492. data/platform/shared/net/INetRequest.h +6 -0
  493. data/platform/shared/net/linux/SSLImpl.cpp +2 -1
  494. data/platform/shared/net/ssl.h +26 -0
  495. data/platform/shared/qt/RhoSimulator.pro +24 -12
  496. data/platform/shared/qt/RhoSimulator_dev.pro +30 -15
  497. data/platform/shared/qt/curl/curl.pro +27 -16
  498. data/platform/shared/qt/rhodes/iexecutable.h +1 -1
  499. data/platform/shared/qt/rhodes/impl/RhoClassFactoryImpl.h +1 -1
  500. data/platform/shared/qt/rhodes/impl/RhoThreadImpl.cpp +1 -1
  501. data/platform/shared/qt/rhodes/newVersion/QtMainWindow.cpp +25 -10
  502. data/platform/shared/qt/rhodes/newVersion/QtMainWindow.h +1 -1
  503. data/platform/shared/qt/rhodes/newVersion/{qtwebenginepage.cpp → QtWebEnginePage.cpp} +1 -1
  504. data/platform/shared/qt/rhodes/newVersion/{qtwebenginepage.h → QtWebEnginePage.h} +0 -0
  505. data/platform/shared/qt/rhodes/newVersion/{qtwebengineview.cpp → QtWebEngineView.cpp} +1 -1
  506. data/platform/shared/qt/rhodes/newVersion/{qtwebengineview.h → QtWebEngineView.h} +0 -0
  507. data/platform/shared/qt/rhodes/newVersion/WebUrlRequestInterceptor.cpp +2 -2
  508. data/platform/shared/qt/rhodes/newVersion/main.cpp +5 -6
  509. data/platform/shared/qt/rhodes/resources/rho.png +0 -0
  510. data/platform/shared/qt/rhodes/rhodes.pro +88 -72
  511. data/platform/shared/qt/rholib/rholib.pro +33 -25
  512. data/platform/shared/qt/rhoruby_win32_build.bat +1 -1
  513. data/platform/shared/qt/rhoruby_win32_build_debug.bat +1 -1
  514. data/platform/shared/qt/rhosimulator_win32_build.bat +1 -1
  515. data/platform/shared/qt/rhosimulator_win32_build_debug.bat +1 -1
  516. data/platform/shared/qt/rubylib/rubylib.pro +37 -34
  517. data/platform/shared/qt/sailfish/SailfishRhodes.pro +1 -1
  518. data/platform/shared/qt/sailfish/icons/172x172/harbour-sailfishrhodes.png +0 -0
  519. data/platform/shared/qt/sailfish/qml/pages/BarcodePage.qml +18 -48
  520. data/platform/shared/qt/sqlite3/sqlite3.pro +16 -10
  521. data/platform/shared/qt/syncengine/syncengine.pro +18 -15
  522. data/platform/shared/qt/unzip/unzip.pro +133 -0
  523. data/platform/shared/rhoruby/impl/RhoRubyImpl.cpp +24 -19
  524. data/platform/shared/rhoruby/impl/RhoRubyImpl.h +5 -0
  525. data/platform/shared/ruby/CMakeLists.txt.erb +1 -129
  526. data/platform/shared/ruby/dln_find.c +1 -1
  527. data/platform/shared/ruby/error.c +1 -1
  528. data/platform/shared/ruby/ext/rho/rhoruby.c +35 -14
  529. data/platform/shared/ruby/ext/rho/rhoruby.h +1 -0
  530. data/platform/shared/ruby/ext/socket/addrinfo.h +2 -1
  531. data/platform/shared/ruby/ext/socket/ipsocket.c +3 -3
  532. data/platform/shared/ruby/file.c +3 -3
  533. data/platform/shared/ruby/io.c +46 -46
  534. data/platform/shared/ruby/linux/ruby/config.h +94 -34
  535. data/platform/shared/ruby/linux/ruby/config_linux.h +403 -0
  536. data/platform/shared/ruby/missing/langinfo.c +1 -1
  537. data/platform/shared/ruby/missing/memmove.c +4 -0
  538. data/platform/shared/ruby/posixnames.h +2 -8
  539. data/platform/shared/ruby/process.c +7 -7
  540. data/platform/shared/ruby/ruby.c +10 -10
  541. data/platform/shared/ruby/sailfish/ruby/config.h +1 -1
  542. data/platform/shared/ruby/thread_pthread.c +1 -1
  543. data/platform/shared/ruby/time.c +2 -2
  544. data/platform/shared/ruby/uwp/win32/win32.c +12 -12
  545. data/platform/shared/ruby/win32/ruby/config.h +1 -1
  546. data/platform/shared/sqlite/CMakeLists.txt.erb +1 -1
  547. data/platform/shared/sqlite/sqlite3.c +23 -0
  548. data/platform/shared/sync/CMakeLists.txt.erb +1 -1
  549. data/platform/shared/unzip/gzlib.cpp +1 -1
  550. data/platform/shared/unzip/gzwrite.cpp +3 -3
  551. data/platform/shared/unzip/unzip.cpp +3 -10
  552. data/platform/shared/unzip/zip.cpp +3 -8
  553. data/platform/uwp/rhodes/App.xaml.cs +9 -9
  554. data/platform/uwp/rhoruntime/common/RhoClassFactory.h +1 -1
  555. data/platform/win32/RhoSimulator/Qt5Core.dll +0 -0
  556. data/platform/win32/RhoSimulator/Qt5Gui.dll +0 -0
  557. data/platform/win32/RhoSimulator/Qt5Multimedia.dll +0 -0
  558. data/platform/win32/RhoSimulator/Qt5Network.dll +0 -0
  559. data/platform/win32/RhoSimulator/Qt5Positioning.dll +0 -0
  560. data/platform/win32/RhoSimulator/Qt5PrintSupport.dll +0 -0
  561. data/platform/win32/RhoSimulator/Qt5Qml.dll +0 -0
  562. data/platform/win32/RhoSimulator/Qt5Quick.dll +0 -0
  563. data/platform/win32/RhoSimulator/Qt5QuickWidgets.dll +0 -0
  564. data/platform/win32/RhoSimulator/Qt5SerialPort.dll +0 -0
  565. data/platform/win32/RhoSimulator/Qt5Svg.dll +0 -0
  566. data/platform/win32/RhoSimulator/Qt5WebChannel.dll +0 -0
  567. data/platform/win32/RhoSimulator/Qt5WebEngine.dll +0 -0
  568. data/platform/win32/RhoSimulator/Qt5WebEngineCore.dll +0 -0
  569. data/platform/win32/RhoSimulator/Qt5WebEngineWidgets.dll +0 -0
  570. data/platform/win32/RhoSimulator/Qt5Widgets.dll +0 -0
  571. data/platform/win32/RhoSimulator/QtWebEngineProcess.exe +0 -0
  572. data/platform/win32/RhoSimulator/RhoSimulator.exe +0 -0
  573. data/platform/win32/RhoSimulator/audio/qtaudio_wasapi.dll +0 -0
  574. data/platform/win32/RhoSimulator/audio/qtaudio_windows.dll +0 -0
  575. data/platform/win32/RhoSimulator/bearer/qgenericbearer.dll +0 -0
  576. data/platform/win32/RhoSimulator/concrt140.dll +0 -0
  577. data/platform/win32/RhoSimulator/iconengines/qsvgicon.dll +0 -0
  578. data/platform/win32/RhoSimulator/imageformats/qgif.dll +0 -0
  579. data/platform/win32/RhoSimulator/imageformats/qicns.dll +0 -0
  580. data/platform/win32/RhoSimulator/imageformats/qico.dll +0 -0
  581. data/platform/win32/RhoSimulator/imageformats/qjpeg.dll +0 -0
  582. data/platform/win32/RhoSimulator/imageformats/qsvg.dll +0 -0
  583. data/platform/win32/RhoSimulator/imageformats/qtga.dll +0 -0
  584. data/platform/win32/RhoSimulator/imageformats/qtiff.dll +0 -0
  585. data/platform/win32/RhoSimulator/imageformats/qwbmp.dll +0 -0
  586. data/platform/win32/RhoSimulator/imageformats/qwebp.dll +0 -0
  587. data/platform/win32/RhoSimulator/libEGL.dll +0 -0
  588. data/platform/win32/RhoSimulator/libGLESV2.dll +0 -0
  589. data/platform/win32/RhoSimulator/mediaservice/dsengine.dll +0 -0
  590. data/platform/win32/RhoSimulator/mediaservice/qtmedia_audioengine.dll +0 -0
  591. data/platform/win32/RhoSimulator/mediaservice/wmfengine.dll +0 -0
  592. data/platform/win32/RhoSimulator/mfc140.dll +0 -0
  593. data/platform/win32/RhoSimulator/mfc140chs.dll +0 -0
  594. data/platform/win32/RhoSimulator/mfc140cht.dll +0 -0
  595. data/platform/win32/RhoSimulator/mfc140deu.dll +0 -0
  596. data/platform/win32/RhoSimulator/mfc140enu.dll +0 -0
  597. data/platform/win32/RhoSimulator/mfc140esn.dll +0 -0
  598. data/platform/win32/RhoSimulator/mfc140fra.dll +0 -0
  599. data/platform/win32/RhoSimulator/mfc140ita.dll +0 -0
  600. data/platform/win32/RhoSimulator/mfc140jpn.dll +0 -0
  601. data/platform/win32/RhoSimulator/mfc140kor.dll +0 -0
  602. data/platform/win32/RhoSimulator/mfc140rus.dll +0 -0
  603. data/platform/win32/RhoSimulator/mfc140u.dll +0 -0
  604. data/platform/win32/RhoSimulator/mfcm140.dll +0 -0
  605. data/platform/win32/RhoSimulator/mfcm140u.dll +0 -0
  606. data/platform/win32/RhoSimulator/msvcp140.dll +0 -0
  607. data/platform/win32/RhoSimulator/msvcp140_1.dll +0 -0
  608. data/platform/win32/RhoSimulator/msvcp140_2.dll +0 -0
  609. data/platform/win32/RhoSimulator/platforms/qwindows.dll +0 -0
  610. data/platform/win32/RhoSimulator/playlistformats/qtmultimedia_m3u.dll +0 -0
  611. data/platform/win32/RhoSimulator/position/qtposition_positionpoll.dll +0 -0
  612. data/platform/win32/RhoSimulator/position/qtposition_serialnmea.dll +0 -0
  613. data/platform/win32/RhoSimulator/position/qtposition_winrt.dll +0 -0
  614. data/platform/win32/RhoSimulator/printsupport/windowsprintersupport.dll +0 -0
  615. data/platform/win32/RhoSimulator/resources/icudtl.dat +0 -0
  616. data/platform/win32/RhoSimulator/resources/qtwebengine_devtools_resources.pak +0 -0
  617. data/platform/win32/RhoSimulator/resources/qtwebengine_resources.pak +0 -0
  618. data/platform/win32/RhoSimulator/resources/qtwebengine_resources_100p.pak +0 -0
  619. data/platform/win32/RhoSimulator/resources/qtwebengine_resources_200p.pak +0 -0
  620. data/platform/win32/RhoSimulator/styles/qwindowsvistastyle.dll +0 -0
  621. data/platform/win32/RhoSimulator/translations/qt_ca.qm +0 -0
  622. data/platform/win32/RhoSimulator/translations/qt_da.qm +0 -0
  623. data/platform/win32/RhoSimulator/translations/qt_de.qm +0 -0
  624. data/platform/win32/RhoSimulator/translations/qt_fi.qm +0 -0
  625. data/platform/win32/RhoSimulator/translations/qt_ru.qm +0 -0
  626. data/platform/win32/RhoSimulator/translations/qt_zh_TW.qm +0 -0
  627. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/am.pak +0 -0
  628. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/ar.pak +0 -0
  629. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/bg.pak +0 -0
  630. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/bn.pak +0 -0
  631. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/ca.pak +0 -0
  632. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/cs.pak +0 -0
  633. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/da.pak +0 -0
  634. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/de.pak +0 -0
  635. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/el.pak +0 -0
  636. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/en-GB.pak +0 -0
  637. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/en-US.pak +0 -0
  638. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/es-419.pak +0 -0
  639. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/es.pak +0 -0
  640. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/et.pak +0 -0
  641. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/fa.pak +0 -0
  642. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/fi.pak +0 -0
  643. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/fil.pak +0 -0
  644. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/fr.pak +0 -0
  645. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/gu.pak +0 -0
  646. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/he.pak +0 -0
  647. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/hi.pak +0 -0
  648. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/hr.pak +0 -0
  649. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/hu.pak +0 -0
  650. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/id.pak +0 -0
  651. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/it.pak +0 -0
  652. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/ja.pak +0 -0
  653. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/kn.pak +0 -0
  654. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/ko.pak +0 -0
  655. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/lt.pak +0 -0
  656. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/lv.pak +0 -0
  657. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/ml.pak +0 -0
  658. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/mr.pak +0 -0
  659. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/ms.pak +0 -0
  660. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/nb.pak +0 -0
  661. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/nl.pak +0 -0
  662. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/pl.pak +0 -0
  663. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/pt-BR.pak +0 -0
  664. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/pt-PT.pak +0 -0
  665. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/ro.pak +0 -0
  666. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/ru.pak +0 -0
  667. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/sk.pak +0 -0
  668. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/sl.pak +0 -0
  669. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/sr.pak +0 -0
  670. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/sv.pak +0 -0
  671. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/sw.pak +0 -0
  672. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/ta.pak +0 -0
  673. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/te.pak +0 -0
  674. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/th.pak +0 -0
  675. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/tr.pak +0 -0
  676. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/uk.pak +0 -0
  677. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/vi.pak +0 -0
  678. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/zh-CN.pak +0 -0
  679. data/platform/win32/RhoSimulator/translations/qtwebengine_locales/zh-TW.pak +0 -0
  680. data/platform/win32/RhoSimulator/vcamp140.dll +0 -0
  681. data/platform/win32/RhoSimulator/vccorlib140.dll +0 -0
  682. data/platform/win32/RhoSimulator/vcomp140.dll +0 -0
  683. data/platform/win32/RhoSimulator/vcruntime140.dll +0 -0
  684. data/platform/win32/build/rhodes.nsi +184 -0
  685. data/platform/win32/build/win32.rake +876 -0
  686. data/platform/wm/build/wm.rake +12 -1067
  687. data/platform/wm/rhodes/rho/common/RhoClassFactory.h +2 -2
  688. data/platform/wm/syncengine/syncengine.vcproj +24 -16
  689. data/platform/wp8/rhoruntime/common/RhoClassFactory.h +1 -1
  690. data/rakefile.rb +169 -89
  691. data/res/build-tools/aapt2/linux/aapt2 +0 -0
  692. data/res/build-tools/aapt2/osx/aapt2 +0 -0
  693. data/res/build-tools/aapt2/windows/aapt2.exe +0 -0
  694. data/res/build-tools/bundletool.jar +0 -0
  695. data/res/build-tools/helpers/ext/android/build_common.rb +160 -0
  696. data/res/build-tools/iphonesim/build/Release/iphonesim_8 +6 -4
  697. data/res/generators/rhogen.rb +13 -3
  698. data/res/generators/templates/api/platform/iphone/generated/stub_impl/MontanaSetup.m +2 -2
  699. data/res/generators/templates/application/AndroidManifest.erb +4 -3
  700. data/res/generators/templates/application/Podfile.example +43 -0
  701. data/res/generators/templates/application/app/Settings/index.erb +52 -55
  702. data/res/generators/templates/application/app/Settings/javascript_index.html +51 -46
  703. data/res/generators/templates/application/app/Settings/javascript_login.html +24 -17
  704. data/res/generators/templates/application/app/Settings/login.erb +5 -12
  705. data/res/generators/templates/application/app/Settings/reset.erb +10 -14
  706. data/res/generators/templates/application/app/index.erb +26 -30
  707. data/res/generators/templates/application/app/javascript_index.html +36 -30
  708. data/res/generators/templates/application/app/javascript_index.js +13 -4
  709. data/res/generators/templates/application/app/layout.erb +18 -4
  710. data/res/generators/templates/application/app/loading.png +0 -0
  711. data/res/generators/templates/application/build.yml +22 -2
  712. data/res/generators/templates/application/public/libs/bootstrap-4.4.1-dist/css/bootstrap-grid.css +3899 -0
  713. data/res/generators/templates/application/public/libs/bootstrap-4.4.1-dist/css/bootstrap-grid.css.map +1 -0
  714. data/res/generators/templates/application/public/libs/bootstrap-4.4.1-dist/css/bootstrap-grid.min.css +7 -0
  715. data/res/generators/templates/application/public/libs/bootstrap-4.4.1-dist/css/bootstrap-grid.min.css.map +1 -0
  716. data/res/generators/templates/application/public/libs/bootstrap-4.4.1-dist/css/bootstrap-reboot.css +327 -0
  717. data/res/generators/templates/application/public/libs/bootstrap-4.4.1-dist/css/bootstrap-reboot.css.map +1 -0
  718. data/res/generators/templates/application/public/libs/bootstrap-4.4.1-dist/css/bootstrap-reboot.min.css +8 -0
  719. data/res/generators/templates/application/public/libs/bootstrap-4.4.1-dist/css/bootstrap-reboot.min.css.map +1 -0
  720. data/res/generators/templates/application/public/libs/bootstrap-4.4.1-dist/css/bootstrap.css +10224 -0
  721. data/res/generators/templates/application/public/libs/bootstrap-4.4.1-dist/css/bootstrap.css.map +1 -0
  722. data/res/generators/templates/application/public/libs/bootstrap-4.4.1-dist/css/bootstrap.min.css +7 -0
  723. data/res/generators/templates/application/public/libs/bootstrap-4.4.1-dist/css/bootstrap.min.css.map +1 -0
  724. data/res/generators/templates/application/public/libs/bootstrap-4.4.1-dist/js/bootstrap.bundle.js +7134 -0
  725. data/res/generators/templates/application/public/libs/bootstrap-4.4.1-dist/js/bootstrap.bundle.js.map +1 -0
  726. data/res/generators/templates/application/public/libs/bootstrap-4.4.1-dist/js/bootstrap.bundle.min.js +7 -0
  727. data/res/generators/templates/application/public/libs/bootstrap-4.4.1-dist/js/bootstrap.bundle.min.js.map +1 -0
  728. data/res/generators/templates/application/public/libs/bootstrap-4.4.1-dist/js/bootstrap.js +4521 -0
  729. data/res/generators/templates/application/public/libs/bootstrap-4.4.1-dist/js/bootstrap.js.map +1 -0
  730. data/res/generators/templates/application/public/libs/bootstrap-4.4.1-dist/js/bootstrap.min.js +7 -0
  731. data/res/generators/templates/application/public/libs/bootstrap-4.4.1-dist/js/bootstrap.min.js.map +1 -0
  732. data/res/generators/templates/application/public/libs/feather/js/feather.js +2413 -0
  733. data/res/generators/templates/application/public/libs/feather/js/feather.min.js +13 -0
  734. data/res/generators/templates/application/public/libs/feather/svg/activity.svg +1 -0
  735. data/res/generators/templates/application/public/libs/feather/svg/airplay.svg +1 -0
  736. data/res/generators/templates/application/public/libs/feather/svg/alert-circle.svg +1 -0
  737. data/res/generators/templates/application/public/libs/feather/svg/alert-octagon.svg +1 -0
  738. data/res/generators/templates/application/public/libs/feather/svg/alert-triangle.svg +1 -0
  739. data/res/generators/templates/application/public/libs/feather/svg/align-center.svg +1 -0
  740. data/res/generators/templates/application/public/libs/feather/svg/align-justify.svg +1 -0
  741. data/res/generators/templates/application/public/libs/feather/svg/align-left.svg +1 -0
  742. data/res/generators/templates/application/public/libs/feather/svg/align-right.svg +1 -0
  743. data/res/generators/templates/application/public/libs/feather/svg/anchor.svg +1 -0
  744. data/res/generators/templates/application/public/libs/feather/svg/aperture.svg +1 -0
  745. data/res/generators/templates/application/public/libs/feather/svg/archive.svg +1 -0
  746. data/res/generators/templates/application/public/libs/feather/svg/arrow-down-circle.svg +1 -0
  747. data/res/generators/templates/application/public/libs/feather/svg/arrow-down-left.svg +1 -0
  748. data/res/generators/templates/application/public/libs/feather/svg/arrow-down-right.svg +1 -0
  749. data/res/generators/templates/application/public/libs/feather/svg/arrow-down.svg +1 -0
  750. data/res/generators/templates/application/public/libs/feather/svg/arrow-left-circle.svg +1 -0
  751. data/res/generators/templates/application/public/libs/feather/svg/arrow-left.svg +1 -0
  752. data/res/generators/templates/application/public/libs/feather/svg/arrow-right-circle.svg +1 -0
  753. data/res/generators/templates/application/public/libs/feather/svg/arrow-right.svg +1 -0
  754. data/res/generators/templates/application/public/libs/feather/svg/arrow-up-circle.svg +1 -0
  755. data/res/generators/templates/application/public/libs/feather/svg/arrow-up-left.svg +1 -0
  756. data/res/generators/templates/application/public/libs/feather/svg/arrow-up-right.svg +1 -0
  757. data/res/generators/templates/application/public/libs/feather/svg/arrow-up.svg +1 -0
  758. data/res/generators/templates/application/public/libs/feather/svg/at-sign.svg +1 -0
  759. data/res/generators/templates/application/public/libs/feather/svg/award.svg +1 -0
  760. data/res/generators/templates/application/public/libs/feather/svg/bar-chart-2.svg +1 -0
  761. data/res/generators/templates/application/public/libs/feather/svg/bar-chart.svg +1 -0
  762. data/res/generators/templates/application/public/libs/feather/svg/battery-charging.svg +1 -0
  763. data/res/generators/templates/application/public/libs/feather/svg/battery.svg +1 -0
  764. data/res/generators/templates/application/public/libs/feather/svg/bell-off.svg +1 -0
  765. data/res/generators/templates/application/public/libs/feather/svg/bell.svg +1 -0
  766. data/res/generators/templates/application/public/libs/feather/svg/bluetooth.svg +1 -0
  767. data/res/generators/templates/application/public/libs/feather/svg/bold.svg +1 -0
  768. data/res/generators/templates/application/public/libs/feather/svg/book-open.svg +1 -0
  769. data/res/generators/templates/application/public/libs/feather/svg/book.svg +1 -0
  770. data/res/generators/templates/application/public/libs/feather/svg/bookmark.svg +1 -0
  771. data/res/generators/templates/application/public/libs/feather/svg/box.svg +1 -0
  772. data/res/generators/templates/application/public/libs/feather/svg/briefcase.svg +1 -0
  773. data/res/generators/templates/application/public/libs/feather/svg/calendar.svg +1 -0
  774. data/res/generators/templates/application/public/libs/feather/svg/camera-off.svg +1 -0
  775. data/res/generators/templates/application/public/libs/feather/svg/camera.svg +1 -0
  776. data/res/generators/templates/application/public/libs/feather/svg/cast.svg +1 -0
  777. data/res/generators/templates/application/public/libs/feather/svg/check-circle.svg +1 -0
  778. data/res/generators/templates/application/public/libs/feather/svg/check-square.svg +1 -0
  779. data/res/generators/templates/application/public/libs/feather/svg/check.svg +1 -0
  780. data/res/generators/templates/application/public/libs/feather/svg/chevron-down.svg +1 -0
  781. data/res/generators/templates/application/public/libs/feather/svg/chevron-left.svg +1 -0
  782. data/res/generators/templates/application/public/libs/feather/svg/chevron-right.svg +1 -0
  783. data/res/generators/templates/application/public/libs/feather/svg/chevron-up.svg +1 -0
  784. data/res/generators/templates/application/public/libs/feather/svg/chevrons-down.svg +1 -0
  785. data/res/generators/templates/application/public/libs/feather/svg/chevrons-left.svg +1 -0
  786. data/res/generators/templates/application/public/libs/feather/svg/chevrons-right.svg +1 -0
  787. data/res/generators/templates/application/public/libs/feather/svg/chevrons-up.svg +1 -0
  788. data/res/generators/templates/application/public/libs/feather/svg/chrome.svg +1 -0
  789. data/res/generators/templates/application/public/libs/feather/svg/circle.svg +1 -0
  790. data/res/generators/templates/application/public/libs/feather/svg/clipboard.svg +1 -0
  791. data/res/generators/templates/application/public/libs/feather/svg/clock.svg +1 -0
  792. data/res/generators/templates/application/public/libs/feather/svg/cloud-drizzle.svg +1 -0
  793. data/res/generators/templates/application/public/libs/feather/svg/cloud-lightning.svg +1 -0
  794. data/res/generators/templates/application/public/libs/feather/svg/cloud-off.svg +1 -0
  795. data/res/generators/templates/application/public/libs/feather/svg/cloud-rain.svg +1 -0
  796. data/res/generators/templates/application/public/libs/feather/svg/cloud-snow.svg +1 -0
  797. data/res/generators/templates/application/public/libs/feather/svg/cloud.svg +1 -0
  798. data/res/generators/templates/application/public/libs/feather/svg/code.svg +1 -0
  799. data/res/generators/templates/application/public/libs/feather/svg/codepen.svg +1 -0
  800. data/res/generators/templates/application/public/libs/feather/svg/codesandbox.svg +1 -0
  801. data/res/generators/templates/application/public/libs/feather/svg/coffee.svg +1 -0
  802. data/res/generators/templates/application/public/libs/feather/svg/columns.svg +1 -0
  803. data/res/generators/templates/application/public/libs/feather/svg/command.svg +1 -0
  804. data/res/generators/templates/application/public/libs/feather/svg/compass.svg +1 -0
  805. data/res/generators/templates/application/public/libs/feather/svg/copy.svg +1 -0
  806. data/res/generators/templates/application/public/libs/feather/svg/corner-down-left.svg +1 -0
  807. data/res/generators/templates/application/public/libs/feather/svg/corner-down-right.svg +1 -0
  808. data/res/generators/templates/application/public/libs/feather/svg/corner-left-down.svg +1 -0
  809. data/res/generators/templates/application/public/libs/feather/svg/corner-left-up.svg +1 -0
  810. data/res/generators/templates/application/public/libs/feather/svg/corner-right-down.svg +1 -0
  811. data/res/generators/templates/application/public/libs/feather/svg/corner-right-up.svg +1 -0
  812. data/res/generators/templates/application/public/libs/feather/svg/corner-up-left.svg +1 -0
  813. data/res/generators/templates/application/public/libs/feather/svg/corner-up-right.svg +1 -0
  814. data/res/generators/templates/application/public/libs/feather/svg/cpu.svg +1 -0
  815. data/res/generators/templates/application/public/libs/feather/svg/credit-card.svg +1 -0
  816. data/res/generators/templates/application/public/libs/feather/svg/crop.svg +1 -0
  817. data/res/generators/templates/application/public/libs/feather/svg/crosshair.svg +1 -0
  818. data/res/generators/templates/application/public/libs/feather/svg/database.svg +1 -0
  819. data/res/generators/templates/application/public/libs/feather/svg/delete.svg +1 -0
  820. data/res/generators/templates/application/public/libs/feather/svg/disc.svg +1 -0
  821. data/res/generators/templates/application/public/libs/feather/svg/dollar-sign.svg +1 -0
  822. data/res/generators/templates/application/public/libs/feather/svg/download-cloud.svg +1 -0
  823. data/res/generators/templates/application/public/libs/feather/svg/download.svg +1 -0
  824. data/res/generators/templates/application/public/libs/feather/svg/droplet.svg +1 -0
  825. data/res/generators/templates/application/public/libs/feather/svg/edit-2.svg +1 -0
  826. data/res/generators/templates/application/public/libs/feather/svg/edit-3.svg +1 -0
  827. data/res/generators/templates/application/public/libs/feather/svg/edit.svg +1 -0
  828. data/res/generators/templates/application/public/libs/feather/svg/external-link.svg +1 -0
  829. data/res/generators/templates/application/public/libs/feather/svg/eye-off.svg +1 -0
  830. data/res/generators/templates/application/public/libs/feather/svg/eye.svg +1 -0
  831. data/res/generators/templates/application/public/libs/feather/svg/facebook.svg +1 -0
  832. data/res/generators/templates/application/public/libs/feather/svg/fast-forward.svg +1 -0
  833. data/res/generators/templates/application/public/libs/feather/svg/feather.svg +1 -0
  834. data/res/generators/templates/application/public/libs/feather/svg/figma.svg +1 -0
  835. data/res/generators/templates/application/public/libs/feather/svg/file-minus.svg +1 -0
  836. data/res/generators/templates/application/public/libs/feather/svg/file-plus.svg +1 -0
  837. data/res/generators/templates/application/public/libs/feather/svg/file-text.svg +1 -0
  838. data/res/generators/templates/application/public/libs/feather/svg/file.svg +1 -0
  839. data/res/generators/templates/application/public/libs/feather/svg/film.svg +1 -0
  840. data/res/generators/templates/application/public/libs/feather/svg/filter.svg +1 -0
  841. data/res/generators/templates/application/public/libs/feather/svg/flag.svg +1 -0
  842. data/res/generators/templates/application/public/libs/feather/svg/folder-minus.svg +1 -0
  843. data/res/generators/templates/application/public/libs/feather/svg/folder-plus.svg +1 -0
  844. data/res/generators/templates/application/public/libs/feather/svg/folder.svg +1 -0
  845. data/res/generators/templates/application/public/libs/feather/svg/framer.svg +1 -0
  846. data/res/generators/templates/application/public/libs/feather/svg/frown.svg +1 -0
  847. data/res/generators/templates/application/public/libs/feather/svg/gift.svg +1 -0
  848. data/res/generators/templates/application/public/libs/feather/svg/git-branch.svg +1 -0
  849. data/res/generators/templates/application/public/libs/feather/svg/git-commit.svg +1 -0
  850. data/res/generators/templates/application/public/libs/feather/svg/git-merge.svg +1 -0
  851. data/res/generators/templates/application/public/libs/feather/svg/git-pull-request.svg +1 -0
  852. data/res/generators/templates/application/public/libs/feather/svg/github.svg +1 -0
  853. data/res/generators/templates/application/public/libs/feather/svg/gitlab.svg +1 -0
  854. data/res/generators/templates/application/public/libs/feather/svg/globe.svg +1 -0
  855. data/res/generators/templates/application/public/libs/feather/svg/grid.svg +1 -0
  856. data/res/generators/templates/application/public/libs/feather/svg/hard-drive.svg +1 -0
  857. data/res/generators/templates/application/public/libs/feather/svg/hash.svg +1 -0
  858. data/res/generators/templates/application/public/libs/feather/svg/headphones.svg +1 -0
  859. data/res/generators/templates/application/public/libs/feather/svg/heart.svg +1 -0
  860. data/res/generators/templates/application/public/libs/feather/svg/help-circle.svg +1 -0
  861. data/res/generators/templates/application/public/libs/feather/svg/hexagon.svg +1 -0
  862. data/res/generators/templates/application/public/libs/feather/svg/home.svg +1 -0
  863. data/res/generators/templates/application/public/libs/feather/svg/image.svg +1 -0
  864. data/res/generators/templates/application/public/libs/feather/svg/inbox.svg +1 -0
  865. data/res/generators/templates/application/public/libs/feather/svg/info.svg +1 -0
  866. data/res/generators/templates/application/public/libs/feather/svg/instagram.svg +1 -0
  867. data/res/generators/templates/application/public/libs/feather/svg/italic.svg +1 -0
  868. data/res/generators/templates/application/public/libs/feather/svg/key.svg +1 -0
  869. data/res/generators/templates/application/public/libs/feather/svg/layers.svg +1 -0
  870. data/res/generators/templates/application/public/libs/feather/svg/layout.svg +1 -0
  871. data/res/generators/templates/application/public/libs/feather/svg/life-buoy.svg +1 -0
  872. data/res/generators/templates/application/public/libs/feather/svg/link-2.svg +1 -0
  873. data/res/generators/templates/application/public/libs/feather/svg/link.svg +1 -0
  874. data/res/generators/templates/application/public/libs/feather/svg/linkedin.svg +1 -0
  875. data/res/generators/templates/application/public/libs/feather/svg/list.svg +1 -0
  876. data/res/generators/templates/application/public/libs/feather/svg/loader.svg +1 -0
  877. data/res/generators/templates/application/public/libs/feather/svg/lock.svg +1 -0
  878. data/res/generators/templates/application/public/libs/feather/svg/log-in.svg +1 -0
  879. data/res/generators/templates/application/public/libs/feather/svg/log-out.svg +1 -0
  880. data/res/generators/templates/application/public/libs/feather/svg/mail.svg +1 -0
  881. data/res/generators/templates/application/public/libs/feather/svg/map-pin.svg +1 -0
  882. data/res/generators/templates/application/public/libs/feather/svg/map.svg +1 -0
  883. data/res/generators/templates/application/public/libs/feather/svg/maximize-2.svg +1 -0
  884. data/res/generators/templates/application/public/libs/feather/svg/maximize.svg +1 -0
  885. data/res/generators/templates/application/public/libs/feather/svg/meh.svg +1 -0
  886. data/res/generators/templates/application/public/libs/feather/svg/menu.svg +1 -0
  887. data/res/generators/templates/application/public/libs/feather/svg/message-circle.svg +1 -0
  888. data/res/generators/templates/application/public/libs/feather/svg/message-square.svg +1 -0
  889. data/res/generators/templates/application/public/libs/feather/svg/mic-off.svg +1 -0
  890. data/res/generators/templates/application/public/libs/feather/svg/mic.svg +1 -0
  891. data/res/generators/templates/application/public/libs/feather/svg/minimize-2.svg +1 -0
  892. data/res/generators/templates/application/public/libs/feather/svg/minimize.svg +1 -0
  893. data/res/generators/templates/application/public/libs/feather/svg/minus-circle.svg +1 -0
  894. data/res/generators/templates/application/public/libs/feather/svg/minus-square.svg +1 -0
  895. data/res/generators/templates/application/public/libs/feather/svg/minus.svg +1 -0
  896. data/res/generators/templates/application/public/libs/feather/svg/monitor.svg +1 -0
  897. data/res/generators/templates/application/public/libs/feather/svg/moon.svg +1 -0
  898. data/res/generators/templates/application/public/libs/feather/svg/more-horizontal.svg +1 -0
  899. data/res/generators/templates/application/public/libs/feather/svg/more-vertical.svg +1 -0
  900. data/res/generators/templates/application/public/libs/feather/svg/mouse-pointer.svg +1 -0
  901. data/res/generators/templates/application/public/libs/feather/svg/move.svg +1 -0
  902. data/res/generators/templates/application/public/libs/feather/svg/music.svg +1 -0
  903. data/res/generators/templates/application/public/libs/feather/svg/navigation-2.svg +1 -0
  904. data/res/generators/templates/application/public/libs/feather/svg/navigation.svg +1 -0
  905. data/res/generators/templates/application/public/libs/feather/svg/octagon.svg +1 -0
  906. data/res/generators/templates/application/public/libs/feather/svg/package.svg +1 -0
  907. data/res/generators/templates/application/public/libs/feather/svg/paperclip.svg +1 -0
  908. data/res/generators/templates/application/public/libs/feather/svg/pause-circle.svg +1 -0
  909. data/res/generators/templates/application/public/libs/feather/svg/pause.svg +1 -0
  910. data/res/generators/templates/application/public/libs/feather/svg/pen-tool.svg +1 -0
  911. data/res/generators/templates/application/public/libs/feather/svg/percent.svg +1 -0
  912. data/res/generators/templates/application/public/libs/feather/svg/phone-call.svg +1 -0
  913. data/res/generators/templates/application/public/libs/feather/svg/phone-forwarded.svg +1 -0
  914. data/res/generators/templates/application/public/libs/feather/svg/phone-incoming.svg +1 -0
  915. data/res/generators/templates/application/public/libs/feather/svg/phone-missed.svg +1 -0
  916. data/res/generators/templates/application/public/libs/feather/svg/phone-off.svg +1 -0
  917. data/res/generators/templates/application/public/libs/feather/svg/phone-outgoing.svg +1 -0
  918. data/res/generators/templates/application/public/libs/feather/svg/phone.svg +1 -0
  919. data/res/generators/templates/application/public/libs/feather/svg/pie-chart.svg +1 -0
  920. data/res/generators/templates/application/public/libs/feather/svg/play-circle.svg +1 -0
  921. data/res/generators/templates/application/public/libs/feather/svg/play.svg +1 -0
  922. data/res/generators/templates/application/public/libs/feather/svg/plus-circle.svg +1 -0
  923. data/res/generators/templates/application/public/libs/feather/svg/plus-square.svg +1 -0
  924. data/res/generators/templates/application/public/libs/feather/svg/plus.svg +1 -0
  925. data/res/generators/templates/application/public/libs/feather/svg/pocket.svg +1 -0
  926. data/res/generators/templates/application/public/libs/feather/svg/power.svg +1 -0
  927. data/res/generators/templates/application/public/libs/feather/svg/printer.svg +1 -0
  928. data/res/generators/templates/application/public/libs/feather/svg/radio.svg +1 -0
  929. data/res/generators/templates/application/public/libs/feather/svg/refresh-ccw.svg +1 -0
  930. data/res/generators/templates/application/public/libs/feather/svg/refresh-cw.svg +1 -0
  931. data/res/generators/templates/application/public/libs/feather/svg/repeat.svg +1 -0
  932. data/res/generators/templates/application/public/libs/feather/svg/rewind.svg +1 -0
  933. data/res/generators/templates/application/public/libs/feather/svg/rotate-ccw.svg +1 -0
  934. data/res/generators/templates/application/public/libs/feather/svg/rotate-cw.svg +1 -0
  935. data/res/generators/templates/application/public/libs/feather/svg/rss.svg +1 -0
  936. data/res/generators/templates/application/public/libs/feather/svg/save.svg +1 -0
  937. data/res/generators/templates/application/public/libs/feather/svg/scissors.svg +1 -0
  938. data/res/generators/templates/application/public/libs/feather/svg/search.svg +1 -0
  939. data/res/generators/templates/application/public/libs/feather/svg/send.svg +1 -0
  940. data/res/generators/templates/application/public/libs/feather/svg/server.svg +1 -0
  941. data/res/generators/templates/application/public/libs/feather/svg/settings.svg +1 -0
  942. data/res/generators/templates/application/public/libs/feather/svg/share-2.svg +1 -0
  943. data/res/generators/templates/application/public/libs/feather/svg/share.svg +1 -0
  944. data/res/generators/templates/application/public/libs/feather/svg/shield-off.svg +1 -0
  945. data/res/generators/templates/application/public/libs/feather/svg/shield.svg +1 -0
  946. data/res/generators/templates/application/public/libs/feather/svg/shopping-bag.svg +1 -0
  947. data/res/generators/templates/application/public/libs/feather/svg/shopping-cart.svg +1 -0
  948. data/res/generators/templates/application/public/libs/feather/svg/shuffle.svg +1 -0
  949. data/res/generators/templates/application/public/libs/feather/svg/sidebar.svg +1 -0
  950. data/res/generators/templates/application/public/libs/feather/svg/skip-back.svg +1 -0
  951. data/res/generators/templates/application/public/libs/feather/svg/skip-forward.svg +1 -0
  952. data/res/generators/templates/application/public/libs/feather/svg/slack.svg +1 -0
  953. data/res/generators/templates/application/public/libs/feather/svg/slash.svg +1 -0
  954. data/res/generators/templates/application/public/libs/feather/svg/sliders.svg +1 -0
  955. data/res/generators/templates/application/public/libs/feather/svg/smartphone.svg +1 -0
  956. data/res/generators/templates/application/public/libs/feather/svg/smile.svg +1 -0
  957. data/res/generators/templates/application/public/libs/feather/svg/speaker.svg +1 -0
  958. data/res/generators/templates/application/public/libs/feather/svg/square.svg +1 -0
  959. data/res/generators/templates/application/public/libs/feather/svg/star.svg +1 -0
  960. data/res/generators/templates/application/public/libs/feather/svg/stop-circle.svg +1 -0
  961. data/res/generators/templates/application/public/libs/feather/svg/sun.svg +1 -0
  962. data/res/generators/templates/application/public/libs/feather/svg/sunrise.svg +1 -0
  963. data/res/generators/templates/application/public/libs/feather/svg/sunset.svg +1 -0
  964. data/res/generators/templates/application/public/libs/feather/svg/tablet.svg +1 -0
  965. data/res/generators/templates/application/public/libs/feather/svg/tag.svg +1 -0
  966. data/res/generators/templates/application/public/libs/feather/svg/target.svg +1 -0
  967. data/res/generators/templates/application/public/libs/feather/svg/terminal.svg +1 -0
  968. data/res/generators/templates/application/public/libs/feather/svg/thermometer.svg +1 -0
  969. data/res/generators/templates/application/public/libs/feather/svg/thumbs-down.svg +1 -0
  970. data/res/generators/templates/application/public/libs/feather/svg/thumbs-up.svg +1 -0
  971. data/res/generators/templates/application/public/libs/feather/svg/toggle-left.svg +1 -0
  972. data/res/generators/templates/application/public/libs/feather/svg/toggle-right.svg +1 -0
  973. data/res/generators/templates/application/public/libs/feather/svg/tool.svg +1 -0
  974. data/res/generators/templates/application/public/libs/feather/svg/trash-2.svg +1 -0
  975. data/res/generators/templates/application/public/libs/feather/svg/trash.svg +1 -0
  976. data/res/generators/templates/application/public/libs/feather/svg/trello.svg +1 -0
  977. data/res/generators/templates/application/public/libs/feather/svg/trending-down.svg +1 -0
  978. data/res/generators/templates/application/public/libs/feather/svg/trending-up.svg +1 -0
  979. data/res/generators/templates/application/public/libs/feather/svg/triangle.svg +1 -0
  980. data/res/generators/templates/application/public/libs/feather/svg/truck.svg +1 -0
  981. data/res/generators/templates/application/public/libs/feather/svg/tv.svg +1 -0
  982. data/res/generators/templates/application/public/libs/feather/svg/twitch.svg +1 -0
  983. data/res/generators/templates/application/public/libs/feather/svg/twitter.svg +1 -0
  984. data/res/generators/templates/application/public/libs/feather/svg/type.svg +1 -0
  985. data/res/generators/templates/application/public/libs/feather/svg/umbrella.svg +1 -0
  986. data/res/generators/templates/application/public/libs/feather/svg/underline.svg +1 -0
  987. data/res/generators/templates/application/public/libs/feather/svg/unlock.svg +1 -0
  988. data/res/generators/templates/application/public/libs/feather/svg/upload-cloud.svg +1 -0
  989. data/res/generators/templates/application/public/libs/feather/svg/upload.svg +1 -0
  990. data/res/generators/templates/application/public/libs/feather/svg/user-check.svg +1 -0
  991. data/res/generators/templates/application/public/libs/feather/svg/user-minus.svg +1 -0
  992. data/res/generators/templates/application/public/libs/feather/svg/user-plus.svg +1 -0
  993. data/res/generators/templates/application/public/libs/feather/svg/user-x.svg +1 -0
  994. data/res/generators/templates/application/public/libs/feather/svg/user.svg +1 -0
  995. data/res/generators/templates/application/public/libs/feather/svg/users.svg +1 -0
  996. data/res/generators/templates/application/public/libs/feather/svg/video-off.svg +1 -0
  997. data/res/generators/templates/application/public/libs/feather/svg/video.svg +1 -0
  998. data/res/generators/templates/application/public/libs/feather/svg/voicemail.svg +1 -0
  999. data/res/generators/templates/application/public/libs/feather/svg/volume-1.svg +1 -0
  1000. data/res/generators/templates/application/public/libs/feather/svg/volume-2.svg +1 -0
  1001. data/res/generators/templates/application/public/libs/feather/svg/volume-x.svg +1 -0
  1002. data/res/generators/templates/application/public/libs/feather/svg/volume.svg +1 -0
  1003. data/res/generators/templates/application/public/libs/feather/svg/watch.svg +1 -0
  1004. data/res/generators/templates/application/public/libs/feather/svg/wifi-off.svg +1 -0
  1005. data/res/generators/templates/application/public/libs/feather/svg/wifi.svg +1 -0
  1006. data/res/generators/templates/application/public/libs/feather/svg/wind.svg +1 -0
  1007. data/res/generators/templates/application/public/libs/feather/svg/x-circle.svg +1 -0
  1008. data/res/generators/templates/application/public/libs/feather/svg/x-octagon.svg +1 -0
  1009. data/res/generators/templates/application/public/libs/feather/svg/x-square.svg +1 -0
  1010. data/res/generators/templates/application/public/libs/feather/svg/x.svg +1 -0
  1011. data/res/generators/templates/application/public/libs/feather/svg/youtube.svg +1 -0
  1012. data/res/generators/templates/application/public/libs/feather/svg/zap-off.svg +1 -0
  1013. data/res/generators/templates/application/public/libs/feather/svg/zap.svg +1 -0
  1014. data/res/generators/templates/application/public/libs/feather/svg/zoom-in.svg +1 -0
  1015. data/res/generators/templates/application/public/libs/feather/svg/zoom-out.svg +1 -0
  1016. data/res/generators/templates/application/public/libs/jquery-3.5.1/jquery-3.5.1.js +10872 -0
  1017. data/res/generators/templates/application/public/libs/jquery-3.5.1/jquery-3.5.1.min.js +2 -0
  1018. data/res/generators/templates/application/public/libs/jquery-3.5.1/jquery-3.5.1.min.map +1 -0
  1019. data/res/generators/templates/application/public/libs/popper-2.4.0/popper-2.4.0.js +1802 -0
  1020. data/res/generators/templates/application/public/libs/popper-2.4.0/popper-2.4.0.min.js +6 -0
  1021. data/res/generators/templates/application/resources/android/res/drawable/loading.png +0 -0
  1022. data/res/generators/templates/application/resources/android/res/drawable-hdpi/loading.png +0 -0
  1023. data/res/generators/templates/application/resources/android/res/drawable-ldpi/loading.png +0 -0
  1024. data/res/generators/templates/application/resources/android/res/drawable-mdpi/loading.png +0 -0
  1025. data/res/generators/templates/application/resources/android/res/drawable-xhdpi/loading.png +0 -0
  1026. data/res/generators/templates/application/resources/android/res/drawable-xxhdpi/loading.png +0 -0
  1027. data/res/generators/templates/application/resources/android/res/drawable-xxxhdpi/loading.png +0 -0
  1028. data/res/generators/templates/application/resources/ios/Default-568h@2x.png +0 -0
  1029. data/res/generators/templates/application/resources/ios/Default-667h@2x.png +0 -0
  1030. data/res/generators/templates/application/resources/ios/Default-736h@3x.png +0 -0
  1031. data/res/generators/templates/application/resources/ios/Default-812h@3x.png +0 -0
  1032. data/res/generators/templates/application/resources/ios/Default-896h@2x.png +0 -0
  1033. data/res/generators/templates/application/resources/ios/Default-896h@3x.png +0 -0
  1034. data/res/generators/templates/application/resources/ios/Default-Landscape-736h@3x.png +0 -0
  1035. data/res/generators/templates/application/resources/ios/Default-Landscape-812h@3x.png +0 -0
  1036. data/res/generators/templates/application/resources/ios/Default-Landscape-896h@2x.png +0 -0
  1037. data/res/generators/templates/application/resources/ios/Default-Landscape-896h@3x.png +0 -0
  1038. data/res/generators/templates/application/resources/ios/Default-Landscape.png +0 -0
  1039. data/res/generators/templates/application/resources/ios/Default-Landscape@2x.png +0 -0
  1040. data/res/generators/templates/application/resources/ios/Default-Portrait.png +0 -0
  1041. data/res/generators/templates/application/resources/ios/Default-Portrait@2x.png +0 -0
  1042. data/res/generators/templates/application/resources/ios/Default.png +0 -0
  1043. data/res/generators/templates/application/resources/ios/Default@2x.png +0 -0
  1044. data/res/generators/templates/application/rhoconfig.txt +7 -0
  1045. data/res/generators/templates/extension/extensions/montana/ext/build +5 -0
  1046. data/res/generators/templates/extension/extensions/montana/ext/build.bat +1 -1
  1047. data/res/generators/templates/extension/extensions/montana/ext/platform/android/Rakefile +1 -160
  1048. data/res/generators/templates/extension/extensions/montana/ext/platform/iphone/Montana.xcodeproj/project.pbxproj +4 -4
  1049. data/res/generators/templates/extension/extensions/montana/ext/platform/iphone/Podfile.example +16 -0
  1050. data/res/generators/templates/extension/extensions/montana/ext/platform/iphone/Rakefile +9 -62
  1051. data/res/generators/templates/extension/extensions/montana/ext/platform/qt/Montana.pro +26 -1
  1052. data/res/generators/templates/iphone_project/Bremen8.xcodeproj/project.pbxproj +34 -55
  1053. data/res/generators/templates/iphone_project/Media.xcassets/LaunchImage.launchimage/Default-568h@2x.png +0 -0
  1054. data/res/generators/templates/iphone_project/Media.xcassets/LaunchImage.launchimage/Default-667h@2x.png +0 -0
  1055. data/res/generators/templates/iphone_project/Media.xcassets/LaunchImage.launchimage/Default-736h@3x.png +0 -0
  1056. data/res/generators/templates/iphone_project/Media.xcassets/LaunchImage.launchimage/Default-812h@3x.png +0 -0
  1057. data/res/generators/templates/iphone_project/Media.xcassets/LaunchImage.launchimage/Default-896h@2x.png +0 -0
  1058. data/res/generators/templates/iphone_project/Media.xcassets/LaunchImage.launchimage/Default-896h@3x.png +0 -0
  1059. data/res/generators/templates/iphone_project/Media.xcassets/LaunchImage.launchimage/Default-Landscape-736h@3x.png +0 -0
  1060. data/res/generators/templates/iphone_project/Media.xcassets/LaunchImage.launchimage/Default-Landscape-812h@3x.png +0 -0
  1061. data/res/generators/templates/iphone_project/Media.xcassets/LaunchImage.launchimage/Default-Landscape-896h@2x.png +0 -0
  1062. data/res/generators/templates/iphone_project/Media.xcassets/LaunchImage.launchimage/Default-Landscape-896h@3x.png +0 -0
  1063. data/res/generators/templates/iphone_project/Media.xcassets/LaunchImage.launchimage/Default-Landscape.png +0 -0
  1064. data/res/generators/templates/iphone_project/Media.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png +0 -0
  1065. data/res/generators/templates/iphone_project/Media.xcassets/LaunchImage.launchimage/Default-Portrait.png +0 -0
  1066. data/res/generators/templates/iphone_project/Media.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png +0 -0
  1067. data/res/generators/templates/iphone_project/Media.xcassets/LaunchImage.launchimage/Default.png +0 -0
  1068. data/res/generators/templates/iphone_project/Media.xcassets/LaunchImage.launchimage/Default@2x.png +0 -0
  1069. data/res/generators/templates/iphone_project/Rhodes/Rhodes.xcodeproj/project.pbxproj +4 -4
  1070. data/res/generators/templates/iphone_project/buildRhoBundle +2 -10
  1071. data/res/generators/templates/iphone_project/root/Info.plist +4 -0
  1072. data/res/generators/templates/model/edit.erb +10 -12
  1073. data/res/generators/templates/model/index.erb +27 -29
  1074. data/res/generators/templates/model/javascript_edit.html +18 -17
  1075. data/res/generators/templates/model/javascript_index.html +22 -21
  1076. data/res/generators/templates/model/javascript_index.js +12 -7
  1077. data/res/generators/templates/model/javascript_new.html +20 -16
  1078. data/res/generators/templates/model/javascript_show.html +30 -32
  1079. data/res/generators/templates/model/new.erb +8 -12
  1080. data/res/generators/templates/model/show.erb +22 -28
  1081. data/res/generators/templates/project/android_studio_project/app/CMakeLists.txt.erb +15 -2
  1082. data/res/generators/templates/project/android_studio_project/app/build.gradle.erb +22 -19
  1083. data/res/generators/templates/project/android_studio_project/build.gradle +3 -1
  1084. data/res/generators/templates/spec/app/SpecRunner/controller.rb +1 -1
  1085. data/res/generators/templates/spec/app/mspec.rb +1 -1
  1086. data/res/generators/templates/spec/app/spec_runner.rb +23 -4
  1087. data/res/prebuild_base_app/rhoconfig.txt +11 -8
  1088. data/rhobuild.yml.example +3 -0
  1089. data/rhodes-core.gemspec +1 -2
  1090. data/rhodes.gemspec +20 -26
  1091. data/rhomobile-debug.gemspec +0 -1
  1092. data/version +1 -1
  1093. metadata +453 -97
  1094. data/extensions/emdk3-manager/ext/platform/android/ext_native.files +0 -0
  1095. data/lib/extensions/fcm-push/ext/iphone/Firebase.h +0 -68
  1096. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h +0 -62
  1097. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +0 -115
  1098. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalyticsConfiguration.h +0 -1
  1099. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalyticsSwiftNameSupport.h +0 -13
  1100. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIRApp.h +0 -1
  1101. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIRConfiguration.h +0 -1
  1102. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIREventNames.h +0 -389
  1103. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIROptions.h +0 -1
  1104. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +0 -485
  1105. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +0 -15
  1106. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h +0 -10
  1107. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseAnalytics.framework/Modules/module.modulemap +0 -10
  1108. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseCore.framework/FirebaseCore +0 -0
  1109. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseCore.framework/Headers/FIRAnalyticsConfiguration.h +0 -52
  1110. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseCore.framework/Headers/FIRApp.h +0 -130
  1111. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseCore.framework/Headers/FIRConfiguration.h +0 -78
  1112. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseCore.framework/Headers/FIRLoggerLevel.h +0 -35
  1113. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseCore.framework/Headers/FIROptions.h +0 -133
  1114. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseCore.framework/Headers/FirebaseCore.h +0 -5
  1115. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseCore.framework/Modules/module.modulemap +0 -7
  1116. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseCoreDiagnostics.framework/FirebaseCoreDiagnostics +0 -0
  1117. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseCoreDiagnostics.framework/Modules/module.modulemap +0 -6
  1118. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseInstanceID.framework/FirebaseInstanceID +0 -0
  1119. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseInstanceID.framework/Headers/FIRInstanceID.h +0 -276
  1120. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseInstanceID.framework/Headers/FirebaseInstanceID.h +0 -1
  1121. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseInstanceID.framework/Modules/module.modulemap +0 -7
  1122. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseMessaging.framework/FirebaseMessaging +0 -0
  1123. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseMessaging.framework/Headers/FIRMessaging.h +0 -508
  1124. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseMessaging.framework/Headers/FirebaseMessaging.h +0 -1
  1125. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseMessaging.framework/Modules/module.modulemap +0 -8
  1126. data/lib/extensions/fcm-push/ext/iphone/Frameworks/FirebaseNanoPB.framework/FirebaseNanoPB +0 -0
  1127. data/lib/extensions/fcm-push/ext/iphone/Frameworks/GoogleToolboxForMac.framework/GoogleToolboxForMac +0 -0
  1128. data/lib/extensions/fcm-push/ext/iphone/Frameworks/GoogleToolboxForMac.framework/Modules/module.modulemap +0 -5
  1129. data/lib/extensions/fcm-push/ext/iphone/Frameworks/Protobuf.framework/Modules/module.modulemap +0 -5
  1130. data/lib/extensions/fcm-push/ext/iphone/Frameworks/Protobuf.framework/Protobuf +0 -0
  1131. data/lib/extensions/fcm-push/ext/iphone/Frameworks/nanopb.framework/Modules/module.modulemap +0 -5
  1132. data/lib/extensions/fcm-push/ext/iphone/Frameworks/nanopb.framework/nanopb +0 -0
  1133. data/platform/win32/RhoSimulator/position/qtposition_geoclue.dll +0 -0
  1134. data/platform/win32/build/RhoRuntimeQt5-VS2008.nsi +0 -162
  1135. data/platform/win32/build/RhoRuntimeQt5.5.0.0_VS2012.nsi +0 -178
  1136. data/platform/win32/build/RhoRuntimeQt5.bat +0 -2
  1137. data/platform/win32/build/RhoRuntimeQt5.ico +0 -0
  1138. data/platform/win32/build/RhoRuntimeQt5.nsi +0 -165
  1139. data/res/generators/templates/application/public/bootstrap-3.3.7/css/bootstrap-theme.css +0 -587
  1140. data/res/generators/templates/application/public/bootstrap-3.3.7/css/bootstrap-theme.css.map +0 -1
  1141. data/res/generators/templates/application/public/bootstrap-3.3.7/css/bootstrap-theme.min.css +0 -6
  1142. data/res/generators/templates/application/public/bootstrap-3.3.7/css/bootstrap-theme.min.css.map +0 -1
  1143. data/res/generators/templates/application/public/bootstrap-3.3.7/css/bootstrap.css +0 -6757
  1144. data/res/generators/templates/application/public/bootstrap-3.3.7/css/bootstrap.css.map +0 -1
  1145. data/res/generators/templates/application/public/bootstrap-3.3.7/css/bootstrap.min.css +0 -6
  1146. data/res/generators/templates/application/public/bootstrap-3.3.7/css/bootstrap.min.css.map +0 -1
  1147. data/res/generators/templates/application/public/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.eot +0 -0
  1148. data/res/generators/templates/application/public/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.svg +0 -288
  1149. data/res/generators/templates/application/public/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.ttf +0 -0
  1150. data/res/generators/templates/application/public/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.woff +0 -0
  1151. data/res/generators/templates/application/public/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.woff2 +0 -0
  1152. data/res/generators/templates/application/public/bootstrap-3.3.7/js/bootstrap.js +0 -2377
  1153. data/res/generators/templates/application/public/bootstrap-3.3.7/js/bootstrap.min.js +0 -7
  1154. data/res/generators/templates/application/public/bootstrap-3.3.7/js/npm.js +0 -13
  1155. data/res/generators/templates/application/public/jquery/jquery-3.1.1.min.js +0 -4
  1156. data/res/generators/templates/application/public/jquery/jquery-3.1.1.min.map +0 -1
  1157. data/res/generators/templates/application/public/jquery/jquery-3.2.1.min.js +0 -4
@@ -1,5 +1,7 @@
1
1
  /*
2
- * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
2
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
3
+ * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
4
+ * Copyright 2005 Nokia. All rights reserved.
3
5
  *
4
6
  * Licensed under the OpenSSL license (the "License"). You may not use
5
7
  * this file except in compliance with the License. You can obtain a copy
@@ -7,38 +9,6 @@
7
9
  * https://www.openssl.org/source/license.html
8
10
  */
9
11
 
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
12
  #ifndef HEADER_SSL_H
43
13
  # define HEADER_SSL_H
44
14
 
@@ -49,9 +19,9 @@
49
19
  # if OPENSSL_API_COMPAT < 0x10100000L
50
20
  # include <openssl/x509.h>
51
21
  # include <openssl/crypto.h>
52
- # include <openssl/lhash.h>
53
22
  # include <openssl/buffer.h>
54
23
  # endif
24
+ # include <openssl/lhash.h>
55
25
  # include <openssl/pem.h>
56
26
  # include <openssl/hmac.h>
57
27
  # include <openssl/async.h>
@@ -59,6 +29,7 @@
59
29
  # include <openssl/safestack.h>
60
30
  # include <openssl/symhacks.h>
61
31
  # include <openssl/ct.h>
32
+ # include <openssl/sslerr.h>
62
33
 
63
34
  #ifdef __cplusplus
64
35
  extern "C" {
@@ -95,14 +66,14 @@ extern "C" {
95
66
  # define SSL_TXT_NULL "NULL"
96
67
 
97
68
  # define SSL_TXT_kRSA "kRSA"
98
- # define SSL_TXT_kDHr "kDHr"
99
- # define SSL_TXT_kDHd "kDHd"
100
- # define SSL_TXT_kDH "kDH"
69
+ # define SSL_TXT_kDHr "kDHr"/* this cipher class has been removed */
70
+ # define SSL_TXT_kDHd "kDHd"/* this cipher class has been removed */
71
+ # define SSL_TXT_kDH "kDH"/* this cipher class has been removed */
101
72
  # define SSL_TXT_kEDH "kEDH"/* alias for kDHE */
102
73
  # define SSL_TXT_kDHE "kDHE"
103
- # define SSL_TXT_kECDHr "kECDHr"
104
- # define SSL_TXT_kECDHe "kECDHe"
105
- # define SSL_TXT_kECDH "kECDH"
74
+ # define SSL_TXT_kECDHr "kECDHr"/* this cipher class has been removed */
75
+ # define SSL_TXT_kECDHe "kECDHe"/* this cipher class has been removed */
76
+ # define SSL_TXT_kECDH "kECDH"/* this cipher class has been removed */
106
77
  # define SSL_TXT_kEECDH "kEECDH"/* alias for kECDHE */
107
78
  # define SSL_TXT_kECDHE "kECDHE"
108
79
  # define SSL_TXT_kPSK "kPSK"
@@ -114,8 +85,8 @@ extern "C" {
114
85
 
115
86
  # define SSL_TXT_aRSA "aRSA"
116
87
  # define SSL_TXT_aDSS "aDSS"
117
- # define SSL_TXT_aDH "aDH"
118
- # define SSL_TXT_aECDH "aECDH"
88
+ # define SSL_TXT_aDH "aDH"/* this cipher class has been removed */
89
+ # define SSL_TXT_aECDH "aECDH"/* this cipher class has been removed */
119
90
  # define SSL_TXT_aECDSA "aECDSA"
120
91
  # define SSL_TXT_aPSK "aPSK"
121
92
  # define SSL_TXT_aGOST94 "aGOST94"
@@ -155,6 +126,10 @@ extern "C" {
155
126
  # define SSL_TXT_CAMELLIA "CAMELLIA"
156
127
  # define SSL_TXT_CHACHA20 "CHACHA20"
157
128
  # define SSL_TXT_GOST "GOST89"
129
+ # define SSL_TXT_ARIA "ARIA"
130
+ # define SSL_TXT_ARIA_GCM "ARIAGCM"
131
+ # define SSL_TXT_ARIA128 "ARIA128"
132
+ # define SSL_TXT_ARIA256 "ARIA256"
158
133
 
159
134
  # define SSL_TXT_MD5 "MD5"
160
135
  # define SSL_TXT_SHA1 "SHA1"
@@ -193,8 +168,18 @@ extern "C" {
193
168
  /*
194
169
  * The following cipher list is used by default. It also is substituted when
195
170
  * an application-defined cipher list string starts with 'DEFAULT'.
171
+ * This applies to ciphersuites for TLSv1.2 and below.
196
172
  */
197
173
  # define SSL_DEFAULT_CIPHER_LIST "ALL:!COMPLEMENTOFDEFAULT:!eNULL"
174
+ /* This is the default set of TLSv1.3 ciphersuites */
175
+ # if !defined(OPENSSL_NO_CHACHA) && !defined(OPENSSL_NO_POLY1305)
176
+ # define TLS_DEFAULT_CIPHERSUITES "TLS_AES_256_GCM_SHA384:" \
177
+ "TLS_CHACHA20_POLY1305_SHA256:" \
178
+ "TLS_AES_128_GCM_SHA256"
179
+ # else
180
+ # define TLS_DEFAULT_CIPHERSUITES "TLS_AES_256_GCM_SHA384:" \
181
+ "TLS_AES_128_GCM_SHA256"
182
+ #endif
198
183
  /*
199
184
  * As of OpenSSL 1.0.0, ssl_create_cipher_list() in ssl/ssl_ciph.c always
200
185
  * starts with a reasonable order, and all we have to do for DEFAULT is
@@ -241,34 +226,95 @@ typedef struct srtp_protection_profile_st {
241
226
 
242
227
  DEFINE_STACK_OF(SRTP_PROTECTION_PROFILE)
243
228
 
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);
229
+ typedef int (*tls_session_ticket_ext_cb_fn)(SSL *s, const unsigned char *data,
230
+ int len, void *arg);
231
+ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len,
232
+ STACK_OF(SSL_CIPHER) *peer_ciphers,
233
+ const SSL_CIPHER **cipher, void *arg);
234
+
235
+ /* Extension context codes */
236
+ /* This extension is only allowed in TLS */
237
+ #define SSL_EXT_TLS_ONLY 0x0001
238
+ /* This extension is only allowed in DTLS */
239
+ #define SSL_EXT_DTLS_ONLY 0x0002
240
+ /* Some extensions may be allowed in DTLS but we don't implement them for it */
241
+ #define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004
242
+ /* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */
243
+ #define SSL_EXT_SSL3_ALLOWED 0x0008
244
+ /* Extension is only defined for TLS1.2 and below */
245
+ #define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010
246
+ /* Extension is only defined for TLS1.3 and above */
247
+ #define SSL_EXT_TLS1_3_ONLY 0x0020
248
+ /* Ignore this extension during parsing if we are resuming */
249
+ #define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040
250
+ #define SSL_EXT_CLIENT_HELLO 0x0080
251
+ /* Really means TLS1.2 or below */
252
+ #define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100
253
+ #define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200
254
+ #define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400
255
+ #define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800
256
+ #define SSL_EXT_TLS1_3_CERTIFICATE 0x1000
257
+ #define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000
258
+ #define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000
251
259
 
252
260
  /* Typedefs for handling custom extensions */
253
261
 
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);
262
+ typedef int (*custom_ext_add_cb)(SSL *s, unsigned int ext_type,
263
+ const unsigned char **out, size_t *outlen,
264
+ int *al, void *add_arg);
265
+
266
+ typedef void (*custom_ext_free_cb)(SSL *s, unsigned int ext_type,
267
+ const unsigned char *out, void *add_arg);
268
+
269
+ typedef int (*custom_ext_parse_cb)(SSL *s, unsigned int ext_type,
270
+ const unsigned char *in, size_t inlen,
271
+ int *al, void *parse_arg);
257
272
 
258
- typedef void (*custom_ext_free_cb) (SSL *s, unsigned int ext_type,
259
- const unsigned char *out, void *add_arg);
260
273
 
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);
274
+ typedef int (*SSL_custom_ext_add_cb_ex)(SSL *s, unsigned int ext_type,
275
+ unsigned int context,
276
+ const unsigned char **out,
277
+ size_t *outlen, X509 *x,
278
+ size_t chainidx,
279
+ int *al, void *add_arg);
280
+
281
+ typedef void (*SSL_custom_ext_free_cb_ex)(SSL *s, unsigned int ext_type,
282
+ unsigned int context,
283
+ const unsigned char *out,
284
+ void *add_arg);
285
+
286
+ typedef int (*SSL_custom_ext_parse_cb_ex)(SSL *s, unsigned int ext_type,
287
+ unsigned int context,
288
+ const unsigned char *in,
289
+ size_t inlen, X509 *x,
290
+ size_t chainidx,
291
+ int *al, void *parse_arg);
264
292
 
265
293
  /* Typedef for verification callback */
266
294
  typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx);
267
295
 
296
+ /*
297
+ * Some values are reserved until OpenSSL 1.2.0 because they were previously
298
+ * included in SSL_OP_ALL in a 1.1.x release.
299
+ *
300
+ * Reserved value (until OpenSSL 1.2.0) 0x00000001U
301
+ * Reserved value (until OpenSSL 1.2.0) 0x00000002U
302
+ */
268
303
  /* Allow initial connection to servers that don't support RI */
269
304
  # define SSL_OP_LEGACY_SERVER_CONNECT 0x00000004U
305
+
306
+ /* Reserved value (until OpenSSL 1.2.0) 0x00000008U */
270
307
  # define SSL_OP_TLSEXT_PADDING 0x00000010U
308
+ /* Reserved value (until OpenSSL 1.2.0) 0x00000020U */
271
309
  # define SSL_OP_SAFARI_ECDHE_ECDSA_BUG 0x00000040U
310
+ /*
311
+ * Reserved value (until OpenSSL 1.2.0) 0x00000080U
312
+ * Reserved value (until OpenSSL 1.2.0) 0x00000100U
313
+ * Reserved value (until OpenSSL 1.2.0) 0x00000200U
314
+ */
315
+
316
+ /* In TLSv1.3 allow a non-(ec)dhe based kex_mode */
317
+ # define SSL_OP_ALLOW_NO_DHE_KEX 0x00000400U
272
318
 
273
319
  /*
274
320
  * Disable SSL 3.0/TLS 1.0 CBC vulnerability workaround that was added in
@@ -299,6 +345,17 @@ typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx);
299
345
  # define SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION 0x00040000U
300
346
  /* Disable encrypt-then-mac */
301
347
  # define SSL_OP_NO_ENCRYPT_THEN_MAC 0x00080000U
348
+
349
+ /*
350
+ * Enable TLSv1.3 Compatibility mode. This is on by default. A future version
351
+ * of OpenSSL may have this disabled by default.
352
+ */
353
+ # define SSL_OP_ENABLE_MIDDLEBOX_COMPAT 0x00100000U
354
+
355
+ /* Prioritize Chacha20Poly1305 when client does.
356
+ * Modifies SSL_OP_CIPHER_SERVER_PREFERENCE */
357
+ # define SSL_OP_PRIORITIZE_CHACHA 0x00200000U
358
+
302
359
  /*
303
360
  * Set on servers to choose the cipher according to the server's preferences
304
361
  */
@@ -311,18 +368,28 @@ typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx);
311
368
  */
312
369
  # define SSL_OP_TLS_ROLLBACK_BUG 0x00800000U
313
370
 
371
+ /*
372
+ * Switches off automatic TLSv1.3 anti-replay protection for early data. This
373
+ * is a server-side option only (no effect on the client).
374
+ */
375
+ # define SSL_OP_NO_ANTI_REPLAY 0x01000000U
376
+
314
377
  # define SSL_OP_NO_SSLv3 0x02000000U
315
378
  # define SSL_OP_NO_TLSv1 0x04000000U
316
379
  # define SSL_OP_NO_TLSv1_2 0x08000000U
317
380
  # define SSL_OP_NO_TLSv1_1 0x10000000U
381
+ # define SSL_OP_NO_TLSv1_3 0x20000000U
318
382
 
319
383
  # define SSL_OP_NO_DTLSv1 0x04000000U
320
384
  # define SSL_OP_NO_DTLSv1_2 0x08000000U
321
385
 
322
386
  # define SSL_OP_NO_SSL_MASK (SSL_OP_NO_SSLv3|\
323
- SSL_OP_NO_TLSv1|SSL_OP_NO_TLSv1_1|SSL_OP_NO_TLSv1_2)
387
+ SSL_OP_NO_TLSv1|SSL_OP_NO_TLSv1_1|SSL_OP_NO_TLSv1_2|SSL_OP_NO_TLSv1_3)
324
388
  # define SSL_OP_NO_DTLS_MASK (SSL_OP_NO_DTLSv1|SSL_OP_NO_DTLSv1_2)
325
389
 
390
+ /* Disallow all renegotiation */
391
+ # define SSL_OP_NO_RENEGOTIATION 0x40000000U
392
+
326
393
  /*
327
394
  * Make server add server-hello extension from early version of cryptopro
328
395
  * draft, when GOST ciphersuite is negotiated. Required for interoperability
@@ -378,7 +445,7 @@ typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx);
378
445
  # define SSL_OP_PKCS1_CHECK_1 0x0
379
446
  /* Removed from OpenSSL 1.0.1. Was 0x10000000L */
380
447
  # define SSL_OP_PKCS1_CHECK_2 0x0
381
- /* Removed from OpenSSL 1.1.0. Was 0x20000000L */
448
+ /* Removed from OpenSSL 1.1.0. Was 0x20000000L */
382
449
  # define SSL_OP_NETSCAPE_CA_DN_BUG 0x0
383
450
  /* Removed from OpenSSL 1.1.0. Was 0x40000000L */
384
451
  # define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 0x0
@@ -403,8 +470,7 @@ typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx);
403
470
  # define SSL_MODE_NO_AUTO_CHAIN 0x00000008U
404
471
  /*
405
472
  * Save RAM by releasing read and write buffers when they're empty. (SSL3 and
406
- * TLS only.) "Released" buffers are put onto a free-list in the context or
407
- * just freed (depending on the context's setting for freelist_max_len).
473
+ * TLS only.) Released buffers are freed.
408
474
  */
409
475
  # define SSL_MODE_RELEASE_BUFFERS 0x00000010U
410
476
  /*
@@ -428,6 +494,19 @@ typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx);
428
494
  */
429
495
  # define SSL_MODE_ASYNC 0x00000100U
430
496
 
497
+ /*
498
+ * When using DTLS/SCTP, include the terminating zero in the label
499
+ * used for computing the endpoint-pair shared secret. Required for
500
+ * interoperability with implementations having this bug like these
501
+ * older version of OpenSSL:
502
+ * - OpenSSL 1.0.0 series
503
+ * - OpenSSL 1.0.1 series
504
+ * - OpenSSL 1.0.2 series
505
+ * - OpenSSL 1.1.0 series
506
+ * - OpenSSL 1.1.1 and 1.1.1a
507
+ */
508
+ # define SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG 0x00000400U
509
+
431
510
  /* Cert related flags */
432
511
  /*
433
512
  * Many implementations ignore some aspects of the TLS standards such as
@@ -493,13 +572,16 @@ typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx);
493
572
  # define SSL_CONF_TYPE_DIR 0x3
494
573
  # define SSL_CONF_TYPE_NONE 0x4
495
574
 
575
+ /* Maximum length of the application-controlled segment of a a TLSv1.3 cookie */
576
+ # define SSL_COOKIE_LENGTH 4096
577
+
496
578
  /*
497
579
  * Note: SSL[_CTX]_set_{options,mode} use |= op on the previous value, they
498
580
  * cannot be used to clear bits.
499
581
  */
500
582
 
501
583
  unsigned long SSL_CTX_get_options(const SSL_CTX *ctx);
502
- unsigned long SSL_get_options(const SSL* s);
584
+ unsigned long SSL_get_options(const SSL *s);
503
585
  unsigned long SSL_CTX_clear_options(SSL_CTX *ctx, unsigned long op);
504
586
  unsigned long SSL_clear_options(SSL *s, unsigned long op);
505
587
  unsigned long SSL_CTX_set_options(SSL_CTX *ctx, unsigned long op);
@@ -584,7 +666,7 @@ __owur int SRP_Calc_A_param(SSL *s);
584
666
  * bytes. The callback can alter this length to be less if desired. It is
585
667
  * also an error for the callback to set the size to zero.
586
668
  */
587
- typedef int (*GEN_SESSION_CB) (const SSL *ssl, unsigned char *id,
669
+ typedef int (*GEN_SESSION_CB) (SSL *ssl, unsigned char *id,
588
670
  unsigned int *id_len);
589
671
 
590
672
  # define SSL_SESS_CACHE_OFF 0x0000
@@ -632,8 +714,7 @@ int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx)) (struct ssl_st *ssl,
632
714
  void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx,
633
715
  void (*remove_session_cb) (struct ssl_ctx_st
634
716
  *ctx,
635
- SSL_SESSION
636
- *sess));
717
+ SSL_SESSION *sess));
637
718
  void (*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx)) (struct ssl_ctx_st *ctx,
638
719
  SSL_SESSION *sess);
639
720
  void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx,
@@ -646,8 +727,7 @@ SSL_SESSION *(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx)) (struct ssl_st *ssl,
646
727
  const unsigned char *data,
647
728
  int len, int *copy);
648
729
  void SSL_CTX_set_info_callback(SSL_CTX *ctx,
649
- void (*cb) (const SSL *ssl, int type,
650
- int val));
730
+ void (*cb) (const SSL *ssl, int type, int val));
651
731
  void (*SSL_CTX_get_info_callback(SSL_CTX *ctx)) (const SSL *ssl, int type,
652
732
  int val);
653
733
  void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx,
@@ -666,32 +746,52 @@ void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx,
666
746
  *cookie_len));
667
747
  void SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx,
668
748
  int (*app_verify_cookie_cb) (SSL *ssl,
669
- const unsigned char
670
- *cookie,
749
+ const unsigned
750
+ char *cookie,
671
751
  unsigned int
672
752
  cookie_len));
753
+
754
+ void SSL_CTX_set_stateless_cookie_generate_cb(
755
+ SSL_CTX *ctx,
756
+ int (*gen_stateless_cookie_cb) (SSL *ssl,
757
+ unsigned char *cookie,
758
+ size_t *cookie_len));
759
+ void SSL_CTX_set_stateless_cookie_verify_cb(
760
+ SSL_CTX *ctx,
761
+ int (*verify_stateless_cookie_cb) (SSL *ssl,
762
+ const unsigned char *cookie,
763
+ size_t cookie_len));
673
764
  # ifndef OPENSSL_NO_NEXTPROTONEG
765
+
766
+ typedef int (*SSL_CTX_npn_advertised_cb_func)(SSL *ssl,
767
+ const unsigned char **out,
768
+ unsigned int *outlen,
769
+ void *arg);
674
770
  void SSL_CTX_set_next_protos_advertised_cb(SSL_CTX *s,
675
- int (*cb) (SSL *ssl,
676
- const unsigned char
677
- **out,
678
- unsigned int *outlen,
679
- void *arg), void *arg);
771
+ SSL_CTX_npn_advertised_cb_func cb,
772
+ void *arg);
773
+ # define SSL_CTX_set_npn_advertised_cb SSL_CTX_set_next_protos_advertised_cb
774
+
775
+ typedef int (*SSL_CTX_npn_select_cb_func)(SSL *s,
776
+ unsigned char **out,
777
+ unsigned char *outlen,
778
+ const unsigned char *in,
779
+ unsigned int inlen,
780
+ void *arg);
680
781
  void SSL_CTX_set_next_proto_select_cb(SSL_CTX *s,
681
- int (*cb) (SSL *ssl,
682
- unsigned char **out,
683
- unsigned char *outlen,
684
- const unsigned char *in,
685
- unsigned int inlen,
686
- void *arg), void *arg);
782
+ SSL_CTX_npn_select_cb_func cb,
783
+ void *arg);
784
+ # define SSL_CTX_set_npn_select_cb SSL_CTX_set_next_proto_select_cb
785
+
687
786
  void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data,
688
787
  unsigned *len);
788
+ # define SSL_get0_npn_negotiated SSL_get0_next_proto_negotiated
689
789
  # endif
690
790
 
691
791
  __owur int SSL_select_next_proto(unsigned char **out, unsigned char *outlen,
692
- const unsigned char *in, unsigned int inlen,
693
- const unsigned char *client,
694
- unsigned int client_len);
792
+ const unsigned char *in, unsigned int inlen,
793
+ const unsigned char *client,
794
+ unsigned int client_len);
695
795
 
696
796
  # define OPENSSL_NPN_UNSUPPORTED 0
697
797
  # define OPENSSL_NPN_NEGOTIATED 1
@@ -701,13 +801,15 @@ __owur int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos,
701
801
  unsigned int protos_len);
702
802
  __owur int SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos,
703
803
  unsigned int protos_len);
704
- void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx,
705
- int (*cb) (SSL *ssl,
804
+ typedef int (*SSL_CTX_alpn_select_cb_func)(SSL *ssl,
706
805
  const unsigned char **out,
707
806
  unsigned char *outlen,
708
807
  const unsigned char *in,
709
808
  unsigned int inlen,
710
- void *arg), void *arg);
809
+ void *arg);
810
+ void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx,
811
+ SSL_CTX_alpn_select_cb_func cb,
812
+ void *arg);
711
813
  void SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data,
712
814
  unsigned int *len);
713
815
 
@@ -718,87 +820,71 @@ void SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data,
718
820
  */
719
821
  # define PSK_MAX_IDENTITY_LEN 128
720
822
  # define PSK_MAX_PSK_LEN 256
721
- void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx,
722
- unsigned int (*psk_client_callback) (SSL
723
- *ssl,
724
- const
725
- char
726
- *hint,
727
- char
728
- *identity,
729
- unsigned
730
- int
731
- max_identity_len,
732
- unsigned
733
- char
734
- *psk,
735
- unsigned
736
- int
737
- max_psk_len));
738
- void SSL_set_psk_client_callback(SSL *ssl,
739
- unsigned int (*psk_client_callback) (SSL
740
- *ssl,
741
- const
742
- char
743
- *hint,
744
- char
745
- *identity,
746
- unsigned
747
- int
748
- max_identity_len,
749
- unsigned
750
- char
751
- *psk,
752
- unsigned
753
- int
754
- max_psk_len));
755
- void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx,
756
- unsigned int (*psk_server_callback) (SSL
757
- *ssl,
758
- const
759
- char
760
- *identity,
761
- unsigned
762
- char
763
- *psk,
764
- unsigned
765
- int
766
- max_psk_len));
767
- void SSL_set_psk_server_callback(SSL *ssl,
768
- unsigned int (*psk_server_callback) (SSL
769
- *ssl,
770
- const
771
- char
772
- *identity,
773
- unsigned
774
- char
775
- *psk,
776
- unsigned
777
- int
778
- max_psk_len));
823
+ typedef unsigned int (*SSL_psk_client_cb_func)(SSL *ssl,
824
+ const char *hint,
825
+ char *identity,
826
+ unsigned int max_identity_len,
827
+ unsigned char *psk,
828
+ unsigned int max_psk_len);
829
+ void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx, SSL_psk_client_cb_func cb);
830
+ void SSL_set_psk_client_callback(SSL *ssl, SSL_psk_client_cb_func cb);
831
+
832
+ typedef unsigned int (*SSL_psk_server_cb_func)(SSL *ssl,
833
+ const char *identity,
834
+ unsigned char *psk,
835
+ unsigned int max_psk_len);
836
+ void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx, SSL_psk_server_cb_func cb);
837
+ void SSL_set_psk_server_callback(SSL *ssl, SSL_psk_server_cb_func cb);
838
+
779
839
  __owur int SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *identity_hint);
780
840
  __owur int SSL_use_psk_identity_hint(SSL *s, const char *identity_hint);
781
841
  const char *SSL_get_psk_identity_hint(const SSL *s);
782
842
  const char *SSL_get_psk_identity(const SSL *s);
783
843
  # endif
784
844
 
845
+ typedef int (*SSL_psk_find_session_cb_func)(SSL *ssl,
846
+ const unsigned char *identity,
847
+ size_t identity_len,
848
+ SSL_SESSION **sess);
849
+ typedef int (*SSL_psk_use_session_cb_func)(SSL *ssl, const EVP_MD *md,
850
+ const unsigned char **id,
851
+ size_t *idlen,
852
+ SSL_SESSION **sess);
853
+
854
+ void SSL_set_psk_find_session_callback(SSL *s, SSL_psk_find_session_cb_func cb);
855
+ void SSL_CTX_set_psk_find_session_callback(SSL_CTX *ctx,
856
+ SSL_psk_find_session_cb_func cb);
857
+ void SSL_set_psk_use_session_callback(SSL *s, SSL_psk_use_session_cb_func cb);
858
+ void SSL_CTX_set_psk_use_session_callback(SSL_CTX *ctx,
859
+ SSL_psk_use_session_cb_func cb);
860
+
785
861
  /* Register callbacks to handle custom TLS Extensions for client or server. */
786
862
 
787
863
  __owur int SSL_CTX_has_client_custom_ext(const SSL_CTX *ctx,
788
864
  unsigned int ext_type);
789
865
 
790
- __owur int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, unsigned int ext_type,
791
- custom_ext_add_cb add_cb,
792
- custom_ext_free_cb free_cb,
793
- void *add_arg,
794
- custom_ext_parse_cb parse_cb,
795
- void *parse_arg);
796
-
797
- __owur int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, unsigned int ext_type,
798
- custom_ext_add_cb add_cb,
799
- custom_ext_free_cb free_cb,
866
+ __owur int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx,
867
+ unsigned int ext_type,
868
+ custom_ext_add_cb add_cb,
869
+ custom_ext_free_cb free_cb,
870
+ void *add_arg,
871
+ custom_ext_parse_cb parse_cb,
872
+ void *parse_arg);
873
+
874
+ __owur int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx,
875
+ unsigned int ext_type,
876
+ custom_ext_add_cb add_cb,
877
+ custom_ext_free_cb free_cb,
878
+ void *add_arg,
879
+ custom_ext_parse_cb parse_cb,
880
+ void *parse_arg);
881
+
882
+ __owur int SSL_CTX_add_custom_ext(SSL_CTX *ctx, unsigned int ext_type,
883
+ unsigned int context,
884
+ SSL_custom_ext_add_cb_ex add_cb,
885
+ SSL_custom_ext_free_cb_ex free_cb,
800
886
  void *add_arg,
801
- custom_ext_parse_cb parse_cb,
887
+ SSL_custom_ext_parse_cb_ex parse_cb,
802
888
  void *parse_arg);
803
889
 
804
890
  __owur int SSL_extension_supported(unsigned int ext_type);
@@ -809,18 +895,48 @@ __owur int SSL_extension_supported(unsigned int ext_type);
809
895
  # define SSL_X509_LOOKUP 4
810
896
  # define SSL_ASYNC_PAUSED 5
811
897
  # define SSL_ASYNC_NO_JOBS 6
898
+ # define SSL_CLIENT_HELLO_CB 7
812
899
 
813
900
  /* These will only be used when doing non-blocking IO */
814
- # define SSL_want_nothing(s) (SSL_want(s) == SSL_NOTHING)
815
- # define SSL_want_read(s) (SSL_want(s) == SSL_READING)
816
- # define SSL_want_write(s) (SSL_want(s) == SSL_WRITING)
817
- # define SSL_want_x509_lookup(s) (SSL_want(s) == SSL_X509_LOOKUP)
818
- # define SSL_want_async(s) (SSL_want(s) == SSL_ASYNC_PAUSED)
819
- # define SSL_want_async_job(s) (SSL_want(s) == SSL_ASYNC_NO_JOBS)
901
+ # define SSL_want_nothing(s) (SSL_want(s) == SSL_NOTHING)
902
+ # define SSL_want_read(s) (SSL_want(s) == SSL_READING)
903
+ # define SSL_want_write(s) (SSL_want(s) == SSL_WRITING)
904
+ # define SSL_want_x509_lookup(s) (SSL_want(s) == SSL_X509_LOOKUP)
905
+ # define SSL_want_async(s) (SSL_want(s) == SSL_ASYNC_PAUSED)
906
+ # define SSL_want_async_job(s) (SSL_want(s) == SSL_ASYNC_NO_JOBS)
907
+ # define SSL_want_client_hello_cb(s) (SSL_want(s) == SSL_CLIENT_HELLO_CB)
820
908
 
821
909
  # define SSL_MAC_FLAG_READ_MAC_STREAM 1
822
910
  # define SSL_MAC_FLAG_WRITE_MAC_STREAM 2
823
911
 
912
+ /*
913
+ * A callback for logging out TLS key material. This callback should log out
914
+ * |line| followed by a newline.
915
+ */
916
+ typedef void (*SSL_CTX_keylog_cb_func)(const SSL *ssl, const char *line);
917
+
918
+ /*
919
+ * SSL_CTX_set_keylog_callback configures a callback to log key material. This
920
+ * is intended for debugging use with tools like Wireshark. The cb function
921
+ * should log line followed by a newline.
922
+ */
923
+ void SSL_CTX_set_keylog_callback(SSL_CTX *ctx, SSL_CTX_keylog_cb_func cb);
924
+
925
+ /*
926
+ * SSL_CTX_get_keylog_callback returns the callback configured by
927
+ * SSL_CTX_set_keylog_callback.
928
+ */
929
+ SSL_CTX_keylog_cb_func SSL_CTX_get_keylog_callback(const SSL_CTX *ctx);
930
+
931
+ int SSL_CTX_set_max_early_data(SSL_CTX *ctx, uint32_t max_early_data);
932
+ uint32_t SSL_CTX_get_max_early_data(const SSL_CTX *ctx);
933
+ int SSL_set_max_early_data(SSL *s, uint32_t max_early_data);
934
+ uint32_t SSL_get_max_early_data(const SSL *s);
935
+ int SSL_CTX_set_recv_max_early_data(SSL_CTX *ctx, uint32_t recv_max_early_data);
936
+ uint32_t SSL_CTX_get_recv_max_early_data(const SSL_CTX *ctx);
937
+ int SSL_set_recv_max_early_data(SSL *s, uint32_t recv_max_early_data);
938
+ uint32_t SSL_get_recv_max_early_data(const SSL *s);
939
+
824
940
  #ifdef __cplusplus
825
941
  }
826
942
  #endif
@@ -843,14 +959,22 @@ DEFINE_STACK_OF_CONST(SSL_CIPHER)
843
959
  DEFINE_STACK_OF(SSL_COMP)
844
960
 
845
961
  /* compatibility */
846
- # define SSL_set_app_data(s,arg) (SSL_set_ex_data(s,0,(char *)arg))
962
+ # define SSL_set_app_data(s,arg) (SSL_set_ex_data(s,0,(char *)(arg)))
847
963
  # define SSL_get_app_data(s) (SSL_get_ex_data(s,0))
848
- # define SSL_SESSION_set_app_data(s,a) (SSL_SESSION_set_ex_data(s,0,(char *)a))
964
+ # define SSL_SESSION_set_app_data(s,a) (SSL_SESSION_set_ex_data(s,0, \
965
+ (char *)(a)))
849
966
  # define SSL_SESSION_get_app_data(s) (SSL_SESSION_get_ex_data(s,0))
850
967
  # define SSL_CTX_get_app_data(ctx) (SSL_CTX_get_ex_data(ctx,0))
851
- # define SSL_CTX_set_app_data(ctx,arg) (SSL_CTX_set_ex_data(ctx,0,(char *)arg))
968
+ # define SSL_CTX_set_app_data(ctx,arg) (SSL_CTX_set_ex_data(ctx,0, \
969
+ (char *)(arg)))
852
970
  DEPRECATEDIN_1_1_0(void SSL_set_debug(SSL *s, int debug))
853
971
 
972
+ /* TLSv1.3 KeyUpdate message types */
973
+ /* -1 used so that this is an invalid value for the on-the-wire protocol */
974
+ #define SSL_KEY_UPDATE_NONE -1
975
+ /* Values as defined for the on-the-wire protocol */
976
+ #define SSL_KEY_UPDATE_NOT_REQUESTED 0
977
+ #define SSL_KEY_UPDATE_REQUESTED 1
854
978
 
855
979
  /*
856
980
  * The valid handshake states (one for each type message sent and one for each
@@ -901,7 +1025,20 @@ typedef enum {
901
1025
  TLS_ST_SW_SESSION_TICKET,
902
1026
  TLS_ST_SW_CERT_STATUS,
903
1027
  TLS_ST_SW_CHANGE,
904
- TLS_ST_SW_FINISHED
1028
+ TLS_ST_SW_FINISHED,
1029
+ TLS_ST_SW_ENCRYPTED_EXTENSIONS,
1030
+ TLS_ST_CR_ENCRYPTED_EXTENSIONS,
1031
+ TLS_ST_CR_CERT_VRFY,
1032
+ TLS_ST_SW_CERT_VRFY,
1033
+ TLS_ST_CR_HELLO_REQ,
1034
+ TLS_ST_SW_KEY_UPDATE,
1035
+ TLS_ST_CW_KEY_UPDATE,
1036
+ TLS_ST_SR_KEY_UPDATE,
1037
+ TLS_ST_CR_KEY_UPDATE,
1038
+ TLS_ST_EARLY_DATA,
1039
+ TLS_ST_PENDING_EARLY_DATA_END,
1040
+ TLS_ST_CW_END_OF_EARLY_DATA,
1041
+ TLS_ST_SR_END_OF_EARLY_DATA
905
1042
  } OSSL_HANDSHAKE_STATE;
906
1043
 
907
1044
  /*
@@ -934,9 +1071,9 @@ typedef enum {
934
1071
  /* Is the SSL_connection established? */
935
1072
  # define SSL_in_connect_init(a) (SSL_in_init(a) && !SSL_is_server(a))
936
1073
  # define SSL_in_accept_init(a) (SSL_in_init(a) && SSL_is_server(a))
937
- int SSL_in_init(SSL *s);
938
- int SSL_in_before(SSL *s);
939
- int SSL_is_init_finished(SSL *s);
1074
+ int SSL_in_init(const SSL *s);
1075
+ int SSL_in_before(const SSL *s);
1076
+ int SSL_is_init_finished(const SSL *s);
940
1077
 
941
1078
  /*
942
1079
  * The following 3 states are kept in ssl->rlayer.rstate when reads fail, you
@@ -956,16 +1093,17 @@ size_t SSL_get_finished(const SSL *s, void *buf, size_t count);
956
1093
  size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count);
957
1094
 
958
1095
  /*
959
- * use either SSL_VERIFY_NONE or SSL_VERIFY_PEER, the last 2 options are
1096
+ * use either SSL_VERIFY_NONE or SSL_VERIFY_PEER, the last 3 options are
960
1097
  * 'ored' with SSL_VERIFY_PEER if they are desired
961
1098
  */
962
1099
  # define SSL_VERIFY_NONE 0x00
963
1100
  # define SSL_VERIFY_PEER 0x01
964
1101
  # define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02
965
1102
  # define SSL_VERIFY_CLIENT_ONCE 0x04
1103
+ # define SSL_VERIFY_POST_HANDSHAKE 0x08
966
1104
 
967
- # define OpenSSL_add_ssl_algorithms() SSL_library_init()
968
1105
  # if OPENSSL_API_COMPAT < 0x10100000L
1106
+ # define OpenSSL_add_ssl_algorithms() SSL_library_init()
969
1107
  # define SSLeay_add_ssl_algorithms() SSL_library_init()
970
1108
  # endif
971
1109
 
@@ -1027,6 +1165,8 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION)
1027
1165
  # define SSL_AD_INTERNAL_ERROR TLS1_AD_INTERNAL_ERROR
1028
1166
  # define SSL_AD_USER_CANCELLED TLS1_AD_USER_CANCELLED
1029
1167
  # define SSL_AD_NO_RENEGOTIATION TLS1_AD_NO_RENEGOTIATION
1168
+ # define SSL_AD_MISSING_EXTENSION TLS13_AD_MISSING_EXTENSION
1169
+ # define SSL_AD_CERTIFICATE_REQUIRED TLS13_AD_CERTIFICATE_REQUIRED
1030
1170
  # define SSL_AD_UNSUPPORTED_EXTENSION TLS1_AD_UNSUPPORTED_EXTENSION
1031
1171
  # define SSL_AD_CERTIFICATE_UNOBTAINABLE TLS1_AD_CERTIFICATE_UNOBTAINABLE
1032
1172
  # define SSL_AD_UNRECOGNIZED_NAME TLS1_AD_UNRECOGNIZED_NAME
@@ -1049,6 +1189,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION)
1049
1189
  # define SSL_ERROR_WANT_ACCEPT 8
1050
1190
  # define SSL_ERROR_WANT_ASYNC 9
1051
1191
  # define SSL_ERROR_WANT_ASYNC_JOB 10
1192
+ # define SSL_ERROR_WANT_CLIENT_HELLO_CB 11
1052
1193
  # define SSL_CTRL_SET_TMP_DH 3
1053
1194
  # define SSL_CTRL_SET_TMP_ECDH 4
1054
1195
  # define SSL_CTRL_SET_TMP_DH_CB 6
@@ -1127,10 +1268,10 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION)
1127
1268
  # define SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS 83
1128
1269
  # define SSL_CTRL_CHAIN 88
1129
1270
  # define SSL_CTRL_CHAIN_CERT 89
1130
- # define SSL_CTRL_GET_CURVES 90
1131
- # define SSL_CTRL_SET_CURVES 91
1132
- # define SSL_CTRL_SET_CURVES_LIST 92
1133
- # define SSL_CTRL_GET_SHARED_CURVE 93
1271
+ # define SSL_CTRL_GET_GROUPS 90
1272
+ # define SSL_CTRL_SET_GROUPS 91
1273
+ # define SSL_CTRL_SET_GROUPS_LIST 92
1274
+ # define SSL_CTRL_GET_SHARED_GROUP 93
1134
1275
  # define SSL_CTRL_SET_SIGALGS 97
1135
1276
  # define SSL_CTRL_SET_SIGALGS_LIST 98
1136
1277
  # define SSL_CTRL_CERT_FLAGS 99
@@ -1143,7 +1284,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION)
1143
1284
  # define SSL_CTRL_SET_VERIFY_CERT_STORE 106
1144
1285
  # define SSL_CTRL_SET_CHAIN_CERT_STORE 107
1145
1286
  # define SSL_CTRL_GET_PEER_SIGNATURE_NID 108
1146
- # define SSL_CTRL_GET_SERVER_TMP_KEY 109
1287
+ # define SSL_CTRL_GET_PEER_TMP_KEY 109
1147
1288
  # define SSL_CTRL_GET_RAW_CIPHERLIST 110
1148
1289
  # define SSL_CTRL_GET_EC_POINT_FORMATS 111
1149
1290
  # define SSL_CTRL_GET_CHAIN_CERTS 115
@@ -1162,11 +1303,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION)
1162
1303
  # define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG 129
1163
1304
  # define SSL_CTRL_GET_MIN_PROTO_VERSION 130
1164
1305
  # define SSL_CTRL_GET_MAX_PROTO_VERSION 131
1306
+ # define SSL_CTRL_GET_SIGNATURE_NID 132
1307
+ # define SSL_CTRL_GET_TMP_KEY 133
1165
1308
  # define SSL_CERT_SET_FIRST 1
1166
1309
  # define SSL_CERT_SET_NEXT 2
1167
1310
  # define SSL_CERT_SET_SERVER 3
1168
1311
  # define DTLSv1_get_timeout(ssl, arg) \
1169
- SSL_ctrl(ssl,DTLS_CTRL_GET_TIMEOUT,0, (void *)arg)
1312
+ SSL_ctrl(ssl,DTLS_CTRL_GET_TIMEOUT,0, (void *)(arg))
1170
1313
  # define DTLSv1_handle_timeout(ssl) \
1171
1314
  SSL_ctrl(ssl,DTLS_CTRL_HANDLE_TIMEOUT,0, NULL)
1172
1315
  # define SSL_num_renegotiations(ssl) \
@@ -1176,19 +1319,19 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION)
1176
1319
  # define SSL_total_renegotiations(ssl) \
1177
1320
  SSL_ctrl((ssl),SSL_CTRL_GET_TOTAL_RENEGOTIATIONS,0,NULL)
1178
1321
  # define SSL_CTX_set_tmp_dh(ctx,dh) \
1179
- SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH,0,(char *)dh)
1322
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH,0,(char *)(dh))
1180
1323
  # define SSL_CTX_set_tmp_ecdh(ctx,ecdh) \
1181
- SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_ECDH,0,(char *)ecdh)
1324
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_ECDH,0,(char *)(ecdh))
1182
1325
  # define SSL_CTX_set_dh_auto(ctx, onoff) \
1183
1326
  SSL_CTX_ctrl(ctx,SSL_CTRL_SET_DH_AUTO,onoff,NULL)
1184
1327
  # define SSL_set_dh_auto(s, onoff) \
1185
1328
  SSL_ctrl(s,SSL_CTRL_SET_DH_AUTO,onoff,NULL)
1186
1329
  # define SSL_set_tmp_dh(ssl,dh) \
1187
- SSL_ctrl(ssl,SSL_CTRL_SET_TMP_DH,0,(char *)dh)
1330
+ SSL_ctrl(ssl,SSL_CTRL_SET_TMP_DH,0,(char *)(dh))
1188
1331
  # define SSL_set_tmp_ecdh(ssl,ecdh) \
1189
- SSL_ctrl(ssl,SSL_CTRL_SET_TMP_ECDH,0,(char *)ecdh)
1332
+ SSL_ctrl(ssl,SSL_CTRL_SET_TMP_ECDH,0,(char *)(ecdh))
1190
1333
  # define SSL_CTX_add_extra_chain_cert(ctx,x509) \
1191
- SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509)
1334
+ SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)(x509))
1192
1335
  # define SSL_CTX_get_extra_chain_certs(ctx,px509) \
1193
1336
  SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,0,px509)
1194
1337
  # define SSL_CTX_get_extra_chain_certs_only(ctx,px509) \
@@ -1196,13 +1339,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION)
1196
1339
  # define SSL_CTX_clear_extra_chain_certs(ctx) \
1197
1340
  SSL_CTX_ctrl(ctx,SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS,0,NULL)
1198
1341
  # define SSL_CTX_set0_chain(ctx,sk) \
1199
- SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)sk)
1342
+ SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)(sk))
1200
1343
  # define SSL_CTX_set1_chain(ctx,sk) \
1201
- SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)sk)
1344
+ SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)(sk))
1202
1345
  # define SSL_CTX_add0_chain_cert(ctx,x509) \
1203
- SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)x509)
1346
+ SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)(x509))
1204
1347
  # define SSL_CTX_add1_chain_cert(ctx,x509) \
1205
- SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)x509)
1348
+ SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)(x509))
1206
1349
  # define SSL_CTX_get0_chain_certs(ctx,px509) \
1207
1350
  SSL_CTX_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509)
1208
1351
  # define SSL_CTX_clear_chain_certs(ctx) \
@@ -1210,118 +1353,145 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION)
1210
1353
  # define SSL_CTX_build_cert_chain(ctx, flags) \
1211
1354
  SSL_CTX_ctrl(ctx,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL)
1212
1355
  # define SSL_CTX_select_current_cert(ctx,x509) \
1213
- SSL_CTX_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)x509)
1356
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)(x509))
1214
1357
  # define SSL_CTX_set_current_cert(ctx, op) \
1215
1358
  SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURRENT_CERT, op, NULL)
1216
1359
  # define SSL_CTX_set0_verify_cert_store(ctx,st) \
1217
- SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)st)
1360
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)(st))
1218
1361
  # define SSL_CTX_set1_verify_cert_store(ctx,st) \
1219
- SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)st)
1362
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)(st))
1220
1363
  # define SSL_CTX_set0_chain_cert_store(ctx,st) \
1221
- SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)st)
1364
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)(st))
1222
1365
  # define SSL_CTX_set1_chain_cert_store(ctx,st) \
1223
- SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)st)
1224
- # define SSL_set0_chain(ctx,sk) \
1225
- SSL_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)sk)
1226
- # define SSL_set1_chain(ctx,sk) \
1227
- SSL_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)sk)
1228
- # define SSL_add0_chain_cert(ctx,x509) \
1229
- SSL_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)x509)
1230
- # define SSL_add1_chain_cert(ctx,x509) \
1231
- SSL_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)x509)
1232
- # define SSL_get0_chain_certs(ctx,px509) \
1233
- SSL_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509)
1234
- # define SSL_clear_chain_certs(ctx) \
1235
- SSL_set0_chain(ctx,NULL)
1366
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)(st))
1367
+ # define SSL_set0_chain(s,sk) \
1368
+ SSL_ctrl(s,SSL_CTRL_CHAIN,0,(char *)(sk))
1369
+ # define SSL_set1_chain(s,sk) \
1370
+ SSL_ctrl(s,SSL_CTRL_CHAIN,1,(char *)(sk))
1371
+ # define SSL_add0_chain_cert(s,x509) \
1372
+ SSL_ctrl(s,SSL_CTRL_CHAIN_CERT,0,(char *)(x509))
1373
+ # define SSL_add1_chain_cert(s,x509) \
1374
+ SSL_ctrl(s,SSL_CTRL_CHAIN_CERT,1,(char *)(x509))
1375
+ # define SSL_get0_chain_certs(s,px509) \
1376
+ SSL_ctrl(s,SSL_CTRL_GET_CHAIN_CERTS,0,px509)
1377
+ # define SSL_clear_chain_certs(s) \
1378
+ SSL_set0_chain(s,NULL)
1236
1379
  # define SSL_build_cert_chain(s, flags) \
1237
1380
  SSL_ctrl(s,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL)
1238
- # define SSL_select_current_cert(ctx,x509) \
1239
- SSL_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)x509)
1240
- # define SSL_set_current_cert(ctx,op) \
1241
- SSL_ctrl(ctx,SSL_CTRL_SET_CURRENT_CERT, op, NULL)
1381
+ # define SSL_select_current_cert(s,x509) \
1382
+ SSL_ctrl(s,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)(x509))
1383
+ # define SSL_set_current_cert(s,op) \
1384
+ SSL_ctrl(s,SSL_CTRL_SET_CURRENT_CERT, op, NULL)
1242
1385
  # define SSL_set0_verify_cert_store(s,st) \
1243
- SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)st)
1386
+ SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)(st))
1244
1387
  # define SSL_set1_verify_cert_store(s,st) \
1245
- SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)st)
1388
+ SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)(st))
1246
1389
  # define SSL_set0_chain_cert_store(s,st) \
1247
- SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)st)
1390
+ SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)(st))
1248
1391
  # define SSL_set1_chain_cert_store(s,st) \
1249
- SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)st)
1250
- # define SSL_get1_curves(ctx, s) \
1251
- SSL_ctrl(ctx,SSL_CTRL_GET_CURVES,0,(char *)s)
1252
- # define SSL_CTX_set1_curves(ctx, clist, clistlen) \
1253
- SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURVES,clistlen,(char *)clist)
1254
- # define SSL_CTX_set1_curves_list(ctx, s) \
1255
- SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURVES_LIST,0,(char *)s)
1256
- # define SSL_set1_curves(ctx, clist, clistlen) \
1257
- SSL_ctrl(ctx,SSL_CTRL_SET_CURVES,clistlen,(char *)clist)
1258
- # define SSL_set1_curves_list(ctx, s) \
1259
- SSL_ctrl(ctx,SSL_CTRL_SET_CURVES_LIST,0,(char *)s)
1260
- # define SSL_get_shared_curve(s, n) \
1261
- SSL_ctrl(s,SSL_CTRL_GET_SHARED_CURVE,n,NULL)
1392
+ SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)(st))
1393
+ # define SSL_get1_groups(s, glist) \
1394
+ SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist))
1395
+ # define SSL_CTX_set1_groups(ctx, glist, glistlen) \
1396
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist))
1397
+ # define SSL_CTX_set1_groups_list(ctx, s) \
1398
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s))
1399
+ # define SSL_set1_groups(s, glist, glistlen) \
1400
+ SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist))
1401
+ # define SSL_set1_groups_list(s, str) \
1402
+ SSL_ctrl(s,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(str))
1403
+ # define SSL_get_shared_group(s, n) \
1404
+ SSL_ctrl(s,SSL_CTRL_GET_SHARED_GROUP,n,NULL)
1262
1405
  # define SSL_CTX_set1_sigalgs(ctx, slist, slistlen) \
1263
- SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)slist)
1406
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)(slist))
1264
1407
  # define SSL_CTX_set1_sigalgs_list(ctx, s) \
1265
- SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)s)
1266
- # define SSL_set1_sigalgs(ctx, slist, slistlen) \
1267
- SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)slist)
1268
- # define SSL_set1_sigalgs_list(ctx, s) \
1269
- SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)s)
1408
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)(s))
1409
+ # define SSL_set1_sigalgs(s, slist, slistlen) \
1410
+ SSL_ctrl(s,SSL_CTRL_SET_SIGALGS,slistlen,(int *)(slist))
1411
+ # define SSL_set1_sigalgs_list(s, str) \
1412
+ SSL_ctrl(s,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)(str))
1270
1413
  # define SSL_CTX_set1_client_sigalgs(ctx, slist, slistlen) \
1271
- SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)slist)
1414
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)(slist))
1272
1415
  # define SSL_CTX_set1_client_sigalgs_list(ctx, s) \
1273
- SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)s)
1274
- # define SSL_set1_client_sigalgs(ctx, slist, slistlen) \
1275
- SSL_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,clistlen,(int *)slist)
1276
- # define SSL_set1_client_sigalgs_list(ctx, s) \
1277
- SSL_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)s)
1416
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)(s))
1417
+ # define SSL_set1_client_sigalgs(s, slist, slistlen) \
1418
+ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)(slist))
1419
+ # define SSL_set1_client_sigalgs_list(s, str) \
1420
+ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)(str))
1278
1421
  # define SSL_get0_certificate_types(s, clist) \
1279
- SSL_ctrl(s, SSL_CTRL_GET_CLIENT_CERT_TYPES, 0, (char *)clist)
1422
+ SSL_ctrl(s, SSL_CTRL_GET_CLIENT_CERT_TYPES, 0, (char *)(clist))
1280
1423
  # define SSL_CTX_set1_client_certificate_types(ctx, clist, clistlen) \
1281
- SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)clist)
1424
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen, \
1425
+ (char *)(clist))
1282
1426
  # define SSL_set1_client_certificate_types(s, clist, clistlen) \
1283
- SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)clist)
1427
+ SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist))
1428
+ # define SSL_get_signature_nid(s, pn) \
1429
+ SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn)
1284
1430
  # define SSL_get_peer_signature_nid(s, pn) \
1285
1431
  SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn)
1286
- # define SSL_get_server_tmp_key(s, pk) \
1287
- SSL_ctrl(s,SSL_CTRL_GET_SERVER_TMP_KEY,0,pk)
1432
+ # define SSL_get_peer_tmp_key(s, pk) \
1433
+ SSL_ctrl(s,SSL_CTRL_GET_PEER_TMP_KEY,0,pk)
1434
+ # define SSL_get_tmp_key(s, pk) \
1435
+ SSL_ctrl(s,SSL_CTRL_GET_TMP_KEY,0,pk)
1288
1436
  # define SSL_get0_raw_cipherlist(s, plst) \
1289
1437
  SSL_ctrl(s,SSL_CTRL_GET_RAW_CIPHERLIST,0,plst)
1290
1438
  # define SSL_get0_ec_point_formats(s, plst) \
1291
1439
  SSL_ctrl(s,SSL_CTRL_GET_EC_POINT_FORMATS,0,plst)
1292
- #define SSL_CTX_set_min_proto_version(ctx, version) \
1440
+ # define SSL_CTX_set_min_proto_version(ctx, version) \
1293
1441
  SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL)
1294
- #define SSL_CTX_set_max_proto_version(ctx, version) \
1442
+ # define SSL_CTX_set_max_proto_version(ctx, version) \
1295
1443
  SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MAX_PROTO_VERSION, version, NULL)
1296
- #define SSL_CTX_get_min_proto_version(ctx) \
1297
- SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MIN_PROTO_VERSION, NULL, NULL)
1298
- #define SSL_CTX_get_max_proto_version(ctx) \
1299
- SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MAX_PROTO_VERSION, NULL, NULL)
1300
- #define SSL_set_min_proto_version(s, version) \
1444
+ # define SSL_CTX_get_min_proto_version(ctx) \
1445
+ SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL)
1446
+ # define SSL_CTX_get_max_proto_version(ctx) \
1447
+ SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL)
1448
+ # define SSL_set_min_proto_version(s, version) \
1301
1449
  SSL_ctrl(s, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL)
1302
- #define SSL_set_max_proto_version(s, version) \
1450
+ # define SSL_set_max_proto_version(s, version) \
1303
1451
  SSL_ctrl(s, SSL_CTRL_SET_MAX_PROTO_VERSION, version, NULL)
1304
- #define SSL_get_min_proto_version(s) \
1305
- SSL_ctrl(s, SSL_CTRL_GET_MIN_PROTO_VERSION, NULL, NULL)
1306
- #define SSL_get_max_proto_version(s) \
1307
- SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, NULL, NULL)
1452
+ # define SSL_get_min_proto_version(s) \
1453
+ SSL_ctrl(s, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL)
1454
+ # define SSL_get_max_proto_version(s) \
1455
+ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL)
1456
+
1457
+ /* Backwards compatibility, original 1.1.0 names */
1458
+ # define SSL_CTRL_GET_SERVER_TMP_KEY \
1459
+ SSL_CTRL_GET_PEER_TMP_KEY
1460
+ # define SSL_get_server_tmp_key(s, pk) \
1461
+ SSL_get_peer_tmp_key(s, pk)
1308
1462
 
1309
- #if OPENSSL_API_COMPAT < 0x10100000L
1463
+ /*
1464
+ * The following symbol names are old and obsolete. They are kept
1465
+ * for compatibility reasons only and should not be used anymore.
1466
+ */
1467
+ # define SSL_CTRL_GET_CURVES SSL_CTRL_GET_GROUPS
1468
+ # define SSL_CTRL_SET_CURVES SSL_CTRL_SET_GROUPS
1469
+ # define SSL_CTRL_SET_CURVES_LIST SSL_CTRL_SET_GROUPS_LIST
1470
+ # define SSL_CTRL_GET_SHARED_CURVE SSL_CTRL_GET_SHARED_GROUP
1471
+
1472
+ # define SSL_get1_curves SSL_get1_groups
1473
+ # define SSL_CTX_set1_curves SSL_CTX_set1_groups
1474
+ # define SSL_CTX_set1_curves_list SSL_CTX_set1_groups_list
1475
+ # define SSL_set1_curves SSL_set1_groups
1476
+ # define SSL_set1_curves_list SSL_set1_groups_list
1477
+ # define SSL_get_shared_curve SSL_get_shared_group
1478
+
1479
+
1480
+ # if OPENSSL_API_COMPAT < 0x10100000L
1310
1481
  /* Provide some compatibility macros for removed functionality. */
1311
- # define SSL_CTX_need_tmp_RSA(ctx) 0
1312
- # define SSL_CTX_set_tmp_rsa(ctx,rsa) 1
1313
- # define SSL_need_tmp_RSA(ssl) 0
1314
- # define SSL_set_tmp_rsa(ssl,rsa) 1
1315
- # define SSL_CTX_set_ecdh_auto(dummy, onoff) ((onoff) != 0)
1316
- # define SSL_set_ecdh_auto(dummy, onoff) ((onoff) != 0)
1482
+ # define SSL_CTX_need_tmp_RSA(ctx) 0
1483
+ # define SSL_CTX_set_tmp_rsa(ctx,rsa) 1
1484
+ # define SSL_need_tmp_RSA(ssl) 0
1485
+ # define SSL_set_tmp_rsa(ssl,rsa) 1
1486
+ # define SSL_CTX_set_ecdh_auto(dummy, onoff) ((onoff) != 0)
1487
+ # define SSL_set_ecdh_auto(dummy, onoff) ((onoff) != 0)
1317
1488
  /*
1318
1489
  * We "pretend" to call the callback to avoid warnings about unused static
1319
1490
  * functions.
1320
1491
  */
1321
- # define SSL_CTX_set_tmp_rsa_callback(ctx, cb) while(0) (cb)(NULL, 0, 0)
1322
- # define SSL_set_tmp_rsa_callback(ssl, cb) while(0) (cb)(NULL, 0, 0)
1323
- #endif
1324
-
1492
+ # define SSL_CTX_set_tmp_rsa_callback(ctx, cb) while(0) (cb)(NULL, 0, 0)
1493
+ # define SSL_set_tmp_rsa_callback(ssl, cb) while(0) (cb)(NULL, 0, 0)
1494
+ # endif
1325
1495
  __owur const BIO_METHOD *BIO_f_ssl(void);
1326
1496
  __owur BIO *BIO_new_ssl(SSL_CTX *ctx, int client);
1327
1497
  __owur BIO *BIO_new_ssl_connect(SSL_CTX *ctx);
@@ -1337,25 +1507,31 @@ __owur long SSL_CTX_set_timeout(SSL_CTX *ctx, long t);
1337
1507
  __owur long SSL_CTX_get_timeout(const SSL_CTX *ctx);
1338
1508
  __owur X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *);
1339
1509
  void SSL_CTX_set_cert_store(SSL_CTX *, X509_STORE *);
1510
+ void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *);
1340
1511
  __owur int SSL_want(const SSL *s);
1341
1512
  __owur int SSL_clear(SSL *s);
1342
1513
 
1343
1514
  void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm);
1344
1515
 
1345
1516
  __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s);
1517
+ __owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s);
1346
1518
  __owur int SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits);
1347
1519
  __owur const char *SSL_CIPHER_get_version(const SSL_CIPHER *c);
1348
1520
  __owur const char *SSL_CIPHER_get_name(const SSL_CIPHER *c);
1521
+ __owur const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c);
1522
+ __owur const char *OPENSSL_cipher_name(const char *rfc_name);
1349
1523
  __owur uint32_t SSL_CIPHER_get_id(const SSL_CIPHER *c);
1524
+ __owur uint16_t SSL_CIPHER_get_protocol_id(const SSL_CIPHER *c);
1350
1525
  __owur int SSL_CIPHER_get_kx_nid(const SSL_CIPHER *c);
1351
1526
  __owur int SSL_CIPHER_get_auth_nid(const SSL_CIPHER *c);
1527
+ __owur const EVP_MD *SSL_CIPHER_get_handshake_digest(const SSL_CIPHER *c);
1352
1528
  __owur int SSL_CIPHER_is_aead(const SSL_CIPHER *c);
1353
1529
 
1354
1530
  __owur int SSL_get_fd(const SSL *s);
1355
1531
  __owur int SSL_get_rfd(const SSL *s);
1356
1532
  __owur int SSL_get_wfd(const SSL *s);
1357
1533
  __owur const char *SSL_get_cipher_list(const SSL *s, int n);
1358
- __owur char *SSL_get_shared_ciphers(const SSL *s, char *buf, int len);
1534
+ __owur char *SSL_get_shared_ciphers(const SSL *s, char *buf, int size);
1359
1535
  __owur int SSL_get_read_ahead(const SSL *s);
1360
1536
  __owur int SSL_pending(const SSL *s);
1361
1537
  __owur int SSL_has_pending(const SSL *s);
@@ -1370,6 +1546,8 @@ void SSL_set_bio(SSL *s, BIO *rbio, BIO *wbio);
1370
1546
  __owur BIO *SSL_get_rbio(const SSL *s);
1371
1547
  __owur BIO *SSL_get_wbio(const SSL *s);
1372
1548
  __owur int SSL_set_cipher_list(SSL *s, const char *str);
1549
+ __owur int SSL_CTX_set_ciphersuites(SSL_CTX *ctx, const char *str);
1550
+ __owur int SSL_set_ciphersuites(SSL *s, const char *str);
1373
1551
  void SSL_set_read_ahead(SSL *s, int yes);
1374
1552
  __owur int SSL_get_verify_mode(const SSL *s);
1375
1553
  __owur int SSL_get_verify_depth(const SSL *s);
@@ -1379,17 +1557,28 @@ void SSL_set_verify_depth(SSL *s, int depth);
1379
1557
  void SSL_set_cert_cb(SSL *s, int (*cb) (SSL *ssl, void *arg), void *arg);
1380
1558
  # ifndef OPENSSL_NO_RSA
1381
1559
  __owur int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa);
1382
- __owur int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, const unsigned char *d, long len);
1560
+ __owur int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, const unsigned char *d,
1561
+ long len);
1383
1562
  # endif
1384
1563
  __owur int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey);
1385
1564
  __owur int SSL_use_PrivateKey_ASN1(int pk, SSL *ssl, const unsigned char *d,
1386
- long len);
1565
+ long len);
1387
1566
  __owur int SSL_use_certificate(SSL *ssl, X509 *x);
1388
1567
  __owur int SSL_use_certificate_ASN1(SSL *ssl, const unsigned char *d, int len);
1568
+ __owur int SSL_use_cert_and_key(SSL *ssl, X509 *x509, EVP_PKEY *privatekey,
1569
+ STACK_OF(X509) *chain, int override);
1570
+
1571
+
1572
+ /* serverinfo file format versions */
1573
+ # define SSL_SERVERINFOV1 1
1574
+ # define SSL_SERVERINFOV2 2
1389
1575
 
1390
1576
  /* Set serverinfo data for the current active cert. */
1391
1577
  __owur int SSL_CTX_use_serverinfo(SSL_CTX *ctx, const unsigned char *serverinfo,
1392
- size_t serverinfo_length);
1578
+ size_t serverinfo_length);
1579
+ __owur int SSL_CTX_use_serverinfo_ex(SSL_CTX *ctx, unsigned int version,
1580
+ const unsigned char *serverinfo,
1581
+ size_t serverinfo_length);
1393
1582
  __owur int SSL_CTX_use_serverinfo_file(SSL_CTX *ctx, const char *file);
1394
1583
 
1395
1584
  #ifndef OPENSSL_NO_RSA
@@ -1400,24 +1589,27 @@ __owur int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type);
1400
1589
  __owur int SSL_use_certificate_file(SSL *ssl, const char *file, int type);
1401
1590
 
1402
1591
  #ifndef OPENSSL_NO_RSA
1403
- __owur int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file, int type);
1592
+ __owur int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file,
1593
+ int type);
1404
1594
  #endif
1405
- __owur int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type);
1406
- __owur int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, int type);
1595
+ __owur int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file,
1596
+ int type);
1597
+ __owur int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file,
1598
+ int type);
1407
1599
  /* PEM type */
1408
1600
  __owur int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file);
1409
1601
  __owur int SSL_use_certificate_chain_file(SSL *ssl, const char *file);
1410
1602
  __owur STACK_OF(X509_NAME) *SSL_load_client_CA_file(const char *file);
1411
1603
  __owur int SSL_add_file_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs,
1412
- const char *file);
1604
+ const char *file);
1413
1605
  int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs,
1414
1606
  const char *dir);
1415
1607
 
1416
- #if OPENSSL_API_COMPAT < 0x10100000L
1417
- # define SSL_load_error_strings() \
1608
+ # if OPENSSL_API_COMPAT < 0x10100000L
1609
+ # define SSL_load_error_strings() \
1418
1610
  OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \
1419
1611
  | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL)
1420
- #endif
1612
+ # endif
1421
1613
 
1422
1614
  __owur const char *SSL_state_string(const SSL *s);
1423
1615
  __owur const char *SSL_rstate_string(const SSL *s);
@@ -1428,24 +1620,40 @@ __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t);
1428
1620
  __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s);
1429
1621
  __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t);
1430
1622
  __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s);
1623
+ __owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version);
1624
+
1431
1625
  __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s);
1626
+ __owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname);
1627
+ void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s,
1628
+ const unsigned char **alpn,
1629
+ size_t *len);
1630
+ __owur int SSL_SESSION_set1_alpn_selected(SSL_SESSION *s,
1631
+ const unsigned char *alpn,
1632
+ size_t len);
1432
1633
  __owur const SSL_CIPHER *SSL_SESSION_get0_cipher(const SSL_SESSION *s);
1634
+ __owur int SSL_SESSION_set_cipher(SSL_SESSION *s, const SSL_CIPHER *cipher);
1433
1635
  __owur int SSL_SESSION_has_ticket(const SSL_SESSION *s);
1434
1636
  __owur unsigned long SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *s);
1435
1637
  void SSL_SESSION_get0_ticket(const SSL_SESSION *s, const unsigned char **tick,
1436
- size_t *len);
1638
+ size_t *len);
1639
+ __owur uint32_t SSL_SESSION_get_max_early_data(const SSL_SESSION *s);
1640
+ __owur int SSL_SESSION_set_max_early_data(SSL_SESSION *s,
1641
+ uint32_t max_early_data);
1437
1642
  __owur int SSL_copy_session_id(SSL *to, const SSL *from);
1438
1643
  __owur X509 *SSL_SESSION_get0_peer(SSL_SESSION *s);
1439
- __owur int SSL_SESSION_set1_id_context(SSL_SESSION *s, const unsigned char *sid_ctx,
1440
- unsigned int sid_ctx_len);
1644
+ __owur int SSL_SESSION_set1_id_context(SSL_SESSION *s,
1645
+ const unsigned char *sid_ctx,
1646
+ unsigned int sid_ctx_len);
1441
1647
  __owur int SSL_SESSION_set1_id(SSL_SESSION *s, const unsigned char *sid,
1442
1648
  unsigned int sid_len);
1649
+ __owur int SSL_SESSION_is_resumable(const SSL_SESSION *s);
1443
1650
 
1444
1651
  __owur SSL_SESSION *SSL_SESSION_new(void);
1652
+ __owur SSL_SESSION *SSL_SESSION_dup(SSL_SESSION *src);
1445
1653
  const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s,
1446
1654
  unsigned int *len);
1447
1655
  const unsigned char *SSL_SESSION_get0_id_context(const SSL_SESSION *s,
1448
- unsigned int *len);
1656
+ unsigned int *len);
1449
1657
  __owur unsigned int SSL_SESSION_get_compress_id(const SSL_SESSION *s);
1450
1658
  # ifndef OPENSSL_NO_STDIO
1451
1659
  int SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *ses);
@@ -1456,12 +1664,13 @@ int SSL_SESSION_up_ref(SSL_SESSION *ses);
1456
1664
  void SSL_SESSION_free(SSL_SESSION *ses);
1457
1665
  __owur int i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp);
1458
1666
  __owur int SSL_set_session(SSL *to, SSL_SESSION *session);
1459
- int SSL_CTX_add_session(SSL_CTX *s, SSL_SESSION *c);
1460
- int SSL_CTX_remove_session(SSL_CTX *, SSL_SESSION *c);
1461
- __owur int SSL_CTX_set_generate_session_id(SSL_CTX *, GEN_SESSION_CB);
1462
- __owur int SSL_set_generate_session_id(SSL *, GEN_SESSION_CB);
1463
- __owur int SSL_has_matching_session_id(const SSL *ssl, const unsigned char *id,
1464
- unsigned int id_len);
1667
+ int SSL_CTX_add_session(SSL_CTX *ctx, SSL_SESSION *session);
1668
+ int SSL_CTX_remove_session(SSL_CTX *ctx, SSL_SESSION *session);
1669
+ __owur int SSL_CTX_set_generate_session_id(SSL_CTX *ctx, GEN_SESSION_CB cb);
1670
+ __owur int SSL_set_generate_session_id(SSL *s, GEN_SESSION_CB cb);
1671
+ __owur int SSL_has_matching_session_id(const SSL *s,
1672
+ const unsigned char *id,
1673
+ unsigned int id_len);
1465
1674
  SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp,
1466
1675
  long length);
1467
1676
 
@@ -1484,14 +1693,16 @@ void SSL_CTX_set_cert_cb(SSL_CTX *c, int (*cb) (SSL *ssl, void *arg),
1484
1693
  # ifndef OPENSSL_NO_RSA
1485
1694
  __owur int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa);
1486
1695
  __owur int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, const unsigned char *d,
1487
- long len);
1696
+ long len);
1488
1697
  # endif
1489
1698
  __owur int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey);
1490
1699
  __owur int SSL_CTX_use_PrivateKey_ASN1(int pk, SSL_CTX *ctx,
1491
- const unsigned char *d, long len);
1700
+ const unsigned char *d, long len);
1492
1701
  __owur int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x);
1493
1702
  __owur int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len,
1494
- const unsigned char *d);
1703
+ const unsigned char *d);
1704
+ __owur int SSL_CTX_use_cert_and_key(SSL_CTX *ctx, X509 *x509, EVP_PKEY *privatekey,
1705
+ STACK_OF(X509) *chain, int override);
1495
1706
 
1496
1707
  void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb);
1497
1708
  void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u);
@@ -1505,19 +1716,20 @@ void *SSL_get_default_passwd_cb_userdata(SSL *s);
1505
1716
  __owur int SSL_CTX_check_private_key(const SSL_CTX *ctx);
1506
1717
  __owur int SSL_check_private_key(const SSL *ctx);
1507
1718
 
1508
- __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, const unsigned char *sid_ctx,
1509
- unsigned int sid_ctx_len);
1719
+ __owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx,
1720
+ const unsigned char *sid_ctx,
1721
+ unsigned int sid_ctx_len);
1510
1722
 
1511
1723
  SSL *SSL_new(SSL_CTX *ctx);
1512
1724
  int SSL_up_ref(SSL *s);
1513
1725
  int SSL_is_dtls(const SSL *s);
1514
1726
  __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx,
1515
- unsigned int sid_ctx_len);
1727
+ unsigned int sid_ctx_len);
1516
1728
 
1517
- __owur int SSL_CTX_set_purpose(SSL_CTX *s, int purpose);
1518
- __owur int SSL_set_purpose(SSL *s, int purpose);
1519
- __owur int SSL_CTX_set_trust(SSL_CTX *s, int trust);
1520
- __owur int SSL_set_trust(SSL *s, int trust);
1729
+ __owur int SSL_CTX_set_purpose(SSL_CTX *ctx, int purpose);
1730
+ __owur int SSL_set_purpose(SSL *ssl, int purpose);
1731
+ __owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust);
1732
+ __owur int SSL_set_trust(SSL *ssl, int trust);
1521
1733
 
1522
1734
  __owur int SSL_set1_host(SSL *s, const char *hostname);
1523
1735
  __owur int SSL_add1_host(SSL *s, const char *hostname);
@@ -1529,7 +1741,7 @@ __owur int SSL_CTX_dane_mtype_set(SSL_CTX *ctx, const EVP_MD *md,
1529
1741
  uint8_t mtype, uint8_t ord);
1530
1742
  __owur int SSL_dane_enable(SSL *s, const char *basedomain);
1531
1743
  __owur int SSL_dane_tlsa_add(SSL *s, uint8_t usage, uint8_t selector,
1532
- uint8_t mtype, unsigned char *data, size_t dlen);
1744
+ uint8_t mtype, unsigned const char *data, size_t dlen);
1533
1745
  __owur int SSL_get0_dane_authority(SSL *s, X509 **mcert, EVP_PKEY **mspki);
1534
1746
  __owur int SSL_get0_dane_tlsa(SSL *s, uint8_t *usage, uint8_t *selector,
1535
1747
  uint8_t *mtype, unsigned const char **data,
@@ -1577,6 +1789,28 @@ __owur char *SSL_get_srp_username(SSL *s);
1577
1789
  __owur char *SSL_get_srp_userinfo(SSL *s);
1578
1790
  # endif
1579
1791
 
1792
+ /*
1793
+ * ClientHello callback and helpers.
1794
+ */
1795
+
1796
+ # define SSL_CLIENT_HELLO_SUCCESS 1
1797
+ # define SSL_CLIENT_HELLO_ERROR 0
1798
+ # define SSL_CLIENT_HELLO_RETRY (-1)
1799
+
1800
+ typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg);
1801
+ void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb,
1802
+ void *arg);
1803
+ int SSL_client_hello_isv2(SSL *s);
1804
+ unsigned int SSL_client_hello_get0_legacy_version(SSL *s);
1805
+ size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out);
1806
+ size_t SSL_client_hello_get0_session_id(SSL *s, const unsigned char **out);
1807
+ size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out);
1808
+ size_t SSL_client_hello_get0_compression_methods(SSL *s,
1809
+ const unsigned char **out);
1810
+ int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen);
1811
+ int SSL_client_hello_get0_ext(SSL *s, unsigned int type,
1812
+ const unsigned char **out, size_t *outlen);
1813
+
1580
1814
  void SSL_certs_clear(SSL *s);
1581
1815
  void SSL_free(SSL *ssl);
1582
1816
  # ifdef OSSL_ASYNC_FD
@@ -1590,15 +1824,34 @@ __owur int SSL_get_changed_async_fds(SSL *s, OSSL_ASYNC_FD *addfd,
1590
1824
  size_t *numdelfds);
1591
1825
  # endif
1592
1826
  __owur int SSL_accept(SSL *ssl);
1827
+ __owur int SSL_stateless(SSL *s);
1593
1828
  __owur int SSL_connect(SSL *ssl);
1594
1829
  __owur int SSL_read(SSL *ssl, void *buf, int num);
1830
+ __owur int SSL_read_ex(SSL *ssl, void *buf, size_t num, size_t *readbytes);
1831
+
1832
+ # define SSL_READ_EARLY_DATA_ERROR 0
1833
+ # define SSL_READ_EARLY_DATA_SUCCESS 1
1834
+ # define SSL_READ_EARLY_DATA_FINISH 2
1835
+
1836
+ __owur int SSL_read_early_data(SSL *s, void *buf, size_t num,
1837
+ size_t *readbytes);
1595
1838
  __owur int SSL_peek(SSL *ssl, void *buf, int num);
1839
+ __owur int SSL_peek_ex(SSL *ssl, void *buf, size_t num, size_t *readbytes);
1596
1840
  __owur int SSL_write(SSL *ssl, const void *buf, int num);
1841
+ __owur int SSL_write_ex(SSL *s, const void *buf, size_t num, size_t *written);
1842
+ __owur int SSL_write_early_data(SSL *s, const void *buf, size_t num,
1843
+ size_t *written);
1597
1844
  long SSL_ctrl(SSL *ssl, int cmd, long larg, void *parg);
1598
1845
  long SSL_callback_ctrl(SSL *, int, void (*)(void));
1599
1846
  long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg);
1600
1847
  long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void));
1601
1848
 
1849
+ # define SSL_EARLY_DATA_NOT_SENT 0
1850
+ # define SSL_EARLY_DATA_REJECTED 1
1851
+ # define SSL_EARLY_DATA_ACCEPTED 2
1852
+
1853
+ __owur int SSL_get_early_data_status(const SSL *s);
1854
+
1602
1855
  __owur int SSL_get_error(const SSL *s, int ret_code);
1603
1856
  __owur const char *SSL_get_version(const SSL *s);
1604
1857
 
@@ -1607,8 +1860,8 @@ __owur int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth);
1607
1860
 
1608
1861
  # ifndef OPENSSL_NO_SSL3_METHOD
1609
1862
  DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_method(void)) /* SSLv3 */
1610
- DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_server_method(void)) /* SSLv3 */
1611
- DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_client_method(void)) /* SSLv3 */
1863
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_server_method(void))
1864
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_client_method(void))
1612
1865
  # endif
1613
1866
 
1614
1867
  #define SSLv23_method TLS_method
@@ -1622,57 +1875,73 @@ __owur const SSL_METHOD *TLS_client_method(void);
1622
1875
 
1623
1876
  # ifndef OPENSSL_NO_TLS1_METHOD
1624
1877
  DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_method(void)) /* TLSv1.0 */
1625
- DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_server_method(void)) /* TLSv1.0 */
1626
- DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_client_method(void)) /* TLSv1.0 */
1878
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_server_method(void))
1879
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_client_method(void))
1627
1880
  # endif
1628
1881
 
1629
1882
  # ifndef OPENSSL_NO_TLS1_1_METHOD
1630
1883
  DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_method(void)) /* TLSv1.1 */
1631
- DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_server_method(void)) /* TLSv1.1 */
1632
- DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_client_method(void)) /* TLSv1.1 */
1884
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_server_method(void))
1885
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_client_method(void))
1633
1886
  # endif
1634
1887
 
1635
1888
  # ifndef OPENSSL_NO_TLS1_2_METHOD
1636
1889
  DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_method(void)) /* TLSv1.2 */
1637
- DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_server_method(void)) /* TLSv1.2 */
1638
- DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_client_method(void)) /* TLSv1.2 */
1890
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_server_method(void))
1891
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_client_method(void))
1639
1892
  # endif
1640
1893
 
1641
1894
  # ifndef OPENSSL_NO_DTLS1_METHOD
1642
1895
  DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_method(void)) /* DTLSv1.0 */
1643
- DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_server_method(void)) /* DTLSv1.0 */
1644
- DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_client_method(void)) /* DTLSv1.0 */
1896
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_server_method(void))
1897
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_client_method(void))
1645
1898
  # endif
1646
1899
 
1647
1900
  # ifndef OPENSSL_NO_DTLS1_2_METHOD
1648
- DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_method(void)) /* DTLSv1.2 */
1649
- DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_server_method(void)) /* DTLSv1.2 */
1650
- DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_client_method(void)) /* DTLSv1.2 */
1651
- #endif
1901
+ /* DTLSv1.2 */
1902
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_method(void))
1903
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_server_method(void))
1904
+ DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_client_method(void))
1905
+ # endif
1652
1906
 
1653
1907
  __owur const SSL_METHOD *DTLS_method(void); /* DTLS 1.0 and 1.2 */
1654
1908
  __owur const SSL_METHOD *DTLS_server_method(void); /* DTLS 1.0 and 1.2 */
1655
1909
  __owur const SSL_METHOD *DTLS_client_method(void); /* DTLS 1.0 and 1.2 */
1656
1910
 
1911
+ __owur size_t DTLS_get_data_mtu(const SSL *s);
1912
+
1657
1913
  __owur STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *s);
1658
1914
  __owur STACK_OF(SSL_CIPHER) *SSL_CTX_get_ciphers(const SSL_CTX *ctx);
1659
1915
  __owur STACK_OF(SSL_CIPHER) *SSL_get_client_ciphers(const SSL *s);
1660
1916
  __owur STACK_OF(SSL_CIPHER) *SSL_get1_supported_ciphers(SSL *s);
1661
1917
 
1662
1918
  __owur int SSL_do_handshake(SSL *s);
1919
+ int SSL_key_update(SSL *s, int updatetype);
1920
+ int SSL_get_key_update_type(const SSL *s);
1663
1921
  int SSL_renegotiate(SSL *s);
1664
- __owur int SSL_renegotiate_abbreviated(SSL *s);
1665
- __owur int SSL_renegotiate_pending(SSL *s);
1922
+ int SSL_renegotiate_abbreviated(SSL *s);
1923
+ __owur int SSL_renegotiate_pending(const SSL *s);
1666
1924
  int SSL_shutdown(SSL *s);
1925
+ __owur int SSL_verify_client_post_handshake(SSL *s);
1926
+ void SSL_CTX_set_post_handshake_auth(SSL_CTX *ctx, int val);
1927
+ void SSL_set_post_handshake_auth(SSL *s, int val);
1667
1928
 
1668
- __owur const SSL_METHOD *SSL_CTX_get_ssl_method(SSL_CTX *ctx);
1669
- __owur const SSL_METHOD *SSL_get_ssl_method(SSL *s);
1929
+ __owur const SSL_METHOD *SSL_CTX_get_ssl_method(const SSL_CTX *ctx);
1930
+ __owur const SSL_METHOD *SSL_get_ssl_method(const SSL *s);
1670
1931
  __owur int SSL_set_ssl_method(SSL *s, const SSL_METHOD *method);
1671
1932
  __owur const char *SSL_alert_type_string_long(int value);
1672
1933
  __owur const char *SSL_alert_type_string(int value);
1673
1934
  __owur const char *SSL_alert_desc_string_long(int value);
1674
1935
  __owur const char *SSL_alert_desc_string(int value);
1675
1936
 
1937
+ void SSL_set0_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list);
1938
+ void SSL_CTX_set0_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list);
1939
+ __owur const STACK_OF(X509_NAME) *SSL_get0_CA_list(const SSL *s);
1940
+ __owur const STACK_OF(X509_NAME) *SSL_CTX_get0_CA_list(const SSL_CTX *ctx);
1941
+ __owur int SSL_add1_to_CA_list(SSL *ssl, const X509 *x);
1942
+ __owur int SSL_CTX_add1_to_CA_list(SSL_CTX *ctx, const X509 *x);
1943
+ __owur const STACK_OF(X509_NAME) *SSL_get0_peer_CA_list(const SSL *s);
1944
+
1676
1945
  void SSL_set_client_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list);
1677
1946
  void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list);
1678
1947
  __owur STACK_OF(X509_NAME) *SSL_get_client_CA_list(const SSL *s);
@@ -1685,19 +1954,20 @@ void SSL_set_accept_state(SSL *s);
1685
1954
 
1686
1955
  __owur long SSL_get_default_timeout(const SSL *s);
1687
1956
 
1688
- #if OPENSSL_API_COMPAT < 0x10100000L
1689
- # define SSL_library_init() OPENSSL_init_ssl(0, NULL)
1690
- #endif
1957
+ # if OPENSSL_API_COMPAT < 0x10100000L
1958
+ # define SSL_library_init() OPENSSL_init_ssl(0, NULL)
1959
+ # endif
1691
1960
 
1692
1961
  __owur char *SSL_CIPHER_description(const SSL_CIPHER *, char *buf, int size);
1693
- __owur STACK_OF(X509_NAME) *SSL_dup_CA_list(STACK_OF(X509_NAME) *sk);
1962
+ __owur STACK_OF(X509_NAME) *SSL_dup_CA_list(const STACK_OF(X509_NAME) *sk);
1694
1963
 
1695
1964
  __owur SSL *SSL_dup(SSL *ssl);
1696
1965
 
1697
1966
  __owur X509 *SSL_get_certificate(const SSL *ssl);
1698
1967
  /*
1699
1968
  * EVP_PKEY
1700
- */ struct evp_pkey_st *SSL_get_privatekey(const SSL *ssl);
1969
+ */
1970
+ struct evp_pkey_st *SSL_get_privatekey(const SSL *ssl);
1701
1971
 
1702
1972
  __owur X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx);
1703
1973
  __owur EVP_PKEY *SSL_CTX_get0_privatekey(const SSL_CTX *ctx);
@@ -1714,7 +1984,7 @@ __owur int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx);
1714
1984
  __owur int SSL_CTX_set_default_verify_dir(SSL_CTX *ctx);
1715
1985
  __owur int SSL_CTX_set_default_verify_file(SSL_CTX *ctx);
1716
1986
  __owur int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile,
1717
- const char *CApath);
1987
+ const char *CApath);
1718
1988
  # define SSL_get0_session SSL_get_session/* just peek at pointer */
1719
1989
  __owur SSL_SESSION *SSL_get_session(const SSL *ssl);
1720
1990
  __owur SSL_SESSION *SSL_get1_session(SSL *ssl); /* obtain a reference count */
@@ -1734,8 +2004,11 @@ __owur size_t SSL_get_client_random(const SSL *ssl, unsigned char *out,
1734
2004
  size_t outlen);
1735
2005
  __owur size_t SSL_get_server_random(const SSL *ssl, unsigned char *out,
1736
2006
  size_t outlen);
1737
- __owur size_t SSL_SESSION_get_master_key(const SSL_SESSION *ssl,
2007
+ __owur size_t SSL_SESSION_get_master_key(const SSL_SESSION *sess,
1738
2008
  unsigned char *out, size_t outlen);
2009
+ __owur int SSL_SESSION_set1_master_key(SSL_SESSION *sess,
2010
+ const unsigned char *in, size_t len);
2011
+ uint8_t SSL_SESSION_get_max_fragment_length(const SSL_SESSION *sess);
1739
2012
 
1740
2013
  #define SSL_get_ex_new_index(l, p, newf, dupf, freef) \
1741
2014
  CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL, l, p, newf, dupf, freef)
@@ -1802,33 +2075,37 @@ void SSL_set_tmp_dh_callback(SSL *ssl,
1802
2075
  int keylength));
1803
2076
  # endif
1804
2077
 
1805
- __owur const COMP_METHOD *SSL_get_current_compression(SSL *s);
1806
- __owur const COMP_METHOD *SSL_get_current_expansion(SSL *s);
2078
+ __owur const COMP_METHOD *SSL_get_current_compression(const SSL *s);
2079
+ __owur const COMP_METHOD *SSL_get_current_expansion(const SSL *s);
1807
2080
  __owur const char *SSL_COMP_get_name(const COMP_METHOD *comp);
1808
2081
  __owur const char *SSL_COMP_get0_name(const SSL_COMP *comp);
1809
2082
  __owur int SSL_COMP_get_id(const SSL_COMP *comp);
1810
2083
  STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void);
1811
2084
  __owur STACK_OF(SSL_COMP) *SSL_COMP_set0_compression_methods(STACK_OF(SSL_COMP)
1812
- *meths);
1813
- #if OPENSSL_API_COMPAT < 0x10100000L
1814
- # define SSL_COMP_free_compression_methods() while(0) continue
1815
- #endif
2085
+ *meths);
2086
+ # if OPENSSL_API_COMPAT < 0x10100000L
2087
+ # define SSL_COMP_free_compression_methods() while(0) continue
2088
+ # endif
1816
2089
  __owur int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm);
1817
2090
 
1818
2091
  const SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr);
1819
2092
  int SSL_CIPHER_get_cipher_nid(const SSL_CIPHER *c);
1820
2093
  int SSL_CIPHER_get_digest_nid(const SSL_CIPHER *c);
2094
+ int SSL_bytes_to_cipher_list(SSL *s, const unsigned char *bytes, size_t len,
2095
+ int isv2format, STACK_OF(SSL_CIPHER) **sk,
2096
+ STACK_OF(SSL_CIPHER) **scsvs);
1821
2097
 
1822
2098
  /* TLS extensions functions */
1823
2099
  __owur int SSL_set_session_ticket_ext(SSL *s, void *ext_data, int ext_len);
1824
2100
 
1825
- __owur int SSL_set_session_ticket_ext_cb(SSL *s, tls_session_ticket_ext_cb_fn cb,
1826
- void *arg);
2101
+ __owur int SSL_set_session_ticket_ext_cb(SSL *s,
2102
+ tls_session_ticket_ext_cb_fn cb,
2103
+ void *arg);
1827
2104
 
1828
2105
  /* Pre-shared secret session resumption functions */
1829
2106
  __owur int SSL_set_session_secret_cb(SSL *s,
1830
- tls_session_secret_cb_fn tls_session_secret_cb,
1831
- void *arg);
2107
+ tls_session_secret_cb_fn session_secret_cb,
2108
+ void *arg);
1832
2109
 
1833
2110
  void SSL_CTX_set_not_resumable_session_callback(SSL_CTX *ctx,
1834
2111
  int (*cb) (SSL *ssl,
@@ -1837,20 +2114,40 @@ void SSL_CTX_set_not_resumable_session_callback(SSL_CTX *ctx,
1837
2114
 
1838
2115
  void SSL_set_not_resumable_session_callback(SSL *ssl,
1839
2116
  int (*cb) (SSL *ssl,
1840
- int
1841
- is_forward_secure));
2117
+ int is_forward_secure));
2118
+
2119
+ void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx,
2120
+ size_t (*cb) (SSL *ssl, int type,
2121
+ size_t len, void *arg));
2122
+ void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg);
2123
+ void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx);
2124
+ int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size);
2125
+
2126
+ void SSL_set_record_padding_callback(SSL *ssl,
2127
+ size_t (*cb) (SSL *ssl, int type,
2128
+ size_t len, void *arg));
2129
+ void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg);
2130
+ void *SSL_get_record_padding_callback_arg(const SSL *ssl);
2131
+ int SSL_set_block_padding(SSL *ssl, size_t block_size);
2132
+
2133
+ int SSL_set_num_tickets(SSL *s, size_t num_tickets);
2134
+ size_t SSL_get_num_tickets(const SSL *s);
2135
+ int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets);
2136
+ size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx);
2137
+
1842
2138
  # if OPENSSL_API_COMPAT < 0x10100000L
1843
2139
  # define SSL_cache_hit(s) SSL_session_reused(s)
1844
2140
  # endif
1845
2141
 
1846
- __owur int SSL_session_reused(SSL *s);
2142
+ __owur int SSL_session_reused(const SSL *s);
1847
2143
  __owur int SSL_is_server(const SSL *s);
1848
2144
 
1849
2145
  __owur __owur SSL_CONF_CTX *SSL_CONF_CTX_new(void);
1850
2146
  int SSL_CONF_CTX_finish(SSL_CONF_CTX *cctx);
1851
2147
  void SSL_CONF_CTX_free(SSL_CONF_CTX *cctx);
1852
2148
  unsigned int SSL_CONF_CTX_set_flags(SSL_CONF_CTX *cctx, unsigned int flags);
1853
- __owur unsigned int SSL_CONF_CTX_clear_flags(SSL_CONF_CTX *cctx, unsigned int flags);
2149
+ __owur unsigned int SSL_CONF_CTX_clear_flags(SSL_CONF_CTX *cctx,
2150
+ unsigned int flags);
1854
2151
  __owur int SSL_CONF_CTX_set1_prefix(SSL_CONF_CTX *cctx, const char *pre);
1855
2152
 
1856
2153
  void SSL_CONF_CTX_set_ssl(SSL_CONF_CTX *cctx, SSL *ssl);
@@ -1867,7 +2164,6 @@ int SSL_CTX_config(SSL_CTX *ctx, const char *name);
1867
2164
  # ifndef OPENSSL_NO_SSL_TRACE
1868
2165
  void SSL_trace(int write_p, int version, int content_type,
1869
2166
  const void *buf, size_t len, SSL *ssl, void *arg);
1870
- __owur const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c);
1871
2167
  # endif
1872
2168
 
1873
2169
  # ifndef OPENSSL_NO_SOCK
@@ -1882,8 +2178,8 @@ int DTLSv1_listen(SSL *s, BIO_ADDR *client);
1882
2178
  * May return a negative integer if an error occurs.
1883
2179
  * A connection should be aborted if the SCTs are deemed insufficient.
1884
2180
  */
1885
- typedef int(*ssl_ct_validation_cb)(const CT_POLICY_EVAL_CTX *ctx,
1886
- const STACK_OF(SCT) *scts, void *arg);
2181
+ typedef int (*ssl_ct_validation_cb)(const CT_POLICY_EVAL_CTX *ctx,
2182
+ const STACK_OF(SCT) *scts, void *arg);
1887
2183
 
1888
2184
  /*
1889
2185
  * Sets a |callback| that is invoked upon receipt of ServerHelloDone to validate
@@ -2033,21 +2329,22 @@ const CTLOG_STORE *SSL_CTX_get0_ctlog_store(const SSL_CTX *ctx);
2033
2329
  void SSL_set_security_level(SSL *s, int level);
2034
2330
  __owur int SSL_get_security_level(const SSL *s);
2035
2331
  void SSL_set_security_callback(SSL *s,
2036
- int (*cb) (const SSL *s, const SSL_CTX *ctx, int op,
2037
- int bits, int nid, void *other,
2038
- void *ex));
2039
- int (*SSL_get_security_callback(const SSL *s)) (const SSL *s, const SSL_CTX *ctx, int op,
2040
- int bits, int nid,
2041
- void *other, void *ex);
2332
+ int (*cb) (const SSL *s, const SSL_CTX *ctx,
2333
+ int op, int bits, int nid,
2334
+ void *other, void *ex));
2335
+ int (*SSL_get_security_callback(const SSL *s)) (const SSL *s,
2336
+ const SSL_CTX *ctx, int op,
2337
+ int bits, int nid, void *other,
2338
+ void *ex);
2042
2339
  void SSL_set0_security_ex_data(SSL *s, void *ex);
2043
2340
  __owur void *SSL_get0_security_ex_data(const SSL *s);
2044
2341
 
2045
2342
  void SSL_CTX_set_security_level(SSL_CTX *ctx, int level);
2046
2343
  __owur int SSL_CTX_get_security_level(const SSL_CTX *ctx);
2047
2344
  void SSL_CTX_set_security_callback(SSL_CTX *ctx,
2048
- int (*cb) (const SSL *s, const SSL_CTX *ctx, int op,
2049
- int bits, int nid, void *other,
2050
- void *ex));
2345
+ int (*cb) (const SSL *s, const SSL_CTX *ctx,
2346
+ int op, int bits, int nid,
2347
+ void *other, void *ex));
2051
2348
  int (*SSL_CTX_get_security_callback(const SSL_CTX *ctx)) (const SSL *s,
2052
2349
  const SSL_CTX *ctx,
2053
2350
  int op, int bits,
@@ -2058,10 +2355,10 @@ void SSL_CTX_set0_security_ex_data(SSL_CTX *ctx, void *ex);
2058
2355
  __owur void *SSL_CTX_get0_security_ex_data(const SSL_CTX *ctx);
2059
2356
 
2060
2357
  /* OPENSSL_INIT flag 0x010000 reserved for internal use */
2061
- #define OPENSSL_INIT_NO_LOAD_SSL_STRINGS 0x00100000L
2062
- #define OPENSSL_INIT_LOAD_SSL_STRINGS 0x00200000L
2358
+ # define OPENSSL_INIT_NO_LOAD_SSL_STRINGS 0x00100000L
2359
+ # define OPENSSL_INIT_LOAD_SSL_STRINGS 0x00200000L
2063
2360
 
2064
- #define OPENSSL_INIT_SSL_DEFAULT \
2361
+ # define OPENSSL_INIT_SSL_DEFAULT \
2065
2362
  (OPENSSL_INIT_LOAD_SSL_STRINGS | OPENSSL_INIT_LOAD_CRYPTO_STRINGS)
2066
2363
 
2067
2364
  int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
@@ -2070,489 +2367,70 @@ int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
2070
2367
  __owur const struct openssl_ssl_test_functions *SSL_test_functions(void);
2071
2368
  # endif
2072
2369
 
2370
+ __owur int SSL_free_buffers(SSL *ssl);
2371
+ __owur int SSL_alloc_buffers(SSL *ssl);
2372
+
2373
+ /* Status codes passed to the decrypt session ticket callback. Some of these
2374
+ * are for internal use only and are never passed to the callback. */
2375
+ typedef int SSL_TICKET_STATUS;
2376
+
2377
+ /* Support for ticket appdata */
2378
+ /* fatal error, malloc failure */
2379
+ # define SSL_TICKET_FATAL_ERR_MALLOC 0
2380
+ /* fatal error, either from parsing or decrypting the ticket */
2381
+ # define SSL_TICKET_FATAL_ERR_OTHER 1
2382
+ /* No ticket present */
2383
+ # define SSL_TICKET_NONE 2
2384
+ /* Empty ticket present */
2385
+ # define SSL_TICKET_EMPTY 3
2386
+ /* the ticket couldn't be decrypted */
2387
+ # define SSL_TICKET_NO_DECRYPT 4
2388
+ /* a ticket was successfully decrypted */
2389
+ # define SSL_TICKET_SUCCESS 5
2390
+ /* same as above but the ticket needs to be renewed */
2391
+ # define SSL_TICKET_SUCCESS_RENEW 6
2392
+
2393
+ /* Return codes for the decrypt session ticket callback */
2394
+ typedef int SSL_TICKET_RETURN;
2395
+
2396
+ /* An error occurred */
2397
+ #define SSL_TICKET_RETURN_ABORT 0
2398
+ /* Do not use the ticket, do not send a renewed ticket to the client */
2399
+ #define SSL_TICKET_RETURN_IGNORE 1
2400
+ /* Do not use the ticket, send a renewed ticket to the client */
2401
+ #define SSL_TICKET_RETURN_IGNORE_RENEW 2
2402
+ /* Use the ticket, do not send a renewed ticket to the client */
2403
+ #define SSL_TICKET_RETURN_USE 3
2404
+ /* Use the ticket, send a renewed ticket to the client */
2405
+ #define SSL_TICKET_RETURN_USE_RENEW 4
2406
+
2407
+ typedef int (*SSL_CTX_generate_session_ticket_fn)(SSL *s, void *arg);
2408
+ typedef SSL_TICKET_RETURN (*SSL_CTX_decrypt_session_ticket_fn)(SSL *s, SSL_SESSION *ss,
2409
+ const unsigned char *keyname,
2410
+ size_t keyname_length,
2411
+ SSL_TICKET_STATUS status,
2412
+ void *arg);
2413
+ int SSL_CTX_set_session_ticket_cb(SSL_CTX *ctx,
2414
+ SSL_CTX_generate_session_ticket_fn gen_cb,
2415
+ SSL_CTX_decrypt_session_ticket_fn dec_cb,
2416
+ void *arg);
2417
+ int SSL_SESSION_set1_ticket_appdata(SSL_SESSION *ss, const void *data, size_t len);
2418
+ int SSL_SESSION_get0_ticket_appdata(SSL_SESSION *ss, void **data, size_t *len);
2419
+
2073
2420
  extern const char SSL_version_str[];
2074
2421
 
2075
- /* BEGIN ERROR CODES */
2076
- /*
2077
- * The following lines are auto generated by the script mkerr.pl. Any changes
2078
- * made after this point may be overwritten when the script is next run.
2079
- */
2422
+ typedef unsigned int (*DTLS_timer_cb)(SSL *s, unsigned int timer_us);
2423
+
2424
+ void DTLS_set_timer_cb(SSL *s, DTLS_timer_cb cb);
2425
+
2080
2426
 
2081
- int ERR_load_SSL_strings(void);
2082
-
2083
- /* Error codes for the SSL functions. */
2084
-
2085
- /* Function codes. */
2086
- # define SSL_F_CHECK_SUITEB_CIPHER_LIST 331
2087
- # define SSL_F_CT_MOVE_SCTS 345
2088
- # define SSL_F_CT_STRICT 349
2089
- # define SSL_F_D2I_SSL_SESSION 103
2090
- # define SSL_F_DANE_CTX_ENABLE 347
2091
- # define SSL_F_DANE_MTYPE_SET 393
2092
- # define SSL_F_DANE_TLSA_ADD 394
2093
- # define SSL_F_DO_DTLS1_WRITE 245
2094
- # define SSL_F_DO_SSL3_WRITE 104
2095
- # define SSL_F_DTLS1_BUFFER_RECORD 247
2096
- # define SSL_F_DTLS1_CHECK_TIMEOUT_NUM 318
2097
- # define SSL_F_DTLS1_HEARTBEAT 305
2098
- # define SSL_F_DTLS1_PREPROCESS_FRAGMENT 288
2099
- # define SSL_F_DTLS1_PROCESS_BUFFERED_RECORDS 424
2100
- # define SSL_F_DTLS1_PROCESS_RECORD 257
2101
- # define SSL_F_DTLS1_READ_BYTES 258
2102
- # define SSL_F_DTLS1_READ_FAILED 339
2103
- # define SSL_F_DTLS1_RETRANSMIT_MESSAGE 390
2104
- # define SSL_F_DTLS1_WRITE_APP_DATA_BYTES 268
2105
- # define SSL_F_DTLSV1_LISTEN 350
2106
- # define SSL_F_DTLS_CONSTRUCT_CHANGE_CIPHER_SPEC 371
2107
- # define SSL_F_DTLS_CONSTRUCT_HELLO_VERIFY_REQUEST 385
2108
- # define SSL_F_DTLS_GET_REASSEMBLED_MESSAGE 370
2109
- # define SSL_F_DTLS_PROCESS_HELLO_VERIFY 386
2110
- # define SSL_F_OPENSSL_INIT_SSL 342
2111
- # define SSL_F_OSSL_STATEM_CLIENT_READ_TRANSITION 417
2112
- # define SSL_F_OSSL_STATEM_SERVER_READ_TRANSITION 418
2113
- # define SSL_F_READ_STATE_MACHINE 352
2114
- # define SSL_F_SSL3_CHANGE_CIPHER_STATE 129
2115
- # define SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM 130
2116
- # define SSL_F_SSL3_CTRL 213
2117
- # define SSL_F_SSL3_CTX_CTRL 133
2118
- # define SSL_F_SSL3_DIGEST_CACHED_RECORDS 293
2119
- # define SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC 292
2120
- # define SSL_F_SSL3_FINAL_FINISH_MAC 285
2121
- # define SSL_F_SSL3_GENERATE_KEY_BLOCK 238
2122
- # define SSL_F_SSL3_GENERATE_MASTER_SECRET 388
2123
- # define SSL_F_SSL3_GET_RECORD 143
2124
- # define SSL_F_SSL3_INIT_FINISHED_MAC 397
2125
- # define SSL_F_SSL3_OUTPUT_CERT_CHAIN 147
2126
- # define SSL_F_SSL3_READ_BYTES 148
2127
- # define SSL_F_SSL3_READ_N 149
2128
- # define SSL_F_SSL3_SETUP_KEY_BLOCK 157
2129
- # define SSL_F_SSL3_SETUP_READ_BUFFER 156
2130
- # define SSL_F_SSL3_SETUP_WRITE_BUFFER 291
2131
- # define SSL_F_SSL3_WRITE_BYTES 158
2132
- # define SSL_F_SSL3_WRITE_PENDING 159
2133
- # define SSL_F_SSL_ADD_CERT_CHAIN 316
2134
- # define SSL_F_SSL_ADD_CERT_TO_BUF 319
2135
- # define SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT 298
2136
- # define SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT 277
2137
- # define SSL_F_SSL_ADD_CLIENTHELLO_USE_SRTP_EXT 307
2138
- # define SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK 215
2139
- # define SSL_F_SSL_ADD_FILE_CERT_SUBJECTS_TO_STACK 216
2140
- # define SSL_F_SSL_ADD_SERVERHELLO_RENEGOTIATE_EXT 299
2141
- # define SSL_F_SSL_ADD_SERVERHELLO_TLSEXT 278
2142
- # define SSL_F_SSL_ADD_SERVERHELLO_USE_SRTP_EXT 308
2143
- # define SSL_F_SSL_BAD_METHOD 160
2144
- # define SSL_F_SSL_BUILD_CERT_CHAIN 332
2145
- # define SSL_F_SSL_BYTES_TO_CIPHER_LIST 161
2146
- # define SSL_F_SSL_CERT_ADD0_CHAIN_CERT 346
2147
- # define SSL_F_SSL_CERT_DUP 221
2148
- # define SSL_F_SSL_CERT_NEW 162
2149
- # define SSL_F_SSL_CERT_SET0_CHAIN 340
2150
- # define SSL_F_SSL_CHECK_PRIVATE_KEY 163
2151
- # define SSL_F_SSL_CHECK_SERVERHELLO_TLSEXT 280
2152
- # define SSL_F_SSL_CHECK_SRVR_ECC_CERT_AND_ALG 279
2153
- # define SSL_F_SSL_CIPHER_PROCESS_RULESTR 230
2154
- # define SSL_F_SSL_CIPHER_STRENGTH_SORT 231
2155
- # define SSL_F_SSL_CLEAR 164
2156
- # define SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD 165
2157
- # define SSL_F_SSL_CONF_CMD 334
2158
- # define SSL_F_SSL_CREATE_CIPHER_LIST 166
2159
- # define SSL_F_SSL_CTRL 232
2160
- # define SSL_F_SSL_CTX_CHECK_PRIVATE_KEY 168
2161
- # define SSL_F_SSL_CTX_ENABLE_CT 398
2162
- # define SSL_F_SSL_CTX_MAKE_PROFILES 309
2163
- # define SSL_F_SSL_CTX_NEW 169
2164
- # define SSL_F_SSL_CTX_SET_ALPN_PROTOS 343
2165
- # define SSL_F_SSL_CTX_SET_CIPHER_LIST 269
2166
- # define SSL_F_SSL_CTX_SET_CLIENT_CERT_ENGINE 290
2167
- # define SSL_F_SSL_CTX_SET_CT_VALIDATION_CALLBACK 396
2168
- # define SSL_F_SSL_CTX_SET_SESSION_ID_CONTEXT 219
2169
- # define SSL_F_SSL_CTX_SET_SSL_VERSION 170
2170
- # define SSL_F_SSL_CTX_USE_CERTIFICATE 171
2171
- # define SSL_F_SSL_CTX_USE_CERTIFICATE_ASN1 172
2172
- # define SSL_F_SSL_CTX_USE_CERTIFICATE_FILE 173
2173
- # define SSL_F_SSL_CTX_USE_PRIVATEKEY 174
2174
- # define SSL_F_SSL_CTX_USE_PRIVATEKEY_ASN1 175
2175
- # define SSL_F_SSL_CTX_USE_PRIVATEKEY_FILE 176
2176
- # define SSL_F_SSL_CTX_USE_PSK_IDENTITY_HINT 272
2177
- # define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY 177
2178
- # define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_ASN1 178
2179
- # define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_FILE 179
2180
- # define SSL_F_SSL_CTX_USE_SERVERINFO 336
2181
- # define SSL_F_SSL_CTX_USE_SERVERINFO_FILE 337
2182
- # define SSL_F_SSL_DANE_DUP 403
2183
- # define SSL_F_SSL_DANE_ENABLE 395
2184
- # define SSL_F_SSL_DO_CONFIG 391
2185
- # define SSL_F_SSL_DO_HANDSHAKE 180
2186
- # define SSL_F_SSL_DUP_CA_LIST 408
2187
- # define SSL_F_SSL_ENABLE_CT 402
2188
- # define SSL_F_SSL_GET_NEW_SESSION 181
2189
- # define SSL_F_SSL_GET_PREV_SESSION 217
2190
- # define SSL_F_SSL_GET_SERVER_CERT_INDEX 322
2191
- # define SSL_F_SSL_GET_SIGN_PKEY 183
2192
- # define SSL_F_SSL_INIT_WBIO_BUFFER 184
2193
- # define SSL_F_SSL_LOAD_CLIENT_CA_FILE 185
2194
- # define SSL_F_SSL_MODULE_INIT 392
2195
- # define SSL_F_SSL_NEW 186
2196
- # define SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT 300
2197
- # define SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT 302
2198
- # define SSL_F_SSL_PARSE_CLIENTHELLO_USE_SRTP_EXT 310
2199
- # define SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT 301
2200
- # define SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT 303
2201
- # define SSL_F_SSL_PARSE_SERVERHELLO_USE_SRTP_EXT 311
2202
- # define SSL_F_SSL_PEEK 270
2203
- # define SSL_F_SSL_READ 223
2204
- # define SSL_F_SSL_SCAN_CLIENTHELLO_TLSEXT 320
2205
- # define SSL_F_SSL_SCAN_SERVERHELLO_TLSEXT 321
2206
- # define SSL_F_SSL_SESSION_DUP 348
2207
- # define SSL_F_SSL_SESSION_NEW 189
2208
- # define SSL_F_SSL_SESSION_PRINT_FP 190
2209
- # define SSL_F_SSL_SESSION_SET1_ID 423
2210
- # define SSL_F_SSL_SESSION_SET1_ID_CONTEXT 312
2211
- # define SSL_F_SSL_SET_ALPN_PROTOS 344
2212
- # define SSL_F_SSL_SET_CERT 191
2213
- # define SSL_F_SSL_SET_CIPHER_LIST 271
2214
- # define SSL_F_SSL_SET_CT_VALIDATION_CALLBACK 399
2215
- # define SSL_F_SSL_SET_FD 192
2216
- # define SSL_F_SSL_SET_PKEY 193
2217
- # define SSL_F_SSL_SET_RFD 194
2218
- # define SSL_F_SSL_SET_SESSION 195
2219
- # define SSL_F_SSL_SET_SESSION_ID_CONTEXT 218
2220
- # define SSL_F_SSL_SET_SESSION_TICKET_EXT 294
2221
- # define SSL_F_SSL_SET_WFD 196
2222
- # define SSL_F_SSL_SHUTDOWN 224
2223
- # define SSL_F_SSL_SRP_CTX_INIT 313
2224
- # define SSL_F_SSL_START_ASYNC_JOB 389
2225
- # define SSL_F_SSL_UNDEFINED_FUNCTION 197
2226
- # define SSL_F_SSL_UNDEFINED_VOID_FUNCTION 244
2227
- # define SSL_F_SSL_USE_CERTIFICATE 198
2228
- # define SSL_F_SSL_USE_CERTIFICATE_ASN1 199
2229
- # define SSL_F_SSL_USE_CERTIFICATE_FILE 200
2230
- # define SSL_F_SSL_USE_PRIVATEKEY 201
2231
- # define SSL_F_SSL_USE_PRIVATEKEY_ASN1 202
2232
- # define SSL_F_SSL_USE_PRIVATEKEY_FILE 203
2233
- # define SSL_F_SSL_USE_PSK_IDENTITY_HINT 273
2234
- # define SSL_F_SSL_USE_RSAPRIVATEKEY 204
2235
- # define SSL_F_SSL_USE_RSAPRIVATEKEY_ASN1 205
2236
- # define SSL_F_SSL_USE_RSAPRIVATEKEY_FILE 206
2237
- # define SSL_F_SSL_VALIDATE_CT 400
2238
- # define SSL_F_SSL_VERIFY_CERT_CHAIN 207
2239
- # define SSL_F_SSL_WRITE 208
2240
- # define SSL_F_STATE_MACHINE 353
2241
- # define SSL_F_TLS12_CHECK_PEER_SIGALG 333
2242
- # define SSL_F_TLS1_CHANGE_CIPHER_STATE 209
2243
- # define SSL_F_TLS1_CHECK_DUPLICATE_EXTENSIONS 341
2244
- # define SSL_F_TLS1_ENC 401
2245
- # define SSL_F_TLS1_EXPORT_KEYING_MATERIAL 314
2246
- # define SSL_F_TLS1_GET_CURVELIST 338
2247
- # define SSL_F_TLS1_PRF 284
2248
- # define SSL_F_TLS1_SETUP_KEY_BLOCK 211
2249
- # define SSL_F_TLS1_SET_SERVER_SIGALGS 335
2250
- # define SSL_F_TLS_CLIENT_KEY_EXCHANGE_POST_WORK 354
2251
- # define SSL_F_TLS_CONSTRUCT_CERTIFICATE_REQUEST 372
2252
- # define SSL_F_TLS_CONSTRUCT_CKE_DHE 404
2253
- # define SSL_F_TLS_CONSTRUCT_CKE_ECDHE 405
2254
- # define SSL_F_TLS_CONSTRUCT_CKE_GOST 406
2255
- # define SSL_F_TLS_CONSTRUCT_CKE_PSK_PREAMBLE 407
2256
- # define SSL_F_TLS_CONSTRUCT_CKE_RSA 409
2257
- # define SSL_F_TLS_CONSTRUCT_CKE_SRP 410
2258
- # define SSL_F_TLS_CONSTRUCT_CLIENT_CERTIFICATE 355
2259
- # define SSL_F_TLS_CONSTRUCT_CLIENT_HELLO 356
2260
- # define SSL_F_TLS_CONSTRUCT_CLIENT_KEY_EXCHANGE 357
2261
- # define SSL_F_TLS_CONSTRUCT_CLIENT_VERIFY 358
2262
- # define SSL_F_TLS_CONSTRUCT_FINISHED 359
2263
- # define SSL_F_TLS_CONSTRUCT_HELLO_REQUEST 373
2264
- # define SSL_F_TLS_CONSTRUCT_NEW_SESSION_TICKET 428
2265
- # define SSL_F_TLS_CONSTRUCT_SERVER_CERTIFICATE 374
2266
- # define SSL_F_TLS_CONSTRUCT_SERVER_DONE 375
2267
- # define SSL_F_TLS_CONSTRUCT_SERVER_HELLO 376
2268
- # define SSL_F_TLS_CONSTRUCT_SERVER_KEY_EXCHANGE 377
2269
- # define SSL_F_TLS_GET_MESSAGE_BODY 351
2270
- # define SSL_F_TLS_GET_MESSAGE_HEADER 387
2271
- # define SSL_F_TLS_POST_PROCESS_CLIENT_HELLO 378
2272
- # define SSL_F_TLS_POST_PROCESS_CLIENT_KEY_EXCHANGE 384
2273
- # define SSL_F_TLS_PREPARE_CLIENT_CERTIFICATE 360
2274
- # define SSL_F_TLS_PROCESS_CERTIFICATE_REQUEST 361
2275
- # define SSL_F_TLS_PROCESS_CERT_STATUS 362
2276
- # define SSL_F_TLS_PROCESS_CERT_VERIFY 379
2277
- # define SSL_F_TLS_PROCESS_CHANGE_CIPHER_SPEC 363
2278
- # define SSL_F_TLS_PROCESS_CKE_DHE 411
2279
- # define SSL_F_TLS_PROCESS_CKE_ECDHE 412
2280
- # define SSL_F_TLS_PROCESS_CKE_GOST 413
2281
- # define SSL_F_TLS_PROCESS_CKE_PSK_PREAMBLE 414
2282
- # define SSL_F_TLS_PROCESS_CKE_RSA 415
2283
- # define SSL_F_TLS_PROCESS_CKE_SRP 416
2284
- # define SSL_F_TLS_PROCESS_CLIENT_CERTIFICATE 380
2285
- # define SSL_F_TLS_PROCESS_CLIENT_HELLO 381
2286
- # define SSL_F_TLS_PROCESS_CLIENT_KEY_EXCHANGE 382
2287
- # define SSL_F_TLS_PROCESS_FINISHED 364
2288
- # define SSL_F_TLS_PROCESS_KEY_EXCHANGE 365
2289
- # define SSL_F_TLS_PROCESS_NEW_SESSION_TICKET 366
2290
- # define SSL_F_TLS_PROCESS_NEXT_PROTO 383
2291
- # define SSL_F_TLS_PROCESS_SERVER_CERTIFICATE 367
2292
- # define SSL_F_TLS_PROCESS_SERVER_DONE 368
2293
- # define SSL_F_TLS_PROCESS_SERVER_HELLO 369
2294
- # define SSL_F_TLS_PROCESS_SKE_DHE 419
2295
- # define SSL_F_TLS_PROCESS_SKE_ECDHE 420
2296
- # define SSL_F_TLS_PROCESS_SKE_PSK_PREAMBLE 421
2297
- # define SSL_F_TLS_PROCESS_SKE_SRP 422
2298
- # define SSL_F_USE_CERTIFICATE_CHAIN_FILE 220
2299
-
2300
- /* Reason codes. */
2301
- # define SSL_R_APP_DATA_IN_HANDSHAKE 100
2302
- # define SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT 272
2303
- # define SSL_R_AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE 143
2304
- # define SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE 158
2305
- # define SSL_R_BAD_CHANGE_CIPHER_SPEC 103
2306
- # define SSL_R_BAD_DATA 390
2307
- # define SSL_R_BAD_DATA_RETURNED_BY_CALLBACK 106
2308
- # define SSL_R_BAD_DECOMPRESSION 107
2309
- # define SSL_R_BAD_DH_VALUE 102
2310
- # define SSL_R_BAD_DIGEST_LENGTH 111
2311
- # define SSL_R_BAD_ECC_CERT 304
2312
- # define SSL_R_BAD_ECPOINT 306
2313
- # define SSL_R_BAD_HANDSHAKE_LENGTH 332
2314
- # define SSL_R_BAD_HELLO_REQUEST 105
2315
- # define SSL_R_BAD_LENGTH 271
2316
- # define SSL_R_BAD_PACKET_LENGTH 115
2317
- # define SSL_R_BAD_PROTOCOL_VERSION_NUMBER 116
2318
- # define SSL_R_BAD_RSA_ENCRYPT 119
2319
- # define SSL_R_BAD_SIGNATURE 123
2320
- # define SSL_R_BAD_SRP_A_LENGTH 347
2321
- # define SSL_R_BAD_SRP_PARAMETERS 371
2322
- # define SSL_R_BAD_SRTP_MKI_VALUE 352
2323
- # define SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST 353
2324
- # define SSL_R_BAD_SSL_FILETYPE 124
2325
- # define SSL_R_BAD_VALUE 384
2326
- # define SSL_R_BAD_WRITE_RETRY 127
2327
- # define SSL_R_BIO_NOT_SET 128
2328
- # define SSL_R_BLOCK_CIPHER_PAD_IS_WRONG 129
2329
- # define SSL_R_BN_LIB 130
2330
- # define SSL_R_CA_DN_LENGTH_MISMATCH 131
2331
- # define SSL_R_CA_KEY_TOO_SMALL 397
2332
- # define SSL_R_CA_MD_TOO_WEAK 398
2333
- # define SSL_R_CCS_RECEIVED_EARLY 133
2334
- # define SSL_R_CERTIFICATE_VERIFY_FAILED 134
2335
- # define SSL_R_CERT_CB_ERROR 377
2336
- # define SSL_R_CERT_LENGTH_MISMATCH 135
2337
- # define SSL_R_CIPHER_CODE_WRONG_LENGTH 137
2338
- # define SSL_R_CIPHER_OR_HASH_UNAVAILABLE 138
2339
- # define SSL_R_CLIENTHELLO_TLSEXT 226
2340
- # define SSL_R_COMPRESSED_LENGTH_TOO_LONG 140
2341
- # define SSL_R_COMPRESSION_DISABLED 343
2342
- # define SSL_R_COMPRESSION_FAILURE 141
2343
- # define SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE 307
2344
- # define SSL_R_COMPRESSION_LIBRARY_ERROR 142
2345
- # define SSL_R_CONNECTION_TYPE_NOT_SET 144
2346
- # define SSL_R_CONTEXT_NOT_DANE_ENABLED 167
2347
- # define SSL_R_COOKIE_GEN_CALLBACK_FAILURE 400
2348
- # define SSL_R_COOKIE_MISMATCH 308
2349
- # define SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED 206
2350
- # define SSL_R_DANE_ALREADY_ENABLED 172
2351
- # define SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL 173
2352
- # define SSL_R_DANE_NOT_ENABLED 175
2353
- # define SSL_R_DANE_TLSA_BAD_CERTIFICATE 180
2354
- # define SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE 184
2355
- # define SSL_R_DANE_TLSA_BAD_DATA_LENGTH 189
2356
- # define SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH 192
2357
- # define SSL_R_DANE_TLSA_BAD_MATCHING_TYPE 200
2358
- # define SSL_R_DANE_TLSA_BAD_PUBLIC_KEY 201
2359
- # define SSL_R_DANE_TLSA_BAD_SELECTOR 202
2360
- # define SSL_R_DANE_TLSA_NULL_DATA 203
2361
- # define SSL_R_DATA_BETWEEN_CCS_AND_FINISHED 145
2362
- # define SSL_R_DATA_LENGTH_TOO_LONG 146
2363
- # define SSL_R_DECRYPTION_FAILED 147
2364
- # define SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC 281
2365
- # define SSL_R_DH_KEY_TOO_SMALL 394
2366
- # define SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG 148
2367
- # define SSL_R_DIGEST_CHECK_FAILED 149
2368
- # define SSL_R_DTLS_MESSAGE_TOO_BIG 334
2369
- # define SSL_R_DUPLICATE_COMPRESSION_ID 309
2370
- # define SSL_R_ECC_CERT_NOT_FOR_SIGNING 318
2371
- # define SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE 374
2372
- # define SSL_R_EE_KEY_TOO_SMALL 399
2373
- # define SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST 354
2374
- # define SSL_R_ENCRYPTED_LENGTH_TOO_LONG 150
2375
- # define SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST 151
2376
- # define SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN 204
2377
- # define SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE 194
2378
- # define SSL_R_EXCESSIVE_MESSAGE_SIZE 152
2379
- # define SSL_R_EXTRA_DATA_IN_MESSAGE 153
2380
- # define SSL_R_FAILED_TO_INIT_ASYNC 405
2381
- # define SSL_R_FRAGMENTED_CLIENT_HELLO 401
2382
- # define SSL_R_GOT_A_FIN_BEFORE_A_CCS 154
2383
- # define SSL_R_HTTPS_PROXY_REQUEST 155
2384
- # define SSL_R_HTTP_REQUEST 156
2385
- # define SSL_R_ILLEGAL_SUITEB_DIGEST 380
2386
- # define SSL_R_INAPPROPRIATE_FALLBACK 373
2387
- # define SSL_R_INCONSISTENT_COMPRESSION 340
2388
- # define SSL_R_INCONSISTENT_EXTMS 104
2389
- # define SSL_R_INVALID_COMMAND 280
2390
- # define SSL_R_INVALID_COMPRESSION_ALGORITHM 341
2391
- # define SSL_R_INVALID_CONFIGURATION_NAME 113
2392
- # define SSL_R_INVALID_CT_VALIDATION_TYPE 212
2393
- # define SSL_R_INVALID_NULL_CMD_NAME 385
2394
- # define SSL_R_INVALID_SEQUENCE_NUMBER 402
2395
- # define SSL_R_INVALID_SERVERINFO_DATA 388
2396
- # define SSL_R_INVALID_SRP_USERNAME 357
2397
- # define SSL_R_INVALID_STATUS_RESPONSE 328
2398
- # define SSL_R_INVALID_TICKET_KEYS_LENGTH 325
2399
- # define SSL_R_LENGTH_MISMATCH 159
2400
- # define SSL_R_LENGTH_TOO_LONG 404
2401
- # define SSL_R_LENGTH_TOO_SHORT 160
2402
- # define SSL_R_LIBRARY_BUG 274
2403
- # define SSL_R_LIBRARY_HAS_NO_CIPHERS 161
2404
- # define SSL_R_MISSING_DSA_SIGNING_CERT 165
2405
- # define SSL_R_MISSING_ECDSA_SIGNING_CERT 381
2406
- # define SSL_R_MISSING_RSA_CERTIFICATE 168
2407
- # define SSL_R_MISSING_RSA_ENCRYPTING_CERT 169
2408
- # define SSL_R_MISSING_RSA_SIGNING_CERT 170
2409
- # define SSL_R_MISSING_SRP_PARAM 358
2410
- # define SSL_R_MISSING_TMP_DH_KEY 171
2411
- # define SSL_R_MISSING_TMP_ECDH_KEY 311
2412
- # define SSL_R_NO_CERTIFICATES_RETURNED 176
2413
- # define SSL_R_NO_CERTIFICATE_ASSIGNED 177
2414
- # define SSL_R_NO_CERTIFICATE_SET 179
2415
- # define SSL_R_NO_CIPHERS_AVAILABLE 181
2416
- # define SSL_R_NO_CIPHERS_SPECIFIED 183
2417
- # define SSL_R_NO_CIPHER_MATCH 185
2418
- # define SSL_R_NO_CLIENT_CERT_METHOD 331
2419
- # define SSL_R_NO_COMPRESSION_SPECIFIED 187
2420
- # define SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER 330
2421
- # define SSL_R_NO_METHOD_SPECIFIED 188
2422
- # define SSL_R_NO_PEM_EXTENSIONS 389
2423
- # define SSL_R_NO_PRIVATE_KEY_ASSIGNED 190
2424
- # define SSL_R_NO_PROTOCOLS_AVAILABLE 191
2425
- # define SSL_R_NO_RENEGOTIATION 339
2426
- # define SSL_R_NO_REQUIRED_DIGEST 324
2427
- # define SSL_R_NO_SHARED_CIPHER 193
2428
- # define SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS 376
2429
- # define SSL_R_NO_SRTP_PROFILES 359
2430
- # define SSL_R_NO_VALID_SCTS 216
2431
- # define SSL_R_NO_VERIFY_COOKIE_CALLBACK 403
2432
- # define SSL_R_NULL_SSL_CTX 195
2433
- # define SSL_R_NULL_SSL_METHOD_PASSED 196
2434
- # define SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED 197
2435
- # define SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED 344
2436
- # define SSL_R_PACKET_LENGTH_TOO_LONG 198
2437
- # define SSL_R_PARSE_TLSEXT 227
2438
- # define SSL_R_PATH_TOO_LONG 270
2439
- # define SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE 199
2440
- # define SSL_R_PEM_NAME_BAD_PREFIX 391
2441
- # define SSL_R_PEM_NAME_TOO_SHORT 392
2442
- # define SSL_R_PIPELINE_FAILURE 406
2443
- # define SSL_R_PROTOCOL_IS_SHUTDOWN 207
2444
- # define SSL_R_PSK_IDENTITY_NOT_FOUND 223
2445
- # define SSL_R_PSK_NO_CLIENT_CB 224
2446
- # define SSL_R_PSK_NO_SERVER_CB 225
2447
- # define SSL_R_READ_BIO_NOT_SET 211
2448
- # define SSL_R_READ_TIMEOUT_EXPIRED 312
2449
- # define SSL_R_RECORD_LENGTH_MISMATCH 213
2450
- # define SSL_R_RECORD_TOO_SMALL 298
2451
- # define SSL_R_RENEGOTIATE_EXT_TOO_LONG 335
2452
- # define SSL_R_RENEGOTIATION_ENCODING_ERR 336
2453
- # define SSL_R_RENEGOTIATION_MISMATCH 337
2454
- # define SSL_R_REQUIRED_CIPHER_MISSING 215
2455
- # define SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING 342
2456
- # define SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING 345
2457
- # define SSL_R_SCT_VERIFICATION_FAILED 208
2458
- # define SSL_R_SERVERHELLO_TLSEXT 275
2459
- # define SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED 277
2460
- # define SSL_R_SHUTDOWN_WHILE_IN_INIT 407
2461
- # define SSL_R_SIGNATURE_ALGORITHMS_ERROR 360
2462
- # define SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE 220
2463
- # define SSL_R_SRP_A_CALC 361
2464
- # define SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES 362
2465
- # define SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG 363
2466
- # define SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE 364
2467
- # define SSL_R_SSL3_EXT_INVALID_SERVERNAME 319
2468
- # define SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE 320
2469
- # define SSL_R_SSL3_SESSION_ID_TOO_LONG 300
2470
- # define SSL_R_SSLV3_ALERT_BAD_CERTIFICATE 1042
2471
- # define SSL_R_SSLV3_ALERT_BAD_RECORD_MAC 1020
2472
- # define SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED 1045
2473
- # define SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED 1044
2474
- # define SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN 1046
2475
- # define SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE 1030
2476
- # define SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE 1040
2477
- # define SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER 1047
2478
- # define SSL_R_SSLV3_ALERT_NO_CERTIFICATE 1041
2479
- # define SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE 1010
2480
- # define SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE 1043
2481
- # define SSL_R_SSL_COMMAND_SECTION_EMPTY 117
2482
- # define SSL_R_SSL_COMMAND_SECTION_NOT_FOUND 125
2483
- # define SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION 228
2484
- # define SSL_R_SSL_HANDSHAKE_FAILURE 229
2485
- # define SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS 230
2486
- # define SSL_R_SSL_NEGATIVE_LENGTH 372
2487
- # define SSL_R_SSL_SECTION_EMPTY 126
2488
- # define SSL_R_SSL_SECTION_NOT_FOUND 136
2489
- # define SSL_R_SSL_SESSION_ID_CALLBACK_FAILED 301
2490
- # define SSL_R_SSL_SESSION_ID_CONFLICT 302
2491
- # define SSL_R_SSL_SESSION_ID_TOO_LONG 408
2492
- # define SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG 273
2493
- # define SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH 303
2494
- # define SSL_R_SSL_SESSION_VERSION_MISMATCH 210
2495
- # define SSL_R_TLSV1_ALERT_ACCESS_DENIED 1049
2496
- # define SSL_R_TLSV1_ALERT_DECODE_ERROR 1050
2497
- # define SSL_R_TLSV1_ALERT_DECRYPTION_FAILED 1021
2498
- # define SSL_R_TLSV1_ALERT_DECRYPT_ERROR 1051
2499
- # define SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION 1060
2500
- # define SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK 1086
2501
- # define SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY 1071
2502
- # define SSL_R_TLSV1_ALERT_INTERNAL_ERROR 1080
2503
- # define SSL_R_TLSV1_ALERT_NO_RENEGOTIATION 1100
2504
- # define SSL_R_TLSV1_ALERT_PROTOCOL_VERSION 1070
2505
- # define SSL_R_TLSV1_ALERT_RECORD_OVERFLOW 1022
2506
- # define SSL_R_TLSV1_ALERT_UNKNOWN_CA 1048
2507
- # define SSL_R_TLSV1_ALERT_USER_CANCELLED 1090
2508
- # define SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE 1114
2509
- # define SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE 1113
2510
- # define SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE 1111
2511
- # define SSL_R_TLSV1_UNRECOGNIZED_NAME 1112
2512
- # define SSL_R_TLSV1_UNSUPPORTED_EXTENSION 1110
2513
- # define SSL_R_TLS_HEARTBEAT_PEER_DOESNT_ACCEPT 365
2514
- # define SSL_R_TLS_HEARTBEAT_PENDING 366
2515
- # define SSL_R_TLS_ILLEGAL_EXPORTER_LABEL 367
2516
- # define SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST 157
2517
- # define SSL_R_TOO_MANY_WARN_ALERTS 409
2518
- # define SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS 314
2519
- # define SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS 239
2520
- # define SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES 242
2521
- # define SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES 243
2522
- # define SSL_R_UNEXPECTED_MESSAGE 244
2523
- # define SSL_R_UNEXPECTED_RECORD 245
2524
- # define SSL_R_UNINITIALIZED 276
2525
- # define SSL_R_UNKNOWN_ALERT_TYPE 246
2526
- # define SSL_R_UNKNOWN_CERTIFICATE_TYPE 247
2527
- # define SSL_R_UNKNOWN_CIPHER_RETURNED 248
2528
- # define SSL_R_UNKNOWN_CIPHER_TYPE 249
2529
- # define SSL_R_UNKNOWN_CMD_NAME 386
2530
- # define SSL_R_UNKNOWN_COMMAND 139
2531
- # define SSL_R_UNKNOWN_DIGEST 368
2532
- # define SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE 250
2533
- # define SSL_R_UNKNOWN_PKEY_TYPE 251
2534
- # define SSL_R_UNKNOWN_PROTOCOL 252
2535
- # define SSL_R_UNKNOWN_SSL_VERSION 254
2536
- # define SSL_R_UNKNOWN_STATE 255
2537
- # define SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED 338
2538
- # define SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM 257
2539
- # define SSL_R_UNSUPPORTED_ELLIPTIC_CURVE 315
2540
- # define SSL_R_UNSUPPORTED_PROTOCOL 258
2541
- # define SSL_R_UNSUPPORTED_SSL_VERSION 259
2542
- # define SSL_R_UNSUPPORTED_STATUS_TYPE 329
2543
- # define SSL_R_USE_SRTP_NOT_NEGOTIATED 369
2544
- # define SSL_R_VERSION_TOO_HIGH 166
2545
- # define SSL_R_VERSION_TOO_LOW 396
2546
- # define SSL_R_WRONG_CERTIFICATE_TYPE 383
2547
- # define SSL_R_WRONG_CIPHER_RETURNED 261
2548
- # define SSL_R_WRONG_CURVE 378
2549
- # define SSL_R_WRONG_SIGNATURE_LENGTH 264
2550
- # define SSL_R_WRONG_SIGNATURE_SIZE 265
2551
- # define SSL_R_WRONG_SIGNATURE_TYPE 370
2552
- # define SSL_R_WRONG_SSL_VERSION 266
2553
- # define SSL_R_WRONG_VERSION_NUMBER 267
2554
- # define SSL_R_X509_LIB 268
2555
- # define SSL_R_X509_VERIFICATION_SETUP_PROBLEMS 269
2427
+ typedef int (*SSL_allow_early_data_cb_fn)(SSL *s, void *arg);
2428
+ void SSL_CTX_set_allow_early_data_cb(SSL_CTX *ctx,
2429
+ SSL_allow_early_data_cb_fn cb,
2430
+ void *arg);
2431
+ void SSL_set_allow_early_data_cb(SSL *s,
2432
+ SSL_allow_early_data_cb_fn cb,
2433
+ void *arg);
2556
2434
 
2557
2435
  # ifdef __cplusplus
2558
2436
  }