rho-tau-extensions 5.5.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (661) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +2 -0
  3. data/LICENSE +21 -0
  4. data/README.md +6 -0
  5. data/Rakefile +90 -0
  6. data/libs/crosswalk.rb +2 -0
  7. data/libs/crosswalk/crosswalk.rb +2 -0
  8. data/libs/crosswalk/ext.yml +21 -0
  9. data/libs/crosswalk/ext/Crosswalk.xml +27 -0
  10. data/libs/crosswalk/ext/build +19 -0
  11. data/libs/crosswalk/ext/build.bat +29 -0
  12. data/libs/crosswalk/ext/platform/android/AndroidManifest.xml +9 -0
  13. data/libs/crosswalk/ext/platform/android/Rakefile +141 -0
  14. data/libs/crosswalk/ext/platform/android/adds/lib/armeabi/libxwalkcore.so +0 -0
  15. data/libs/crosswalk/ext/platform/android/adds/lib/armeabi/libxwalkdummy.so +0 -0
  16. data/libs/crosswalk/ext/platform/android/adds/lib/x86/libxwalkcore.so +0 -0
  17. data/libs/crosswalk/ext/platform/android/adds/lib/x86/libxwalkdummy.so +0 -0
  18. data/libs/crosswalk/ext/platform/android/adds/lib/xwalk_core_library_java.jar +0 -0
  19. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/bubble.9.png +0 -0
  20. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/bubble_arrow_up.png +0 -0
  21. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/color_picker_advanced_select_handle.png +0 -0
  22. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/crosswalk.png +0 -0
  23. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/dropdown_popup_background_down.9.png +0 -0
  24. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/dropdown_popup_background_up.9.png +0 -0
  25. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/ic_menu_share_holo_light.png +0 -0
  26. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/ic_search.png +0 -0
  27. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/ic_warning.png +0 -0
  28. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/ondemand_overlay.9.png +0 -0
  29. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/verify_checkmark.png +0 -0
  30. data/libs/crosswalk/ext/platform/android/adds/res/drawable-ldpi/crosswalk.png +0 -0
  31. data/libs/crosswalk/ext/platform/android/adds/res/drawable-mdpi/crosswalk.png +0 -0
  32. data/libs/crosswalk/ext/platform/android/adds/res/drawable-v21/button_borderless_compat.xml +10 -0
  33. data/libs/crosswalk/ext/platform/android/adds/res/drawable-v21/button_compat.xml +9 -0
  34. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/bubble.9.png +0 -0
  35. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/bubble_arrow_up.png +0 -0
  36. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/color_picker_advanced_select_handle.png +0 -0
  37. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/crosswalk.png +0 -0
  38. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/dropdown_popup_background_down.9.png +0 -0
  39. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/dropdown_popup_background_up.9.png +0 -0
  40. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/ic_menu_share_holo_light.png +0 -0
  41. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/ic_search.png +0 -0
  42. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/ic_warning.png +0 -0
  43. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/ondemand_overlay.9.png +0 -0
  44. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/verify_checkmark.png +0 -0
  45. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xxhdpi/ic_menu_share_holo_light.png +0 -0
  46. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xxhdpi/ic_search.png +0 -0
  47. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xxhdpi/ic_warning.png +0 -0
  48. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xxhdpi/verify_checkmark.png +0 -0
  49. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xxxhdpi/ic_menu_share_holo_light.png +0 -0
  50. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xxxhdpi/ic_search.png +0 -0
  51. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xxxhdpi/ic_warning.png +0 -0
  52. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xxxhdpi/verify_checkmark.png +0 -0
  53. data/libs/crosswalk/ext/platform/android/adds/res/drawable/autofill_chip_inset.xml +15 -0
  54. data/libs/crosswalk/ext/platform/android/adds/res/drawable/bubble.9.png +0 -0
  55. data/libs/crosswalk/ext/platform/android/adds/res/drawable/bubble_arrow_up.png +0 -0
  56. data/libs/crosswalk/ext/platform/android/adds/res/drawable/button_compat_shape.xml +9 -0
  57. data/libs/crosswalk/ext/platform/android/adds/res/drawable/color_button_background.xml +36 -0
  58. data/libs/crosswalk/ext/platform/android/adds/res/drawable/color_picker_advanced_select_handle.png +0 -0
  59. data/libs/crosswalk/ext/platform/android/adds/res/drawable/color_picker_border.xml +12 -0
  60. data/libs/crosswalk/ext/platform/android/adds/res/drawable/dropdown_label_color.xml +11 -0
  61. data/libs/crosswalk/ext/platform/android/adds/res/drawable/dropdown_popup_background.xml +13 -0
  62. data/libs/crosswalk/ext/platform/android/adds/res/drawable/dropdown_popup_background_down.9.png +0 -0
  63. data/libs/crosswalk/ext/platform/android/adds/res/drawable/dropdown_popup_background_up.9.png +0 -0
  64. data/libs/crosswalk/ext/platform/android/adds/res/drawable/ic_menu_share_holo_light.png +0 -0
  65. data/libs/crosswalk/ext/platform/android/adds/res/drawable/ic_search.png +0 -0
  66. data/libs/crosswalk/ext/platform/android/adds/res/drawable/ic_warning.png +0 -0
  67. data/libs/crosswalk/ext/platform/android/adds/res/drawable/launchscreen_bg.xml +19 -0
  68. data/libs/crosswalk/ext/platform/android/adds/res/drawable/ondemand_overlay.9.png +0 -0
  69. data/libs/crosswalk/ext/platform/android/adds/res/drawable/verify_checkmark.png +0 -0
  70. data/libs/crosswalk/ext/platform/android/adds/res/layout-land/date_time_picker_dialog.xml +42 -0
  71. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/autofill_keyboard_accessory_item.xml +40 -0
  72. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/autofill_suggestion_item.xml +18 -0
  73. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/color_picker_advanced_component.xml +46 -0
  74. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/color_picker_dialog_content.xml +51 -0
  75. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/color_picker_dialog_title.xml +41 -0
  76. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/date_time_suggestion.xml +35 -0
  77. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/dropdown_item.xml +58 -0
  78. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/multi_field_time_picker_dialog.xml +122 -0
  79. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/two_field_date_picker.xml +38 -0
  80. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/validation_message_bubble.xml +72 -0
  81. data/libs/crosswalk/ext/platform/android/adds/res/layout/autofill_keyboard_accessory_icon.xml +13 -0
  82. data/libs/crosswalk/ext/platform/android/adds/res/layout/autofill_keyboard_accessory_item.xml +17 -0
  83. data/libs/crosswalk/ext/platform/android/adds/res/layout/autofill_suggestion_item.xml +7 -0
  84. data/libs/crosswalk/ext/platform/android/adds/res/layout/color_picker_advanced_component.xml +30 -0
  85. data/libs/crosswalk/ext/platform/android/adds/res/layout/color_picker_dialog_content.xml +36 -0
  86. data/libs/crosswalk/ext/platform/android/adds/res/layout/color_picker_dialog_title.xml +25 -0
  87. data/libs/crosswalk/ext/platform/android/adds/res/layout/date_time_picker_dialog.xml +42 -0
  88. data/libs/crosswalk/ext/platform/android/adds/res/layout/date_time_suggestion.xml +16 -0
  89. data/libs/crosswalk/ext/platform/android/adds/res/layout/dropdown_item.xml +34 -0
  90. data/libs/crosswalk/ext/platform/android/adds/res/layout/multi_field_time_picker_dialog.xml +50 -0
  91. data/libs/crosswalk/ext/platform/android/adds/res/layout/two_field_date_picker.xml +26 -0
  92. data/libs/crosswalk/ext/platform/android/adds/res/layout/validation_message_bubble.xml +47 -0
  93. data/libs/crosswalk/ext/platform/android/adds/res/menu/select_action_menu.xml +54 -0
  94. data/libs/crosswalk/ext/platform/android/adds/res/raw/contacts_api.js +206 -0
  95. data/libs/crosswalk/ext/platform/android/adds/res/raw/device_capabilities_api.js +231 -0
  96. data/libs/crosswalk/ext/platform/android/adds/res/raw/empty.wav +0 -0
  97. data/libs/crosswalk/ext/platform/android/adds/res/raw/icudtl.dat +0 -0
  98. data/libs/crosswalk/ext/platform/android/adds/res/raw/launch_screen_api.js +9 -0
  99. data/libs/crosswalk/ext/platform/android/adds/res/raw/messaging_api.js +359 -0
  100. data/libs/crosswalk/ext/platform/android/adds/res/raw/presentation_api.js +144 -0
  101. data/libs/crosswalk/ext/platform/android/adds/res/raw/wifidirect_api.js +227 -0
  102. data/libs/crosswalk/ext/platform/android/adds/res/raw/xwalk.pak +0 -0
  103. data/libs/crosswalk/ext/platform/android/adds/res/values-am/android_content_strings.xml +15 -0
  104. data/libs/crosswalk/ext/platform/android/adds/res/values-am/android_ui_strings.xml +47 -0
  105. data/libs/crosswalk/ext/platform/android/adds/res/values-ar/android_content_strings.xml +15 -0
  106. data/libs/crosswalk/ext/platform/android/adds/res/values-ar/android_ui_strings.xml +47 -0
  107. data/libs/crosswalk/ext/platform/android/adds/res/values-bg/android_content_strings.xml +15 -0
  108. data/libs/crosswalk/ext/platform/android/adds/res/values-bg/android_ui_strings.xml +47 -0
  109. data/libs/crosswalk/ext/platform/android/adds/res/values-ca/android_content_strings.xml +15 -0
  110. data/libs/crosswalk/ext/platform/android/adds/res/values-ca/android_ui_strings.xml +47 -0
  111. data/libs/crosswalk/ext/platform/android/adds/res/values-cs/android_content_strings.xml +15 -0
  112. data/libs/crosswalk/ext/platform/android/adds/res/values-cs/android_ui_strings.xml +47 -0
  113. data/libs/crosswalk/ext/platform/android/adds/res/values-da/android_content_strings.xml +15 -0
  114. data/libs/crosswalk/ext/platform/android/adds/res/values-da/android_ui_strings.xml +47 -0
  115. data/libs/crosswalk/ext/platform/android/adds/res/values-de/android_content_strings.xml +15 -0
  116. data/libs/crosswalk/ext/platform/android/adds/res/values-de/android_ui_strings.xml +47 -0
  117. data/libs/crosswalk/ext/platform/android/adds/res/values-el/android_content_strings.xml +15 -0
  118. data/libs/crosswalk/ext/platform/android/adds/res/values-el/android_ui_strings.xml +47 -0
  119. data/libs/crosswalk/ext/platform/android/adds/res/values-en-rGB/android_content_strings.xml +15 -0
  120. data/libs/crosswalk/ext/platform/android/adds/res/values-en-rGB/android_ui_strings.xml +47 -0
  121. data/libs/crosswalk/ext/platform/android/adds/res/values-es-rUS/android_content_strings.xml +15 -0
  122. data/libs/crosswalk/ext/platform/android/adds/res/values-es-rUS/android_ui_strings.xml +47 -0
  123. data/libs/crosswalk/ext/platform/android/adds/res/values-es/android_content_strings.xml +15 -0
  124. data/libs/crosswalk/ext/platform/android/adds/res/values-es/android_ui_strings.xml +47 -0
  125. data/libs/crosswalk/ext/platform/android/adds/res/values-fa/android_content_strings.xml +15 -0
  126. data/libs/crosswalk/ext/platform/android/adds/res/values-fa/android_ui_strings.xml +47 -0
  127. data/libs/crosswalk/ext/platform/android/adds/res/values-fi/android_content_strings.xml +15 -0
  128. data/libs/crosswalk/ext/platform/android/adds/res/values-fi/android_ui_strings.xml +47 -0
  129. data/libs/crosswalk/ext/platform/android/adds/res/values-fr/android_content_strings.xml +15 -0
  130. data/libs/crosswalk/ext/platform/android/adds/res/values-fr/android_ui_strings.xml +47 -0
  131. data/libs/crosswalk/ext/platform/android/adds/res/values-hi/android_content_strings.xml +15 -0
  132. data/libs/crosswalk/ext/platform/android/adds/res/values-hi/android_ui_strings.xml +47 -0
  133. data/libs/crosswalk/ext/platform/android/adds/res/values-hr/android_content_strings.xml +15 -0
  134. data/libs/crosswalk/ext/platform/android/adds/res/values-hr/android_ui_strings.xml +47 -0
  135. data/libs/crosswalk/ext/platform/android/adds/res/values-hu/android_content_strings.xml +15 -0
  136. data/libs/crosswalk/ext/platform/android/adds/res/values-hu/android_ui_strings.xml +47 -0
  137. data/libs/crosswalk/ext/platform/android/adds/res/values-in/android_content_strings.xml +15 -0
  138. data/libs/crosswalk/ext/platform/android/adds/res/values-in/android_ui_strings.xml +47 -0
  139. data/libs/crosswalk/ext/platform/android/adds/res/values-it/android_content_strings.xml +15 -0
  140. data/libs/crosswalk/ext/platform/android/adds/res/values-it/android_ui_strings.xml +47 -0
  141. data/libs/crosswalk/ext/platform/android/adds/res/values-iw/android_content_strings.xml +15 -0
  142. data/libs/crosswalk/ext/platform/android/adds/res/values-iw/android_ui_strings.xml +47 -0
  143. data/libs/crosswalk/ext/platform/android/adds/res/values-ja/android_content_strings.xml +15 -0
  144. data/libs/crosswalk/ext/platform/android/adds/res/values-ja/android_ui_strings.xml +47 -0
  145. data/libs/crosswalk/ext/platform/android/adds/res/values-ko/android_content_strings.xml +15 -0
  146. data/libs/crosswalk/ext/platform/android/adds/res/values-ko/android_ui_strings.xml +47 -0
  147. data/libs/crosswalk/ext/platform/android/adds/res/values-lt/android_content_strings.xml +15 -0
  148. data/libs/crosswalk/ext/platform/android/adds/res/values-lt/android_ui_strings.xml +47 -0
  149. data/libs/crosswalk/ext/platform/android/adds/res/values-lv/android_content_strings.xml +15 -0
  150. data/libs/crosswalk/ext/platform/android/adds/res/values-lv/android_ui_strings.xml +47 -0
  151. data/libs/crosswalk/ext/platform/android/adds/res/values-nb/android_content_strings.xml +15 -0
  152. data/libs/crosswalk/ext/platform/android/adds/res/values-nb/android_ui_strings.xml +47 -0
  153. data/libs/crosswalk/ext/platform/android/adds/res/values-nl/android_content_strings.xml +15 -0
  154. data/libs/crosswalk/ext/platform/android/adds/res/values-nl/android_ui_strings.xml +47 -0
  155. data/libs/crosswalk/ext/platform/android/adds/res/values-pl/android_content_strings.xml +15 -0
  156. data/libs/crosswalk/ext/platform/android/adds/res/values-pl/android_ui_strings.xml +47 -0
  157. data/libs/crosswalk/ext/platform/android/adds/res/values-pt-rBR/android_content_strings.xml +15 -0
  158. data/libs/crosswalk/ext/platform/android/adds/res/values-pt-rBR/android_ui_strings.xml +47 -0
  159. data/libs/crosswalk/ext/platform/android/adds/res/values-pt-rPT/android_content_strings.xml +15 -0
  160. data/libs/crosswalk/ext/platform/android/adds/res/values-pt-rPT/android_ui_strings.xml +47 -0
  161. data/libs/crosswalk/ext/platform/android/adds/res/values-ro/android_content_strings.xml +15 -0
  162. data/libs/crosswalk/ext/platform/android/adds/res/values-ro/android_ui_strings.xml +47 -0
  163. data/libs/crosswalk/ext/platform/android/adds/res/values-ru/android_content_strings.xml +15 -0
  164. data/libs/crosswalk/ext/platform/android/adds/res/values-ru/android_ui_strings.xml +47 -0
  165. data/libs/crosswalk/ext/platform/android/adds/res/values-sk/android_content_strings.xml +15 -0
  166. data/libs/crosswalk/ext/platform/android/adds/res/values-sk/android_ui_strings.xml +47 -0
  167. data/libs/crosswalk/ext/platform/android/adds/res/values-sl/android_content_strings.xml +15 -0
  168. data/libs/crosswalk/ext/platform/android/adds/res/values-sl/android_ui_strings.xml +47 -0
  169. data/libs/crosswalk/ext/platform/android/adds/res/values-sr/android_content_strings.xml +15 -0
  170. data/libs/crosswalk/ext/platform/android/adds/res/values-sr/android_ui_strings.xml +47 -0
  171. data/libs/crosswalk/ext/platform/android/adds/res/values-sv/android_content_strings.xml +15 -0
  172. data/libs/crosswalk/ext/platform/android/adds/res/values-sv/android_ui_strings.xml +47 -0
  173. data/libs/crosswalk/ext/platform/android/adds/res/values-sw/android_content_strings.xml +15 -0
  174. data/libs/crosswalk/ext/platform/android/adds/res/values-sw/android_ui_strings.xml +47 -0
  175. data/libs/crosswalk/ext/platform/android/adds/res/values-th/android_content_strings.xml +15 -0
  176. data/libs/crosswalk/ext/platform/android/adds/res/values-th/android_ui_strings.xml +47 -0
  177. data/libs/crosswalk/ext/platform/android/adds/res/values-tl/android_content_strings.xml +15 -0
  178. data/libs/crosswalk/ext/platform/android/adds/res/values-tl/android_ui_strings.xml +47 -0
  179. data/libs/crosswalk/ext/platform/android/adds/res/values-tr/android_content_strings.xml +15 -0
  180. data/libs/crosswalk/ext/platform/android/adds/res/values-tr/android_ui_strings.xml +47 -0
  181. data/libs/crosswalk/ext/platform/android/adds/res/values-uk/android_content_strings.xml +15 -0
  182. data/libs/crosswalk/ext/platform/android/adds/res/values-uk/android_ui_strings.xml +47 -0
  183. data/libs/crosswalk/ext/platform/android/adds/res/values-v14/theme.xml +16 -0
  184. data/libs/crosswalk/ext/platform/android/adds/res/values-v17/styles.xml +19 -0
  185. data/libs/crosswalk/ext/platform/android/adds/res/values-v17/ui_java_styles.xml +41 -0
  186. data/libs/crosswalk/ext/platform/android/adds/res/values-v21/styles.xml +14 -0
  187. data/libs/crosswalk/ext/platform/android/adds/res/values-v21/ui_java_styles.xml +14 -0
  188. data/libs/crosswalk/ext/platform/android/adds/res/values-vi/android_content_strings.xml +15 -0
  189. data/libs/crosswalk/ext/platform/android/adds/res/values-vi/android_ui_strings.xml +47 -0
  190. data/libs/crosswalk/ext/platform/android/adds/res/values-zh-rCN/android_content_strings.xml +15 -0
  191. data/libs/crosswalk/ext/platform/android/adds/res/values-zh-rCN/android_ui_strings.xml +47 -0
  192. data/libs/crosswalk/ext/platform/android/adds/res/values-zh-rTW/android_content_strings.xml +15 -0
  193. data/libs/crosswalk/ext/platform/android/adds/res/values-zh-rTW/android_ui_strings.xml +47 -0
  194. data/libs/crosswalk/ext/platform/android/adds/res/values/android_content_strings.xml +15 -0
  195. data/libs/crosswalk/ext/platform/android/adds/res/values/android_ui_strings.xml +47 -0
  196. data/libs/crosswalk/ext/platform/android/adds/res/values/android_xwalk_strings.xml +17 -0
  197. data/libs/crosswalk/ext/platform/android/adds/res/values/ui_java_attrs.xml +9 -0
  198. data/libs/crosswalk/ext/platform/android/adds/res/values/ui_java_dimens.xml +31 -0
  199. data/libs/crosswalk/ext/platform/android/adds/res/values/ui_java_strings.xml +16 -0
  200. data/libs/crosswalk/ext/platform/android/adds/res/values/ui_java_styles.xml +101 -0
  201. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_app_strings.xml +28 -0
  202. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_attrs.xml +11 -0
  203. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_colors.xml +13 -0
  204. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_core_internal_java_strings.xml +16 -0
  205. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_core_java_strings.xml +16 -0
  206. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_dimens.xml +11 -0
  207. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_resources_list.xml +7 -0
  208. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_styles.xml +40 -0
  209. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_values.xml +10 -0
  210. data/libs/crosswalk/ext/platform/android/ext_java.files +14 -0
  211. data/libs/crosswalk/ext/platform/android/ext_native.files +7 -0
  212. data/libs/crosswalk/ext/platform/android/jni/Crosswalk_impl.cpp +61 -0
  213. data/libs/crosswalk/ext/platform/android/src/com/rho/crosswalk/Crosswalk.java +14 -0
  214. data/libs/crosswalk/ext/platform/android/src/com/rho/crosswalk/CrosswalkFactory.java +18 -0
  215. data/libs/crosswalk/ext/platform/android/src/com/rho/crosswalk/CrosswalkSingleton.java +24 -0
  216. data/libs/crosswalk/ext/platform/android/src/com/tautechnologies/tau/crosswalk/CrosswalkExtension.java +16 -0
  217. data/libs/crosswalk/ext/platform/android/src/com/tautechnologies/tau/crosswalk/RhodesListener.java +18 -0
  218. data/libs/crosswalk/ext/platform/android/src/com/tautechnologies/tau/crosswalk/TauXWResourceClient.java +182 -0
  219. data/libs/crosswalk/ext/platform/android/src/com/tautechnologies/tau/crosswalk/TauXWUIClient.java +125 -0
  220. data/libs/crosswalk/ext/platform/android/src/com/tautechnologies/tau/crosswalk/TauXWalkWebView.java +368 -0
  221. data/libs/crosswalk/ext/platform/iphone/Crosswalk.xcodeproj/project.pbxproj +368 -0
  222. data/libs/crosswalk/ext/platform/iphone/Crosswalk_Prefix.pch +7 -0
  223. data/libs/crosswalk/ext/platform/iphone/Rakefile +73 -0
  224. data/libs/crosswalk/ext/platform/iphone/impl/Crosswalk.h +14 -0
  225. data/libs/crosswalk/ext/platform/iphone/impl/Crosswalk.m +24 -0
  226. data/libs/crosswalk/ext/platform/iphone/impl/CrosswalkFactorySingleton.m +16 -0
  227. data/libs/crosswalk/ext/platform/iphone/impl/CrosswalkSetup.m +9 -0
  228. data/libs/crosswalk/ext/platform/iphone/impl/CrosswalkSingleton.h +17 -0
  229. data/libs/crosswalk/ext/platform/iphone/impl/CrosswalkSingleton.m +23 -0
  230. data/libs/crosswalk/ext/platform/iphone/impl/readme.txt +7 -0
  231. data/libs/crosswalk/ext/platform/qt/Crosswalk.pro +66 -0
  232. data/libs/crosswalk/ext/platform/qt/Rakefile +35 -0
  233. data/libs/crosswalk/ext/platform/qt/src/Crosswalk_impl.cpp +77 -0
  234. data/libs/crosswalk/ext/platform/wm/Crosswalk.sln +52 -0
  235. data/libs/crosswalk/ext/platform/wm/Crosswalk.vcproj +714 -0
  236. data/libs/crosswalk/ext/platform/wm/Crosswalk.vsprops +15 -0
  237. data/libs/crosswalk/ext/platform/wm/src/Crosswalk_impl.cpp +77 -0
  238. data/libs/crosswalk/ext/platform/wp8/Crosswalk.props +18 -0
  239. data/libs/crosswalk/ext/platform/wp8/Crosswalk.vcxproj +170 -0
  240. data/libs/crosswalk/ext/platform/wp8/Crosswalk.vcxproj.filters +50 -0
  241. data/libs/crosswalk/ext/platform/wp8/CrosswalkImpl.csproj +119 -0
  242. data/libs/crosswalk/ext/platform/wp8/CrosswalkImpl.props +8 -0
  243. data/libs/crosswalk/ext/platform/wp8/CrosswalkImpl.targets +7 -0
  244. data/libs/crosswalk/ext/platform/wp8/CrosswalkLib.props +18 -0
  245. data/libs/crosswalk/ext/platform/wp8/CrosswalkLib.vcxproj +185 -0
  246. data/libs/crosswalk/ext/platform/wp8/CrosswalkLib.vcxproj.filters +58 -0
  247. data/libs/crosswalk/ext/platform/wp8/src/Crosswalk_impl.cpp +76 -0
  248. data/libs/crosswalk/ext/platform/wp8/src/Crosswalk_impl.cs +69 -0
  249. data/libs/crosswalk/ext/platform/wp8/src/Properties/AssemblyInfo.cs +37 -0
  250. data/libs/enterprise-barcode/ext.yml +13 -0
  251. data/libs/enterprise-barcode/ext/barcode.xml +2144 -0
  252. data/libs/enterprise-barcode/ext/build +17 -0
  253. data/libs/enterprise-barcode/ext/build.bat +29 -0
  254. data/libs/enterprise-barcode/ext/platform/android/AndroidManifest.xml +31 -0
  255. data/libs/enterprise-barcode/ext/platform/android/ZXing_Info/AUTHORS +58 -0
  256. data/libs/enterprise-barcode/ext/platform/android/ZXing_Info/CHANGES +266 -0
  257. data/libs/enterprise-barcode/ext/platform/android/ZXing_Info/COPYING +201 -0
  258. data/libs/enterprise-barcode/ext/platform/android/ZXing_Info/README +11 -0
  259. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/drawable-hdpi/cancel_icon.png +0 -0
  260. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/drawable-hdpi/ok_icon.png +0 -0
  261. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/drawable-hdpi/retake_icon.png +0 -0
  262. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/drawable/cancel_icon.png +0 -0
  263. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/drawable/ok_icon.png +0 -0
  264. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/drawable/retake_icon.png +0 -0
  265. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/layout/capture.xml +122 -0
  266. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/raw/beep.ogg +0 -0
  267. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/values/attrs.xml +20 -0
  268. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/values/colors.xml +42 -0
  269. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/values/ids.xml +31 -0
  270. data/libs/enterprise-barcode/ext/platform/android/adds/lib/armeabi/liballbarcode.a +0 -0
  271. data/libs/enterprise-barcode/ext/platform/android/adds/lib/x86/liballbarcode.a +0 -0
  272. data/libs/enterprise-barcode/ext/platform/android/allbarcode.jar +0 -0
  273. data/libs/enterprise-barcode/ext/platform/iphone/Barcode.xcodeproj/project.pbxproj +524 -0
  274. data/libs/enterprise-barcode/ext/platform/iphone/Barcode_Prefix.pch +7 -0
  275. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeCallbackHelper.h +27 -0
  276. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeCallbackHelper.mm +231 -0
  277. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeViewController.h +95 -0
  278. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeViewController.m +1017 -0
  279. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeViewFactory.h +7 -0
  280. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeViewFactory.mm +58 -0
  281. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeViewFactoryRegister.mm +18 -0
  282. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeViewManager.h +16 -0
  283. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeViewManager.mm +32 -0
  284. data/libs/enterprise-barcode/ext/platform/iphone/Classes/ImageProvider.cpp +25 -0
  285. data/libs/enterprise-barcode/ext/platform/iphone/Classes/ImageProvider.h +15 -0
  286. data/libs/enterprise-barcode/ext/platform/iphone/Classes/ImageProvider.mm +159 -0
  287. data/libs/enterprise-barcode/ext/platform/iphone/Classes/barcode.m +123 -0
  288. data/libs/enterprise-barcode/ext/platform/iphone/Rakefile +69 -0
  289. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/COPYING +27 -0
  290. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarCameraSimulator.h +45 -0
  291. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarCaptureReader.h +111 -0
  292. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarHelpController.h +60 -0
  293. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarImage.h +69 -0
  294. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarImageScanner.h +51 -0
  295. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarReaderController.h +142 -0
  296. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarReaderView.h +135 -0
  297. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarReaderViewController.h +130 -0
  298. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarSDK.h +34 -0
  299. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarSymbol.h +71 -0
  300. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar.h +1497 -0
  301. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Decoder.h +202 -0
  302. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Exception.h +187 -0
  303. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Image.h +321 -0
  304. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/ImageScanner.h +130 -0
  305. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Processor.h +223 -0
  306. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Scanner.h +162 -0
  307. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Symbol.h +528 -0
  308. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Video.h +170 -0
  309. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Window.h +136 -0
  310. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/LICENSE +504 -0
  311. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/README +59 -0
  312. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Resources/zbar-back.png +0 -0
  313. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Resources/zbar-help.html +88 -0
  314. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Resources/zbar-helpicons.png +0 -0
  315. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Resources/zbar-samples.png +0 -0
  316. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/libzbar.a +0 -0
  317. data/libs/enterprise-barcode/ext/platform/iphone/impl/Barcode.h +21 -0
  318. data/libs/enterprise-barcode/ext/platform/iphone/impl/Barcode.m +132 -0
  319. data/libs/enterprise-barcode/ext/platform/iphone/impl/BarcodeFactory.h +10 -0
  320. data/libs/enterprise-barcode/ext/platform/iphone/impl/BarcodeFactory.m +16 -0
  321. data/libs/enterprise-barcode/ext/platform/iphone/impl/BarcodeFactorySingleton.m +16 -0
  322. data/libs/enterprise-barcode/ext/platform/iphone/impl/BarcodeSetup.m +8 -0
  323. data/libs/enterprise-barcode/ext/platform/iphone/impl/BarcodeSingleton.h +17 -0
  324. data/libs/enterprise-barcode/ext/platform/iphone/impl/BarcodeSingleton.m +22 -0
  325. data/libs/enterprise-barcode/ext/platform/iphone/impl/readme.txt +7 -0
  326. data/libs/enterprise-barcode/ext/platform/wm/Barcode.sln +44 -0
  327. data/libs/enterprise-barcode/ext/platform/wm/Barcode.vcproj +836 -0
  328. data/libs/enterprise-barcode/ext/platform/wm/Barcode.vsprops +15 -0
  329. data/libs/enterprise-barcode/ext/platform/wm/readme.txt +0 -0
  330. data/libs/enterprise-barcode/ext/platform/wm/src/Barcode_impl.cpp +376 -0
  331. data/libs/enterprise-barcode/ext/platform/wm/src/DecodeNotifier.cpp +173 -0
  332. data/libs/enterprise-barcode/ext/platform/wm/src/DecodeNotifier.h +149 -0
  333. data/libs/enterprise-barcode/ext/platform/wm/src/EMDKInterfaceAbstraction.cpp +476 -0
  334. data/libs/enterprise-barcode/ext/platform/wm/src/GetDecoderProperties.cpp +1195 -0
  335. data/libs/enterprise-barcode/ext/platform/wm/src/GetScannerProperties.cpp +553 -0
  336. data/libs/enterprise-barcode/ext/platform/wm/src/KeyInjector.cpp +177 -0
  337. data/libs/enterprise-barcode/ext/platform/wm/src/KeyInjector.h +40 -0
  338. data/libs/enterprise-barcode/ext/platform/wm/src/NotificationLoader.cpp +76 -0
  339. data/libs/enterprise-barcode/ext/platform/wm/src/NotificationLoader.h +44 -0
  340. data/libs/enterprise-barcode/ext/platform/wm/src/RSM.cpp +1211 -0
  341. data/libs/enterprise-barcode/ext/platform/wm/src/Scanner.cpp +2609 -0
  342. data/libs/enterprise-barcode/ext/platform/wm/src/Scanner.h +1099 -0
  343. data/libs/enterprise-barcode/ext/platform/wm/src/ScannerDefines.h +322 -0
  344. data/libs/enterprise-barcode/ext/platform/wm/src/SetDecoderProperties.cpp +2106 -0
  345. data/libs/enterprise-barcode/ext/platform/wm/src/SetScannerProperties.cpp +1060 -0
  346. data/libs/enterprise-barcode/ext/platform/wm/src/Utilities.cpp +184 -0
  347. data/libs/enterprise-barcode/ext/platform/wp8/BarcodeImpl.csproj +119 -0
  348. data/libs/enterprise-barcode/ext/platform/wp8/BarcodeImpl.props +8 -0
  349. data/libs/enterprise-barcode/ext/platform/wp8/BarcodeImpl.targets +35 -0
  350. data/libs/enterprise-barcode/ext/platform/wp8/BarcodeLib.props +18 -0
  351. data/libs/enterprise-barcode/ext/platform/wp8/BarcodeLib.vcxproj +185 -0
  352. data/libs/enterprise-barcode/ext/platform/wp8/BarcodeLib.vcxproj.filters +58 -0
  353. data/libs/enterprise-barcode/ext/platform/wp8/lib/ARM/Nokia.Graphics.Imaging.dll +0 -0
  354. data/libs/enterprise-barcode/ext/platform/wp8/lib/ARM/Nokia.Graphics.Imaging.winmd +0 -0
  355. data/libs/enterprise-barcode/ext/platform/wp8/lib/ARM/Nokia.Graphics.Imaging.xml +4813 -0
  356. data/libs/enterprise-barcode/ext/platform/wp8/lib/ARM/Nokia.InteropServices.WindowsRuntime.dll +0 -0
  357. data/libs/enterprise-barcode/ext/platform/wp8/lib/ARM/Nokia.InteropServices.WindowsRuntime.winmd +0 -0
  358. data/libs/enterprise-barcode/ext/platform/wp8/lib/ARM/Nokia.InteropServices.WindowsRuntime.xml +41 -0
  359. data/libs/enterprise-barcode/ext/platform/wp8/lib/ARM/OpticalReaderLib.dll +0 -0
  360. data/libs/enterprise-barcode/ext/platform/wp8/lib/BarcodeReaderLib.XML +68 -0
  361. data/libs/enterprise-barcode/ext/platform/wp8/lib/BarcodeReaderLib.dll +0 -0
  362. data/libs/enterprise-barcode/ext/platform/wp8/lib/BarcodeReaderLib/BarcodeReaderLib.csproj +120 -0
  363. data/libs/enterprise-barcode/ext/platform/wp8/lib/BarcodeReaderLib/BarcodeReaderLib.sln +34 -0
  364. data/libs/enterprise-barcode/ext/platform/wp8/lib/BarcodeReaderLib/CameraNavigatePage.xaml +32 -0
  365. data/libs/enterprise-barcode/ext/platform/wp8/lib/BarcodeReaderLib/CameraNavigatePage.xaml.cs +235 -0
  366. data/libs/enterprise-barcode/ext/platform/wp8/lib/BarcodeReaderLib/OpticalReaderTask.cs +182 -0
  367. data/libs/enterprise-barcode/ext/platform/wp8/lib/BarcodeReaderLib/Properties/AssemblyInfo.cs +37 -0
  368. data/libs/enterprise-barcode/ext/platform/wp8/lib/Nokia.Graphics.Imaging.Managed.dll +0 -0
  369. data/libs/enterprise-barcode/ext/platform/wp8/lib/Nokia.Graphics.Imaging.Managed.xml +341 -0
  370. data/libs/enterprise-barcode/ext/platform/wp8/lib/x86/Nokia.Graphics.Imaging.dll +0 -0
  371. data/libs/enterprise-barcode/ext/platform/wp8/lib/x86/Nokia.Graphics.Imaging.winmd +0 -0
  372. data/libs/enterprise-barcode/ext/platform/wp8/lib/x86/Nokia.Graphics.Imaging.xml +4813 -0
  373. data/libs/enterprise-barcode/ext/platform/wp8/lib/x86/Nokia.InteropServices.WindowsRuntime.dll +0 -0
  374. data/libs/enterprise-barcode/ext/platform/wp8/lib/x86/Nokia.InteropServices.WindowsRuntime.winmd +0 -0
  375. data/libs/enterprise-barcode/ext/platform/wp8/lib/x86/Nokia.InteropServices.WindowsRuntime.xml +41 -0
  376. data/libs/enterprise-barcode/ext/platform/wp8/lib/x86/OpticalReaderLib.dll +0 -0
  377. data/libs/enterprise-barcode/ext/platform/wp8/lib/zxing.wp8.0.XML +10324 -0
  378. data/libs/enterprise-barcode/ext/platform/wp8/lib/zxing.wp8.0.dll +0 -0
  379. data/libs/enterprise-barcode/ext/platform/wp8/src/Barcode_impl.cs +630 -0
  380. data/libs/enterprise-barcode/ext/platform/wp8/src/Properties/AssemblyInfo.cs +37 -0
  381. data/libs/enterprise-barcode/public/api/generated/Rho.Barcode.js +772 -0
  382. data/libs/ie/rhobrowser.dll +0 -0
  383. data/libs/nodejs.rb +2 -0
  384. data/libs/nodejs/ext.yml +25 -0
  385. data/libs/nodejs/ext/Nodejs.xml +37 -0
  386. data/libs/nodejs/ext/build +19 -0
  387. data/libs/nodejs/ext/build.bat +29 -0
  388. data/libs/nodejs/ext/platform/android/Rakefile +161 -0
  389. data/libs/nodejs/ext/platform/android/ext_native.files +8 -0
  390. data/libs/nodejs/ext/platform/android/jxCore/jx.h +134 -0
  391. data/libs/nodejs/ext/platform/android/jxCore/jx_result.h +221 -0
  392. data/libs/nodejs/ext/platform/android/jxCore/libcares_arm.a +0 -0
  393. data/libs/nodejs/ext/platform/android/jxCore/libcares_ia32.a +0 -0
  394. data/libs/nodejs/ext/platform/android/jxCore/libcares_x64.a +0 -0
  395. data/libs/nodejs/ext/platform/android/jxCore/libchrome_zlib_arm.a +0 -0
  396. data/libs/nodejs/ext/platform/android/jxCore/libchrome_zlib_ia32.a +0 -0
  397. data/libs/nodejs/ext/platform/android/jxCore/libchrome_zlib_x64.a +0 -0
  398. data/libs/nodejs/ext/platform/android/jxCore/libhttp_parser_arm.a +0 -0
  399. data/libs/nodejs/ext/platform/android/jxCore/libhttp_parser_ia32.a +0 -0
  400. data/libs/nodejs/ext/platform/android/jxCore/libhttp_parser_x64.a +0 -0
  401. data/libs/nodejs/ext/platform/android/jxCore/libjx_arm.a +0 -0
  402. data/libs/nodejs/ext/platform/android/jxCore/libjx_ia32.a +0 -0
  403. data/libs/nodejs/ext/platform/android/jxCore/libjx_x64.a +0 -0
  404. data/libs/nodejs/ext/platform/android/jxCore/libopenssl_arm.a +0 -0
  405. data/libs/nodejs/ext/platform/android/jxCore/libopenssl_ia32.a +0 -0
  406. data/libs/nodejs/ext/platform/android/jxCore/libopenssl_x64.a +0 -0
  407. data/libs/nodejs/ext/platform/android/jxCore/libsqlite3_arm.a +0 -0
  408. data/libs/nodejs/ext/platform/android/jxCore/libsqlite3_ia32.a +0 -0
  409. data/libs/nodejs/ext/platform/android/jxCore/libsqlite3_x64.a +0 -0
  410. data/libs/nodejs/ext/platform/android/jxCore/libuv_arm.a +0 -0
  411. data/libs/nodejs/ext/platform/android/jxCore/libuv_ia32.a +0 -0
  412. data/libs/nodejs/ext/platform/android/jxCore/libuv_x64.a +0 -0
  413. data/libs/nodejs/ext/platform/android/jxCore/libv8_base_arm.a +0 -0
  414. data/libs/nodejs/ext/platform/android/jxCore/libv8_base_ia32.a +0 -0
  415. data/libs/nodejs/ext/platform/android/jxCore/libv8_base_x64.a +0 -0
  416. data/libs/nodejs/ext/platform/android/jxCore/libv8_nosnapshot_arm.a +0 -0
  417. data/libs/nodejs/ext/platform/android/jxCore/libv8_nosnapshot_ia32.a +0 -0
  418. data/libs/nodejs/ext/platform/android/jxCore/libv8_nosnapshot_x64.a +0 -0
  419. data/libs/nodejs/ext/platform/iphone/Nodejs.xcodeproj/project.pbxproj +350 -0
  420. data/libs/nodejs/ext/platform/iphone/Nodejs_Prefix.pch +7 -0
  421. data/libs/nodejs/ext/platform/iphone/Rakefile +73 -0
  422. data/libs/nodejs/ext/platform/iphone/jxCore/jx.h +134 -0
  423. data/libs/nodejs/ext/platform/iphone/jxCore/jx_result.h +221 -0
  424. data/libs/nodejs/ext/platform/iphone/jxCore/libcares.a +0 -0
  425. data/libs/nodejs/ext/platform/iphone/jxCore/libchrome_zlib.a +0 -0
  426. data/libs/nodejs/ext/platform/iphone/jxCore/libhttp_parser.a +0 -0
  427. data/libs/nodejs/ext/platform/iphone/jxCore/libjx.a +0 -0
  428. data/libs/nodejs/ext/platform/iphone/jxCore/libmozjs.a +0 -0
  429. data/libs/nodejs/ext/platform/iphone/jxCore/libopenssl.a +0 -0
  430. data/libs/nodejs/ext/platform/iphone/jxCore/libsqlite3.a +0 -0
  431. data/libs/nodejs/ext/platform/iphone/jxCore/libuv.a +0 -0
  432. data/libs/nodejs/ext/shared/jxcore/jx.h +134 -0
  433. data/libs/nodejs/ext/shared/jxcore/jx_result.h +221 -0
  434. data/libs/nodejs/ext/shared/jxcoretau.cpp +454 -0
  435. data/libs/nodejs/ext/shared/jxcoretau.h +20 -0
  436. data/libs/nodejs/ext/shared/nodejs_impl.cpp +106 -0
  437. data/libs/nodejs/nodejs.rb +2 -0
  438. data/libs/openssl-edge.rb +2 -0
  439. data/libs/openssl-edge/ext.yml +4 -0
  440. data/libs/openssl-edge/ext/Rakefile +145 -0
  441. data/libs/openssl-edge/ext/android/Rakefile +107 -0
  442. data/libs/openssl-edge/ext/android/ext_native.files +32 -0
  443. data/libs/openssl-edge/ext/android/extconf.h +91 -0
  444. data/libs/openssl-edge/ext/build +12 -0
  445. data/libs/openssl-edge/ext/build.bat +5 -0
  446. data/libs/openssl-edge/ext/extconf.rb +141 -0
  447. data/libs/openssl-edge/ext/openssl.pro +109 -0
  448. data/libs/openssl-edge/ext/openssl.sln +52 -0
  449. data/libs/openssl-edge/ext/openssl.vcproj +1010 -0
  450. data/libs/openssl-edge/ext/openssl_missing.c +1163 -0
  451. data/libs/openssl-edge/ext/openssl_missing.h +537 -0
  452. data/libs/openssl-edge/ext/ossl.c +1203 -0
  453. data/libs/openssl-edge/ext/ossl.h +242 -0
  454. data/libs/openssl-edge/ext/ossl_asn1.c +2008 -0
  455. data/libs/openssl-edge/ext/ossl_asn1.h +66 -0
  456. data/libs/openssl-edge/ext/ossl_bio.c +118 -0
  457. data/libs/openssl-edge/ext/ossl_bio.h +19 -0
  458. data/libs/openssl-edge/ext/ossl_bn.c +1153 -0
  459. data/libs/openssl-edge/ext/ossl_bn.h +23 -0
  460. data/libs/openssl-edge/ext/ossl_cipher.c +1085 -0
  461. data/libs/openssl-edge/ext/ossl_cipher.h +20 -0
  462. data/libs/openssl-edge/ext/ossl_config.c +89 -0
  463. data/libs/openssl-edge/ext/ossl_config.h +19 -0
  464. data/libs/openssl-edge/ext/ossl_digest.c +453 -0
  465. data/libs/openssl-edge/ext/ossl_digest.h +20 -0
  466. data/libs/openssl-edge/ext/ossl_engine.c +580 -0
  467. data/libs/openssl-edge/ext/ossl_engine.h +19 -0
  468. data/libs/openssl-edge/ext/ossl_hmac.c +398 -0
  469. data/libs/openssl-edge/ext/ossl_hmac.h +18 -0
  470. data/libs/openssl-edge/ext/ossl_ns_spki.c +406 -0
  471. data/libs/openssl-edge/ext/ossl_ns_spki.h +19 -0
  472. data/libs/openssl-edge/ext/ossl_ocsp.c +2013 -0
  473. data/libs/openssl-edge/ext/ossl_ocsp.h +23 -0
  474. data/libs/openssl-edge/ext/ossl_pkcs12.c +261 -0
  475. data/libs/openssl-edge/ext/ossl_pkcs12.h +13 -0
  476. data/libs/openssl-edge/ext/ossl_pkcs5.c +180 -0
  477. data/libs/openssl-edge/ext/ossl_pkcs5.h +6 -0
  478. data/libs/openssl-edge/ext/ossl_pkcs7.c +1157 -0
  479. data/libs/openssl-edge/ext/ossl_pkcs7.h +20 -0
  480. data/libs/openssl-edge/ext/ossl_pkey.c +469 -0
  481. data/libs/openssl-edge/ext/ossl_pkey.h +245 -0
  482. data/libs/openssl-edge/ext/ossl_pkey_dh.c +650 -0
  483. data/libs/openssl-edge/ext/ossl_pkey_dsa.c +672 -0
  484. data/libs/openssl-edge/ext/ossl_pkey_ec.c +1806 -0
  485. data/libs/openssl-edge/ext/ossl_pkey_rsa.c +768 -0
  486. data/libs/openssl-edge/ext/ossl_rand.c +238 -0
  487. data/libs/openssl-edge/ext/ossl_rand.h +18 -0
  488. data/libs/openssl-edge/ext/ossl_ssl.c +2724 -0
  489. data/libs/openssl-edge/ext/ossl_ssl.h +41 -0
  490. data/libs/openssl-edge/ext/ossl_ssl_session.c +352 -0
  491. data/libs/openssl-edge/ext/ossl_version.h +15 -0
  492. data/libs/openssl-edge/ext/ossl_x509.c +186 -0
  493. data/libs/openssl-edge/ext/ossl_x509.h +119 -0
  494. data/libs/openssl-edge/ext/ossl_x509attr.c +328 -0
  495. data/libs/openssl-edge/ext/ossl_x509cert.c +863 -0
  496. data/libs/openssl-edge/ext/ossl_x509crl.c +565 -0
  497. data/libs/openssl-edge/ext/ossl_x509ext.c +480 -0
  498. data/libs/openssl-edge/ext/ossl_x509name.c +547 -0
  499. data/libs/openssl-edge/ext/ossl_x509req.c +492 -0
  500. data/libs/openssl-edge/ext/ossl_x509revoked.c +279 -0
  501. data/libs/openssl-edge/ext/ossl_x509store.c +846 -0
  502. data/libs/openssl-edge/ext/ruby_missing.h +32 -0
  503. data/libs/openssl-edge/openssl-edge.rb +2 -0
  504. data/libs/openssl-edge/openssl.rb +24 -0
  505. data/libs/openssl-edge/openssl/bn.rb +35 -0
  506. data/libs/openssl-edge/openssl/buffering.rb +341 -0
  507. data/libs/openssl-edge/openssl/cipher.rb +65 -0
  508. data/libs/openssl-edge/openssl/digest.rb +61 -0
  509. data/libs/openssl-edge/openssl/ssl-internal.rb +180 -0
  510. data/libs/openssl-edge/openssl/ssl.rb +1 -0
  511. data/libs/openssl-edge/openssl/x509-internal.rb +153 -0
  512. data/libs/openssl-edge/openssl/x509.rb +1 -0
  513. data/libs/openssl.so-edge.rb +2 -0
  514. data/libs/openssl.so-edge/ext.yml +8 -0
  515. data/libs/openssl.so-edge/ext/Rakefile +140 -0
  516. data/libs/openssl.so-edge/ext/android/armeabi/libcrypto.a +0 -0
  517. data/libs/openssl.so-edge/ext/android/armeabi/libssl.a +0 -0
  518. data/libs/openssl.so-edge/ext/android/x86/libcrypto.a +0 -0
  519. data/libs/openssl.so-edge/ext/android/x86/libssl.a +0 -0
  520. data/libs/openssl.so-edge/ext/build +12 -0
  521. data/libs/openssl.so-edge/ext/build.bat +1 -0
  522. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/dh/dh_locl.h +56 -0
  523. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/dsa/dsa_locl.h +76 -0
  524. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/evp/evp_locl.h +66 -0
  525. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/hmac/hmac_lcl.h +33 -0
  526. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/asn1_int.h +94 -0
  527. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/async.h +14 -0
  528. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/bn_conf.h +28 -0
  529. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/bn_dh.h +17 -0
  530. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/bn_int.h +82 -0
  531. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/bn_srp.h +32 -0
  532. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/chacha.h +49 -0
  533. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/cryptlib.h +81 -0
  534. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/cryptlib_int.h +31 -0
  535. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/dso_conf.h +16 -0
  536. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/engine.h +20 -0
  537. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/err_int.h +17 -0
  538. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/evp_int.h +382 -0
  539. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/md32_common.h +383 -0
  540. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/objects.h +12 -0
  541. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/poly1305.h +19 -0
  542. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/rand.h +20 -0
  543. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/x509_int.h +267 -0
  544. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/ocsp/ocsp_lcl.h +216 -0
  545. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/rsa/rsa_locl.h +96 -0
  546. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/x509/x509_lcl.h +142 -0
  547. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/e_os.h +520 -0
  548. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/bio.h +26 -0
  549. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/comp.h +12 -0
  550. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/conf.h +32 -0
  551. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/constant_time_locl.h +185 -0
  552. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/dane.h +103 -0
  553. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/dso.h +216 -0
  554. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/err.h +15 -0
  555. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/numbers.h +68 -0
  556. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/o_dir.h +63 -0
  557. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/o_str.h +17 -0
  558. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/thread_once.h +42 -0
  559. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/__DECC_INCLUDE_EPILOGUE.H +16 -0
  560. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/__DECC_INCLUDE_PROLOGUE.H +20 -0
  561. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/aes.h +92 -0
  562. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/asn1.h +1096 -0
  563. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/asn1_mac.h +10 -0
  564. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/asn1t.h +924 -0
  565. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/async.h +98 -0
  566. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/bio.h +854 -0
  567. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/blowfish.h +61 -0
  568. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/bn.h +575 -0
  569. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/buffer.h +76 -0
  570. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/camellia.h +83 -0
  571. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/cast.h +53 -0
  572. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/cmac.h +41 -0
  573. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/cms.h +512 -0
  574. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/comp.h +72 -0
  575. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/conf.h +216 -0
  576. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/conf_api.h +40 -0
  577. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/crypto.h +463 -0
  578. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ct.h +518 -0
  579. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/des.h +174 -0
  580. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/dh.h +343 -0
  581. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/dsa.h +282 -0
  582. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/dtls1.h +56 -0
  583. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/e_os2.h +311 -0
  584. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ebcdic.h +33 -0
  585. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ec.h +1581 -0
  586. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ecdh.h +10 -0
  587. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ecdsa.h +10 -0
  588. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/engine.h +842 -0
  589. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/err.h +259 -0
  590. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/evp.h +1586 -0
  591. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/hmac.h +49 -0
  592. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/idea.h +64 -0
  593. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/kdf.h +75 -0
  594. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/lhash.h +204 -0
  595. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/md2.h +44 -0
  596. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/md4.h +51 -0
  597. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/md5.h +50 -0
  598. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/mdc2.h +42 -0
  599. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/modes.h +203 -0
  600. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/obj_mac.h +4577 -0
  601. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/objects.h +1097 -0
  602. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ocsp.h +409 -0
  603. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/opensslconf.h +169 -0
  604. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/opensslconf.h.in +141 -0
  605. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/opensslv.h +105 -0
  606. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ossl_typ.h +190 -0
  607. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/pem.h +501 -0
  608. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/pem2.h +20 -0
  609. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/pkcs12.h +282 -0
  610. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/pkcs7.h +404 -0
  611. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/rand.h +89 -0
  612. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/rc2.h +51 -0
  613. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/rc4.h +36 -0
  614. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/rc5.h +63 -0
  615. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ripemd.h +47 -0
  616. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/rsa.h +588 -0
  617. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/safestack.h +164 -0
  618. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/seed.h +98 -0
  619. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/sha.h +119 -0
  620. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/srp.h +131 -0
  621. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/srtp.h +50 -0
  622. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ssl.h +2527 -0
  623. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ssl2.h +24 -0
  624. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ssl3.h +307 -0
  625. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/stack.h +78 -0
  626. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/symhacks.h +52 -0
  627. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/tls1.h +972 -0
  628. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ts.h +643 -0
  629. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/txt_db.h +57 -0
  630. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ui.h +368 -0
  631. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/whrlpool.h +48 -0
  632. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/x509.h +1123 -0
  633. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/x509_vfy.h +539 -0
  634. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/x509v3.h +1005 -0
  635. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/ssl/packet_locl.h +555 -0
  636. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/ssl/record/record.h +240 -0
  637. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/ssl/record/record_locl.h +114 -0
  638. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/ssl/ssl_locl.h +2127 -0
  639. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/ssl/statem/statem.h +123 -0
  640. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/ssl/statem/statem_locl.h +124 -0
  641. data/libs/openssl.so-edge/openssl.so.rb +2 -0
  642. data/libs/webkit.rb +2 -0
  643. data/libs/webkit/ext.yml +4 -0
  644. data/libs/webkit/ext/build +12 -0
  645. data/libs/webkit/ext/build.bat +7 -0
  646. data/libs/webkit/ext/wm/Rakefile +61 -0
  647. data/libs/webkit/ext/wm/RhoMsgs.cpp +17 -0
  648. data/libs/webkit/ext/wm/RhoMsgs.h +14 -0
  649. data/libs/webkit/ext/wm/RhoWKBrowserEngine.cpp +736 -0
  650. data/libs/webkit/ext/wm/RhoWKBrowserEngine.h +105 -0
  651. data/libs/webkit/ext/wm/lib/npapi/rhobridge.dll +0 -0
  652. data/libs/webkit/ext/wm/lib/rhoengine_defs.h +80 -0
  653. data/libs/webkit/ext/wm/lib/rhowebkit.dll +0 -0
  654. data/libs/webkit/ext/wm/webkit.sln +36 -0
  655. data/libs/webkit/ext/wm/webkit.suo +0 -0
  656. data/libs/webkit/ext/wm/webkit.vcproj +800 -0
  657. data/libs/webkit/ext/wm/webkit.vsprops +20 -0
  658. data/libs/webkit/webkit.rb +2 -0
  659. data/rho-tau-extensions.gemspec +23 -0
  660. data/version +1 -0
  661. metadata +705 -0
@@ -0,0 +1,6 @@
1
+ #if !defined(_OSSL_PKCS5_H_)
2
+ #define _OSSL_PKCS5_H_
3
+
4
+ void Init_ossl_pkcs5(void);
5
+
6
+ #endif /* _OSSL_PKCS5_H_ */
@@ -0,0 +1,1157 @@
1
+ /*
2
+ * 'OpenSSL for Ruby' project
3
+ * Copyright (C) 2001-2002 Michal Rokos <m.rokos@sh.cvut.cz>
4
+ * All rights reserved.
5
+ */
6
+ /*
7
+ * This program is licensed under the same licence as Ruby.
8
+ * (See the file 'LICENCE'.)
9
+ */
10
+ #include "ossl.h"
11
+
12
+ #define NewPKCS7(klass) \
13
+ TypedData_Wrap_Struct((klass), &ossl_pkcs7_type, 0)
14
+ #define SetPKCS7(obj, pkcs7) do { \
15
+ if (!(pkcs7)) { \
16
+ ossl_raise(rb_eRuntimeError, "PKCS7 wasn't initialized."); \
17
+ } \
18
+ RTYPEDDATA_DATA(obj) = (pkcs7); \
19
+ } while (0)
20
+ #define GetPKCS7(obj, pkcs7) do { \
21
+ TypedData_Get_Struct((obj), PKCS7, &ossl_pkcs7_type, (pkcs7)); \
22
+ if (!(pkcs7)) { \
23
+ ossl_raise(rb_eRuntimeError, "PKCS7 wasn't initialized."); \
24
+ } \
25
+ } while (0)
26
+ #define SafeGetPKCS7(obj, pkcs7) do { \
27
+ OSSL_Check_Kind((obj), cPKCS7); \
28
+ GetPKCS7((obj), (pkcs7)); \
29
+ } while (0)
30
+
31
+ #define NewPKCS7si(klass) \
32
+ TypedData_Wrap_Struct((klass), &ossl_pkcs7_signer_info_type, 0)
33
+ #define SetPKCS7si(obj, p7si) do { \
34
+ if (!(p7si)) { \
35
+ ossl_raise(rb_eRuntimeError, "PKCS7si wasn't initialized."); \
36
+ } \
37
+ RTYPEDDATA_DATA(obj) = (p7si); \
38
+ } while (0)
39
+ #define GetPKCS7si(obj, p7si) do { \
40
+ TypedData_Get_Struct((obj), PKCS7_SIGNER_INFO, &ossl_pkcs7_signer_info_type, (p7si)); \
41
+ if (!(p7si)) { \
42
+ ossl_raise(rb_eRuntimeError, "PKCS7si wasn't initialized."); \
43
+ } \
44
+ } while (0)
45
+ #define SafeGetPKCS7si(obj, p7si) do { \
46
+ OSSL_Check_Kind((obj), cPKCS7Signer); \
47
+ GetPKCS7si((obj), (p7si)); \
48
+ } while (0)
49
+
50
+ #define NewPKCS7ri(klass) \
51
+ TypedData_Wrap_Struct((klass), &ossl_pkcs7_recip_info_type, 0)
52
+ #define SetPKCS7ri(obj, p7ri) do { \
53
+ if (!(p7ri)) { \
54
+ ossl_raise(rb_eRuntimeError, "PKCS7ri wasn't initialized."); \
55
+ } \
56
+ RTYPEDDATA_DATA(obj) = (p7ri); \
57
+ } while (0)
58
+ #define GetPKCS7ri(obj, p7ri) do { \
59
+ TypedData_Get_Struct((obj), PKCS7_RECIP_INFO, &ossl_pkcs7_recip_info_type, (p7ri)); \
60
+ if (!(p7ri)) { \
61
+ ossl_raise(rb_eRuntimeError, "PKCS7ri wasn't initialized."); \
62
+ } \
63
+ } while (0)
64
+ #define SafeGetPKCS7ri(obj, p7ri) do { \
65
+ OSSL_Check_Kind((obj), cPKCS7Recipient); \
66
+ GetPKCS7ri((obj), (p7ri)); \
67
+ } while (0)
68
+
69
+ #define numberof(ary) (int)(sizeof(ary)/sizeof((ary)[0]))
70
+
71
+ #define ossl_pkcs7_set_data(o,v) rb_iv_set((o), "@data", (v))
72
+ #define ossl_pkcs7_get_data(o) rb_iv_get((o), "@data")
73
+ #define ossl_pkcs7_set_err_string(o,v) rb_iv_set((o), "@error_string", (v))
74
+ #define ossl_pkcs7_get_err_string(o) rb_iv_get((o), "@error_string")
75
+
76
+ /*
77
+ * Classes
78
+ */
79
+ VALUE cPKCS7;
80
+ VALUE cPKCS7Signer;
81
+ VALUE cPKCS7Recipient;
82
+ VALUE ePKCS7Error;
83
+
84
+ static void
85
+ ossl_pkcs7_free(void *ptr)
86
+ {
87
+ PKCS7_free(ptr);
88
+ }
89
+
90
+ static const rb_data_type_t ossl_pkcs7_type = {
91
+ "OpenSSL/PKCS7",
92
+ {
93
+ 0, ossl_pkcs7_free,
94
+ },
95
+ 0, 0, RUBY_TYPED_FREE_IMMEDIATELY,
96
+ };
97
+
98
+ static void
99
+ ossl_pkcs7_signer_info_free(void *ptr)
100
+ {
101
+ PKCS7_SIGNER_INFO_free(ptr);
102
+ }
103
+
104
+ static const rb_data_type_t ossl_pkcs7_signer_info_type = {
105
+ "OpenSSL/PKCS7/SIGNER_INFO",
106
+ {
107
+ 0, ossl_pkcs7_signer_info_free,
108
+ },
109
+ 0, 0, RUBY_TYPED_FREE_IMMEDIATELY,
110
+ };
111
+
112
+ static void
113
+ ossl_pkcs7_recip_info_free(void *ptr)
114
+ {
115
+ PKCS7_RECIP_INFO_free(ptr);
116
+ }
117
+
118
+ static const rb_data_type_t ossl_pkcs7_recip_info_type = {
119
+ "OpenSSL/PKCS7/RECIP_INFO",
120
+ {
121
+ 0, ossl_pkcs7_recip_info_free,
122
+ },
123
+ 0, 0, RUBY_TYPED_FREE_IMMEDIATELY,
124
+ };
125
+
126
+ /*
127
+ * Public
128
+ * (MADE PRIVATE UNTIL SOMEBODY WILL NEED THEM)
129
+ */
130
+ static PKCS7_SIGNER_INFO *
131
+ ossl_PKCS7_SIGNER_INFO_dup(const PKCS7_SIGNER_INFO *si)
132
+ {
133
+ return (PKCS7_SIGNER_INFO *)ASN1_dup((i2d_of_void *)i2d_PKCS7_SIGNER_INFO,
134
+ (d2i_of_void *)d2i_PKCS7_SIGNER_INFO,
135
+ (char *)si);
136
+ }
137
+
138
+ static PKCS7_RECIP_INFO *
139
+ ossl_PKCS7_RECIP_INFO_dup(const PKCS7_RECIP_INFO *si)
140
+ {
141
+ return (PKCS7_RECIP_INFO *)ASN1_dup((i2d_of_void *)i2d_PKCS7_RECIP_INFO,
142
+ (d2i_of_void *)d2i_PKCS7_RECIP_INFO,
143
+ (char *)si);
144
+ }
145
+
146
+ static VALUE
147
+ ossl_pkcs7si_new(PKCS7_SIGNER_INFO *p7si)
148
+ {
149
+ PKCS7_SIGNER_INFO *pkcs7;
150
+ VALUE obj;
151
+
152
+ obj = NewPKCS7si(cPKCS7Signer);
153
+ pkcs7 = p7si ? ossl_PKCS7_SIGNER_INFO_dup(p7si) : PKCS7_SIGNER_INFO_new();
154
+ if (!pkcs7) ossl_raise(ePKCS7Error, NULL);
155
+ SetPKCS7si(obj, pkcs7);
156
+
157
+ return obj;
158
+ }
159
+
160
+ static PKCS7_SIGNER_INFO *
161
+ DupPKCS7SignerPtr(VALUE obj)
162
+ {
163
+ PKCS7_SIGNER_INFO *p7si, *pkcs7;
164
+
165
+ SafeGetPKCS7si(obj, p7si);
166
+ if (!(pkcs7 = ossl_PKCS7_SIGNER_INFO_dup(p7si))) {
167
+ ossl_raise(ePKCS7Error, NULL);
168
+ }
169
+
170
+ return pkcs7;
171
+ }
172
+
173
+ static VALUE
174
+ ossl_pkcs7ri_new(PKCS7_RECIP_INFO *p7ri)
175
+ {
176
+ PKCS7_RECIP_INFO *pkcs7;
177
+ VALUE obj;
178
+
179
+ obj = NewPKCS7ri(cPKCS7Recipient);
180
+ pkcs7 = p7ri ? ossl_PKCS7_RECIP_INFO_dup(p7ri) : PKCS7_RECIP_INFO_new();
181
+ if (!pkcs7) ossl_raise(ePKCS7Error, NULL);
182
+ SetPKCS7ri(obj, pkcs7);
183
+
184
+ return obj;
185
+ }
186
+
187
+ static PKCS7_RECIP_INFO *
188
+ DupPKCS7RecipientPtr(VALUE obj)
189
+ {
190
+ PKCS7_RECIP_INFO *p7ri, *pkcs7;
191
+
192
+ SafeGetPKCS7ri(obj, p7ri);
193
+ if (!(pkcs7 = ossl_PKCS7_RECIP_INFO_dup(p7ri))) {
194
+ ossl_raise(ePKCS7Error, NULL);
195
+ }
196
+
197
+ return pkcs7;
198
+ }
199
+
200
+ /*
201
+ * call-seq:
202
+ * PKCS7.read_smime(string) => pkcs7
203
+ */
204
+ static VALUE
205
+ ossl_pkcs7_s_read_smime(VALUE klass, VALUE arg)
206
+ {
207
+ BIO *in, *out;
208
+ PKCS7 *pkcs7;
209
+ VALUE ret, data;
210
+
211
+ ret = NewPKCS7(cPKCS7);
212
+ in = ossl_obj2bio(arg);
213
+ out = NULL;
214
+ pkcs7 = SMIME_read_PKCS7(in, &out);
215
+ BIO_free(in);
216
+ if(!pkcs7) ossl_raise(ePKCS7Error, NULL);
217
+ data = out ? ossl_membio2str(out) : Qnil;
218
+ SetPKCS7(ret, pkcs7);
219
+ ossl_pkcs7_set_data(ret, data);
220
+ ossl_pkcs7_set_err_string(ret, Qnil);
221
+
222
+ return ret;
223
+ }
224
+
225
+ /*
226
+ * call-seq:
227
+ * PKCS7.write_smime(pkcs7 [, data [, flags]]) => string
228
+ */
229
+ static VALUE
230
+ ossl_pkcs7_s_write_smime(int argc, VALUE *argv, VALUE klass)
231
+ {
232
+ VALUE pkcs7, data, flags;
233
+ BIO *out, *in;
234
+ PKCS7 *p7;
235
+ VALUE str;
236
+ int flg;
237
+
238
+ rb_scan_args(argc, argv, "12", &pkcs7, &data, &flags);
239
+ flg = NIL_P(flags) ? 0 : NUM2INT(flags);
240
+ if(NIL_P(data)) data = ossl_pkcs7_get_data(pkcs7);
241
+ SafeGetPKCS7(pkcs7, p7);
242
+ if(!NIL_P(data) && PKCS7_is_detached(p7))
243
+ flg |= PKCS7_DETACHED;
244
+ in = NIL_P(data) ? NULL : ossl_obj2bio(data);
245
+ if(!(out = BIO_new(BIO_s_mem()))){
246
+ BIO_free(in);
247
+ ossl_raise(ePKCS7Error, NULL);
248
+ }
249
+ if(!SMIME_write_PKCS7(out, p7, in, flg)){
250
+ BIO_free(out);
251
+ BIO_free(in);
252
+ ossl_raise(ePKCS7Error, NULL);
253
+ }
254
+ BIO_free(in);
255
+ str = ossl_membio2str(out);
256
+
257
+ return str;
258
+ }
259
+
260
+ /*
261
+ * call-seq:
262
+ * PKCS7.sign(cert, key, data, [, certs [, flags]]) => pkcs7
263
+ */
264
+ static VALUE
265
+ ossl_pkcs7_s_sign(int argc, VALUE *argv, VALUE klass)
266
+ {
267
+ VALUE cert, key, data, certs, flags;
268
+ X509 *x509;
269
+ EVP_PKEY *pkey;
270
+ BIO *in;
271
+ STACK_OF(X509) *x509s;
272
+ int flg, status = 0;
273
+ PKCS7 *pkcs7;
274
+ VALUE ret;
275
+
276
+ rb_scan_args(argc, argv, "32", &cert, &key, &data, &certs, &flags);
277
+ x509 = GetX509CertPtr(cert); /* NO NEED TO DUP */
278
+ pkey = GetPrivPKeyPtr(key); /* NO NEED TO DUP */
279
+ flg = NIL_P(flags) ? 0 : NUM2INT(flags);
280
+ ret = NewPKCS7(cPKCS7);
281
+ in = ossl_obj2bio(data);
282
+ if(NIL_P(certs)) x509s = NULL;
283
+ else{
284
+ x509s = ossl_protect_x509_ary2sk(certs, &status);
285
+ if(status){
286
+ BIO_free(in);
287
+ rb_jump_tag(status);
288
+ }
289
+ }
290
+ if(!(pkcs7 = PKCS7_sign(x509, pkey, x509s, in, flg))){
291
+ BIO_free(in);
292
+ sk_X509_pop_free(x509s, X509_free);
293
+ ossl_raise(ePKCS7Error, NULL);
294
+ }
295
+ SetPKCS7(ret, pkcs7);
296
+ ossl_pkcs7_set_data(ret, data);
297
+ ossl_pkcs7_set_err_string(ret, Qnil);
298
+ BIO_free(in);
299
+ sk_X509_pop_free(x509s, X509_free);
300
+
301
+ return ret;
302
+ }
303
+
304
+ /*
305
+ * call-seq:
306
+ * PKCS7.encrypt(certs, data, [, cipher [, flags]]) => pkcs7
307
+ */
308
+ static VALUE
309
+ ossl_pkcs7_s_encrypt(int argc, VALUE *argv, VALUE klass)
310
+ {
311
+ VALUE certs, data, cipher, flags;
312
+ STACK_OF(X509) *x509s;
313
+ BIO *in;
314
+ const EVP_CIPHER *ciph;
315
+ int flg, status = 0;
316
+ VALUE ret;
317
+ PKCS7 *p7;
318
+
319
+ rb_scan_args(argc, argv, "22", &certs, &data, &cipher, &flags);
320
+ if(NIL_P(cipher)){
321
+ #if !defined(OPENSSL_NO_RC2)
322
+ ciph = EVP_rc2_40_cbc();
323
+ #elif !defined(OPENSSL_NO_DES)
324
+ ciph = EVP_des_ede3_cbc();
325
+ #elif !defined(OPENSSL_NO_RC2)
326
+ ciph = EVP_rc2_40_cbc();
327
+ #elif !defined(OPENSSL_NO_AES)
328
+ ciph = EVP_EVP_aes_128_cbc();
329
+ #else
330
+ ossl_raise(ePKCS7Error, "Must specify cipher");
331
+ #endif
332
+
333
+ }
334
+ else ciph = GetCipherPtr(cipher); /* NO NEED TO DUP */
335
+ flg = NIL_P(flags) ? 0 : NUM2INT(flags);
336
+ ret = NewPKCS7(cPKCS7);
337
+ in = ossl_obj2bio(data);
338
+ x509s = ossl_protect_x509_ary2sk(certs, &status);
339
+ if(status){
340
+ BIO_free(in);
341
+ rb_jump_tag(status);
342
+ }
343
+ if(!(p7 = PKCS7_encrypt(x509s, in, (EVP_CIPHER*)ciph, flg))){
344
+ BIO_free(in);
345
+ sk_X509_pop_free(x509s, X509_free);
346
+ ossl_raise(ePKCS7Error, NULL);
347
+ }
348
+ BIO_free(in);
349
+ SetPKCS7(ret, p7);
350
+ ossl_pkcs7_set_data(ret, data);
351
+ sk_X509_pop_free(x509s, X509_free);
352
+
353
+ return ret;
354
+ }
355
+
356
+ static VALUE
357
+ ossl_pkcs7_alloc(VALUE klass)
358
+ {
359
+ PKCS7 *pkcs7;
360
+ VALUE obj;
361
+
362
+ obj = NewPKCS7(klass);
363
+ if (!(pkcs7 = PKCS7_new())) {
364
+ ossl_raise(ePKCS7Error, NULL);
365
+ }
366
+ SetPKCS7(obj, pkcs7);
367
+
368
+ return obj;
369
+ }
370
+
371
+ /*
372
+ * call-seq:
373
+ * PKCS7.new => pkcs7
374
+ * PKCS7.new(string) => pkcs7
375
+ *
376
+ * Many methods in this class aren't documented.
377
+ */
378
+ static VALUE
379
+ ossl_pkcs7_initialize(int argc, VALUE *argv, VALUE self)
380
+ {
381
+ PKCS7 *p7, *pkcs = DATA_PTR(self);
382
+ BIO *in;
383
+ VALUE arg;
384
+
385
+ if(rb_scan_args(argc, argv, "01", &arg) == 0)
386
+ return self;
387
+ arg = ossl_to_der_if_possible(arg);
388
+ in = ossl_obj2bio(arg);
389
+ p7 = PEM_read_bio_PKCS7(in, &pkcs, NULL, NULL);
390
+ if (!p7) {
391
+ OSSL_BIO_reset(in);
392
+ p7 = d2i_PKCS7_bio(in, &pkcs);
393
+ if (!p7) {
394
+ BIO_free(in);
395
+ PKCS7_free(pkcs);
396
+ DATA_PTR(self) = NULL;
397
+ ossl_raise(rb_eArgError, "Could not parse the PKCS7");
398
+ }
399
+ }
400
+ DATA_PTR(self) = pkcs;
401
+ BIO_free(in);
402
+ ossl_pkcs7_set_data(self, Qnil);
403
+ ossl_pkcs7_set_err_string(self, Qnil);
404
+
405
+ return self;
406
+ }
407
+
408
+ static VALUE
409
+ ossl_pkcs7_copy(VALUE self, VALUE other)
410
+ {
411
+ PKCS7 *a, *b, *pkcs7;
412
+
413
+ rb_check_frozen(self);
414
+ if (self == other) return self;
415
+
416
+ GetPKCS7(self, a);
417
+ SafeGetPKCS7(other, b);
418
+
419
+ pkcs7 = PKCS7_dup(b);
420
+ if (!pkcs7) {
421
+ ossl_raise(ePKCS7Error, NULL);
422
+ }
423
+ DATA_PTR(self) = pkcs7;
424
+ PKCS7_free(a);
425
+
426
+ return self;
427
+ }
428
+
429
+ static int
430
+ ossl_pkcs7_sym2typeid(VALUE sym)
431
+ {
432
+ //TAU
433
+ /*
434
+ int i, ret = Qnil;
435
+ const char *s;
436
+ size_t l;
437
+
438
+ static const struct {
439
+ char name[20];
440
+ int nid;
441
+ } p7_type_tab[] = {
442
+ { "signed", NID_pkcs7_signed },
443
+ { "data", NID_pkcs7_data },
444
+ { "signedAndEnveloped", NID_pkcs7_signedAndEnveloped },
445
+ { "enveloped", NID_pkcs7_enveloped },
446
+ { "encrypted", NID_pkcs7_encrypted },
447
+ { "digest", NID_pkcs7_digest },
448
+ };
449
+
450
+ if (SYMBOL_P(sym)) sym = rb_sym2str(sym);
451
+ else StringValue(sym);
452
+ RSTRING_GETMEM(sym, s, l);
453
+
454
+ for(i = 0; ; i++){
455
+ if(i == numberof(p7_type_tab))
456
+ ossl_raise(ePKCS7Error, "unknown type \"%"PRIsVALUE"\"", sym);
457
+ if(strlen(p7_type_tab[i].name) != l) continue;
458
+ if(strcmp(p7_type_tab[i].name, s) == 0){
459
+ ret = p7_type_tab[i].nid;
460
+ break;
461
+ }
462
+ }
463
+
464
+ return ret;
465
+ */
466
+
467
+ int i, ret = Qnil;
468
+ const char *s;
469
+
470
+ static struct {
471
+ const char *name;
472
+ int nid;
473
+ } p7_type_tab[] = {
474
+ { "signed", NID_pkcs7_signed },
475
+ { "data", NID_pkcs7_data },
476
+ { "signedAndEnveloped", NID_pkcs7_signedAndEnveloped },
477
+ { "enveloped", NID_pkcs7_enveloped },
478
+ { "encrypted", NID_pkcs7_encrypted },
479
+ { "digest", NID_pkcs7_digest },
480
+ { NULL, 0 },
481
+ };
482
+
483
+ if(TYPE(sym) == T_SYMBOL) s = rb_id2name(SYM2ID(sym));
484
+ else s = StringValuePtr(sym);
485
+ for(i = 0; i < numberof(p7_type_tab); i++){
486
+ if(p7_type_tab[i].name == NULL)
487
+ ossl_raise(ePKCS7Error, "unknown type \"%s\"", s);
488
+ if(strcmp(p7_type_tab[i].name, s) == 0){
489
+ ret = p7_type_tab[i].nid;
490
+ break;
491
+ }
492
+ }
493
+
494
+ return ret;
495
+ }
496
+
497
+ /*
498
+ * call-seq:
499
+ * pkcs7.type = type => type
500
+ */
501
+ static VALUE
502
+ ossl_pkcs7_set_type(VALUE self, VALUE type)
503
+ {
504
+ PKCS7 *p7;
505
+
506
+ GetPKCS7(self, p7);
507
+ if(!PKCS7_set_type(p7, ossl_pkcs7_sym2typeid(type)))
508
+ ossl_raise(ePKCS7Error, NULL);
509
+
510
+ return type;
511
+ }
512
+
513
+ /*
514
+ * call-seq:
515
+ * pkcs7.type => string or nil
516
+ */
517
+ static VALUE
518
+ ossl_pkcs7_get_type(VALUE self)
519
+ {
520
+ PKCS7 *p7;
521
+
522
+ GetPKCS7(self, p7);
523
+ if(PKCS7_type_is_signed(p7))
524
+ return ID2SYM(rb_intern("signed"));
525
+ if(PKCS7_type_is_encrypted(p7))
526
+ return ID2SYM(rb_intern("encrypted"));
527
+ if(PKCS7_type_is_enveloped(p7))
528
+ return ID2SYM(rb_intern("enveloped"));
529
+ if(PKCS7_type_is_signedAndEnveloped(p7))
530
+ return ID2SYM(rb_intern("signedAndEnveloped"));
531
+ if(PKCS7_type_is_data(p7))
532
+ return ID2SYM(rb_intern("data"));
533
+ return Qnil;
534
+ }
535
+
536
+ static VALUE
537
+ ossl_pkcs7_set_detached(VALUE self, VALUE flag)
538
+ {
539
+ PKCS7 *p7;
540
+
541
+ GetPKCS7(self, p7);
542
+ if(flag != Qtrue && flag != Qfalse)
543
+ ossl_raise(ePKCS7Error, "must specify a boolean");
544
+ if(!PKCS7_set_detached(p7, flag == Qtrue ? 1 : 0))
545
+ ossl_raise(ePKCS7Error, NULL);
546
+
547
+ return flag;
548
+ }
549
+
550
+ static VALUE
551
+ ossl_pkcs7_get_detached(VALUE self)
552
+ {
553
+ PKCS7 *p7;
554
+ GetPKCS7(self, p7);
555
+ return PKCS7_get_detached(p7) ? Qtrue : Qfalse;
556
+ }
557
+
558
+ static VALUE
559
+ ossl_pkcs7_detached_p(VALUE self)
560
+ {
561
+ PKCS7 *p7;
562
+ GetPKCS7(self, p7);
563
+ return PKCS7_is_detached(p7) ? Qtrue : Qfalse;
564
+ }
565
+
566
+ static VALUE
567
+ ossl_pkcs7_set_cipher(VALUE self, VALUE cipher)
568
+ {
569
+ PKCS7 *pkcs7;
570
+
571
+ GetPKCS7(self, pkcs7);
572
+ if (!PKCS7_set_cipher(pkcs7, GetCipherPtr(cipher))) {
573
+ ossl_raise(ePKCS7Error, NULL);
574
+ }
575
+
576
+ return cipher;
577
+ }
578
+
579
+ static VALUE
580
+ ossl_pkcs7_add_signer(VALUE self, VALUE signer)
581
+ {
582
+ PKCS7 *pkcs7;
583
+ PKCS7_SIGNER_INFO *p7si;
584
+
585
+ p7si = DupPKCS7SignerPtr(signer); /* NEED TO DUP */
586
+ GetPKCS7(self, pkcs7);
587
+ if (!PKCS7_add_signer(pkcs7, p7si)) {
588
+ PKCS7_SIGNER_INFO_free(p7si);
589
+ ossl_raise(ePKCS7Error, "Could not add signer.");
590
+ }
591
+ if (PKCS7_type_is_signed(pkcs7)){
592
+ PKCS7_add_signed_attribute(p7si, NID_pkcs9_contentType,
593
+ V_ASN1_OBJECT, OBJ_nid2obj(NID_pkcs7_data));
594
+ }
595
+
596
+ return self;
597
+ }
598
+
599
+ static VALUE
600
+ ossl_pkcs7_get_signer(VALUE self)
601
+ {
602
+ PKCS7 *pkcs7;
603
+ STACK_OF(PKCS7_SIGNER_INFO) *sk;
604
+ PKCS7_SIGNER_INFO *si;
605
+ int num, i;
606
+ VALUE ary;
607
+
608
+ GetPKCS7(self, pkcs7);
609
+ if (!(sk = PKCS7_get_signer_info(pkcs7))) {
610
+ OSSL_Debug("OpenSSL::PKCS7#get_signer_info == NULL!");
611
+ return rb_ary_new();
612
+ }
613
+ if ((num = sk_PKCS7_SIGNER_INFO_num(sk)) < 0) {
614
+ ossl_raise(ePKCS7Error, "Negative number of signers!");
615
+ }
616
+ ary = rb_ary_new2(num);
617
+ for (i=0; i<num; i++) {
618
+ si = sk_PKCS7_SIGNER_INFO_value(sk, i);
619
+ rb_ary_push(ary, ossl_pkcs7si_new(si));
620
+ }
621
+
622
+ return ary;
623
+ }
624
+
625
+ static VALUE
626
+ ossl_pkcs7_add_recipient(VALUE self, VALUE recip)
627
+ {
628
+ PKCS7 *pkcs7;
629
+ PKCS7_RECIP_INFO *ri;
630
+
631
+ ri = DupPKCS7RecipientPtr(recip); /* NEED TO DUP */
632
+ GetPKCS7(self, pkcs7);
633
+ if (!PKCS7_add_recipient_info(pkcs7, ri)) {
634
+ PKCS7_RECIP_INFO_free(ri);
635
+ ossl_raise(ePKCS7Error, "Could not add recipient.");
636
+ }
637
+
638
+ return self;
639
+ }
640
+
641
+ static VALUE
642
+ ossl_pkcs7_get_recipient(VALUE self)
643
+ {
644
+ PKCS7 *pkcs7;
645
+ STACK_OF(PKCS7_RECIP_INFO) *sk;
646
+ PKCS7_RECIP_INFO *si;
647
+ int num, i;
648
+ VALUE ary;
649
+
650
+ GetPKCS7(self, pkcs7);
651
+ if (PKCS7_type_is_enveloped(pkcs7))
652
+ sk = pkcs7->d.enveloped->recipientinfo;
653
+ else if (PKCS7_type_is_signedAndEnveloped(pkcs7))
654
+ sk = pkcs7->d.signed_and_enveloped->recipientinfo;
655
+ else sk = NULL;
656
+ if (!sk) return rb_ary_new();
657
+ if ((num = sk_PKCS7_RECIP_INFO_num(sk)) < 0) {
658
+ ossl_raise(ePKCS7Error, "Negative number of recipient!");
659
+ }
660
+ ary = rb_ary_new2(num);
661
+ for (i=0; i<num; i++) {
662
+ si = sk_PKCS7_RECIP_INFO_value(sk, i);
663
+ rb_ary_push(ary, ossl_pkcs7ri_new(si));
664
+ }
665
+
666
+ return ary;
667
+ }
668
+
669
+ static VALUE
670
+ ossl_pkcs7_add_certificate(VALUE self, VALUE cert)
671
+ {
672
+ PKCS7 *pkcs7;
673
+ X509 *x509;
674
+
675
+ GetPKCS7(self, pkcs7);
676
+ x509 = GetX509CertPtr(cert); /* NO NEED TO DUP */
677
+ if (!PKCS7_add_certificate(pkcs7, x509)){
678
+ ossl_raise(ePKCS7Error, NULL);
679
+ }
680
+
681
+ return self;
682
+ }
683
+
684
+ static STACK_OF(X509) *
685
+ pkcs7_get_certs(VALUE self)
686
+ {
687
+ PKCS7 *pkcs7;
688
+ STACK_OF(X509) *certs;
689
+ int i;
690
+
691
+ GetPKCS7(self, pkcs7);
692
+ i = OBJ_obj2nid(pkcs7->type);
693
+ switch(i){
694
+ case NID_pkcs7_signed:
695
+ certs = pkcs7->d.sign->cert;
696
+ break;
697
+ case NID_pkcs7_signedAndEnveloped:
698
+ certs = pkcs7->d.signed_and_enveloped->cert;
699
+ break;
700
+ default:
701
+ certs = NULL;
702
+ }
703
+
704
+ return certs;
705
+ }
706
+
707
+ static STACK_OF(X509_CRL) *
708
+ pkcs7_get_crls(VALUE self)
709
+ {
710
+ PKCS7 *pkcs7;
711
+ STACK_OF(X509_CRL) *crls;
712
+ int i;
713
+
714
+ GetPKCS7(self, pkcs7);
715
+ i = OBJ_obj2nid(pkcs7->type);
716
+ switch(i){
717
+ case NID_pkcs7_signed:
718
+ crls = pkcs7->d.sign->crl;
719
+ break;
720
+ case NID_pkcs7_signedAndEnveloped:
721
+ crls = pkcs7->d.signed_and_enveloped->crl;
722
+ break;
723
+ default:
724
+ crls = NULL;
725
+ }
726
+
727
+ return crls;
728
+ }
729
+
730
+ static VALUE
731
+ ossl_pkcs7_set_certs_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, arg))
732
+ {
733
+ return ossl_pkcs7_add_certificate(arg, i);
734
+ }
735
+
736
+ static VALUE
737
+ ossl_pkcs7_set_certificates(VALUE self, VALUE ary)
738
+ {
739
+ STACK_OF(X509) *certs;
740
+ X509 *cert;
741
+
742
+ certs = pkcs7_get_certs(self);
743
+ while((cert = sk_X509_pop(certs))) X509_free(cert);
744
+ rb_block_call(ary, rb_intern("each"), 0, 0, ossl_pkcs7_set_certs_i, self);
745
+
746
+ return ary;
747
+ }
748
+
749
+ static VALUE
750
+ ossl_pkcs7_get_certificates(VALUE self)
751
+ {
752
+ return ossl_x509_sk2ary(pkcs7_get_certs(self));
753
+ }
754
+
755
+ static VALUE
756
+ ossl_pkcs7_add_crl(VALUE self, VALUE crl)
757
+ {
758
+ PKCS7 *pkcs7;
759
+ X509_CRL *x509crl;
760
+
761
+ GetPKCS7(self, pkcs7); /* NO DUP needed! */
762
+ x509crl = GetX509CRLPtr(crl);
763
+ if (!PKCS7_add_crl(pkcs7, x509crl)) {
764
+ ossl_raise(ePKCS7Error, NULL);
765
+ }
766
+
767
+ return self;
768
+ }
769
+
770
+ static VALUE
771
+ ossl_pkcs7_set_crls_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, arg))
772
+ {
773
+ return ossl_pkcs7_add_crl(arg, i);
774
+ }
775
+
776
+ static VALUE
777
+ ossl_pkcs7_set_crls(VALUE self, VALUE ary)
778
+ {
779
+ STACK_OF(X509_CRL) *crls;
780
+ X509_CRL *crl;
781
+
782
+ crls = pkcs7_get_crls(self);
783
+ while((crl = sk_X509_CRL_pop(crls))) X509_CRL_free(crl);
784
+ rb_block_call(ary, rb_intern("each"), 0, 0, ossl_pkcs7_set_crls_i, self);
785
+
786
+ return ary;
787
+ }
788
+
789
+ static VALUE
790
+ ossl_pkcs7_get_crls(VALUE self)
791
+ {
792
+ return ossl_x509crl_sk2ary(pkcs7_get_crls(self));
793
+ }
794
+
795
+ static VALUE
796
+ ossl_pkcs7_verify(int argc, VALUE *argv, VALUE self)
797
+ {
798
+ VALUE certs, store, indata, flags;
799
+ STACK_OF(X509) *x509s;
800
+ X509_STORE *x509st;
801
+ int flg, ok, status = 0;
802
+ BIO *in, *out;
803
+ PKCS7 *p7;
804
+ VALUE data;
805
+ const char *msg;
806
+
807
+ GetPKCS7(self, p7);
808
+ rb_scan_args(argc, argv, "22", &certs, &store, &indata, &flags);
809
+ x509st = GetX509StorePtr(store);
810
+ flg = NIL_P(flags) ? 0 : NUM2INT(flags);
811
+ if(NIL_P(indata)) indata = ossl_pkcs7_get_data(self);
812
+ in = NIL_P(indata) ? NULL : ossl_obj2bio(indata);
813
+ if(NIL_P(certs)) x509s = NULL;
814
+ else{
815
+ x509s = ossl_protect_x509_ary2sk(certs, &status);
816
+ if(status){
817
+ BIO_free(in);
818
+ rb_jump_tag(status);
819
+ }
820
+ }
821
+ if(!(out = BIO_new(BIO_s_mem()))){
822
+ BIO_free(in);
823
+ sk_X509_pop_free(x509s, X509_free);
824
+ ossl_raise(ePKCS7Error, NULL);
825
+ }
826
+ ok = PKCS7_verify(p7, x509s, x509st, in, out, flg);
827
+ BIO_free(in);
828
+ sk_X509_pop_free(x509s, X509_free);
829
+ if (ok < 0) ossl_raise(ePKCS7Error, "PKCS7_verify");
830
+ msg = ERR_reason_error_string(ERR_get_error());
831
+ ossl_pkcs7_set_err_string(self, msg ? rb_str_new2(msg) : Qnil);
832
+ ossl_clear_error();
833
+ data = ossl_membio2str(out);
834
+ ossl_pkcs7_set_data(self, data);
835
+
836
+ return (ok == 1) ? Qtrue : Qfalse;
837
+ }
838
+
839
+ static VALUE
840
+ ossl_pkcs7_decrypt(int argc, VALUE *argv, VALUE self)
841
+ {
842
+ VALUE pkey, cert, flags;
843
+ EVP_PKEY *key;
844
+ X509 *x509;
845
+ int flg;
846
+ PKCS7 *p7;
847
+ BIO *out;
848
+ VALUE str;
849
+
850
+ rb_scan_args(argc, argv, "21", &pkey, &cert, &flags);
851
+ key = GetPrivPKeyPtr(pkey); /* NO NEED TO DUP */
852
+ x509 = GetX509CertPtr(cert); /* NO NEED TO DUP */
853
+ flg = NIL_P(flags) ? 0 : NUM2INT(flags);
854
+ GetPKCS7(self, p7);
855
+ if(!(out = BIO_new(BIO_s_mem())))
856
+ ossl_raise(ePKCS7Error, NULL);
857
+ if(!PKCS7_decrypt(p7, key, x509, out, flg)){
858
+ BIO_free(out);
859
+ ossl_raise(ePKCS7Error, NULL);
860
+ }
861
+ str = ossl_membio2str(out); /* out will be free */
862
+
863
+ return str;
864
+ }
865
+
866
+ static VALUE
867
+ ossl_pkcs7_add_data(VALUE self, VALUE data)
868
+ {
869
+ PKCS7 *pkcs7;
870
+ BIO *out, *in;
871
+ char buf[4096];
872
+ int len;
873
+
874
+ GetPKCS7(self, pkcs7);
875
+ if(PKCS7_type_is_signed(pkcs7)){
876
+ if(!PKCS7_content_new(pkcs7, NID_pkcs7_data))
877
+ ossl_raise(ePKCS7Error, NULL);
878
+ }
879
+ in = ossl_obj2bio(data);
880
+ if(!(out = PKCS7_dataInit(pkcs7, NULL))) goto err;
881
+ for(;;){
882
+ if((len = BIO_read(in, buf, sizeof(buf))) <= 0)
883
+ break;
884
+ if(BIO_write(out, buf, len) != len)
885
+ goto err;
886
+ }
887
+ if(!PKCS7_dataFinal(pkcs7, out)) goto err;
888
+ ossl_pkcs7_set_data(self, Qnil);
889
+
890
+ err:
891
+ BIO_free_all(out);
892
+ BIO_free(in);
893
+ if(ERR_peek_error()){
894
+ ossl_raise(ePKCS7Error, NULL);
895
+ }
896
+
897
+ return data;
898
+ }
899
+
900
+ static VALUE
901
+ ossl_pkcs7_to_der(VALUE self)
902
+ {
903
+ PKCS7 *pkcs7;
904
+ VALUE str;
905
+ long len;
906
+ unsigned char *p;
907
+
908
+ GetPKCS7(self, pkcs7);
909
+ if((len = i2d_PKCS7(pkcs7, NULL)) <= 0)
910
+ ossl_raise(ePKCS7Error, NULL);
911
+ str = rb_str_new(0, len);
912
+ p = (unsigned char *)RSTRING_PTR(str);
913
+ if(i2d_PKCS7(pkcs7, &p) <= 0)
914
+ ossl_raise(ePKCS7Error, NULL);
915
+ ossl_str_adjust(str, p);
916
+
917
+ return str;
918
+ }
919
+
920
+ static VALUE
921
+ ossl_pkcs7_to_pem(VALUE self)
922
+ {
923
+ PKCS7 *pkcs7;
924
+ BIO *out;
925
+ VALUE str;
926
+
927
+ GetPKCS7(self, pkcs7);
928
+ if (!(out = BIO_new(BIO_s_mem()))) {
929
+ ossl_raise(ePKCS7Error, NULL);
930
+ }
931
+ if (!PEM_write_bio_PKCS7(out, pkcs7)) {
932
+ BIO_free(out);
933
+ ossl_raise(ePKCS7Error, NULL);
934
+ }
935
+ str = ossl_membio2str(out);
936
+
937
+ return str;
938
+ }
939
+
940
+ /*
941
+ * SIGNER INFO
942
+ */
943
+ static VALUE
944
+ ossl_pkcs7si_alloc(VALUE klass)
945
+ {
946
+ PKCS7_SIGNER_INFO *p7si;
947
+ VALUE obj;
948
+
949
+ obj = NewPKCS7si(klass);
950
+ if (!(p7si = PKCS7_SIGNER_INFO_new())) {
951
+ ossl_raise(ePKCS7Error, NULL);
952
+ }
953
+ SetPKCS7si(obj, p7si);
954
+
955
+ return obj;
956
+ }
957
+
958
+ static VALUE
959
+ ossl_pkcs7si_initialize(VALUE self, VALUE cert, VALUE key, VALUE digest)
960
+ {
961
+ PKCS7_SIGNER_INFO *p7si;
962
+ EVP_PKEY *pkey;
963
+ X509 *x509;
964
+ const EVP_MD *md;
965
+
966
+ pkey = GetPrivPKeyPtr(key); /* NO NEED TO DUP */
967
+ x509 = GetX509CertPtr(cert); /* NO NEED TO DUP */
968
+ md = GetDigestPtr(digest);
969
+ GetPKCS7si(self, p7si);
970
+ if (!(PKCS7_SIGNER_INFO_set(p7si, x509, pkey, (EVP_MD*)md))) {
971
+ ossl_raise(ePKCS7Error, NULL);
972
+ }
973
+
974
+ return self;
975
+ }
976
+
977
+ static VALUE
978
+ ossl_pkcs7si_get_issuer(VALUE self)
979
+ {
980
+ PKCS7_SIGNER_INFO *p7si;
981
+
982
+ GetPKCS7si(self, p7si);
983
+
984
+ return ossl_x509name_new(p7si->issuer_and_serial->issuer);
985
+ }
986
+
987
+ static VALUE
988
+ ossl_pkcs7si_get_serial(VALUE self)
989
+ {
990
+ PKCS7_SIGNER_INFO *p7si;
991
+
992
+ GetPKCS7si(self, p7si);
993
+
994
+ return asn1integer_to_num(p7si->issuer_and_serial->serial);
995
+ }
996
+
997
+ static VALUE
998
+ ossl_pkcs7si_get_signed_time(VALUE self)
999
+ {
1000
+ PKCS7_SIGNER_INFO *p7si;
1001
+ ASN1_TYPE *asn1obj;
1002
+
1003
+ GetPKCS7si(self, p7si);
1004
+
1005
+ if (!(asn1obj = PKCS7_get_signed_attribute(p7si, NID_pkcs9_signingTime))) {
1006
+ ossl_raise(ePKCS7Error, NULL);
1007
+ }
1008
+ if (asn1obj->type == V_ASN1_UTCTIME) {
1009
+ return asn1time_to_time(asn1obj->value.utctime);
1010
+ }
1011
+ /*
1012
+ * OR
1013
+ * ossl_raise(ePKCS7Error, "...");
1014
+ * ?
1015
+ */
1016
+
1017
+ return Qnil;
1018
+ }
1019
+
1020
+ /*
1021
+ * RECIPIENT INFO
1022
+ */
1023
+ static VALUE
1024
+ ossl_pkcs7ri_alloc(VALUE klass)
1025
+ {
1026
+ PKCS7_RECIP_INFO *p7ri;
1027
+ VALUE obj;
1028
+
1029
+ obj = NewPKCS7ri(klass);
1030
+ if (!(p7ri = PKCS7_RECIP_INFO_new())) {
1031
+ ossl_raise(ePKCS7Error, NULL);
1032
+ }
1033
+ SetPKCS7ri(obj, p7ri);
1034
+
1035
+ return obj;
1036
+ }
1037
+
1038
+ static VALUE
1039
+ ossl_pkcs7ri_initialize(VALUE self, VALUE cert)
1040
+ {
1041
+ PKCS7_RECIP_INFO *p7ri;
1042
+ X509 *x509;
1043
+
1044
+ x509 = GetX509CertPtr(cert); /* NO NEED TO DUP */
1045
+ GetPKCS7ri(self, p7ri);
1046
+ if (!PKCS7_RECIP_INFO_set(p7ri, x509)) {
1047
+ ossl_raise(ePKCS7Error, NULL);
1048
+ }
1049
+
1050
+ return self;
1051
+ }
1052
+
1053
+ static VALUE
1054
+ ossl_pkcs7ri_get_issuer(VALUE self)
1055
+ {
1056
+ PKCS7_RECIP_INFO *p7ri;
1057
+
1058
+ GetPKCS7ri(self, p7ri);
1059
+
1060
+ return ossl_x509name_new(p7ri->issuer_and_serial->issuer);
1061
+ }
1062
+
1063
+ static VALUE
1064
+ ossl_pkcs7ri_get_serial(VALUE self)
1065
+ {
1066
+ PKCS7_RECIP_INFO *p7ri;
1067
+
1068
+ GetPKCS7ri(self, p7ri);
1069
+
1070
+ return asn1integer_to_num(p7ri->issuer_and_serial->serial);
1071
+ }
1072
+
1073
+ static VALUE
1074
+ ossl_pkcs7ri_get_enc_key(VALUE self)
1075
+ {
1076
+ PKCS7_RECIP_INFO *p7ri;
1077
+
1078
+ GetPKCS7ri(self, p7ri);
1079
+
1080
+ return asn1str_to_str(p7ri->enc_key);
1081
+ }
1082
+
1083
+ /*
1084
+ * INIT
1085
+ */
1086
+ void
1087
+ Init_ossl_pkcs7(void)
1088
+ {
1089
+ #if 0
1090
+ mOSSL = rb_define_module("OpenSSL");
1091
+ eOSSLError = rb_define_class_under(mOSSL, "OpenSSLError", rb_eStandardError);
1092
+ #endif
1093
+
1094
+ cPKCS7 = rb_define_class_under(mOSSL, "PKCS7", rb_cObject);
1095
+ ePKCS7Error = rb_define_class_under(cPKCS7, "PKCS7Error", eOSSLError);
1096
+ rb_define_singleton_method(cPKCS7, "read_smime", ossl_pkcs7_s_read_smime, 1);
1097
+ rb_define_singleton_method(cPKCS7, "write_smime", ossl_pkcs7_s_write_smime, -1);
1098
+ rb_define_singleton_method(cPKCS7, "sign", ossl_pkcs7_s_sign, -1);
1099
+ rb_define_singleton_method(cPKCS7, "encrypt", ossl_pkcs7_s_encrypt, -1);
1100
+ rb_attr(cPKCS7, rb_intern("data"), 1, 0, Qfalse);
1101
+ rb_attr(cPKCS7, rb_intern("error_string"), 1, 1, Qfalse);
1102
+ rb_define_alloc_func(cPKCS7, ossl_pkcs7_alloc);
1103
+ rb_define_copy_func(cPKCS7, ossl_pkcs7_copy);
1104
+ rb_define_method(cPKCS7, "initialize", ossl_pkcs7_initialize, -1);
1105
+ rb_define_method(cPKCS7, "type=", ossl_pkcs7_set_type, 1);
1106
+ rb_define_method(cPKCS7, "type", ossl_pkcs7_get_type, 0);
1107
+ rb_define_method(cPKCS7, "detached=", ossl_pkcs7_set_detached, 1);
1108
+ rb_define_method(cPKCS7, "detached", ossl_pkcs7_get_detached, 0);
1109
+ rb_define_method(cPKCS7, "detached?", ossl_pkcs7_detached_p, 0);
1110
+ rb_define_method(cPKCS7, "cipher=", ossl_pkcs7_set_cipher, 1);
1111
+ rb_define_method(cPKCS7, "add_signer", ossl_pkcs7_add_signer, 1);
1112
+ rb_define_method(cPKCS7, "signers", ossl_pkcs7_get_signer, 0);
1113
+ rb_define_method(cPKCS7, "add_recipient", ossl_pkcs7_add_recipient, 1);
1114
+ rb_define_method(cPKCS7, "recipients", ossl_pkcs7_get_recipient, 0);
1115
+ rb_define_method(cPKCS7, "add_certificate", ossl_pkcs7_add_certificate, 1);
1116
+ rb_define_method(cPKCS7, "certificates=", ossl_pkcs7_set_certificates, 1);
1117
+ rb_define_method(cPKCS7, "certificates", ossl_pkcs7_get_certificates, 0);
1118
+ rb_define_method(cPKCS7, "add_crl", ossl_pkcs7_add_crl, 1);
1119
+ rb_define_method(cPKCS7, "crls=", ossl_pkcs7_set_crls, 1);
1120
+ rb_define_method(cPKCS7, "crls", ossl_pkcs7_get_crls, 0);
1121
+ rb_define_method(cPKCS7, "add_data", ossl_pkcs7_add_data, 1);
1122
+ rb_define_alias(cPKCS7, "data=", "add_data");
1123
+ rb_define_method(cPKCS7, "verify", ossl_pkcs7_verify, -1);
1124
+ rb_define_method(cPKCS7, "decrypt", ossl_pkcs7_decrypt, -1);
1125
+ rb_define_method(cPKCS7, "to_pem", ossl_pkcs7_to_pem, 0);
1126
+ rb_define_alias(cPKCS7, "to_s", "to_pem");
1127
+ rb_define_method(cPKCS7, "to_der", ossl_pkcs7_to_der, 0);
1128
+
1129
+ cPKCS7Signer = rb_define_class_under(cPKCS7, "SignerInfo", rb_cObject);
1130
+ rb_define_const(cPKCS7, "Signer", cPKCS7Signer);
1131
+ rb_define_alloc_func(cPKCS7Signer, ossl_pkcs7si_alloc);
1132
+ rb_define_method(cPKCS7Signer, "initialize", ossl_pkcs7si_initialize,3);
1133
+ rb_define_method(cPKCS7Signer, "issuer", ossl_pkcs7si_get_issuer, 0);
1134
+ rb_define_alias(cPKCS7Signer, "name", "issuer");
1135
+ rb_define_method(cPKCS7Signer, "serial", ossl_pkcs7si_get_serial,0);
1136
+ rb_define_method(cPKCS7Signer,"signed_time",ossl_pkcs7si_get_signed_time,0);
1137
+
1138
+ cPKCS7Recipient = rb_define_class_under(cPKCS7,"RecipientInfo",rb_cObject);
1139
+ rb_define_alloc_func(cPKCS7Recipient, ossl_pkcs7ri_alloc);
1140
+ rb_define_method(cPKCS7Recipient, "initialize", ossl_pkcs7ri_initialize,1);
1141
+ rb_define_method(cPKCS7Recipient, "issuer", ossl_pkcs7ri_get_issuer,0);
1142
+ rb_define_method(cPKCS7Recipient, "serial", ossl_pkcs7ri_get_serial,0);
1143
+ rb_define_method(cPKCS7Recipient, "enc_key", ossl_pkcs7ri_get_enc_key,0);
1144
+
1145
+ #define DefPKCS7Const(x) rb_define_const(cPKCS7, #x, INT2NUM(PKCS7_##x))
1146
+
1147
+ DefPKCS7Const(TEXT);
1148
+ DefPKCS7Const(NOCERTS);
1149
+ DefPKCS7Const(NOSIGS);
1150
+ DefPKCS7Const(NOCHAIN);
1151
+ DefPKCS7Const(NOINTERN);
1152
+ DefPKCS7Const(NOVERIFY);
1153
+ DefPKCS7Const(DETACHED);
1154
+ DefPKCS7Const(BINARY);
1155
+ DefPKCS7Const(NOATTR);
1156
+ DefPKCS7Const(NOSMIMECAP);
1157
+ }