glib2 1.1.8-x86-mingw32 → 1.1.9-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1810) hide show
  1. data/Rakefile +51 -9
  2. data/ext/glib2/extconf.rb +2 -2
  3. data/ext/glib2/rbglib.h +3 -2
  4. data/ext/glib2/rbglib_win32.c +0 -17
  5. data/ext/glib2/rbgobj_type.c +10 -5
  6. data/ext/glib2/rbgobject.h +3 -1
  7. data/lib/1.8/glib2.so +0 -0
  8. data/lib/1.9/glib2.so +0 -0
  9. data/lib/gnome2-win32-binary-build-task.rb +42 -15
  10. data/vendor/local/bin/certtool.exe +0 -0
  11. data/vendor/local/bin/danetool.exe +0 -0
  12. data/vendor/local/bin/gdbus-codegen +41 -0
  13. data/vendor/local/bin/gdbus.exe +0 -0
  14. data/vendor/local/bin/gio-querymodules.exe +0 -0
  15. data/vendor/local/bin/glib-compile-resources.exe +0 -0
  16. data/vendor/local/bin/glib-compile-schemas.exe +0 -0
  17. data/vendor/local/bin/glib-genmarshal.exe +0 -0
  18. data/vendor/local/bin/glib-gettextize +3 -3
  19. data/vendor/local/bin/glib-mkenums +41 -14
  20. data/vendor/local/bin/gnutls-cli-debug.exe +0 -0
  21. data/vendor/local/bin/gnutls-cli.exe +0 -0
  22. data/vendor/local/bin/gnutls-serv.exe +0 -0
  23. data/vendor/local/bin/gobject-query.exe +0 -0
  24. data/vendor/local/bin/gresource.exe +0 -0
  25. data/vendor/local/bin/gsettings.exe +0 -0
  26. data/vendor/local/bin/gspawn-win32-helper-console.exe +0 -0
  27. data/vendor/local/bin/gspawn-win32-helper.exe +0 -0
  28. data/vendor/local/bin/libffi-5.dll +0 -0
  29. data/vendor/local/bin/libgio-2.0-0.dll +0 -0
  30. data/vendor/local/bin/libglib-2.0-0.dll +0 -0
  31. data/vendor/local/bin/libgmodule-2.0-0.dll +0 -0
  32. data/vendor/local/bin/libgmp-10.dll +0 -0
  33. data/vendor/local/bin/libgnutls-28.def +807 -0
  34. data/vendor/local/bin/libgnutls-28.dll +0 -0
  35. data/vendor/local/bin/libgnutls-openssl-27.dll +0 -0
  36. data/vendor/local/bin/libgnutls-openssl-28.def +304 -0
  37. data/vendor/local/bin/libgnutlsxx-28.dll +0 -0
  38. data/vendor/local/bin/libgobject-2.0-0.dll +0 -0
  39. data/vendor/local/bin/libgthread-2.0-0.dll +0 -0
  40. data/vendor/local/bin/libhogweed-2-2.dll +0 -0
  41. data/vendor/local/bin/libnettle-4-4.dll +0 -0
  42. data/vendor/local/bin/nettle-hash.exe +0 -0
  43. data/vendor/local/bin/nettle-lfib-stream.exe +0 -0
  44. data/vendor/local/bin/ocsptool.exe +0 -0
  45. data/vendor/local/bin/pkcs1-conv.exe +0 -0
  46. data/vendor/local/bin/psktool.exe +0 -0
  47. data/vendor/local/bin/sexp-conv.exe +0 -0
  48. data/vendor/local/bin/srptool.exe +0 -0
  49. data/vendor/local/bin/zlib1.dll +0 -0
  50. data/vendor/local/include/glib-2.0/gio/gaction.h +5 -18
  51. data/vendor/local/include/glib-2.0/gio/gactiongroup.h +19 -21
  52. data/vendor/local/include/glib-2.0/gio/gactiongroupexporter.h +47 -0
  53. data/vendor/local/include/glib-2.0/gio/gactionmap.h +97 -0
  54. data/vendor/local/include/glib-2.0/gio/gappinfo.h +48 -30
  55. data/vendor/local/include/glib-2.0/gio/gapplication.h +24 -31
  56. data/vendor/local/include/glib-2.0/gio/gapplicationcommandline.h +4 -16
  57. data/vendor/local/include/glib-2.0/gio/gasyncresult.h +11 -0
  58. data/vendor/local/include/glib-2.0/gio/gcontenttype.h +5 -0
  59. data/vendor/local/include/glib-2.0/gio/gdatainputstream.h +10 -0
  60. data/vendor/local/include/glib-2.0/gio/gdbusactiongroup.h +55 -0
  61. data/vendor/local/include/glib-2.0/gio/gdbusauthobserver.h +4 -0
  62. data/vendor/local/include/glib-2.0/gio/gdbusconnection.h +37 -0
  63. data/vendor/local/include/glib-2.0/gio/gdbusinterface.h +79 -0
  64. data/vendor/local/include/glib-2.0/gio/gdbusinterfaceskeleton.h +115 -0
  65. data/vendor/local/include/glib-2.0/gio/gdbusintrospection.h +25 -15
  66. data/vendor/local/include/glib-2.0/gio/gdbusmenumodel.h +45 -0
  67. data/vendor/local/include/glib-2.0/gio/gdbusmethodinvocation.h +5 -0
  68. data/vendor/local/include/glib-2.0/gio/gdbusnamewatching.h +6 -1
  69. data/vendor/local/include/glib-2.0/gio/gdbusobject.h +76 -0
  70. data/vendor/local/include/glib-2.0/gio/gdbusobjectmanager.h +91 -0
  71. data/vendor/local/include/glib-2.0/gio/gdbusobjectmanagerclient.h +137 -0
  72. data/vendor/local/include/glib-2.0/gio/gdbusobjectmanagerserver.h +87 -0
  73. data/vendor/local/include/glib-2.0/gio/gdbusobjectproxy.h +78 -0
  74. data/vendor/local/include/glib-2.0/gio/gdbusobjectskeleton.h +91 -0
  75. data/vendor/local/include/glib-2.0/gio/gdbusproxy.h +23 -0
  76. data/vendor/local/include/glib-2.0/gio/gdbusutils.h +5 -0
  77. data/vendor/local/include/glib-2.0/gio/gdrive.h +17 -6
  78. data/vendor/local/include/glib-2.0/gio/gfile.h +48 -20
  79. data/vendor/local/include/glib-2.0/gio/gfileattribute.h +3 -1
  80. data/vendor/local/include/glib-2.0/gio/gfileenumerator.h +3 -0
  81. data/vendor/local/include/glib-2.0/gio/gfileinfo.h +36 -3
  82. data/vendor/local/include/glib-2.0/gio/ginetaddress.h +3 -0
  83. data/vendor/local/include/glib-2.0/gio/ginetaddressmask.h +87 -0
  84. data/vendor/local/include/glib-2.0/gio/ginetsocketaddress.h +9 -5
  85. data/vendor/local/include/glib-2.0/gio/ginputstream.h +16 -0
  86. data/vendor/local/include/glib-2.0/gio/gio.h +30 -3
  87. data/vendor/local/include/glib-2.0/gio/gioenums.h +286 -14
  88. data/vendor/local/include/glib-2.0/gio/gioenumtypes.h +26 -0
  89. data/vendor/local/include/glib-2.0/gio/giomodule.h +18 -1
  90. data/vendor/local/include/glib-2.0/gio/gioscheduler.h +4 -0
  91. data/vendor/local/include/glib-2.0/gio/giotypes.h +60 -10
  92. data/vendor/local/include/glib-2.0/gio/gmemoryinputstream.h +6 -0
  93. data/vendor/local/include/glib-2.0/gio/gmemoryoutputstream.h +5 -0
  94. data/vendor/local/include/glib-2.0/gio/gmenu.h +177 -0
  95. data/vendor/local/include/glib-2.0/gio/gmenuexporter.h +42 -0
  96. data/vendor/local/include/glib-2.0/gio/gmenumodel.h +214 -0
  97. data/vendor/local/include/glib-2.0/gio/gmount.h +16 -4
  98. data/vendor/local/include/glib-2.0/gio/gmountoperation.h +5 -1
  99. data/vendor/local/include/glib-2.0/gio/gnetworking.h +83 -0
  100. data/vendor/local/include/glib-2.0/gio/gnetworkmonitor.h +91 -0
  101. data/vendor/local/include/glib-2.0/gio/goutputstream.h +16 -0
  102. data/vendor/local/include/glib-2.0/gio/gpollableinputstream.h +6 -5
  103. data/vendor/local/include/glib-2.0/gio/gpollableoutputstream.h +6 -2
  104. data/vendor/local/include/glib-2.0/gio/gpollableutils.h +65 -0
  105. data/vendor/local/include/glib-2.0/gio/gproxy.h +2 -1
  106. data/vendor/local/include/glib-2.0/gio/gproxyaddress.h +5 -0
  107. data/vendor/local/include/glib-2.0/gio/gproxyresolver.h +0 -5
  108. data/vendor/local/include/glib-2.0/gio/gremoteactiongroup.h +77 -0
  109. data/vendor/local/include/glib-2.0/gio/gresolver.h +35 -3
  110. data/vendor/local/include/glib-2.0/gio/gresource.h +131 -0
  111. data/vendor/local/include/glib-2.0/gio/gseekable.h +1 -1
  112. data/vendor/local/include/glib-2.0/gio/gsettings.h +26 -9
  113. data/vendor/local/include/glib-2.0/gio/gsettingsschema.h +65 -0
  114. data/vendor/local/include/glib-2.0/gio/gsimpleaction.h +4 -42
  115. data/vendor/local/include/glib-2.0/gio/gsimpleactiongroup.h +7 -0
  116. data/vendor/local/include/glib-2.0/gio/gsimpleasyncresult.h +3 -0
  117. data/vendor/local/include/glib-2.0/gio/gsocket.h +57 -0
  118. data/vendor/local/include/glib-2.0/gio/gsocketclient.h +5 -1
  119. data/vendor/local/include/glib-2.0/gio/gsocketconnection.h +19 -0
  120. data/vendor/local/include/glib-2.0/gio/gtask.h +160 -0
  121. data/vendor/local/include/glib-2.0/gio/gtestdbus.h +74 -0
  122. data/vendor/local/include/glib-2.0/gio/gtlsbackend.h +18 -20
  123. data/vendor/local/include/glib-2.0/gio/gtlscertificate.h +4 -0
  124. data/vendor/local/include/glib-2.0/gio/gtlsclientconnection.h +0 -8
  125. data/vendor/local/include/glib-2.0/gio/gtlsconnection.h +12 -10
  126. data/vendor/local/include/glib-2.0/gio/gtlsdatabase.h +235 -0
  127. data/vendor/local/include/glib-2.0/gio/gtlsfiledatabase.h +56 -0
  128. data/vendor/local/include/glib-2.0/gio/gtlsinteraction.h +102 -0
  129. data/vendor/local/include/glib-2.0/gio/gtlspassword.h +101 -0
  130. data/vendor/local/include/glib-2.0/gio/gvolume.h +36 -8
  131. data/vendor/local/include/glib-2.0/gio/gvolumemonitor.h +1 -2
  132. data/vendor/local/include/glib-2.0/glib-object.h +14 -14
  133. data/vendor/local/include/glib-2.0/glib-unix.h +90 -0
  134. data/vendor/local/include/glib-2.0/glib.h +16 -3
  135. data/vendor/local/include/glib-2.0/glib/deprecated/gallocator.h +90 -0
  136. data/vendor/local/include/glib-2.0/glib/deprecated/gcache.h +73 -0
  137. data/vendor/local/include/glib-2.0/glib/deprecated/gcompletion.h +85 -0
  138. data/vendor/local/include/glib-2.0/glib/deprecated/gmain.h +138 -0
  139. data/vendor/local/include/glib-2.0/glib/deprecated/grel.h +107 -0
  140. data/vendor/local/include/glib-2.0/glib/deprecated/gthread.h +286 -0
  141. data/vendor/local/include/glib-2.0/glib/galloca.h +1 -1
  142. data/vendor/local/include/glib-2.0/glib/garray.h +9 -1
  143. data/vendor/local/include/glib-2.0/glib/gasyncqueue.h +30 -59
  144. data/vendor/local/include/glib-2.0/glib/gatomic.h +197 -82
  145. data/vendor/local/include/glib-2.0/glib/gbacktrace.h +8 -12
  146. data/vendor/local/include/glib-2.0/glib/gbase64.h +1 -1
  147. data/vendor/local/include/glib-2.0/glib/gbitlock.h +30 -1
  148. data/vendor/local/include/glib-2.0/glib/gbookmarkfile.h +1 -1
  149. data/vendor/local/include/glib-2.0/glib/gbytes.h +78 -0
  150. data/vendor/local/include/glib-2.0/glib/gcharset.h +40 -0
  151. data/vendor/local/include/glib-2.0/glib/gchecksum.h +10 -3
  152. data/vendor/local/include/glib-2.0/glib/gconvert.h +26 -11
  153. data/vendor/local/include/glib-2.0/glib/gdataset.h +19 -4
  154. data/vendor/local/include/glib-2.0/glib/gdate.h +2 -1
  155. data/vendor/local/include/glib-2.0/glib/gdatetime.h +1 -1
  156. data/vendor/local/include/glib-2.0/glib/gdir.h +12 -10
  157. data/vendor/local/include/glib-2.0/glib/genviron.h +69 -0
  158. data/vendor/local/include/glib-2.0/glib/gerror.h +10 -1
  159. data/vendor/local/include/glib-2.0/glib/gfileutils.h +94 -40
  160. data/vendor/local/include/glib-2.0/glib/ggettext.h +59 -0
  161. data/vendor/local/include/glib-2.0/glib/ghash.h +63 -82
  162. data/vendor/local/include/glib-2.0/glib/ghmac.h +80 -0
  163. data/vendor/local/include/glib-2.0/glib/ghook.h +1 -1
  164. data/vendor/local/include/glib-2.0/glib/giochannel.h +38 -20
  165. data/vendor/local/include/glib-2.0/glib/gkeyfile.h +3 -1
  166. data/vendor/local/include/glib-2.0/glib/glist.h +8 -6
  167. data/vendor/local/include/glib-2.0/glib/gmacros.h +66 -7
  168. data/vendor/local/include/glib-2.0/glib/gmain.h +53 -112
  169. data/vendor/local/include/glib-2.0/glib/gmappedfile.h +8 -3
  170. data/vendor/local/include/glib-2.0/glib/gmarkup.h +3 -3
  171. data/vendor/local/include/glib-2.0/glib/gmem.h +25 -49
  172. data/vendor/local/include/glib-2.0/glib/gmessages.h +76 -15
  173. data/vendor/local/include/glib-2.0/glib/gnode.h +14 -6
  174. data/vendor/local/include/glib-2.0/glib/goption.h +3 -3
  175. data/vendor/local/include/glib-2.0/glib/gpattern.h +1 -1
  176. data/vendor/local/include/glib-2.0/glib/gpoll.h +3 -0
  177. data/vendor/local/include/glib-2.0/glib/gprimes.h +1 -1
  178. data/vendor/local/include/glib-2.0/glib/gqsort.h +1 -1
  179. data/vendor/local/include/glib-2.0/glib/gquark.h +16 -4
  180. data/vendor/local/include/glib-2.0/glib/gqueue.h +62 -37
  181. data/vendor/local/include/glib-2.0/glib/grand.h +1 -1
  182. data/vendor/local/include/glib-2.0/glib/gregex.h +116 -26
  183. data/vendor/local/include/glib-2.0/glib/gscanner.h +9 -3
  184. data/vendor/local/include/glib-2.0/glib/gsequence.h +1 -1
  185. data/vendor/local/include/glib-2.0/glib/gshell.h +1 -1
  186. data/vendor/local/include/glib-2.0/glib/gslice.h +9 -1
  187. data/vendor/local/include/glib-2.0/glib/gslist.h +7 -6
  188. data/vendor/local/include/glib-2.0/glib/gspawn.h +164 -13
  189. data/vendor/local/include/glib-2.0/glib/gstdio.h +3 -1
  190. data/vendor/local/include/glib-2.0/glib/gstrfuncs.h +15 -37
  191. data/vendor/local/include/glib-2.0/glib/gstring.h +84 -104
  192. data/vendor/local/include/glib-2.0/glib/gstringchunk.h +53 -0
  193. data/vendor/local/include/glib-2.0/glib/gtestutils.h +23 -1
  194. data/vendor/local/include/glib-2.0/glib/gthread.h +172 -325
  195. data/vendor/local/include/glib-2.0/glib/gthreadpool.h +26 -60
  196. data/vendor/local/include/glib-2.0/glib/gtimer.h +1 -1
  197. data/vendor/local/include/glib-2.0/glib/gtimezone.h +3 -3
  198. data/vendor/local/include/glib-2.0/glib/gtrashstack.h +103 -0
  199. data/vendor/local/include/glib-2.0/glib/gtree.h +2 -3
  200. data/vendor/local/include/glib-2.0/glib/gtypes.h +50 -18
  201. data/vendor/local/include/glib-2.0/glib/gunicode.h +420 -95
  202. data/vendor/local/include/glib-2.0/glib/gurifuncs.h +2 -2
  203. data/vendor/local/include/glib-2.0/glib/gutils.h +68 -192
  204. data/vendor/local/include/glib-2.0/glib/gvariant.h +25 -3
  205. data/vendor/local/include/glib-2.0/glib/gvarianttype.h +20 -2
  206. data/vendor/local/include/glib-2.0/glib/gversion.h +56 -0
  207. data/vendor/local/include/glib-2.0/glib/gversionmacros.h +274 -0
  208. data/vendor/local/include/glib-2.0/glib/gwin32.h +15 -4
  209. data/vendor/local/include/glib-2.0/gmodule.h +14 -8
  210. data/vendor/local/include/glib-2.0/gobject/gbinding.h +2 -2
  211. data/vendor/local/include/glib-2.0/gobject/gboxed.h +41 -175
  212. data/vendor/local/include/glib-2.0/gobject/gclosure.h +40 -10
  213. data/vendor/local/include/glib-2.0/gobject/glib-types.h +310 -0
  214. data/vendor/local/include/glib-2.0/gobject/gmarshal.h +338 -183
  215. data/vendor/local/include/glib-2.0/gobject/gobject.h +56 -28
  216. data/vendor/local/include/glib-2.0/gobject/gobjectnotifyqueue.c +6 -0
  217. data/vendor/local/include/glib-2.0/gobject/gparam.h +11 -12
  218. data/vendor/local/include/glib-2.0/gobject/gparamspecs.h +6 -0
  219. data/vendor/local/include/glib-2.0/gobject/gsignal.h +42 -9
  220. data/vendor/local/include/glib-2.0/gobject/gsourceclosure.h +1 -16
  221. data/vendor/local/include/glib-2.0/gobject/gtype.h +28 -31
  222. data/vendor/local/include/glib-2.0/gobject/gtypemodule.h +1 -1
  223. data/vendor/local/include/glib-2.0/gobject/gvalue.h +21 -5
  224. data/vendor/local/include/glib-2.0/gobject/gvaluearray.h +31 -2
  225. data/vendor/local/include/glib-2.0/gobject/gvaluecollector.h +32 -3
  226. data/vendor/local/include/glib-2.0/gobject/gvaluetypes.h +12 -8
  227. data/vendor/local/include/gmp.h +2229 -0
  228. data/vendor/local/include/gnutls/abstract.h +401 -0
  229. data/vendor/local/include/gnutls/compat.h +290 -56
  230. data/vendor/local/include/gnutls/crypto.h +80 -47
  231. data/vendor/local/include/gnutls/dtls.h +88 -0
  232. data/vendor/local/include/gnutls/gnutls.h +1357 -550
  233. data/vendor/local/include/gnutls/gnutlsxx.h +400 -362
  234. data/vendor/local/include/gnutls/ocsp.h +259 -0
  235. data/vendor/local/include/gnutls/openpgp.h +235 -147
  236. data/vendor/local/include/gnutls/openssl.h +22 -24
  237. data/vendor/local/include/gnutls/pkcs11.h +322 -0
  238. data/vendor/local/include/gnutls/pkcs12.h +66 -38
  239. data/vendor/local/include/gnutls/tpm.h +74 -0
  240. data/vendor/local/include/gnutls/x509.h +771 -348
  241. data/vendor/local/include/nettle/aes.h +85 -0
  242. data/vendor/local/include/nettle/arcfour.h +66 -0
  243. data/vendor/local/include/nettle/arctwo.h +82 -0
  244. data/vendor/local/include/nettle/asn1.h +144 -0
  245. data/vendor/local/include/nettle/base16.h +106 -0
  246. data/vendor/local/include/nettle/base64.h +153 -0
  247. data/vendor/local/include/nettle/bignum.h +121 -0
  248. data/vendor/local/include/nettle/blowfish.h +76 -0
  249. data/vendor/local/include/nettle/buffer.h +98 -0
  250. data/vendor/local/include/nettle/camellia.h +82 -0
  251. data/vendor/local/include/nettle/cast128.h +77 -0
  252. data/vendor/local/include/nettle/cbc.h +76 -0
  253. data/vendor/local/include/nettle/ctr.h +62 -0
  254. data/vendor/local/include/nettle/des-compat.h +154 -0
  255. data/vendor/local/include/nettle/des.h +111 -0
  256. data/vendor/local/include/nettle/dsa.h +292 -0
  257. data/vendor/local/include/nettle/gcm.h +186 -0
  258. data/vendor/local/include/nettle/hmac.h +201 -0
  259. data/vendor/local/include/nettle/knuth-lfib.h +75 -0
  260. data/vendor/local/include/nettle/macros.h +216 -0
  261. data/vendor/local/include/nettle/md2.h +69 -0
  262. data/vendor/local/include/nettle/md4.h +73 -0
  263. data/vendor/local/include/nettle/md5-compat.h +50 -0
  264. data/vendor/local/include/nettle/md5.h +76 -0
  265. data/vendor/local/include/nettle/memxor.h +22 -0
  266. data/vendor/local/include/nettle/nettle-meta.h +227 -0
  267. data/vendor/local/include/nettle/nettle-stdint.h +286 -0
  268. data/vendor/local/include/nettle/nettle-types.h +92 -0
  269. data/vendor/local/include/nettle/pgp.h +240 -0
  270. data/vendor/local/include/nettle/pkcs1.h +106 -0
  271. data/vendor/local/include/nettle/realloc.h +41 -0
  272. data/vendor/local/include/nettle/ripemd160.h +78 -0
  273. data/vendor/local/include/nettle/rsa-compat.h +131 -0
  274. data/vendor/local/include/nettle/rsa.h +418 -0
  275. data/vendor/local/include/nettle/salsa20.h +82 -0
  276. data/vendor/local/include/nettle/serpent.h +81 -0
  277. data/vendor/local/include/nettle/sexp.h +212 -0
  278. data/vendor/local/include/nettle/sha.h +193 -0
  279. data/vendor/local/include/nettle/twofish.h +78 -0
  280. data/vendor/local/include/nettle/yarrow.h +137 -0
  281. data/vendor/local/include/zconf.h +461 -0
  282. data/vendor/local/include/zlib.h +1589 -0
  283. data/vendor/local/lib/charset.alias +4 -0
  284. data/vendor/local/lib/gio-2.0.def +505 -147
  285. data/vendor/local/lib/gio/modules/libgiognutls.a +0 -0
  286. data/vendor/local/lib/gio/modules/libgiognutls.dll +0 -0
  287. data/vendor/local/lib/gio/modules/libgiognutls.dll.a +0 -0
  288. data/vendor/local/lib/gio/modules/libgiognutls.la +2 -2
  289. data/vendor/local/lib/glib-2.0.def +298 -167
  290. data/vendor/local/lib/glib-2.0/include/glibconfig.h +32 -115
  291. data/vendor/local/lib/gmodule-2.0.def +0 -0
  292. data/vendor/local/lib/gobject-2.0.def +71 -23
  293. data/vendor/local/lib/gthread-2.0.def +0 -0
  294. data/vendor/local/lib/libffi-3.0.6/include/ffi.h +393 -0
  295. data/vendor/local/lib/libffi-3.0.6/include/ffitarget.h +90 -0
  296. data/vendor/local/lib/libffi.dll.a +0 -0
  297. data/vendor/local/lib/libgio-2.0.dll.a +0 -0
  298. data/vendor/local/lib/libgio-2.0.la +41 -0
  299. data/vendor/local/lib/libglib-2.0.dll.a +0 -0
  300. data/vendor/local/lib/libglib-2.0.la +41 -0
  301. data/vendor/local/lib/libgmodule-2.0.dll.a +0 -0
  302. data/vendor/local/lib/libgmodule-2.0.la +41 -0
  303. data/vendor/local/lib/libgmp.dll.a +0 -0
  304. data/vendor/local/lib/libgmp.la +41 -0
  305. data/vendor/local/lib/libgnutls-openssl.a +0 -0
  306. data/vendor/local/lib/libgnutls-openssl.dll.a +0 -0
  307. data/vendor/local/lib/libgnutls-openssl.la +41 -0
  308. data/vendor/local/lib/libgnutls.a +0 -0
  309. data/vendor/local/lib/libgnutls.dll.a +0 -0
  310. data/vendor/local/lib/libgnutls.la +41 -0
  311. data/vendor/local/lib/libgnutlsxx.a +0 -0
  312. data/vendor/local/lib/libgnutlsxx.dll.a +0 -0
  313. data/vendor/local/lib/libgnutlsxx.la +41 -0
  314. data/vendor/local/lib/libgobject-2.0.dll.a +0 -0
  315. data/vendor/local/lib/libgobject-2.0.la +41 -0
  316. data/vendor/local/lib/libgthread-2.0.dll.a +0 -0
  317. data/vendor/local/lib/libgthread-2.0.la +41 -0
  318. data/vendor/local/lib/libhogweed.a +0 -0
  319. data/vendor/local/lib/libhogweed.dll.a +0 -0
  320. data/vendor/local/lib/libnettle.a +0 -0
  321. data/vendor/local/lib/libnettle.dll.a +0 -0
  322. data/vendor/local/lib/libz.dll.a +0 -0
  323. data/vendor/local/lib/pkgconfig/gio-2.0.pc +7 -4
  324. data/vendor/local/lib/pkgconfig/gio-windows-2.0.pc +1 -1
  325. data/vendor/local/lib/pkgconfig/glib-2.0.pc +3 -2
  326. data/vendor/local/lib/pkgconfig/gmodule-2.0.pc +1 -1
  327. data/vendor/local/lib/pkgconfig/gmodule-export-2.0.pc +14 -0
  328. data/vendor/local/lib/pkgconfig/gmodule-no-export-2.0.pc +1 -1
  329. data/vendor/local/lib/pkgconfig/gnutls-dane.pc +24 -0
  330. data/vendor/local/lib/pkgconfig/gnutls.pc +13 -12
  331. data/vendor/local/lib/pkgconfig/gobject-2.0.pc +3 -2
  332. data/vendor/local/lib/pkgconfig/gthread-2.0.pc +1 -1
  333. data/vendor/local/lib/pkgconfig/hogweed.pc +18 -0
  334. data/vendor/local/lib/pkgconfig/nettle.pc +11 -0
  335. data/vendor/local/lib/zdll.lib +0 -0
  336. data/vendor/local/lib/zlib.def +67 -0
  337. data/vendor/local/manifest/libffi-dev_3.0.6-1_win32.mft +9 -0
  338. data/vendor/local/manifest/libffi_3.0.6-1_win32.mft +2 -0
  339. data/vendor/local/manifest/zlib-dev_1.2.5-2_win32.mft +8 -0
  340. data/vendor/local/manifest/zlib_1.2.5-2_win32.mft +2 -0
  341. data/vendor/local/share/aclocal/glib-2.0.m4 +3 -0
  342. data/vendor/local/share/aclocal/glib-gettext.m4 +4 -0
  343. data/vendor/local/share/aclocal/gsettings.m4 +1 -1
  344. data/vendor/local/share/bash-completion/completions/gdbus +33 -0
  345. data/vendor/local/share/bash-completion/completions/gresource +58 -0
  346. data/vendor/local/share/bash-completion/completions/gsettings +84 -0
  347. data/vendor/local/share/gdb/auto-load/libglib-2.0.so.0.3503.0-gdb.py +10 -0
  348. data/vendor/local/share/gdb/auto-load/libgobject-2.0.so.0.3503.0-gdb.py +10 -0
  349. data/vendor/local/share/glib-2.0/codegen/__init__.py +29 -0
  350. data/vendor/local/share/glib-2.0/codegen/__init__.pyc +0 -0
  351. data/vendor/local/share/glib-2.0/codegen/__init__.pyo +0 -0
  352. data/vendor/local/share/glib-2.0/codegen/codegen.py +3375 -0
  353. data/vendor/local/share/glib-2.0/codegen/codegen.pyc +0 -0
  354. data/vendor/local/share/glib-2.0/codegen/codegen.pyo +0 -0
  355. data/vendor/local/share/glib-2.0/codegen/codegen_docbook.py +323 -0
  356. data/vendor/local/share/glib-2.0/codegen/codegen_docbook.pyc +0 -0
  357. data/vendor/local/share/glib-2.0/codegen/codegen_docbook.pyo +0 -0
  358. data/vendor/local/share/glib-2.0/codegen/codegen_main.py +203 -0
  359. data/vendor/local/share/glib-2.0/codegen/codegen_main.pyc +0 -0
  360. data/vendor/local/share/glib-2.0/codegen/codegen_main.pyo +0 -0
  361. data/vendor/local/share/glib-2.0/codegen/config.py +27 -0
  362. data/vendor/local/share/glib-2.0/codegen/config.pyc +0 -0
  363. data/vendor/local/share/glib-2.0/codegen/config.pyo +0 -0
  364. data/vendor/local/share/glib-2.0/codegen/dbustypes.py +426 -0
  365. data/vendor/local/share/glib-2.0/codegen/dbustypes.pyc +0 -0
  366. data/vendor/local/share/glib-2.0/codegen/dbustypes.pyo +0 -0
  367. data/vendor/local/share/glib-2.0/codegen/parser.py +290 -0
  368. data/vendor/local/share/glib-2.0/codegen/parser.pyc +0 -0
  369. data/vendor/local/share/glib-2.0/codegen/parser.pyo +0 -0
  370. data/vendor/local/share/glib-2.0/codegen/utils.py +104 -0
  371. data/vendor/local/share/glib-2.0/codegen/utils.pyc +0 -0
  372. data/vendor/local/share/glib-2.0/codegen/utils.pyo +0 -0
  373. data/vendor/local/share/glib-2.0/gdb/glib.py +15 -11
  374. data/vendor/local/share/glib-2.0/gdb/gobject.py +0 -0
  375. data/vendor/local/share/glib-2.0/gettext/po/Makefile.in.in +9 -20
  376. data/vendor/local/share/gtk-doc/html/gio/ExampleAnimal.html +1301 -0
  377. data/vendor/local/share/gtk-doc/html/gio/ExampleCat.html +594 -0
  378. data/vendor/local/share/gtk-doc/html/gio/ExampleObject.html +461 -0
  379. data/vendor/local/share/gtk-doc/html/gio/ExampleObjectManagerClient.html +486 -0
  380. data/vendor/local/share/gtk-doc/html/gio/GAction.html +174 -73
  381. data/vendor/local/share/gtk-doc/html/gio/GActionGroup.html +465 -130
  382. data/vendor/local/share/gtk-doc/html/gio/GActionMap.html +440 -0
  383. data/vendor/local/share/gtk-doc/html/gio/GAppInfo.html +470 -183
  384. data/vendor/local/share/gtk-doc/html/gio/GApplication.html +862 -225
  385. data/vendor/local/share/gtk-doc/html/gio/GApplicationCommandLine.html +139 -76
  386. data/vendor/local/share/gtk-doc/html/gio/GAsyncInitable.html +141 -135
  387. data/vendor/local/share/gtk-doc/html/gio/GAsyncResult.html +148 -37
  388. data/vendor/local/share/gtk-doc/html/gio/GBufferedInputStream.html +110 -67
  389. data/vendor/local/share/gtk-doc/html/gio/GBufferedOutputStream.html +55 -29
  390. data/vendor/local/share/gtk-doc/html/gio/GCancellable.html +135 -79
  391. data/vendor/local/share/gtk-doc/html/gio/GCharsetConverter.html +42 -30
  392. data/vendor/local/share/gtk-doc/html/gio/GConverter.html +49 -42
  393. data/vendor/local/share/gtk-doc/html/gio/GCredentials.html +78 -43
  394. data/vendor/local/share/gtk-doc/html/gio/GDBusActionGroup.html +138 -0
  395. data/vendor/local/share/gtk-doc/html/gio/GDBusAuthObserver.html +107 -24
  396. data/vendor/local/share/gtk-doc/html/gio/GDBusConnection.html +1369 -836
  397. data/vendor/local/share/gtk-doc/html/gio/GDBusError.html +92 -92
  398. data/vendor/local/share/gtk-doc/html/gio/GDBusInterface.html +268 -0
  399. data/vendor/local/share/gtk-doc/html/gio/GDBusInterfaceSkeleton.html +691 -0
  400. data/vendor/local/share/gtk-doc/html/gio/GDBusMenuModel.html +126 -0
  401. data/vendor/local/share/gtk-doc/html/gio/GDBusMessage.html +381 -215
  402. data/vendor/local/share/gtk-doc/html/gio/GDBusMethodInvocation.html +212 -81
  403. data/vendor/local/share/gtk-doc/html/gio/GDBusObject.html +312 -0
  404. data/vendor/local/share/gtk-doc/html/gio/GDBusObjectManager.html +462 -0
  405. data/vendor/local/share/gtk-doc/html/gio/GDBusObjectManagerClient.html +1095 -0
  406. data/vendor/local/share/gtk-doc/html/gio/GDBusObjectManagerServer.html +397 -0
  407. data/vendor/local/share/gtk-doc/html/gio/GDBusObjectProxy.html +206 -0
  408. data/vendor/local/share/gtk-doc/html/gio/GDBusObjectSkeleton.html +385 -0
  409. data/vendor/local/share/gtk-doc/html/gio/GDBusProxy.html +679 -330
  410. data/vendor/local/share/gtk-doc/html/gio/GDBusServer.html +161 -129
  411. data/vendor/local/share/gtk-doc/html/gio/GDataInputStream.html +396 -210
  412. data/vendor/local/share/gtk-doc/html/gio/GDataOutputStream.html +143 -102
  413. data/vendor/local/share/gtk-doc/html/gio/GDrive.html +323 -162
  414. data/vendor/local/share/gtk-doc/html/gio/GEmblem.html +35 -24
  415. data/vendor/local/share/gtk-doc/html/gio/GEmblemedIcon.html +30 -15
  416. data/vendor/local/share/gtk-doc/html/gio/GFile.html +2551 -1662
  417. data/vendor/local/share/gtk-doc/html/gio/GFileDescriptorBased.html +16 -5
  418. data/vendor/local/share/gtk-doc/html/gio/GFileEnumerator.html +151 -64
  419. data/vendor/local/share/gtk-doc/html/gio/GFileIOStream.html +34 -22
  420. data/vendor/local/share/gtk-doc/html/gio/GFileIcon.html +15 -8
  421. data/vendor/local/share/gtk-doc/html/gio/GFileInfo.html +731 -342
  422. data/vendor/local/share/gtk-doc/html/gio/GFileInputStream.html +31 -22
  423. data/vendor/local/share/gtk-doc/html/gio/GFileMonitor.html +53 -38
  424. data/vendor/local/share/gtk-doc/html/gio/GFileOutputStream.html +34 -22
  425. data/vendor/local/share/gtk-doc/html/gio/GFilenameCompleter.html +37 -22
  426. data/vendor/local/share/gtk-doc/html/gio/GFilterInputStream.html +24 -15
  427. data/vendor/local/share/gtk-doc/html/gio/GFilterOutputStream.html +24 -15
  428. data/vendor/local/share/gtk-doc/html/gio/GIOModule.html +259 -22
  429. data/vendor/local/share/gtk-doc/html/gio/GIOStream.html +91 -55
  430. data/vendor/local/share/gtk-doc/html/gio/GIcon.html +51 -34
  431. data/vendor/local/share/gtk-doc/html/gio/GInetAddress.html +189 -101
  432. data/vendor/local/share/gtk-doc/html/gio/GInetSocketAddress.html +99 -15
  433. data/vendor/local/share/gtk-doc/html/gio/GInitable.html +116 -80
  434. data/vendor/local/share/gtk-doc/html/gio/GInputStream.html +339 -110
  435. data/vendor/local/share/gtk-doc/html/gio/GLoadableIcon.html +33 -21
  436. data/vendor/local/share/gtk-doc/html/gio/GMemoryInputStream.html +33 -20
  437. data/vendor/local/share/gtk-doc/html/gio/GMemoryOutputStream.html +84 -49
  438. data/vendor/local/share/gtk-doc/html/gio/GMenu.html +1562 -0
  439. data/vendor/local/share/gtk-doc/html/gio/GMenuModel.html +1064 -0
  440. data/vendor/local/share/gtk-doc/html/gio/GMount.html +325 -174
  441. data/vendor/local/share/gtk-doc/html/gio/GMountOperation.html +217 -94
  442. data/vendor/local/share/gtk-doc/html/gio/GNetworkAddress.html +72 -49
  443. data/vendor/local/share/gtk-doc/html/gio/GNetworkMonitor.html +435 -0
  444. data/vendor/local/share/gtk-doc/html/gio/GNetworkService.html +53 -35
  445. data/vendor/local/share/gtk-doc/html/gio/GOutputStream.html +392 -138
  446. data/vendor/local/share/gtk-doc/html/gio/GPermission.html +104 -74
  447. data/vendor/local/share/gtk-doc/html/gio/GPollableInputStream.html +58 -104
  448. data/vendor/local/share/gtk-doc/html/gio/GPollableOutputStream.html +60 -45
  449. data/vendor/local/share/gtk-doc/html/gio/GProxy.html +48 -30
  450. data/vendor/local/share/gtk-doc/html/gio/GProxyAddress.html +157 -51
  451. data/vendor/local/share/gtk-doc/html/gio/GProxyResolver.html +50 -37
  452. data/vendor/local/share/gtk-doc/html/gio/GRemoteActionGroup.html +262 -0
  453. data/vendor/local/share/gtk-doc/html/gio/GResolver.html +348 -128
  454. data/vendor/local/share/gtk-doc/html/gio/GSeekable.html +66 -48
  455. data/vendor/local/share/gtk-doc/html/gio/GSettings.html +790 -390
  456. data/vendor/local/share/gtk-doc/html/gio/GSettingsBackend.html +106 -75
  457. data/vendor/local/share/gtk-doc/html/gio/GSimpleAction.html +188 -76
  458. data/vendor/local/share/gtk-doc/html/gio/GSimpleActionGroup.html +79 -22
  459. data/vendor/local/share/gtk-doc/html/gio/GSimpleAsyncResult.html +334 -180
  460. data/vendor/local/share/gtk-doc/html/gio/GSimplePermission.html +12 -9
  461. data/vendor/local/share/gtk-doc/html/gio/GSocket.html +1183 -407
  462. data/vendor/local/share/gtk-doc/html/gio/GSocketAddress.html +51 -42
  463. data/vendor/local/share/gtk-doc/html/gio/GSocketClient.html +556 -217
  464. data/vendor/local/share/gtk-doc/html/gio/GSocketConnectable.html +55 -37
  465. data/vendor/local/share/gtk-doc/html/gio/GSocketConnection.html +243 -49
  466. data/vendor/local/share/gtk-doc/html/gio/GSocketControlMessage.html +35 -20
  467. data/vendor/local/share/gtk-doc/html/gio/GSocketListener.html +159 -122
  468. data/vendor/local/share/gtk-doc/html/gio/GSocketService.html +57 -34
  469. data/vendor/local/share/gtk-doc/html/gio/GSrvTarget.html +56 -32
  470. data/vendor/local/share/gtk-doc/html/gio/GTask.html +2296 -0
  471. data/vendor/local/share/gtk-doc/html/gio/GTcpConnection.html +22 -16
  472. data/vendor/local/share/gtk-doc/html/gio/GTcpWrapperConnection.html +13 -9
  473. data/vendor/local/share/gtk-doc/html/gio/GTestDBus.html +331 -0
  474. data/vendor/local/share/gtk-doc/html/gio/GThemedIcon.html +43 -25
  475. data/vendor/local/share/gtk-doc/html/gio/GThreadedSocketService.html +30 -24
  476. data/vendor/local/share/gtk-doc/html/gio/GTlsBackend.html +123 -36
  477. data/vendor/local/share/gtk-doc/html/gio/GTlsCertificate.html +145 -76
  478. data/vendor/local/share/gtk-doc/html/gio/GTlsClientConnection.html +67 -42
  479. data/vendor/local/share/gtk-doc/html/gio/GTlsConnection.html +297 -90
  480. data/vendor/local/share/gtk-doc/html/gio/GTlsDatabase.html +993 -0
  481. data/vendor/local/share/gtk-doc/html/gio/GTlsFileDatabase.html +172 -0
  482. data/vendor/local/share/gtk-doc/html/gio/GTlsInteraction.html +385 -0
  483. data/vendor/local/share/gtk-doc/html/gio/GTlsPassword.html +511 -0
  484. data/vendor/local/share/gtk-doc/html/gio/GTlsServerConnection.html +19 -16
  485. data/vendor/local/share/gtk-doc/html/gio/GUnixConnection.html +244 -41
  486. data/vendor/local/share/gtk-doc/html/gio/GUnixCredentialsMessage.html +25 -13
  487. data/vendor/local/share/gtk-doc/html/gio/GUnixFDList.html +70 -51
  488. data/vendor/local/share/gtk-doc/html/gio/GUnixFDMessage.html +47 -34
  489. data/vendor/local/share/gtk-doc/html/gio/GUnixInputStream.html +44 -30
  490. data/vendor/local/share/gtk-doc/html/gio/GUnixOutputStream.html +46 -32
  491. data/vendor/local/share/gtk-doc/html/gio/GUnixSocketAddress.html +76 -53
  492. data/vendor/local/share/gtk-doc/html/gio/GVfs.html +55 -33
  493. data/vendor/local/share/gtk-doc/html/gio/GVolume.html +260 -110
  494. data/vendor/local/share/gtk-doc/html/gio/GVolumeMonitor.html +127 -70
  495. data/vendor/local/share/gtk-doc/html/gio/GZlibCompressor.html +32 -24
  496. data/vendor/local/share/gtk-doc/html/gio/GZlibDecompressor.html +19 -13
  497. data/vendor/local/share/gtk-doc/html/gio/annotation-glossary.html +10 -10
  498. data/vendor/local/share/gtk-doc/html/gio/api-index-2-18.html +6 -6
  499. data/vendor/local/share/gtk-doc/html/gio/api-index-2-20.html +5 -5
  500. data/vendor/local/share/gtk-doc/html/gio/api-index-2-22.html +14 -10
  501. data/vendor/local/share/gtk-doc/html/gio/api-index-2-24.html +8 -16
  502. data/vendor/local/share/gtk-doc/html/gio/api-index-2-26.html +74 -31
  503. data/vendor/local/share/gtk-doc/html/gio/api-index-2-28.html +21 -41
  504. data/vendor/local/share/gtk-doc/html/gio/api-index-2-30.html +691 -0
  505. data/vendor/local/share/gtk-doc/html/gio/api-index-2-32.html +698 -0
  506. data/vendor/local/share/gtk-doc/html/gio/api-index-2-34.html +231 -0
  507. data/vendor/local/share/gtk-doc/html/gio/api-index-deprecated.html +55 -7
  508. data/vendor/local/share/gtk-doc/html/gio/api-index-full.html +2101 -230
  509. data/vendor/local/share/gtk-doc/html/gio/application.html +33 -9
  510. data/vendor/local/share/gtk-doc/html/gio/async.html +6 -3
  511. data/vendor/local/share/gtk-doc/html/gio/ch01.html +43 -18
  512. data/vendor/local/share/gtk-doc/html/gio/ch02.html +86 -22
  513. data/vendor/local/share/gtk-doc/html/gio/ch03.html +23 -152
  514. data/vendor/local/share/gtk-doc/html/gio/ch27.html +5 -5
  515. data/vendor/local/share/gtk-doc/html/gio/ch28s03.html +2 -2
  516. data/vendor/local/share/gtk-doc/html/gio/ch28s06.html +2 -2
  517. data/vendor/local/share/gtk-doc/html/gio/ch29.html +54 -49
  518. data/vendor/local/share/gtk-doc/html/gio/ch29s02.html +1 -1
  519. data/vendor/local/share/gtk-doc/html/gio/ch29s03.html +19 -19
  520. data/vendor/local/share/gtk-doc/html/gio/ch29s04.html +3 -3
  521. data/vendor/local/share/gtk-doc/html/gio/ch29s05.html +81 -81
  522. data/vendor/local/share/gtk-doc/html/gio/ch29s06.html +67 -67
  523. data/vendor/local/share/gtk-doc/html/gio/ch30.html +217 -0
  524. data/vendor/local/share/gtk-doc/html/gio/ch30s02.html +41 -0
  525. data/vendor/local/share/gtk-doc/html/gio/ch30s03.html +39 -0
  526. data/vendor/local/share/gtk-doc/html/gio/ch31.html +57 -0
  527. data/vendor/local/share/gtk-doc/html/gio/ch31s02.html +59 -0
  528. data/vendor/local/share/gtk-doc/html/gio/ch31s03.html +159 -0
  529. data/vendor/local/share/gtk-doc/html/gio/ch31s04.html +46 -0
  530. data/vendor/local/share/gtk-doc/html/gio/ch31s05.html +48 -0
  531. data/vendor/local/share/gtk-doc/html/gio/ch31s06.html +278 -0
  532. data/vendor/local/share/gtk-doc/html/gio/ch31s07.html +160 -0
  533. data/vendor/local/share/gtk-doc/html/gio/ch32.html +113 -0
  534. data/vendor/local/share/gtk-doc/html/gio/ch32s02.html +142 -0
  535. data/vendor/local/share/gtk-doc/html/gio/ch32s03.html +202 -0
  536. data/vendor/local/share/gtk-doc/html/gio/ch32s04.html +97 -0
  537. data/vendor/local/share/gtk-doc/html/gio/ch32s05.html +931 -0
  538. data/vendor/local/share/gtk-doc/html/gio/conversion.html +3 -3
  539. data/vendor/local/share/gtk-doc/html/gio/extending-gio.html +14 -5
  540. data/vendor/local/share/gtk-doc/html/gio/extending.html +5 -5
  541. data/vendor/local/share/gtk-doc/html/gio/failable_initialization.html +3 -3
  542. data/vendor/local/share/gtk-doc/html/gio/file_mon.html +3 -3
  543. data/vendor/local/share/gtk-doc/html/gio/file_ops.html +3 -3
  544. data/vendor/local/share/gtk-doc/html/gio/gdbus-codegen.html +1080 -0
  545. data/vendor/local/share/gtk-doc/html/gio/gdbus-convenience.html +28 -4
  546. data/vendor/local/share/gtk-doc/html/gio/gdbus-lowlevel.html +4 -4
  547. data/vendor/local/share/gtk-doc/html/gio/gdbus-org.gtk.GDBus.Example.ObjectManager.Animal.html +167 -0
  548. data/vendor/local/share/gtk-doc/html/gio/gdbus-org.gtk.GDBus.Example.ObjectManager.Cat.html +54 -0
  549. data/vendor/local/share/gtk-doc/html/gio/gdbus.html +87 -30
  550. data/vendor/local/share/gtk-doc/html/gio/gio-D-Bus-Addresses.html +70 -49
  551. data/vendor/local/share/gtk-doc/html/gio/gio-D-Bus-Introspection-Data.html +420 -187
  552. data/vendor/local/share/gtk-doc/html/gio/gio-D-Bus-Utilities.html +200 -27
  553. data/vendor/local/share/gtk-doc/html/gio/gio-Desktop-file-based-GAppInfo.html +497 -23
  554. data/vendor/local/share/gtk-doc/html/gio/gio-Extension-Points.html +88 -48
  555. data/vendor/local/share/gtk-doc/html/gio/gio-GActionGroup-exporter.html +176 -0
  556. data/vendor/local/share/gtk-doc/html/gio/gio-GContentType.html +162 -68
  557. data/vendor/local/share/gtk-doc/html/gio/gio-GConverterInputstream.html +26 -8
  558. data/vendor/local/share/gtk-doc/html/gio/gio-GConverterOutputstream.html +24 -6
  559. data/vendor/local/share/gtk-doc/html/gio/gio-GDBusError.html +919 -0
  560. data/vendor/local/share/gtk-doc/html/gio/gio-GFileAttribute.html +113 -97
  561. data/vendor/local/share/gtk-doc/html/gio/gio-GIOError.html +38 -32
  562. data/vendor/local/share/gtk-doc/html/gio/gio-GIOScheduler.html +85 -62
  563. data/vendor/local/share/gtk-doc/html/gio/gio-GInetAddressMask.html +330 -0
  564. data/vendor/local/share/gtk-doc/html/gio/gio-GMenuModel-exporter.html +164 -0
  565. data/vendor/local/share/gtk-doc/html/gio/gio-GResource.html +917 -0
  566. data/vendor/local/share/gtk-doc/html/gio/gio-GSettingsSchema-GSettingsSchemaSource.html +614 -0
  567. data/vendor/local/share/gtk-doc/html/gio/gio-GWin32InputStream.html +213 -0
  568. data/vendor/local/share/gtk-doc/html/gio/gio-GWin32OutputStream.html +210 -0
  569. data/vendor/local/share/gtk-doc/html/gio/gio-Owning-Bus-Names.html +154 -134
  570. data/vendor/local/share/gtk-doc/html/gio/gio-TLS-Overview.html +22 -17
  571. data/vendor/local/share/gtk-doc/html/gio/gio-Unix-Mounts.html +272 -92
  572. data/vendor/local/share/gtk-doc/html/gio/gio-Watching-Bus-Names.html +136 -105
  573. data/vendor/local/share/gtk-doc/html/gio/gio-gnetworking.h.html +91 -0
  574. data/vendor/local/share/gtk-doc/html/gio/gio-gpollableutils.html +396 -0
  575. data/vendor/local/share/gtk-doc/html/gio/gio-hierarchy.html +53 -52
  576. data/vendor/local/share/gtk-doc/html/gio/gio-querymodules.html +5 -5
  577. data/vendor/local/share/gtk-doc/html/gio/gio.devhelp2 +790 -157
  578. data/vendor/local/share/gtk-doc/html/gio/glib-compile-resources.html +209 -0
  579. data/vendor/local/share/gtk-doc/html/gio/glib-compile-schemas.html +25 -18
  580. data/vendor/local/share/gtk-doc/html/gio/gresource-tool.html +111 -0
  581. data/vendor/local/share/gtk-doc/html/gio/gsettings-tool.html +27 -15
  582. data/vendor/local/share/gtk-doc/html/gio/highlevel-socket.html +10 -7
  583. data/vendor/local/share/gtk-doc/html/gio/icons.html +3 -3
  584. data/vendor/local/share/gtk-doc/html/gio/index.html +160 -34
  585. data/vendor/local/share/gtk-doc/html/gio/index.sgml +1009 -179
  586. data/vendor/local/share/gtk-doc/html/gio/menu-example.png +0 -0
  587. data/vendor/local/share/gtk-doc/html/gio/menu-model.png +0 -0
  588. data/vendor/local/share/gtk-doc/html/gio/migrating.html +45 -25
  589. data/vendor/local/share/gtk-doc/html/gio/networking.html +11 -5
  590. data/vendor/local/share/gtk-doc/html/gio/permissions.html +5 -5
  591. data/vendor/local/share/gtk-doc/html/gio/pt01.html +7 -6
  592. data/vendor/local/share/gtk-doc/html/gio/pt02.html +115 -13
  593. data/vendor/local/share/gtk-doc/html/gio/resolver.html +5 -5
  594. data/vendor/local/share/gtk-doc/html/gio/resources.html +33 -0
  595. data/vendor/local/share/gtk-doc/html/gio/running-gio-apps.html +176 -0
  596. data/vendor/local/share/gtk-doc/html/gio/settings.html +9 -5
  597. data/vendor/local/share/gtk-doc/html/gio/streaming.html +12 -3
  598. data/vendor/local/share/gtk-doc/html/gio/testing.html +33 -0
  599. data/vendor/local/share/gtk-doc/html/gio/tls.html +17 -5
  600. data/vendor/local/share/gtk-doc/html/gio/tools.html +13 -4
  601. data/vendor/local/share/gtk-doc/html/gio/types.html +5 -5
  602. data/vendor/local/share/gtk-doc/html/gio/utils.html +3 -3
  603. data/vendor/local/share/gtk-doc/html/gio/volume_mon.html +3 -3
  604. data/vendor/local/share/gtk-doc/html/glib/annotation-glossary.html +28 -7
  605. data/vendor/local/share/gtk-doc/html/glib/api-index-2-10.html +6 -14
  606. data/vendor/local/share/gtk-doc/html/glib/api-index-2-12.html +5 -5
  607. data/vendor/local/share/gtk-doc/html/glib/api-index-2-14.html +19 -11
  608. data/vendor/local/share/gtk-doc/html/glib/api-index-2-16.html +5 -5
  609. data/vendor/local/share/gtk-doc/html/glib/api-index-2-18.html +17 -6
  610. data/vendor/local/share/gtk-doc/html/glib/api-index-2-2.html +5 -5
  611. data/vendor/local/share/gtk-doc/html/glib/api-index-2-20.html +15 -7
  612. data/vendor/local/share/gtk-doc/html/glib/api-index-2-22.html +8 -8
  613. data/vendor/local/share/gtk-doc/html/glib/api-index-2-24.html +13 -5
  614. data/vendor/local/share/gtk-doc/html/glib/api-index-2-26.html +20 -5
  615. data/vendor/local/share/gtk-doc/html/glib/api-index-2-28.html +22 -7
  616. data/vendor/local/share/gtk-doc/html/glib/api-index-2-30.html +257 -0
  617. data/vendor/local/share/gtk-doc/html/glib/api-index-2-32.html +348 -0
  618. data/vendor/local/share/gtk-doc/html/glib/api-index-2-34.html +121 -0
  619. data/vendor/local/share/gtk-doc/html/glib/api-index-2-4.html +26 -18
  620. data/vendor/local/share/gtk-doc/html/glib/api-index-2-6.html +20 -16
  621. data/vendor/local/share/gtk-doc/html/glib/api-index-2-8.html +11 -7
  622. data/vendor/local/share/gtk-doc/html/glib/api-index-deprecated.html +152 -78
  623. data/vendor/local/share/gtk-doc/html/glib/api-index-full.html +729 -249
  624. data/vendor/local/share/gtk-doc/html/glib/deprecated.html +47 -0
  625. data/vendor/local/share/gtk-doc/html/glib/glib-Arrays.html +135 -28
  626. data/vendor/local/share/gtk-doc/html/glib/glib-Asynchronous-Queues.html +383 -170
  627. data/vendor/local/share/gtk-doc/html/glib/glib-Atomic-Operations.html +525 -142
  628. data/vendor/local/share/gtk-doc/html/glib/glib-Automatic-String-Completion.html +71 -32
  629. data/vendor/local/share/gtk-doc/html/glib/glib-Balanced-Binary-Trees.html +97 -38
  630. data/vendor/local/share/gtk-doc/html/glib/glib-Base64-Encoding.html +68 -30
  631. data/vendor/local/share/gtk-doc/html/glib/glib-Basic-Types.html +724 -106
  632. data/vendor/local/share/gtk-doc/html/glib/glib-Bookmark-file-parser.html +187 -67
  633. data/vendor/local/share/gtk-doc/html/glib/glib-Byte-Arrays.html +715 -29
  634. data/vendor/local/share/gtk-doc/html/glib/glib-Byte-Order-Macros.html +368 -194
  635. data/vendor/local/share/gtk-doc/html/glib/glib-Caches.html +105 -50
  636. data/vendor/local/share/gtk-doc/html/glib/glib-Character-Set-Conversion.html +126 -59
  637. data/vendor/local/share/gtk-doc/html/glib/glib-Commandline-option-parser.html +163 -62
  638. data/vendor/local/share/gtk-doc/html/glib/glib-Data-Checksums.html +106 -25
  639. data/vendor/local/share/gtk-doc/html/glib/glib-Data-HMACs.html +452 -0
  640. data/vendor/local/share/gtk-doc/html/glib/glib-Datasets.html +61 -19
  641. data/vendor/local/share/gtk-doc/html/glib/glib-Date-and-Time-Functions.html +394 -162
  642. data/vendor/local/share/gtk-doc/html/glib/glib-Deprecated-Thread-APIs.html +1772 -0
  643. data/vendor/local/share/gtk-doc/html/glib/glib-Double-ended-Queues.html +241 -63
  644. data/vendor/local/share/gtk-doc/html/glib/glib-Doubly-Linked-Lists.html +236 -95
  645. data/vendor/local/share/gtk-doc/html/glib/glib-Dynamic-Loading-of-Modules.html +174 -100
  646. data/vendor/local/share/gtk-doc/html/glib/glib-Error-Reporting.html +259 -168
  647. data/vendor/local/share/gtk-doc/html/glib/glib-File-Utilities.html +710 -221
  648. data/vendor/local/share/gtk-doc/html/glib/glib-GDateTime.html +409 -167
  649. data/vendor/local/share/gtk-doc/html/glib/glib-GTimeZone.html +86 -53
  650. data/vendor/local/share/gtk-doc/html/glib/glib-GVariant.html +1077 -281
  651. data/vendor/local/share/gtk-doc/html/glib/glib-GVariantType.html +234 -187
  652. data/vendor/local/share/gtk-doc/html/glib/glib-Glob-style-pattern-matching.html +28 -10
  653. data/vendor/local/share/gtk-doc/html/glib/glib-Hash-Tables.html +545 -211
  654. data/vendor/local/share/gtk-doc/html/glib/glib-Hook-Functions.html +234 -108
  655. data/vendor/local/share/gtk-doc/html/glib/glib-Hostname-Utilities.html +23 -8
  656. data/vendor/local/share/gtk-doc/html/glib/glib-I18N.html +138 -77
  657. data/vendor/local/share/gtk-doc/html/glib/glib-IO-Channels.html +259 -105
  658. data/vendor/local/share/gtk-doc/html/glib/glib-Key-value-file-parser.html +436 -206
  659. data/vendor/local/share/gtk-doc/html/glib/glib-Keyed-Data-Lists.html +263 -38
  660. data/vendor/local/share/gtk-doc/html/glib/glib-Lexical-Scanner.html +540 -362
  661. data/vendor/local/share/gtk-doc/html/glib/glib-Memory-Allocation.html +165 -37
  662. data/vendor/local/share/gtk-doc/html/glib/glib-Memory-Slices.html +146 -79
  663. data/vendor/local/share/gtk-doc/html/glib/glib-Message-Logging.html +214 -104
  664. data/vendor/local/share/gtk-doc/html/glib/glib-Miscellaneous-Macros.html +489 -438
  665. data/vendor/local/share/gtk-doc/html/glib/glib-Miscellaneous-Utility-Functions.html +690 -202
  666. data/vendor/local/share/gtk-doc/html/glib/glib-N-ary-Trees.html +230 -118
  667. data/vendor/local/share/gtk-doc/html/glib/glib-Numerical-Definitions.html +23 -4
  668. data/vendor/local/share/gtk-doc/html/glib/glib-Perl-compatible-regular-expressions.html +538 -102
  669. data/vendor/local/share/gtk-doc/html/glib/glib-Pointer-Arrays.html +135 -33
  670. data/vendor/local/share/gtk-doc/html/glib/glib-Quarks.html +79 -23
  671. data/vendor/local/share/gtk-doc/html/glib/glib-Random-Numbers.html +75 -21
  672. data/vendor/local/share/gtk-doc/html/glib/glib-Relations-and-Tuples.html +57 -21
  673. data/vendor/local/share/gtk-doc/html/glib/glib-Sequences.html +308 -111
  674. data/vendor/local/share/gtk-doc/html/glib/glib-Shell-related-Utilities.html +20 -9
  675. data/vendor/local/share/gtk-doc/html/glib/glib-Simple-XML-Subset-Parser.html +88 -37
  676. data/vendor/local/share/gtk-doc/html/glib/glib-Singly-Linked-Lists.html +228 -86
  677. data/vendor/local/share/gtk-doc/html/glib/glib-Spawning-Processes.html +271 -109
  678. data/vendor/local/share/gtk-doc/html/glib/glib-Standard-Macros.html +108 -63
  679. data/vendor/local/share/gtk-doc/html/glib/glib-String-Chunks.html +42 -24
  680. data/vendor/local/share/gtk-doc/html/glib/glib-String-Utility-Functions.html +578 -315
  681. data/vendor/local/share/gtk-doc/html/glib/glib-Strings.html +241 -94
  682. data/vendor/local/share/gtk-doc/html/glib/glib-Testing.html +647 -189
  683. data/vendor/local/share/gtk-doc/html/glib/glib-The-Main-Event-Loop.html +592 -210
  684. data/vendor/local/share/gtk-doc/html/glib/glib-Thread-Pools.html +162 -100
  685. data/vendor/local/share/gtk-doc/html/glib/glib-Threads.html +1345 -1882
  686. data/vendor/local/share/gtk-doc/html/glib/glib-Timers.html +33 -23
  687. data/vendor/local/share/gtk-doc/html/glib/glib-Trash-Stacks.html +40 -18
  688. data/vendor/local/share/gtk-doc/html/glib/glib-Type-Conversion-Macros.html +42 -25
  689. data/vendor/local/share/gtk-doc/html/glib/glib-UNIX-specific-utilities-and-integration.html +334 -0
  690. data/vendor/local/share/gtk-doc/html/glib/glib-URI-Functions.html +55 -25
  691. data/vendor/local/share/gtk-doc/html/glib/glib-Unicode-Manipulation.html +852 -253
  692. data/vendor/local/share/gtk-doc/html/glib/glib-Version-Information.html +204 -41
  693. data/vendor/local/share/gtk-doc/html/glib/glib-Warnings-and-Assertions.html +146 -85
  694. data/vendor/local/share/gtk-doc/html/glib/glib-Windows-Compatibility-Functions.html +106 -44
  695. data/vendor/local/share/gtk-doc/html/glib/glib-building.html +298 -333
  696. data/vendor/local/share/gtk-doc/html/glib/glib-changes.html +11 -11
  697. data/vendor/local/share/gtk-doc/html/glib/glib-compiling.html +69 -39
  698. data/vendor/local/share/gtk-doc/html/glib/glib-core.html +13 -8
  699. data/vendor/local/share/gtk-doc/html/glib/glib-cross-compiling.html +10 -5
  700. data/vendor/local/share/gtk-doc/html/glib/glib-data-types.html +15 -38
  701. data/vendor/local/share/gtk-doc/html/glib/glib-fundamentals.html +9 -11
  702. data/vendor/local/share/gtk-doc/html/glib/glib-gettextize.html +13 -10
  703. data/vendor/local/share/gtk-doc/html/glib/glib-programming.html +76 -0
  704. data/vendor/local/share/gtk-doc/html/glib/glib-regex-syntax.html +58 -58
  705. data/vendor/local/share/gtk-doc/html/glib/glib-resources.html +12 -9
  706. data/vendor/local/share/gtk-doc/html/glib/glib-running.html +133 -112
  707. data/vendor/local/share/gtk-doc/html/glib/glib-utilities.html +24 -16
  708. data/vendor/local/share/gtk-doc/html/glib/glib.devhelp2 +434 -267
  709. data/vendor/local/share/gtk-doc/html/glib/glib.html +16 -24
  710. data/vendor/local/share/gtk-doc/html/glib/gtester-report.html +12 -9
  711. data/vendor/local/share/gtk-doc/html/glib/gtester.html +68 -12
  712. data/vendor/local/share/gtk-doc/html/glib/gvariant-format-strings.html +67 -25
  713. data/vendor/local/share/gtk-doc/html/glib/gvariant-text.html +15 -8
  714. data/vendor/local/share/gtk-doc/html/glib/index.html +66 -59
  715. data/vendor/local/share/gtk-doc/html/glib/index.sgml +383 -215
  716. data/vendor/local/share/gtk-doc/html/glib/tools.html +7 -7
  717. data/vendor/local/share/gtk-doc/html/gobject/GBinding.html +56 -25
  718. data/vendor/local/share/gtk-doc/html/gobject/GTypeModule.html +58 -19
  719. data/vendor/local/share/gtk-doc/html/gobject/GTypePlugin.html +39 -12
  720. data/vendor/local/share/gtk-doc/html/gobject/annotation-glossary.html +7 -7
  721. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-10.html +8 -8
  722. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-12.html +5 -5
  723. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-14.html +5 -5
  724. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-18.html +5 -5
  725. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-2.html +5 -5
  726. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-22.html +5 -5
  727. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-24.html +5 -5
  728. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-26.html +7 -7
  729. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-28.html +8 -8
  730. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-30.html +70 -0
  731. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-32.html +81 -0
  732. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-34.html +63 -0
  733. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-4.html +9 -9
  734. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-6.html +5 -5
  735. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-8.html +7 -7
  736. data/vendor/local/share/gtk-doc/html/gobject/api-index-deprecated.html +94 -7
  737. data/vendor/local/share/gtk-doc/html/gobject/api-index-full.html +296 -76
  738. data/vendor/local/share/gtk-doc/html/gobject/ch01s02.html +10 -10
  739. data/vendor/local/share/gtk-doc/html/gobject/chapter-gobject.html +8 -8
  740. data/vendor/local/share/gtk-doc/html/gobject/chapter-gtype.html +13 -13
  741. data/vendor/local/share/gtk-doc/html/gobject/chapter-intro.html +6 -6
  742. data/vendor/local/share/gtk-doc/html/gobject/chapter-signal.html +14 -14
  743. data/vendor/local/share/gtk-doc/html/gobject/glib-genmarshal.html +120 -108
  744. data/vendor/local/share/gtk-doc/html/gobject/glib-mkenums.html +157 -133
  745. data/vendor/local/share/gtk-doc/html/gobject/gobject-Boxed-Types.html +171 -27
  746. data/vendor/local/share/gtk-doc/html/gobject/gobject-Closures.html +741 -86
  747. data/vendor/local/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html +113 -41
  748. data/vendor/local/share/gtk-doc/html/gobject/gobject-GParamSpec.html +182 -65
  749. data/vendor/local/share/gtk-doc/html/gobject/gobject-Generic-values.html +124 -37
  750. data/vendor/local/share/gtk-doc/html/gobject/gobject-Signals.html +365 -136
  751. data/vendor/local/share/gtk-doc/html/gobject/gobject-Standard-Parameter-and-Value-Types.html +837 -244
  752. data/vendor/local/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html +773 -102
  753. data/vendor/local/share/gtk-doc/html/gobject/gobject-Type-Information.html +545 -158
  754. data/vendor/local/share/gtk-doc/html/gobject/gobject-Value-arrays.html +149 -34
  755. data/vendor/local/share/gtk-doc/html/gobject/gobject-Varargs-Value-Collection.html +26 -11
  756. data/vendor/local/share/gtk-doc/html/gobject/gobject-memory.html +4 -4
  757. data/vendor/local/share/gtk-doc/html/gobject/gobject-properties.html +226 -105
  758. data/vendor/local/share/gtk-doc/html/gobject/gobject-query.html +29 -18
  759. data/vendor/local/share/gtk-doc/html/gobject/gobject.devhelp2 +92 -34
  760. data/vendor/local/share/gtk-doc/html/gobject/gtype-conventions.html +11 -10
  761. data/vendor/local/share/gtk-doc/html/gobject/gtype-instantiable-classed.html +10 -9
  762. data/vendor/local/share/gtk-doc/html/gobject/gtype-non-instantiable-classed.html +104 -42
  763. data/vendor/local/share/gtk-doc/html/gobject/gtype-non-instantiable.html +4 -4
  764. data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-chainup.html +8 -8
  765. data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-code.html +4 -4
  766. data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-construction.html +68 -21
  767. data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-destruction.html +3 -3
  768. data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-methods.html +7 -7
  769. data/vendor/local/share/gtk-doc/html/gobject/howto-gobject.html +11 -11
  770. data/vendor/local/share/gtk-doc/html/gobject/howto-interface-implement.html +33 -18
  771. data/vendor/local/share/gtk-doc/html/gobject/howto-interface-override.html +135 -0
  772. data/vendor/local/share/gtk-doc/html/gobject/howto-interface-prerequisite.html +123 -0
  773. data/vendor/local/share/gtk-doc/html/gobject/howto-interface-properties.html +27 -39
  774. data/vendor/local/share/gtk-doc/html/gobject/howto-interface.html +40 -51
  775. data/vendor/local/share/gtk-doc/html/gobject/howto-signals.html +8 -8
  776. data/vendor/local/share/gtk-doc/html/gobject/index.html +19 -15
  777. data/vendor/local/share/gtk-doc/html/gobject/index.sgml +59 -3
  778. data/vendor/local/share/gtk-doc/html/gobject/pr01.html +6 -6
  779. data/vendor/local/share/gtk-doc/html/gobject/pt01.html +7 -7
  780. data/vendor/local/share/gtk-doc/html/gobject/pt02.html +12 -11
  781. data/vendor/local/share/gtk-doc/html/gobject/pt03.html +4 -4
  782. data/vendor/local/share/gtk-doc/html/gobject/rn01.html +5 -5
  783. data/vendor/local/share/gtk-doc/html/gobject/rn02.html +4 -4
  784. data/vendor/local/share/gtk-doc/html/gobject/signal.html +16 -15
  785. data/vendor/local/share/gtk-doc/html/gobject/tools-ginspector.html +3 -3
  786. data/vendor/local/share/gtk-doc/html/gobject/tools-gob.html +3 -3
  787. data/vendor/local/share/gtk-doc/html/gobject/tools-gtkdoc.html +3 -3
  788. data/vendor/local/share/gtk-doc/html/gobject/tools-refdb.html +3 -3
  789. data/vendor/local/share/gtk-doc/html/gobject/tools-vala.html +3 -3
  790. data/vendor/local/share/info/dir +40 -0
  791. data/vendor/local/share/info/gmp.info +183 -0
  792. data/vendor/local/share/info/gmp.info-1 +7078 -0
  793. data/vendor/local/share/info/gmp.info-2 +3513 -0
  794. data/vendor/local/share/info/gnutls-client-server-use-case.png +0 -0
  795. data/vendor/local/share/info/gnutls-guile.info +1580 -0
  796. data/vendor/local/share/info/gnutls-handshake-sequence.png +0 -0
  797. data/vendor/local/share/info/gnutls-handshake-state.png +0 -0
  798. data/vendor/local/share/info/gnutls-internals.png +0 -0
  799. data/vendor/local/share/info/gnutls-layers.png +0 -0
  800. data/vendor/local/share/info/gnutls-modauth.png +0 -0
  801. data/vendor/local/share/info/gnutls-pgp.png +0 -0
  802. data/vendor/local/share/info/gnutls-x509.png +0 -0
  803. data/vendor/local/share/info/gnutls.info +1237 -683
  804. data/vendor/local/share/info/gnutls.info-1 +5355 -8447
  805. data/vendor/local/share/info/gnutls.info-2 +9995 -5771
  806. data/vendor/local/share/info/gnutls.info-3 +8788 -1871
  807. data/vendor/local/share/info/gnutls.info-4 +5085 -0
  808. data/vendor/local/share/info/nettle.info +3355 -0
  809. data/vendor/local/share/info/pkcs11-vision.png +0 -0
  810. data/vendor/local/share/license/glib-networking/COPYING +9 -10
  811. data/vendor/local/share/license/glib/AUTHORS +40 -0
  812. data/vendor/local/share/license/glib/COPYING +482 -0
  813. data/vendor/local/share/license/gmp/AUTHORS +79 -0
  814. data/vendor/local/share/license/gmp/COPYING +674 -0
  815. data/vendor/local/share/license/gmp/COPYING.LIB +165 -0
  816. data/vendor/local/share/license/gnutls/AUTHORS +92 -0
  817. data/vendor/local/share/license/gnutls/COPYING +674 -0
  818. data/vendor/local/share/license/nettle/AUTHORS +1 -0
  819. data/vendor/local/share/license/nettle/COPYING.LIB +510 -0
  820. data/vendor/local/share/locale/af/LC_MESSAGES/glib20.mo +0 -0
  821. data/vendor/local/share/locale/am/LC_MESSAGES/glib20.mo +0 -0
  822. data/vendor/local/share/locale/ar/LC_MESSAGES/glib-networking.mo +0 -0
  823. data/vendor/local/share/locale/ar/LC_MESSAGES/glib20.mo +0 -0
  824. data/vendor/local/share/locale/as/LC_MESSAGES/glib-networking.mo +0 -0
  825. data/vendor/local/share/locale/as/LC_MESSAGES/glib20.mo +0 -0
  826. data/vendor/local/share/locale/ast/LC_MESSAGES/glib20.mo +0 -0
  827. data/vendor/local/share/locale/az/LC_MESSAGES/glib20.mo +0 -0
  828. data/vendor/local/share/locale/be/LC_MESSAGES/glib-networking.mo +0 -0
  829. data/vendor/local/share/locale/be/LC_MESSAGES/glib20.mo +0 -0
  830. data/vendor/local/share/locale/be@latin/LC_MESSAGES/glib20.mo +0 -0
  831. data/vendor/local/share/locale/bg/LC_MESSAGES/glib-networking.mo +0 -0
  832. data/vendor/local/share/locale/bg/LC_MESSAGES/glib20.mo +0 -0
  833. data/vendor/local/share/locale/bn/LC_MESSAGES/glib20.mo +0 -0
  834. data/vendor/local/share/locale/bn_IN/LC_MESSAGES/glib20.mo +0 -0
  835. data/vendor/local/share/locale/bs/LC_MESSAGES/glib20.mo +0 -0
  836. data/vendor/local/share/locale/ca/LC_MESSAGES/glib-networking.mo +0 -0
  837. data/vendor/local/share/locale/ca/LC_MESSAGES/glib20.mo +0 -0
  838. data/vendor/local/share/locale/ca@valencia/LC_MESSAGES/glib-networking.mo +0 -0
  839. data/vendor/local/share/locale/ca@valencia/LC_MESSAGES/glib20.mo +0 -0
  840. data/vendor/local/share/locale/cs/LC_MESSAGES/glib-networking.mo +0 -0
  841. data/vendor/local/share/locale/cs/LC_MESSAGES/glib20.mo +0 -0
  842. data/vendor/local/share/locale/cs/LC_MESSAGES/gnutls.mo +0 -0
  843. data/vendor/local/share/locale/cy/LC_MESSAGES/glib20.mo +0 -0
  844. data/vendor/local/share/locale/da/LC_MESSAGES/glib-networking.mo +0 -0
  845. data/vendor/local/share/locale/da/LC_MESSAGES/glib20.mo +0 -0
  846. data/vendor/local/share/locale/de/LC_MESSAGES/glib-networking.mo +0 -0
  847. data/vendor/local/share/locale/de/LC_MESSAGES/glib20.mo +0 -0
  848. data/vendor/local/share/locale/de/LC_MESSAGES/gnutls.mo +0 -0
  849. data/vendor/local/share/locale/dz/LC_MESSAGES/glib20.mo +0 -0
  850. data/vendor/local/share/locale/el/LC_MESSAGES/glib-networking.mo +0 -0
  851. data/vendor/local/share/locale/el/LC_MESSAGES/glib20.mo +0 -0
  852. data/vendor/local/share/locale/en@boldquot/LC_MESSAGES/gnutls.mo +0 -0
  853. data/vendor/local/share/locale/en@quot/LC_MESSAGES/gnutls.mo +0 -0
  854. data/vendor/local/share/locale/en@shaw/LC_MESSAGES/glib20.mo +0 -0
  855. data/vendor/local/share/locale/en_CA/LC_MESSAGES/glib20.mo +0 -0
  856. data/vendor/local/share/locale/en_GB/LC_MESSAGES/glib-networking.mo +0 -0
  857. data/vendor/local/share/locale/en_GB/LC_MESSAGES/glib20.mo +0 -0
  858. data/vendor/local/share/locale/eo/LC_MESSAGES/glib20.mo +0 -0
  859. data/vendor/local/share/locale/es/LC_MESSAGES/glib-networking.mo +0 -0
  860. data/vendor/local/share/locale/es/LC_MESSAGES/glib20.mo +0 -0
  861. data/vendor/local/share/locale/et/LC_MESSAGES/glib-networking.mo +0 -0
  862. data/vendor/local/share/locale/et/LC_MESSAGES/glib20.mo +0 -0
  863. data/vendor/local/share/locale/eu/LC_MESSAGES/glib-networking.mo +0 -0
  864. data/vendor/local/share/locale/eu/LC_MESSAGES/glib20.mo +0 -0
  865. data/vendor/local/share/locale/fa/LC_MESSAGES/glib-networking.mo +0 -0
  866. data/vendor/local/share/locale/fa/LC_MESSAGES/glib20.mo +0 -0
  867. data/vendor/local/share/locale/fi/LC_MESSAGES/glib-networking.mo +0 -0
  868. data/vendor/local/share/locale/fi/LC_MESSAGES/glib20.mo +0 -0
  869. data/vendor/local/share/locale/fi/LC_MESSAGES/gnutls.mo +0 -0
  870. data/vendor/local/share/locale/fr/LC_MESSAGES/glib-networking.mo +0 -0
  871. data/vendor/local/share/locale/fr/LC_MESSAGES/glib20.mo +0 -0
  872. data/vendor/local/share/locale/fr/LC_MESSAGES/gnutls.mo +0 -0
  873. data/vendor/local/share/locale/ga/LC_MESSAGES/glib20.mo +0 -0
  874. data/vendor/local/share/locale/gl/LC_MESSAGES/glib-networking.mo +0 -0
  875. data/vendor/local/share/locale/gl/LC_MESSAGES/glib20.mo +0 -0
  876. data/vendor/local/share/locale/gu/LC_MESSAGES/glib20.mo +0 -0
  877. data/vendor/local/share/locale/he/LC_MESSAGES/glib-networking.mo +0 -0
  878. data/vendor/local/share/locale/he/LC_MESSAGES/glib20.mo +0 -0
  879. data/vendor/local/share/locale/hi/LC_MESSAGES/glib-networking.mo +0 -0
  880. data/vendor/local/share/locale/hi/LC_MESSAGES/glib20.mo +0 -0
  881. data/vendor/local/share/locale/hr/LC_MESSAGES/glib20.mo +0 -0
  882. data/vendor/local/share/locale/hu/LC_MESSAGES/glib-networking.mo +0 -0
  883. data/vendor/local/share/locale/hu/LC_MESSAGES/glib20.mo +0 -0
  884. data/vendor/local/share/locale/hy/LC_MESSAGES/glib20.mo +0 -0
  885. data/vendor/local/share/locale/id/LC_MESSAGES/glib-networking.mo +0 -0
  886. data/vendor/local/share/locale/id/LC_MESSAGES/glib20.mo +0 -0
  887. data/vendor/local/share/locale/is/LC_MESSAGES/glib20.mo +0 -0
  888. data/vendor/local/share/locale/it/LC_MESSAGES/glib-networking.mo +0 -0
  889. data/vendor/local/share/locale/it/LC_MESSAGES/glib20.mo +0 -0
  890. data/vendor/local/share/locale/it/LC_MESSAGES/gnutls.mo +0 -0
  891. data/vendor/local/share/locale/ja/LC_MESSAGES/glib-networking.mo +0 -0
  892. data/vendor/local/share/locale/ja/LC_MESSAGES/glib20.mo +0 -0
  893. data/vendor/local/share/locale/ka/LC_MESSAGES/glib20.mo +0 -0
  894. data/vendor/local/share/locale/kk/LC_MESSAGES/glib20.mo +0 -0
  895. data/vendor/local/share/locale/km/LC_MESSAGES/glib-networking.mo +0 -0
  896. data/vendor/local/share/locale/kn/LC_MESSAGES/glib20.mo +0 -0
  897. data/vendor/local/share/locale/ko/LC_MESSAGES/glib-networking.mo +0 -0
  898. data/vendor/local/share/locale/ko/LC_MESSAGES/glib20.mo +0 -0
  899. data/vendor/local/share/locale/ku/LC_MESSAGES/glib20.mo +0 -0
  900. data/vendor/local/share/locale/lt/LC_MESSAGES/glib-networking.mo +0 -0
  901. data/vendor/local/share/locale/lt/LC_MESSAGES/glib20.mo +0 -0
  902. data/vendor/local/share/locale/lv/LC_MESSAGES/glib-networking.mo +0 -0
  903. data/vendor/local/share/locale/lv/LC_MESSAGES/glib20.mo +0 -0
  904. data/vendor/local/share/locale/mai/LC_MESSAGES/glib20.mo +0 -0
  905. data/vendor/local/share/locale/mg/LC_MESSAGES/glib20.mo +0 -0
  906. data/vendor/local/share/locale/mk/LC_MESSAGES/glib20.mo +0 -0
  907. data/vendor/local/share/locale/ml/LC_MESSAGES/glib-networking.mo +0 -0
  908. data/vendor/local/share/locale/ml/LC_MESSAGES/glib20.mo +0 -0
  909. data/vendor/local/share/locale/mn/LC_MESSAGES/glib20.mo +0 -0
  910. data/vendor/local/share/locale/mr/LC_MESSAGES/glib-networking.mo +0 -0
  911. data/vendor/local/share/locale/mr/LC_MESSAGES/glib20.mo +0 -0
  912. data/vendor/local/share/locale/ms/LC_MESSAGES/glib20.mo +0 -0
  913. data/vendor/local/share/locale/ms/LC_MESSAGES/gnutls.mo +0 -0
  914. data/vendor/local/share/locale/nb/LC_MESSAGES/glib-networking.mo +0 -0
  915. data/vendor/local/share/locale/nb/LC_MESSAGES/glib20.mo +0 -0
  916. data/vendor/local/share/locale/nds/LC_MESSAGES/glib20.mo +0 -0
  917. data/vendor/local/share/locale/ne/LC_MESSAGES/glib20.mo +0 -0
  918. data/vendor/local/share/locale/nl/LC_MESSAGES/glib-networking.mo +0 -0
  919. data/vendor/local/share/locale/nl/LC_MESSAGES/glib20.mo +0 -0
  920. data/vendor/local/share/locale/nl/LC_MESSAGES/gnutls.mo +0 -0
  921. data/vendor/local/share/locale/nn/LC_MESSAGES/glib20.mo +0 -0
  922. data/vendor/local/share/locale/oc/LC_MESSAGES/glib20.mo +0 -0
  923. data/vendor/local/share/locale/or/LC_MESSAGES/glib-networking.mo +0 -0
  924. data/vendor/local/share/locale/or/LC_MESSAGES/glib20.mo +0 -0
  925. data/vendor/local/share/locale/pa/LC_MESSAGES/glib-networking.mo +0 -0
  926. data/vendor/local/share/locale/pa/LC_MESSAGES/glib20.mo +0 -0
  927. data/vendor/local/share/locale/pl/LC_MESSAGES/glib-networking.mo +0 -0
  928. data/vendor/local/share/locale/pl/LC_MESSAGES/glib20.mo +0 -0
  929. data/vendor/local/share/locale/pl/LC_MESSAGES/gnutls.mo +0 -0
  930. data/vendor/local/share/locale/ps/LC_MESSAGES/glib20.mo +0 -0
  931. data/vendor/local/share/locale/pt/LC_MESSAGES/glib-networking.mo +0 -0
  932. data/vendor/local/share/locale/pt/LC_MESSAGES/glib20.mo +0 -0
  933. data/vendor/local/share/locale/pt_BR/LC_MESSAGES/glib-networking.mo +0 -0
  934. data/vendor/local/share/locale/pt_BR/LC_MESSAGES/glib20.mo +0 -0
  935. data/vendor/local/share/locale/ro/LC_MESSAGES/glib20.mo +0 -0
  936. data/vendor/local/share/locale/ru/LC_MESSAGES/glib-networking.mo +0 -0
  937. data/vendor/local/share/locale/ru/LC_MESSAGES/glib20.mo +0 -0
  938. data/vendor/local/share/locale/rw/LC_MESSAGES/glib20.mo +0 -0
  939. data/vendor/local/share/locale/si/LC_MESSAGES/glib20.mo +0 -0
  940. data/vendor/local/share/locale/sk/LC_MESSAGES/glib-networking.mo +0 -0
  941. data/vendor/local/share/locale/sk/LC_MESSAGES/glib20.mo +0 -0
  942. data/vendor/local/share/locale/sl/LC_MESSAGES/glib-networking.mo +0 -0
  943. data/vendor/local/share/locale/sl/LC_MESSAGES/glib20.mo +0 -0
  944. data/vendor/local/share/locale/sq/LC_MESSAGES/glib20.mo +0 -0
  945. data/vendor/local/share/locale/sr/LC_MESSAGES/glib-networking.mo +0 -0
  946. data/vendor/local/share/locale/sr/LC_MESSAGES/glib20.mo +0 -0
  947. data/vendor/local/share/locale/sr@ije/LC_MESSAGES/glib20.mo +0 -0
  948. data/vendor/local/share/locale/sr@latin/LC_MESSAGES/glib-networking.mo +0 -0
  949. data/vendor/local/share/locale/sr@latin/LC_MESSAGES/glib20.mo +0 -0
  950. data/vendor/local/share/locale/sv/LC_MESSAGES/glib-networking.mo +0 -0
  951. data/vendor/local/share/locale/sv/LC_MESSAGES/glib20.mo +0 -0
  952. data/vendor/local/share/locale/sv/LC_MESSAGES/gnutls.mo +0 -0
  953. data/vendor/local/share/locale/ta/LC_MESSAGES/glib-networking.mo +0 -0
  954. data/vendor/local/share/locale/ta/LC_MESSAGES/glib20.mo +0 -0
  955. data/vendor/local/share/locale/te/LC_MESSAGES/glib-networking.mo +0 -0
  956. data/vendor/local/share/locale/te/LC_MESSAGES/glib20.mo +0 -0
  957. data/vendor/local/share/locale/th/LC_MESSAGES/glib-networking.mo +0 -0
  958. data/vendor/local/share/locale/th/LC_MESSAGES/glib20.mo +0 -0
  959. data/vendor/local/share/locale/tl/LC_MESSAGES/glib20.mo +0 -0
  960. data/vendor/local/share/locale/tr/LC_MESSAGES/glib-networking.mo +0 -0
  961. data/vendor/local/share/locale/tr/LC_MESSAGES/glib20.mo +0 -0
  962. data/vendor/local/share/locale/tt/LC_MESSAGES/glib20.mo +0 -0
  963. data/vendor/local/share/locale/ug/LC_MESSAGES/glib20.mo +0 -0
  964. data/vendor/local/share/locale/uk/LC_MESSAGES/glib-networking.mo +0 -0
  965. data/vendor/local/share/locale/uk/LC_MESSAGES/glib20.mo +0 -0
  966. data/vendor/local/share/locale/uk/LC_MESSAGES/gnutls.mo +0 -0
  967. data/vendor/local/share/locale/vi/LC_MESSAGES/glib-networking.mo +0 -0
  968. data/vendor/local/share/locale/vi/LC_MESSAGES/glib20.mo +0 -0
  969. data/vendor/local/share/locale/vi/LC_MESSAGES/gnutls.mo +0 -0
  970. data/vendor/local/share/locale/wa/LC_MESSAGES/glib20.mo +0 -0
  971. data/vendor/local/share/locale/xh/LC_MESSAGES/glib20.mo +0 -0
  972. data/vendor/local/share/locale/yi/LC_MESSAGES/glib20.mo +0 -0
  973. data/vendor/local/share/locale/zh_CN/LC_MESSAGES/glib-networking.mo +0 -0
  974. data/vendor/local/share/locale/zh_CN/LC_MESSAGES/glib20.mo +0 -0
  975. data/vendor/local/share/locale/zh_CN/LC_MESSAGES/gnutls.mo +0 -0
  976. data/vendor/local/share/locale/zh_HK/LC_MESSAGES/glib-networking.mo +0 -0
  977. data/vendor/local/share/locale/zh_HK/LC_MESSAGES/glib20.mo +0 -0
  978. data/vendor/local/share/locale/zh_TW/LC_MESSAGES/glib-networking.mo +0 -0
  979. data/vendor/local/share/locale/zh_TW/LC_MESSAGES/glib20.mo +0 -0
  980. data/vendor/local/share/man/man1/certtool.1 +644 -130
  981. data/vendor/local/share/man/man1/gdbus-codegen.1 +751 -0
  982. data/vendor/local/share/man/man1/gdbus.1 +93 -15
  983. data/vendor/local/share/man/man1/gio-querymodules.1 +6 -6
  984. data/vendor/local/share/man/man1/glib-compile-resources.1 +167 -0
  985. data/vendor/local/share/man/man1/glib-compile-schemas.1 +20 -15
  986. data/vendor/local/share/man/man1/glib-genmarshal.1 +88 -70
  987. data/vendor/local/share/man/man1/glib-gettextize.1 +7 -7
  988. data/vendor/local/share/man/man1/glib-mkenums.1 +110 -101
  989. data/vendor/local/share/man/man1/gnutls-cli-debug.1 +133 -27
  990. data/vendor/local/share/man/man1/gnutls-cli.1 +308 -154
  991. data/vendor/local/share/man/man1/gnutls-serv.1 +416 -126
  992. data/vendor/local/share/man/man1/gobject-query.1 +13 -13
  993. data/vendor/local/share/man/man1/gresource.1 +95 -0
  994. data/vendor/local/share/man/man1/gsettings.1 +22 -10
  995. data/vendor/local/share/man/man1/gtester-report.1 +53 -0
  996. data/vendor/local/share/man/man1/gtester.1 +142 -0
  997. data/vendor/local/share/man/man1/ocsptool.1 +308 -0
  998. data/vendor/local/share/man/man1/p11tool.1 +230 -0
  999. data/vendor/local/share/man/man1/psktool.1 +96 -26
  1000. data/vendor/local/share/man/man1/srptool.1 +117 -59
  1001. data/vendor/local/share/man/man1/tpmtool.1 +197 -0
  1002. data/vendor/local/share/man/man3/ffi.3 +31 -0
  1003. data/vendor/local/share/man/man3/ffi_call.3 +103 -0
  1004. data/vendor/local/share/man/man3/ffi_prep_cif.3 +66 -0
  1005. data/vendor/local/share/man/man3/gnutls_alert_get.3 +19 -12
  1006. data/vendor/local/share/man/man3/gnutls_alert_get_name.3 +16 -7
  1007. data/vendor/local/share/man/man3/gnutls_alert_get_strname.3 +46 -0
  1008. data/vendor/local/share/man/man3/gnutls_alert_send.3 +15 -6
  1009. data/vendor/local/share/man/man3/gnutls_alert_send_appropriate.3 +15 -6
  1010. data/vendor/local/share/man/man3/gnutls_anon_allocate_client_credentials.3 +18 -9
  1011. data/vendor/local/share/man/man3/gnutls_anon_allocate_server_credentials.3 +18 -9
  1012. data/vendor/local/share/man/man3/gnutls_anon_free_client_credentials.3 +16 -7
  1013. data/vendor/local/share/man/man3/gnutls_anon_free_server_credentials.3 +16 -7
  1014. data/vendor/local/share/man/man3/gnutls_anon_set_params_function.3 +17 -8
  1015. data/vendor/local/share/man/man3/gnutls_anon_set_server_dh_params.3 +18 -9
  1016. data/vendor/local/share/man/man3/gnutls_anon_set_server_params_function.3 +17 -8
  1017. data/vendor/local/share/man/man3/gnutls_auth_client_get_type.3 +16 -7
  1018. data/vendor/local/share/man/man3/gnutls_auth_get_type.3 +19 -10
  1019. data/vendor/local/share/man/man3/gnutls_auth_server_get_type.3 +16 -7
  1020. data/vendor/local/share/man/man3/gnutls_bye.3 +23 -15
  1021. data/vendor/local/share/man/man3/gnutls_certificate_activation_time_peers.3 +17 -6
  1022. data/vendor/local/share/man/man3/gnutls_certificate_allocate_credentials.3 +18 -9
  1023. data/vendor/local/share/man/man3/gnutls_certificate_client_get_request_status.3 +16 -7
  1024. data/vendor/local/share/man/man3/gnutls_certificate_expiration_time_peers.3 +17 -6
  1025. data/vendor/local/share/man/man3/gnutls_certificate_free_ca_names.3 +24 -12
  1026. data/vendor/local/share/man/man3/gnutls_certificate_free_cas.3 +20 -11
  1027. data/vendor/local/share/man/man3/gnutls_certificate_free_credentials.3 +20 -11
  1028. data/vendor/local/share/man/man3/gnutls_certificate_free_crls.3 +16 -7
  1029. data/vendor/local/share/man/man3/gnutls_certificate_free_keys.3 +16 -7
  1030. data/vendor/local/share/man/man3/gnutls_certificate_get_issuer.3 +53 -0
  1031. data/vendor/local/share/man/man3/gnutls_certificate_get_ours.3 +20 -11
  1032. data/vendor/local/share/man/man3/gnutls_certificate_get_peers.3 +18 -9
  1033. data/vendor/local/share/man/man3/gnutls_certificate_get_peers_subkey_id.3 +48 -0
  1034. data/vendor/local/share/man/man3/gnutls_certificate_send_x509_rdn_sequence.3 +17 -8
  1035. data/vendor/local/share/man/man3/gnutls_certificate_server_set_request.3 +21 -13
  1036. data/vendor/local/share/man/man3/gnutls_certificate_set_dh_params.3 +18 -9
  1037. data/vendor/local/share/man/man3/gnutls_certificate_set_key.3 +63 -0
  1038. data/vendor/local/share/man/man3/gnutls_certificate_set_ocsp_status_request_file.3 +54 -0
  1039. data/vendor/local/share/man/man3/gnutls_certificate_set_ocsp_status_request_function.3 +63 -0
  1040. data/vendor/local/share/man/man3/gnutls_certificate_set_openpgp_key.3 +30 -15
  1041. data/vendor/local/share/man/man3/gnutls_certificate_set_openpgp_key_file.3 +20 -12
  1042. data/vendor/local/share/man/man3/gnutls_certificate_set_openpgp_key_file2.3 +24 -14
  1043. data/vendor/local/share/man/man3/gnutls_certificate_set_openpgp_key_mem.3 +24 -13
  1044. data/vendor/local/share/man/man3/gnutls_certificate_set_openpgp_key_mem2.3 +26 -16
  1045. data/vendor/local/share/man/man3/gnutls_certificate_set_openpgp_keyring_file.3 +18 -8
  1046. data/vendor/local/share/man/man3/gnutls_certificate_set_openpgp_keyring_mem.3 +21 -11
  1047. data/vendor/local/share/man/man3/gnutls_certificate_set_params_function.3 +17 -8
  1048. data/vendor/local/share/man/man3/gnutls_certificate_set_pin_function.3 +53 -0
  1049. data/vendor/local/share/man/man3/gnutls_certificate_set_retrieve_function.3 +74 -0
  1050. data/vendor/local/share/man/man3/gnutls_certificate_set_retrieve_function2.3 +77 -0
  1051. data/vendor/local/share/man/man3/gnutls_certificate_set_rsa_export_params.3 +18 -9
  1052. data/vendor/local/share/man/man3/gnutls_certificate_set_verify_flags.3 +20 -11
  1053. data/vendor/local/share/man/man3/gnutls_certificate_set_verify_function.3 +60 -0
  1054. data/vendor/local/share/man/man3/gnutls_certificate_set_verify_limits.3 +17 -8
  1055. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_crl.3 +17 -8
  1056. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_crl_file.3 +19 -10
  1057. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_crl_mem.3 +19 -10
  1058. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_key.3 +22 -11
  1059. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_key_file.3 +28 -16
  1060. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_key_mem.3 +24 -21
  1061. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_simple_pkcs12_file.3 +20 -14
  1062. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_simple_pkcs12_mem.3 +69 -0
  1063. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_system_trust.3 +51 -0
  1064. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_trust.3 +18 -8
  1065. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_trust_file.3 +23 -10
  1066. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_trust_mem.3 +21 -12
  1067. data/vendor/local/share/man/man3/gnutls_certificate_type_get.3 +15 -6
  1068. data/vendor/local/share/man/man3/gnutls_certificate_type_get_id.3 +19 -10
  1069. data/vendor/local/share/man/man3/gnutls_certificate_type_get_name.3 +15 -6
  1070. data/vendor/local/share/man/man3/gnutls_certificate_type_list.3 +17 -10
  1071. data/vendor/local/share/man/man3/gnutls_certificate_type_set_priority.3 +17 -8
  1072. data/vendor/local/share/man/man3/gnutls_certificate_verification_status_print.3 +56 -0
  1073. data/vendor/local/share/man/man3/gnutls_certificate_verify_peers2.3 +28 -22
  1074. data/vendor/local/share/man/man3/gnutls_certificate_verify_peers3.3 +64 -0
  1075. data/vendor/local/share/man/man3/gnutls_check_version.3 +24 -17
  1076. data/vendor/local/share/man/man3/gnutls_cipher_add_auth.3 +53 -0
  1077. data/vendor/local/share/man/man3/gnutls_cipher_decrypt.3 +51 -0
  1078. data/vendor/local/share/man/man3/gnutls_cipher_decrypt2.3 +55 -0
  1079. data/vendor/local/share/man/man3/gnutls_cipher_deinit.3 +45 -0
  1080. data/vendor/local/share/man/man3/gnutls_cipher_encrypt.3 +51 -0
  1081. data/vendor/local/share/man/man3/gnutls_cipher_encrypt2.3 +55 -0
  1082. data/vendor/local/share/man/man3/gnutls_cipher_get.3 +16 -7
  1083. data/vendor/local/share/man/man3/gnutls_cipher_get_block_size.3 +46 -0
  1084. data/vendor/local/share/man/man3/gnutls_cipher_get_id.3 +18 -8
  1085. data/vendor/local/share/man/man3/gnutls_cipher_get_key_size.3 +15 -6
  1086. data/vendor/local/share/man/man3/gnutls_cipher_get_name.3 +15 -6
  1087. data/vendor/local/share/man/man3/gnutls_cipher_init.3 +55 -0
  1088. data/vendor/local/share/man/man3/gnutls_cipher_list.3 +18 -7
  1089. data/vendor/local/share/man/man3/gnutls_cipher_set_iv.3 +49 -0
  1090. data/vendor/local/share/man/man3/gnutls_cipher_set_priority.3 +22 -14
  1091. data/vendor/local/share/man/man3/gnutls_cipher_suite_get_name.3 +15 -6
  1092. data/vendor/local/share/man/man3/gnutls_cipher_suite_info.3 +19 -10
  1093. data/vendor/local/share/man/man3/gnutls_cipher_tag.3 +52 -0
  1094. data/vendor/local/share/man/man3/gnutls_compression_get.3 +15 -6
  1095. data/vendor/local/share/man/man3/gnutls_compression_get_id.3 +18 -8
  1096. data/vendor/local/share/man/man3/gnutls_compression_get_name.3 +15 -6
  1097. data/vendor/local/share/man/man3/gnutls_compression_list.3 +16 -9
  1098. data/vendor/local/share/man/man3/gnutls_compression_set_priority.3 +23 -14
  1099. data/vendor/local/share/man/man3/gnutls_credentials_clear.3 +15 -6
  1100. data/vendor/local/share/man/man3/gnutls_credentials_set.3 +34 -19
  1101. data/vendor/local/share/man/man3/gnutls_db_check_entry.3 +16 -7
  1102. data/vendor/local/share/man/man3/gnutls_db_get_ptr.3 +15 -6
  1103. data/vendor/local/share/man/man3/gnutls_db_remove_session.3 +15 -6
  1104. data/vendor/local/share/man/man3/gnutls_db_set_cache_expiration.3 +16 -7
  1105. data/vendor/local/share/man/man3/gnutls_db_set_ptr.3 +15 -6
  1106. data/vendor/local/share/man/man3/gnutls_db_set_remove_function.3 +16 -7
  1107. data/vendor/local/share/man/man3/gnutls_db_set_retrieve_function.3 +16 -7
  1108. data/vendor/local/share/man/man3/gnutls_db_set_store_function.3 +18 -9
  1109. data/vendor/local/share/man/man3/gnutls_deinit.3 +16 -7
  1110. data/vendor/local/share/man/man3/gnutls_dh_get_group.3 +18 -9
  1111. data/vendor/local/share/man/man3/gnutls_dh_get_peers_public_bits.3 +18 -10
  1112. data/vendor/local/share/man/man3/gnutls_dh_get_prime_bits.3 +22 -10
  1113. data/vendor/local/share/man/man3/gnutls_dh_get_pubkey.3 +18 -9
  1114. data/vendor/local/share/man/man3/gnutls_dh_get_secret_bits.3 +18 -9
  1115. data/vendor/local/share/man/man3/gnutls_dh_params_cpy.3 +18 -6
  1116. data/vendor/local/share/man/man3/gnutls_dh_params_deinit.3 +15 -6
  1117. data/vendor/local/share/man/man3/gnutls_dh_params_export2_pkcs3.3 +54 -0
  1118. data/vendor/local/share/man/man3/gnutls_dh_params_export_pkcs3.3 +18 -9
  1119. data/vendor/local/share/man/man3/gnutls_dh_params_export_raw.3 +23 -10
  1120. data/vendor/local/share/man/man3/gnutls_dh_params_generate2.3 +22 -9
  1121. data/vendor/local/share/man/man3/gnutls_dh_params_import_pkcs3.3 +18 -9
  1122. data/vendor/local/share/man/man3/gnutls_dh_params_import_raw.3 +21 -9
  1123. data/vendor/local/share/man/man3/gnutls_dh_params_init.3 +18 -6
  1124. data/vendor/local/share/man/man3/gnutls_dh_set_prime_bits.3 +21 -7
  1125. data/vendor/local/share/man/man3/gnutls_dtls_cookie_send.3 +61 -0
  1126. data/vendor/local/share/man/man3/gnutls_dtls_cookie_verify.3 +59 -0
  1127. data/vendor/local/share/man/man3/gnutls_dtls_get_data_mtu.3 +48 -0
  1128. data/vendor/local/share/man/man3/gnutls_dtls_get_mtu.3 +49 -0
  1129. data/vendor/local/share/man/man3/gnutls_dtls_get_timeout.3 +50 -0
  1130. data/vendor/local/share/man/man3/gnutls_dtls_prestate_set.3 +48 -0
  1131. data/vendor/local/share/man/man3/gnutls_dtls_set_data_mtu.3 +54 -0
  1132. data/vendor/local/share/man/man3/gnutls_dtls_set_mtu.3 +50 -0
  1133. data/vendor/local/share/man/man3/gnutls_dtls_set_timeouts.3 +58 -0
  1134. data/vendor/local/share/man/man3/gnutls_ecc_curve_get.3 +48 -0
  1135. data/vendor/local/share/man/man3/gnutls_ecc_curve_get_name.3 +47 -0
  1136. data/vendor/local/share/man/man3/gnutls_ecc_curve_get_size.3 +46 -0
  1137. data/vendor/local/share/man/man3/gnutls_ecc_curve_list.3 +47 -0
  1138. data/vendor/local/share/man/man3/gnutls_error_is_fatal.3 +26 -16
  1139. data/vendor/local/share/man/man3/gnutls_error_to_alert.3 +16 -7
  1140. data/vendor/local/share/man/man3/gnutls_fingerprint.3 +15 -6
  1141. data/vendor/local/share/man/man3/gnutls_global_deinit.3 +15 -6
  1142. data/vendor/local/share/man/man3/gnutls_global_init.3 +23 -18
  1143. data/vendor/local/share/man/man3/gnutls_global_set_audit_log_function.3 +50 -0
  1144. data/vendor/local/share/man/man3/gnutls_global_set_log_function.3 +20 -11
  1145. data/vendor/local/share/man/man3/gnutls_global_set_log_level.3 +20 -11
  1146. data/vendor/local/share/man/man3/gnutls_global_set_mem_functions.3 +24 -14
  1147. data/vendor/local/share/man/man3/gnutls_global_set_mutex.3 +56 -0
  1148. data/vendor/local/share/man/man3/gnutls_global_set_time_function.3 +46 -0
  1149. data/vendor/local/share/man/man3/gnutls_handshake.3 +20 -9
  1150. data/vendor/local/share/man/man3/gnutls_handshake_get_last_in.3 +15 -6
  1151. data/vendor/local/share/man/man3/gnutls_handshake_get_last_out.3 +15 -6
  1152. data/vendor/local/share/man/man3/gnutls_handshake_set_max_packet_length.3 +15 -6
  1153. data/vendor/local/share/man/man3/gnutls_handshake_set_post_client_hello_function.3 +18 -8
  1154. data/vendor/local/share/man/man3/gnutls_handshake_set_private_extensions.3 +18 -11
  1155. data/vendor/local/share/man/man3/gnutls_handshake_set_timeout.3 +49 -0
  1156. data/vendor/local/share/man/man3/gnutls_hash.3 +51 -0
  1157. data/vendor/local/share/man/man3/gnutls_hash_deinit.3 +47 -0
  1158. data/vendor/local/share/man/man3/gnutls_hash_fast.3 +53 -0
  1159. data/vendor/local/share/man/man3/gnutls_hash_get_len.3 +47 -0
  1160. data/vendor/local/share/man/man3/gnutls_hash_init.3 +51 -0
  1161. data/vendor/local/share/man/man3/gnutls_hash_output.3 +46 -0
  1162. data/vendor/local/share/man/man3/gnutls_heartbeat_allowed.3 +49 -0
  1163. data/vendor/local/share/man/man3/gnutls_heartbeat_enable.3 +47 -0
  1164. data/vendor/local/share/man/man3/gnutls_heartbeat_get_timeout.3 +50 -0
  1165. data/vendor/local/share/man/man3/gnutls_heartbeat_ping.3 +57 -0
  1166. data/vendor/local/share/man/man3/gnutls_heartbeat_pong.3 +48 -0
  1167. data/vendor/local/share/man/man3/gnutls_heartbeat_set_timeouts.3 +58 -0
  1168. data/vendor/local/share/man/man3/gnutls_hex2bin.3 +20 -11
  1169. data/vendor/local/share/man/man3/gnutls_hex_decode.3 +19 -10
  1170. data/vendor/local/share/man/man3/gnutls_hex_encode.3 +15 -6
  1171. data/vendor/local/share/man/man3/gnutls_hmac.3 +51 -0
  1172. data/vendor/local/share/man/man3/gnutls_hmac_deinit.3 +47 -0
  1173. data/vendor/local/share/man/man3/gnutls_hmac_fast.3 +57 -0
  1174. data/vendor/local/share/man/man3/gnutls_hmac_get_len.3 +47 -0
  1175. data/vendor/local/share/man/man3/gnutls_hmac_init.3 +55 -0
  1176. data/vendor/local/share/man/man3/gnutls_hmac_output.3 +46 -0
  1177. data/vendor/local/share/man/man3/gnutls_init.3 +27 -10
  1178. data/vendor/local/share/man/man3/gnutls_key_generate.3 +50 -0
  1179. data/vendor/local/share/man/man3/gnutls_kx_get.3 +15 -6
  1180. data/vendor/local/share/man/man3/gnutls_kx_get_id.3 +18 -8
  1181. data/vendor/local/share/man/man3/gnutls_kx_get_name.3 +15 -6
  1182. data/vendor/local/share/man/man3/gnutls_kx_list.3 +18 -7
  1183. data/vendor/local/share/man/man3/gnutls_kx_set_priority.3 +21 -12
  1184. data/vendor/local/share/man/man3/gnutls_load_file.3 +51 -0
  1185. data/vendor/local/share/man/man3/gnutls_mac_get.3 +15 -6
  1186. data/vendor/local/share/man/man3/gnutls_mac_get_id.3 +20 -10
  1187. data/vendor/local/share/man/man3/gnutls_mac_get_key_size.3 +15 -6
  1188. data/vendor/local/share/man/man3/gnutls_mac_get_name.3 +15 -6
  1189. data/vendor/local/share/man/man3/gnutls_mac_list.3 +18 -7
  1190. data/vendor/local/share/man/man3/gnutls_mac_set_priority.3 +21 -12
  1191. data/vendor/local/share/man/man3/gnutls_ocsp_req_add_cert.3 +55 -0
  1192. data/vendor/local/share/man/man3/gnutls_ocsp_req_add_cert_id.3 +66 -0
  1193. data/vendor/local/share/man/man3/gnutls_ocsp_req_deinit.3 +42 -0
  1194. data/vendor/local/share/man/man3/gnutls_ocsp_req_export.3 +47 -0
  1195. data/vendor/local/share/man/man3/gnutls_ocsp_req_get_cert_id.3 +70 -0
  1196. data/vendor/local/share/man/man3/gnutls_ocsp_req_get_extension.3 +63 -0
  1197. data/vendor/local/share/man/man3/gnutls_ocsp_req_get_nonce.3 +52 -0
  1198. data/vendor/local/share/man/man3/gnutls_ocsp_req_get_version.3 +45 -0
  1199. data/vendor/local/share/man/man3/gnutls_ocsp_req_import.3 +49 -0
  1200. data/vendor/local/share/man/man3/gnutls_ocsp_req_init.3 +45 -0
  1201. data/vendor/local/share/man/man3/gnutls_ocsp_req_print.3 +55 -0
  1202. data/vendor/local/share/man/man3/gnutls_ocsp_req_randomize_nonce.3 +46 -0
  1203. data/vendor/local/share/man/man3/gnutls_ocsp_req_set_extension.3 +53 -0
  1204. data/vendor/local/share/man/man3/gnutls_ocsp_req_set_nonce.3 +51 -0
  1205. data/vendor/local/share/man/man3/gnutls_ocsp_resp_check_crt.3 +50 -0
  1206. data/vendor/local/share/man/man3/gnutls_ocsp_resp_deinit.3 +42 -0
  1207. data/vendor/local/share/man/man3/gnutls_ocsp_resp_export.3 +47 -0
  1208. data/vendor/local/share/man/man3/gnutls_ocsp_resp_get_certs.3 +60 -0
  1209. data/vendor/local/share/man/man3/gnutls_ocsp_resp_get_extension.3 +63 -0
  1210. data/vendor/local/share/man/man3/gnutls_ocsp_resp_get_nonce.3 +53 -0
  1211. data/vendor/local/share/man/man3/gnutls_ocsp_resp_get_produced.3 +45 -0
  1212. data/vendor/local/share/man/man3/gnutls_ocsp_resp_get_responder.3 +53 -0
  1213. data/vendor/local/share/man/man3/gnutls_ocsp_resp_get_response.3 +58 -0
  1214. data/vendor/local/share/man/man3/gnutls_ocsp_resp_get_signature.3 +47 -0
  1215. data/vendor/local/share/man/man3/gnutls_ocsp_resp_get_signature_algorithm.3 +47 -0
  1216. data/vendor/local/share/man/man3/gnutls_ocsp_resp_get_single.3 +73 -0
  1217. data/vendor/local/share/man/man3/gnutls_ocsp_resp_get_status.3 +46 -0
  1218. data/vendor/local/share/man/man3/gnutls_ocsp_resp_get_version.3 +46 -0
  1219. data/vendor/local/share/man/man3/gnutls_ocsp_resp_import.3 +49 -0
  1220. data/vendor/local/share/man/man3/gnutls_ocsp_resp_init.3 +45 -0
  1221. data/vendor/local/share/man/man3/gnutls_ocsp_resp_print.3 +55 -0
  1222. data/vendor/local/share/man/man3/gnutls_ocsp_resp_verify.3 +68 -0
  1223. data/vendor/local/share/man/man3/gnutls_ocsp_resp_verify_direct.3 +62 -0
  1224. data/vendor/local/share/man/man3/gnutls_ocsp_status_request_enable_client.3 +54 -0
  1225. data/vendor/local/share/man/man3/gnutls_ocsp_status_request_get.3 +50 -0
  1226. data/vendor/local/share/man/man3/gnutls_ocsp_status_request_is_checked.3 +51 -0
  1227. data/vendor/local/share/man/man3/gnutls_openpgp_crt_check_hostname.3 +17 -8
  1228. data/vendor/local/share/man/man3/gnutls_openpgp_crt_deinit.3 +15 -6
  1229. data/vendor/local/share/man/man3/gnutls_openpgp_crt_export.3 +16 -7
  1230. data/vendor/local/share/man/man3/gnutls_openpgp_crt_export2.3 +49 -0
  1231. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_auth_subkey.3 +18 -8
  1232. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_creation_time.3 +15 -6
  1233. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_expiration_time.3 +15 -6
  1234. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_fingerprint.3 +15 -6
  1235. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_key_id.3 +15 -6
  1236. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_key_usage.3 +15 -6
  1237. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_name.3 +19 -9
  1238. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_pk_algorithm.3 +16 -7
  1239. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_pk_dsa_raw.3 +16 -7
  1240. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_pk_rsa_raw.3 +16 -7
  1241. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_preferred_key_id.3 +15 -6
  1242. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_revoked_status.3 +15 -6
  1243. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_subkey_count.3 +16 -7
  1244. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_subkey_creation_time.3 +15 -6
  1245. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_subkey_expiration_time.3 +15 -6
  1246. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_subkey_fingerprint.3 +15 -6
  1247. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_subkey_id.3 +15 -6
  1248. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_subkey_idx.3 +15 -6
  1249. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_subkey_pk_algorithm.3 +16 -7
  1250. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_subkey_pk_dsa_raw.3 +16 -7
  1251. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_subkey_pk_rsa_raw.3 +16 -7
  1252. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_subkey_revoked_status.3 +16 -7
  1253. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_subkey_usage.3 +16 -7
  1254. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_version.3 +16 -7
  1255. data/vendor/local/share/man/man3/gnutls_openpgp_crt_import.3 +15 -6
  1256. data/vendor/local/share/man/man3/gnutls_openpgp_crt_init.3 +15 -6
  1257. data/vendor/local/share/man/man3/gnutls_openpgp_crt_print.3 +18 -9
  1258. data/vendor/local/share/man/man3/gnutls_openpgp_crt_set_preferred_key_id.3 +21 -6
  1259. data/vendor/local/share/man/man3/gnutls_openpgp_crt_verify_ring.3 +20 -7
  1260. data/vendor/local/share/man/man3/gnutls_openpgp_crt_verify_self.3 +16 -7
  1261. data/vendor/local/share/man/man3/gnutls_openpgp_keyring_check_id.3 +15 -6
  1262. data/vendor/local/share/man/man3/gnutls_openpgp_keyring_deinit.3 +15 -6
  1263. data/vendor/local/share/man/man3/gnutls_openpgp_keyring_get_crt.3 +17 -6
  1264. data/vendor/local/share/man/man3/gnutls_openpgp_keyring_get_crt_count.3 +16 -7
  1265. data/vendor/local/share/man/man3/gnutls_openpgp_keyring_import.3 +15 -6
  1266. data/vendor/local/share/man/man3/gnutls_openpgp_keyring_init.3 +15 -6
  1267. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_deinit.3 +15 -6
  1268. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_export.3 +19 -10
  1269. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_export2.3 +55 -0
  1270. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_export_dsa_raw.3 +16 -7
  1271. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_export_rsa_raw.3 +16 -7
  1272. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_export_subkey_dsa_raw.3 +16 -7
  1273. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_export_subkey_rsa_raw.3 +16 -7
  1274. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_fingerprint.3 +15 -6
  1275. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_key_id.3 +15 -6
  1276. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_pk_algorithm.3 +16 -7
  1277. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_preferred_key_id.3 +15 -6
  1278. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_revoked_status.3 +16 -7
  1279. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_subkey_count.3 +16 -7
  1280. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_subkey_creation_time.3 +15 -6
  1281. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_subkey_fingerprint.3 +15 -6
  1282. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_subkey_id.3 +15 -6
  1283. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_subkey_idx.3 +15 -6
  1284. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_subkey_pk_algorithm.3 +16 -7
  1285. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_subkey_revoked_status.3 +18 -9
  1286. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_import.3 +20 -11
  1287. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_init.3 +15 -6
  1288. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_sec_param.3 +48 -0
  1289. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_set_preferred_key_id.3 +22 -9
  1290. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_sign_hash.3 +21 -10
  1291. data/vendor/local/share/man/man3/gnutls_openpgp_send_cert.3 +15 -6
  1292. data/vendor/local/share/man/man3/gnutls_openpgp_set_recv_key_function.3 +16 -7
  1293. data/vendor/local/share/man/man3/gnutls_pcert_deinit.3 +44 -0
  1294. data/vendor/local/share/man/man3/gnutls_pcert_import_openpgp.3 +53 -0
  1295. data/vendor/local/share/man/man3/gnutls_pcert_import_openpgp_raw.3 +57 -0
  1296. data/vendor/local/share/man/man3/gnutls_pcert_import_x509.3 +53 -0
  1297. data/vendor/local/share/man/man3/gnutls_pcert_import_x509_raw.3 +55 -0
  1298. data/vendor/local/share/man/man3/gnutls_pcert_list_import_x509_raw.3 +59 -0
  1299. data/vendor/local/share/man/man3/gnutls_pem_base64_decode.3 +15 -6
  1300. data/vendor/local/share/man/man3/gnutls_pem_base64_decode_alloc.3 +15 -6
  1301. data/vendor/local/share/man/man3/gnutls_pem_base64_encode.3 +15 -6
  1302. data/vendor/local/share/man/man3/gnutls_pem_base64_encode_alloc.3 +15 -6
  1303. data/vendor/local/share/man/man3/gnutls_perror.3 +18 -9
  1304. data/vendor/local/share/man/man3/gnutls_pk_algorithm_get_name.3 +15 -6
  1305. data/vendor/local/share/man/man3/gnutls_pk_bits_to_sec_param.3 +50 -0
  1306. data/vendor/local/share/man/man3/gnutls_pk_get_id.3 +49 -0
  1307. data/vendor/local/share/man/man3/gnutls_pk_get_name.3 +47 -0
  1308. data/vendor/local/share/man/man3/gnutls_pk_list.3 +49 -0
  1309. data/vendor/local/share/man/man3/gnutls_pk_to_sign.3 +47 -0
  1310. data/vendor/local/share/man/man3/gnutls_pkcs11_add_provider.3 +51 -0
  1311. data/vendor/local/share/man/man3/gnutls_pkcs11_copy_secret_key.3 +56 -0
  1312. data/vendor/local/share/man/man3/gnutls_pkcs11_copy_x509_crt.3 +54 -0
  1313. data/vendor/local/share/man/man3/gnutls_pkcs11_copy_x509_privkey.3 +57 -0
  1314. data/vendor/local/share/man/man3/gnutls_pkcs11_deinit.3 +44 -0
  1315. data/vendor/local/share/man/man3/gnutls_pkcs11_delete_url.3 +50 -0
  1316. data/vendor/local/share/man/man3/gnutls_pkcs11_get_pin_function.3 +47 -0
  1317. data/vendor/local/share/man/man3/gnutls_pkcs11_init.3 +57 -0
  1318. data/vendor/local/share/man/man3/gnutls_pkcs11_obj_deinit.3 +44 -0
  1319. data/vendor/local/share/man/man3/gnutls_pkcs11_obj_export.3 +61 -0
  1320. data/vendor/local/share/man/man3/gnutls_pkcs11_obj_export2.3 +56 -0
  1321. data/vendor/local/share/man/man3/gnutls_pkcs11_obj_export_url.3 +51 -0
  1322. data/vendor/local/share/man/man3/gnutls_pkcs11_obj_get_info.3 +55 -0
  1323. data/vendor/local/share/man/man3/gnutls_pkcs11_obj_get_type.3 +47 -0
  1324. data/vendor/local/share/man/man3/gnutls_pkcs11_obj_import_url.3 +54 -0
  1325. data/vendor/local/share/man/man3/gnutls_pkcs11_obj_init.3 +47 -0
  1326. data/vendor/local/share/man/man3/gnutls_pkcs11_obj_list_import_url.3 +56 -0
  1327. data/vendor/local/share/man/man3/gnutls_pkcs11_obj_list_import_url2.3 +57 -0
  1328. data/vendor/local/share/man/man3/gnutls_pkcs11_obj_set_pin_function.3 +50 -0
  1329. data/vendor/local/share/man/man3/gnutls_pkcs11_privkey_deinit.3 +42 -0
  1330. data/vendor/local/share/man/man3/gnutls_pkcs11_privkey_export_url.3 +49 -0
  1331. data/vendor/local/share/man/man3/gnutls_pkcs11_privkey_generate.3 +57 -0
  1332. data/vendor/local/share/man/man3/gnutls_pkcs11_privkey_generate2.3 +63 -0
  1333. data/vendor/local/share/man/man3/gnutls_pkcs11_privkey_get_info.3 +53 -0
  1334. data/vendor/local/share/man/man3/gnutls_pkcs11_privkey_get_pk_algorithm.3 +48 -0
  1335. data/vendor/local/share/man/man3/gnutls_pkcs11_privkey_import_url.3 +52 -0
  1336. data/vendor/local/share/man/man3/gnutls_pkcs11_privkey_init.3 +45 -0
  1337. data/vendor/local/share/man/man3/gnutls_pkcs11_privkey_set_pin_function.3 +50 -0
  1338. data/vendor/local/share/man/man3/gnutls_pkcs11_reinit.3 +49 -0
  1339. data/vendor/local/share/man/man3/gnutls_pkcs11_set_pin_function.3 +48 -0
  1340. data/vendor/local/share/man/man3/gnutls_pkcs11_set_token_function.3 +47 -0
  1341. data/vendor/local/share/man/man3/gnutls_pkcs11_token_get_flags.3 +49 -0
  1342. data/vendor/local/share/man/man3/gnutls_pkcs11_token_get_info.3 +54 -0
  1343. data/vendor/local/share/man/man3/gnutls_pkcs11_token_get_mechanism.3 +52 -0
  1344. data/vendor/local/share/man/man3/gnutls_pkcs11_token_get_url.3 +53 -0
  1345. data/vendor/local/share/man/man3/gnutls_pkcs11_token_init.3 +51 -0
  1346. data/vendor/local/share/man/man3/gnutls_pkcs11_token_set_pin.3 +53 -0
  1347. data/vendor/local/share/man/man3/gnutls_pkcs11_type_get_name.3 +49 -0
  1348. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_decrypt.3 +21 -8
  1349. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_deinit.3 +16 -7
  1350. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_encrypt.3 +21 -9
  1351. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_get_count.3 +19 -7
  1352. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_get_data.3 +18 -9
  1353. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_get_friendly_name.3 +20 -10
  1354. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_get_key_id.3 +19 -9
  1355. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_get_type.3 +18 -8
  1356. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_init.3 +18 -9
  1357. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_set_crl.3 +16 -7
  1358. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_set_crt.3 +15 -6
  1359. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_set_data.3 +15 -6
  1360. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_set_friendly_name.3 +21 -11
  1361. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_set_key_id.3 +21 -11
  1362. data/vendor/local/share/man/man3/gnutls_pkcs12_deinit.3 +16 -7
  1363. data/vendor/local/share/man/man3/gnutls_pkcs12_export.3 +17 -8
  1364. data/vendor/local/share/man/man3/gnutls_pkcs12_export2.3 +56 -0
  1365. data/vendor/local/share/man/man3/gnutls_pkcs12_generate_mac.3 +16 -7
  1366. data/vendor/local/share/man/man3/gnutls_pkcs12_get_bag.3 +19 -10
  1367. data/vendor/local/share/man/man3/gnutls_pkcs12_import.3 +16 -7
  1368. data/vendor/local/share/man/man3/gnutls_pkcs12_init.3 +16 -7
  1369. data/vendor/local/share/man/man3/gnutls_pkcs12_set_bag.3 +16 -7
  1370. data/vendor/local/share/man/man3/gnutls_pkcs12_simple_parse.3 +93 -0
  1371. data/vendor/local/share/man/man3/gnutls_pkcs12_verify_mac.3 +16 -7
  1372. data/vendor/local/share/man/man3/gnutls_pkcs7_deinit.3 +15 -6
  1373. data/vendor/local/share/man/man3/gnutls_pkcs7_delete_crl.3 +17 -7
  1374. data/vendor/local/share/man/man3/gnutls_pkcs7_delete_crt.3 +17 -7
  1375. data/vendor/local/share/man/man3/gnutls_pkcs7_export.3 +19 -10
  1376. data/vendor/local/share/man/man3/gnutls_pkcs7_export2.3 +54 -0
  1377. data/vendor/local/share/man/man3/gnutls_pkcs7_get_crl_count.3 +17 -7
  1378. data/vendor/local/share/man/man3/gnutls_pkcs7_get_crl_raw.3 +18 -8
  1379. data/vendor/local/share/man/man3/gnutls_pkcs7_get_crt_count.3 +17 -7
  1380. data/vendor/local/share/man/man3/gnutls_pkcs7_get_crt_raw.3 +18 -8
  1381. data/vendor/local/share/man/man3/gnutls_pkcs7_import.3 +17 -8
  1382. data/vendor/local/share/man/man3/gnutls_pkcs7_init.3 +16 -7
  1383. data/vendor/local/share/man/man3/gnutls_pkcs7_set_crl.3 +17 -7
  1384. data/vendor/local/share/man/man3/gnutls_pkcs7_set_crl_raw.3 +17 -7
  1385. data/vendor/local/share/man/man3/gnutls_pkcs7_set_crt.3 +17 -7
  1386. data/vendor/local/share/man/man3/gnutls_pkcs7_set_crt_raw.3 +17 -7
  1387. data/vendor/local/share/man/man3/gnutls_prf.3 +28 -19
  1388. data/vendor/local/share/man/man3/gnutls_prf_raw.3 +25 -16
  1389. data/vendor/local/share/man/man3/gnutls_priority_certificate_type_list.3 +49 -0
  1390. data/vendor/local/share/man/man3/gnutls_priority_compression_list.3 +49 -0
  1391. data/vendor/local/share/man/man3/gnutls_priority_deinit.3 +15 -6
  1392. data/vendor/local/share/man/man3/gnutls_priority_ecc_curve_list.3 +49 -0
  1393. data/vendor/local/share/man/man3/gnutls_priority_get_cipher_suite_index.3 +54 -0
  1394. data/vendor/local/share/man/man3/gnutls_priority_init.3 +58 -53
  1395. data/vendor/local/share/man/man3/gnutls_priority_protocol_list.3 +49 -0
  1396. data/vendor/local/share/man/man3/gnutls_priority_set.3 +16 -7
  1397. data/vendor/local/share/man/man3/gnutls_priority_set_direct.3 +16 -7
  1398. data/vendor/local/share/man/man3/gnutls_priority_sign_list.3 +49 -0
  1399. data/vendor/local/share/man/man3/gnutls_privkey_decrypt_data.3 +54 -0
  1400. data/vendor/local/share/man/man3/gnutls_privkey_deinit.3 +44 -0
  1401. data/vendor/local/share/man/man3/gnutls_privkey_get_pk_algorithm.3 +51 -0
  1402. data/vendor/local/share/man/man3/gnutls_privkey_get_type.3 +48 -0
  1403. data/vendor/local/share/man/man3/gnutls_privkey_import_ext.3 +59 -0
  1404. data/vendor/local/share/man/man3/gnutls_privkey_import_ext2.3 +62 -0
  1405. data/vendor/local/share/man/man3/gnutls_privkey_import_openpgp.3 +59 -0
  1406. data/vendor/local/share/man/man3/gnutls_privkey_import_openpgp_raw.3 +56 -0
  1407. data/vendor/local/share/man/man3/gnutls_privkey_import_pkcs11.3 +58 -0
  1408. data/vendor/local/share/man/man3/gnutls_privkey_import_pkcs11_url.3 +50 -0
  1409. data/vendor/local/share/man/man3/gnutls_privkey_import_tpm_raw.3 +60 -0
  1410. data/vendor/local/share/man/man3/gnutls_privkey_import_tpm_url.3 +64 -0
  1411. data/vendor/local/share/man/man3/gnutls_privkey_import_url.3 +53 -0
  1412. data/vendor/local/share/man/man3/gnutls_privkey_import_x509.3 +58 -0
  1413. data/vendor/local/share/man/man3/gnutls_privkey_import_x509_raw.3 +59 -0
  1414. data/vendor/local/share/man/man3/gnutls_privkey_init.3 +47 -0
  1415. data/vendor/local/share/man/man3/gnutls_privkey_set_pin_function.3 +53 -0
  1416. data/vendor/local/share/man/man3/gnutls_privkey_sign_data.3 +61 -0
  1417. data/vendor/local/share/man/man3/gnutls_privkey_sign_hash.3 +61 -0
  1418. data/vendor/local/share/man/man3/gnutls_protocol_get_id.3 +18 -8
  1419. data/vendor/local/share/man/man3/gnutls_protocol_get_name.3 +15 -6
  1420. data/vendor/local/share/man/man3/gnutls_protocol_get_version.3 +16 -7
  1421. data/vendor/local/share/man/man3/gnutls_protocol_list.3 +18 -7
  1422. data/vendor/local/share/man/man3/gnutls_protocol_set_priority.3 +16 -7
  1423. data/vendor/local/share/man/man3/gnutls_psk_allocate_client_credentials.3 +18 -8
  1424. data/vendor/local/share/man/man3/gnutls_psk_allocate_server_credentials.3 +18 -8
  1425. data/vendor/local/share/man/man3/gnutls_psk_client_get_hint.3 +15 -6
  1426. data/vendor/local/share/man/man3/gnutls_psk_free_client_credentials.3 +16 -7
  1427. data/vendor/local/share/man/man3/gnutls_psk_free_server_credentials.3 +16 -7
  1428. data/vendor/local/share/man/man3/gnutls_psk_server_get_username.3 +15 -6
  1429. data/vendor/local/share/man/man3/gnutls_psk_set_client_credentials.3 +25 -13
  1430. data/vendor/local/share/man/man3/gnutls_psk_set_client_credentials_function.3 +20 -11
  1431. data/vendor/local/share/man/man3/gnutls_psk_set_params_function.3 +17 -8
  1432. data/vendor/local/share/man/man3/gnutls_psk_set_server_credentials_file.3 +20 -10
  1433. data/vendor/local/share/man/man3/gnutls_psk_set_server_credentials_function.3 +20 -11
  1434. data/vendor/local/share/man/man3/gnutls_psk_set_server_credentials_hint.3 +18 -8
  1435. data/vendor/local/share/man/man3/gnutls_psk_set_server_dh_params.3 +19 -10
  1436. data/vendor/local/share/man/man3/gnutls_psk_set_server_params_function.3 +18 -9
  1437. data/vendor/local/share/man/man3/gnutls_pubkey_deinit.3 +44 -0
  1438. data/vendor/local/share/man/man3/gnutls_pubkey_encrypt_data.3 +54 -0
  1439. data/vendor/local/share/man/man3/gnutls_pubkey_export.3 +63 -0
  1440. data/vendor/local/share/man/man3/gnutls_pubkey_export2.3 +58 -0
  1441. data/vendor/local/share/man/man3/gnutls_pubkey_get_key_id.3 +61 -0
  1442. data/vendor/local/share/man/man3/gnutls_pubkey_get_key_usage.3 +49 -0
  1443. data/vendor/local/share/man/man3/gnutls_pubkey_get_openpgp_key_id.3 +62 -0
  1444. data/vendor/local/share/man/man3/gnutls_pubkey_get_pk_algorithm.3 +51 -0
  1445. data/vendor/local/share/man/man3/gnutls_pubkey_get_pk_dsa_raw.3 +56 -0
  1446. data/vendor/local/share/man/man3/gnutls_pubkey_get_pk_ecc_raw.3 +54 -0
  1447. data/vendor/local/share/man/man3/gnutls_pubkey_get_pk_ecc_x962.3 +52 -0
  1448. data/vendor/local/share/man/man3/gnutls_pubkey_get_pk_rsa_raw.3 +52 -0
  1449. data/vendor/local/share/man/man3/gnutls_pubkey_get_preferred_hash_algorithm.3 +53 -0
  1450. data/vendor/local/share/man/man3/gnutls_pubkey_get_verify_algorithm.3 +52 -0
  1451. data/vendor/local/share/man/man3/gnutls_pubkey_import.3 +55 -0
  1452. data/vendor/local/share/man/man3/gnutls_pubkey_import_dsa_raw.3 +57 -0
  1453. data/vendor/local/share/man/man3/gnutls_pubkey_import_ecc_raw.3 +54 -0
  1454. data/vendor/local/share/man/man3/gnutls_pubkey_import_ecc_x962.3 +52 -0
  1455. data/vendor/local/share/man/man3/gnutls_pubkey_import_openpgp.3 +54 -0
  1456. data/vendor/local/share/man/man3/gnutls_pubkey_import_openpgp_raw.3 +56 -0
  1457. data/vendor/local/share/man/man3/gnutls_pubkey_import_pkcs11.3 +52 -0
  1458. data/vendor/local/share/man/man3/gnutls_pubkey_import_pkcs11_url.3 +52 -0
  1459. data/vendor/local/share/man/man3/gnutls_pubkey_import_privkey.3 +54 -0
  1460. data/vendor/local/share/man/man3/gnutls_pubkey_import_rsa_raw.3 +52 -0
  1461. data/vendor/local/share/man/man3/gnutls_pubkey_import_tpm_raw.3 +59 -0
  1462. data/vendor/local/share/man/man3/gnutls_pubkey_import_tpm_url.3 +60 -0
  1463. data/vendor/local/share/man/man3/gnutls_pubkey_import_url.3 +52 -0
  1464. data/vendor/local/share/man/man3/gnutls_pubkey_import_x509.3 +52 -0
  1465. data/vendor/local/share/man/man3/gnutls_pubkey_import_x509_crq.3 +52 -0
  1466. data/vendor/local/share/man/man3/gnutls_pubkey_import_x509_raw.3 +54 -0
  1467. data/vendor/local/share/man/man3/gnutls_pubkey_init.3 +47 -0
  1468. data/vendor/local/share/man/man3/gnutls_pubkey_print.3 +57 -0
  1469. data/vendor/local/share/man/man3/gnutls_pubkey_set_key_usage.3 +51 -0
  1470. data/vendor/local/share/man/man3/gnutls_pubkey_set_pin_function.3 +53 -0
  1471. data/vendor/local/share/man/man3/gnutls_pubkey_verify_data.3 +56 -0
  1472. data/vendor/local/share/man/man3/gnutls_pubkey_verify_data2.3 +56 -0
  1473. data/vendor/local/share/man/man3/gnutls_pubkey_verify_hash.3 +56 -0
  1474. data/vendor/local/share/man/man3/gnutls_pubkey_verify_hash2.3 +56 -0
  1475. data/vendor/local/share/man/man3/gnutls_random_art.3 +56 -0
  1476. data/vendor/local/share/man/man3/gnutls_record_check_pending.3 +21 -12
  1477. data/vendor/local/share/man/man3/gnutls_record_disable_padding.3 +17 -8
  1478. data/vendor/local/share/man/man3/gnutls_record_get_direction.3 +15 -6
  1479. data/vendor/local/share/man/man3/gnutls_record_get_discarded.3 +47 -0
  1480. data/vendor/local/share/man/man3/gnutls_record_get_max_size.3 +19 -9
  1481. data/vendor/local/share/man/man3/gnutls_record_recv.3 +25 -19
  1482. data/vendor/local/share/man/man3/gnutls_record_recv_seq.3 +59 -0
  1483. data/vendor/local/share/man/man3/gnutls_record_send.3 +26 -18
  1484. data/vendor/local/share/man/man3/gnutls_record_set_max_size.3 +21 -9
  1485. data/vendor/local/share/man/man3/gnutls_rehandshake.3 +23 -7
  1486. data/vendor/local/share/man/man3/gnutls_rnd.3 +51 -0
  1487. data/vendor/local/share/man/man3/gnutls_rsa_export_get_modulus_bits.3 +18 -9
  1488. data/vendor/local/share/man/man3/gnutls_rsa_export_get_pubkey.3 +16 -7
  1489. data/vendor/local/share/man/man3/gnutls_rsa_params_cpy.3 +18 -7
  1490. data/vendor/local/share/man/man3/gnutls_rsa_params_deinit.3 +16 -7
  1491. data/vendor/local/share/man/man3/gnutls_rsa_params_export_pkcs1.3 +20 -12
  1492. data/vendor/local/share/man/man3/gnutls_rsa_params_export_raw.3 +20 -9
  1493. data/vendor/local/share/man/man3/gnutls_rsa_params_generate2.3 +21 -10
  1494. data/vendor/local/share/man/man3/gnutls_rsa_params_import_pkcs1.3 +21 -13
  1495. data/vendor/local/share/man/man3/gnutls_rsa_params_import_raw.3 +20 -8
  1496. data/vendor/local/share/man/man3/gnutls_rsa_params_init.3 +18 -7
  1497. data/vendor/local/share/man/man3/gnutls_safe_renegotiation_status.3 +48 -0
  1498. data/vendor/local/share/man/man3/gnutls_sec_param_get_name.3 +47 -0
  1499. data/vendor/local/share/man/man3/gnutls_sec_param_to_pk_bits.3 +52 -0
  1500. data/vendor/local/share/man/man3/gnutls_server_name_get.3 +30 -15
  1501. data/vendor/local/share/man/man3/gnutls_server_name_set.3 +26 -13
  1502. data/vendor/local/share/man/man3/gnutls_session_channel_binding.3 +54 -0
  1503. data/vendor/local/share/man/man3/gnutls_session_enable_compatibility_mode.3 +17 -8
  1504. data/vendor/local/share/man/man3/gnutls_session_get_data.3 +19 -14
  1505. data/vendor/local/share/man/man3/gnutls_session_get_data2.3 +21 -14
  1506. data/vendor/local/share/man/man3/gnutls_session_get_id.3 +19 -10
  1507. data/vendor/local/share/man/man3/gnutls_session_get_id2.3 +50 -0
  1508. data/vendor/local/share/man/man3/gnutls_session_get_ptr.3 +15 -6
  1509. data/vendor/local/share/man/man3/gnutls_session_get_random.3 +53 -0
  1510. data/vendor/local/share/man/man3/gnutls_session_is_resumed.3 +15 -6
  1511. data/vendor/local/share/man/man3/gnutls_session_resumption_requested.3 +45 -0
  1512. data/vendor/local/share/man/man3/gnutls_session_set_data.3 +15 -6
  1513. data/vendor/local/share/man/man3/gnutls_session_set_premaster.3 +64 -0
  1514. data/vendor/local/share/man/man3/gnutls_session_set_ptr.3 +17 -8
  1515. data/vendor/local/share/man/man3/gnutls_session_ticket_enable_client.3 +48 -0
  1516. data/vendor/local/share/man/man3/gnutls_session_ticket_enable_server.3 +51 -0
  1517. data/vendor/local/share/man/man3/gnutls_session_ticket_key_generate.3 +49 -0
  1518. data/vendor/local/share/man/man3/gnutls_set_default_export_priority.3 +18 -8
  1519. data/vendor/local/share/man/man3/gnutls_set_default_priority.3 +17 -7
  1520. data/vendor/local/share/man/man3/gnutls_sign_algorithm_get.3 +47 -0
  1521. data/vendor/local/share/man/man3/gnutls_sign_algorithm_get_requested.3 +59 -0
  1522. data/vendor/local/share/man/man3/gnutls_sign_callback_get.3 +18 -7
  1523. data/vendor/local/share/man/man3/gnutls_sign_callback_set.3 +18 -7
  1524. data/vendor/local/share/man/man3/gnutls_sign_get_hash_algorithm.3 +47 -0
  1525. data/vendor/local/share/man/man3/gnutls_sign_get_id.3 +45 -0
  1526. data/vendor/local/share/man/man3/gnutls_sign_get_name.3 +45 -0
  1527. data/vendor/local/share/man/man3/gnutls_sign_get_pk_algorithm.3 +47 -0
  1528. data/vendor/local/share/man/man3/gnutls_sign_is_secure.3 +42 -0
  1529. data/vendor/local/share/man/man3/gnutls_sign_list.3 +45 -0
  1530. data/vendor/local/share/man/man3/gnutls_srp_allocate_client_credentials.3 +16 -7
  1531. data/vendor/local/share/man/man3/gnutls_srp_allocate_server_credentials.3 +16 -7
  1532. data/vendor/local/share/man/man3/gnutls_srp_base64_decode.3 +16 -7
  1533. data/vendor/local/share/man/man3/gnutls_srp_base64_decode_alloc.3 +15 -6
  1534. data/vendor/local/share/man/man3/gnutls_srp_base64_encode.3 +15 -6
  1535. data/vendor/local/share/man/man3/gnutls_srp_base64_encode_alloc.3 +15 -6
  1536. data/vendor/local/share/man/man3/gnutls_srp_free_client_credentials.3 +16 -7
  1537. data/vendor/local/share/man/man3/gnutls_srp_free_server_credentials.3 +16 -7
  1538. data/vendor/local/share/man/man3/gnutls_srp_server_get_username.3 +15 -6
  1539. data/vendor/local/share/man/man3/gnutls_srp_set_client_credentials.3 +17 -8
  1540. data/vendor/local/share/man/man3/gnutls_srp_set_client_credentials_function.3 +23 -15
  1541. data/vendor/local/share/man/man3/gnutls_srp_set_prime_bits.3 +54 -0
  1542. data/vendor/local/share/man/man3/gnutls_srp_set_server_credentials_file.3 +18 -9
  1543. data/vendor/local/share/man/man3/gnutls_srp_set_server_credentials_function.3 +24 -15
  1544. data/vendor/local/share/man/man3/gnutls_srp_verifier.3 +19 -12
  1545. data/vendor/local/share/man/man3/gnutls_srtp_get_keys.3 +63 -0
  1546. data/vendor/local/share/man/man3/gnutls_srtp_get_mki.3 +51 -0
  1547. data/vendor/local/share/man/man3/gnutls_srtp_get_profile_id.3 +49 -0
  1548. data/vendor/local/share/man/man3/gnutls_srtp_get_profile_name.3 +48 -0
  1549. data/vendor/local/share/man/man3/gnutls_srtp_get_selected_profile.3 +49 -0
  1550. data/vendor/local/share/man/man3/gnutls_srtp_set_mki.3 +50 -0
  1551. data/vendor/local/share/man/man3/gnutls_srtp_set_profile.3 +50 -0
  1552. data/vendor/local/share/man/man3/gnutls_srtp_set_profile_direct.3 +53 -0
  1553. data/vendor/local/share/man/man3/gnutls_store_commitment.3 +69 -0
  1554. data/vendor/local/share/man/man3/gnutls_store_pubkey.3 +67 -0
  1555. data/vendor/local/share/man/man3/gnutls_strerror.3 +23 -10
  1556. data/vendor/local/share/man/man3/gnutls_strerror_name.3 +49 -0
  1557. data/vendor/local/share/man/man3/gnutls_supplemental_get_name.3 +46 -0
  1558. data/vendor/local/share/man/man3/gnutls_tdb_deinit.3 +42 -0
  1559. data/vendor/local/share/man/man3/gnutls_tdb_init.3 +45 -0
  1560. data/vendor/local/share/man/man3/gnutls_tdb_set_store_commitment_func.3 +49 -0
  1561. data/vendor/local/share/man/man3/gnutls_tdb_set_store_func.3 +49 -0
  1562. data/vendor/local/share/man/man3/gnutls_tdb_set_verify_func.3 +48 -0
  1563. data/vendor/local/share/man/man3/gnutls_tpm_get_registered.3 +48 -0
  1564. data/vendor/local/share/man/man3/gnutls_tpm_key_list_deinit.3 +44 -0
  1565. data/vendor/local/share/man/man3/gnutls_tpm_key_list_get_url.3 +56 -0
  1566. data/vendor/local/share/man/man3/gnutls_tpm_privkey_delete.3 +50 -0
  1567. data/vendor/local/share/man/man3/gnutls_tpm_privkey_generate.3 +73 -0
  1568. data/vendor/local/share/man/man3/gnutls_transport_get_ptr.3 +16 -7
  1569. data/vendor/local/share/man/man3/gnutls_transport_get_ptr2.3 +15 -6
  1570. data/vendor/local/share/man/man3/gnutls_transport_set_errno.3 +21 -17
  1571. data/vendor/local/share/man/man3/gnutls_transport_set_errno_function.3 +51 -0
  1572. data/vendor/local/share/man/man3/gnutls_transport_set_ptr.3 +18 -9
  1573. data/vendor/local/share/man/man3/gnutls_transport_set_ptr2.3 +19 -10
  1574. data/vendor/local/share/man/man3/gnutls_transport_set_pull_function.3 +22 -12
  1575. data/vendor/local/share/man/man3/gnutls_transport_set_pull_timeout_function.3 +55 -0
  1576. data/vendor/local/share/man/man3/gnutls_transport_set_push_function.3 +24 -13
  1577. data/vendor/local/share/man/man3/gnutls_transport_set_vec_push_function.3 +52 -0
  1578. data/vendor/local/share/man/man3/gnutls_url_is_supported.3 +48 -0
  1579. data/vendor/local/share/man/man3/gnutls_verify_stored_pubkey.3 +76 -0
  1580. data/vendor/local/share/man/man3/gnutls_x509_crl_check_issuer.3 +24 -13
  1581. data/vendor/local/share/man/man3/gnutls_x509_crl_deinit.3 +15 -6
  1582. data/vendor/local/share/man/man3/gnutls_x509_crl_export.3 +18 -9
  1583. data/vendor/local/share/man/man3/gnutls_x509_crl_export2.3 +56 -0
  1584. data/vendor/local/share/man/man3/gnutls_x509_crl_get_authority_key_gn_serial.3 +66 -0
  1585. data/vendor/local/share/man/man3/gnutls_x509_crl_get_authority_key_id.3 +60 -0
  1586. data/vendor/local/share/man/man3/gnutls_x509_crl_get_crt_count.3 +16 -7
  1587. data/vendor/local/share/man/man3/gnutls_x509_crl_get_crt_serial.3 +17 -8
  1588. data/vendor/local/share/man/man3/gnutls_x509_crl_get_dn_oid.3 +16 -7
  1589. data/vendor/local/share/man/man3/gnutls_x509_crl_get_extension_data.3 +62 -0
  1590. data/vendor/local/share/man/man3/gnutls_x509_crl_get_extension_info.3 +65 -0
  1591. data/vendor/local/share/man/man3/gnutls_x509_crl_get_extension_oid.3 +57 -0
  1592. data/vendor/local/share/man/man3/gnutls_x509_crl_get_issuer_dn.3 +17 -8
  1593. data/vendor/local/share/man/man3/gnutls_x509_crl_get_issuer_dn_by_oid.3 +22 -13
  1594. data/vendor/local/share/man/man3/gnutls_x509_crl_get_next_update.3 +15 -6
  1595. data/vendor/local/share/man/man3/gnutls_x509_crl_get_number.3 +55 -0
  1596. data/vendor/local/share/man/man3/gnutls_x509_crl_get_raw_issuer_dn.3 +49 -0
  1597. data/vendor/local/share/man/man3/gnutls_x509_crl_get_signature.3 +18 -9
  1598. data/vendor/local/share/man/man3/gnutls_x509_crl_get_signature_algorithm.3 +16 -7
  1599. data/vendor/local/share/man/man3/gnutls_x509_crl_get_this_update.3 +15 -6
  1600. data/vendor/local/share/man/man3/gnutls_x509_crl_get_version.3 +16 -7
  1601. data/vendor/local/share/man/man3/gnutls_x509_crl_import.3 +16 -7
  1602. data/vendor/local/share/man/man3/gnutls_x509_crl_init.3 +16 -7
  1603. data/vendor/local/share/man/man3/gnutls_x509_crl_list_import.3 +58 -0
  1604. data/vendor/local/share/man/man3/gnutls_x509_crl_list_import2.3 +59 -0
  1605. data/vendor/local/share/man/man3/gnutls_x509_crl_print.3 +18 -9
  1606. data/vendor/local/share/man/man3/gnutls_x509_crl_privkey_sign.3 +59 -0
  1607. data/vendor/local/share/man/man3/gnutls_x509_crl_set_authority_key_id.3 +54 -0
  1608. data/vendor/local/share/man/man3/gnutls_x509_crl_set_crt.3 +18 -9
  1609. data/vendor/local/share/man/man3/gnutls_x509_crl_set_crt_serial.3 +17 -8
  1610. data/vendor/local/share/man/man3/gnutls_x509_crl_set_next_update.3 +16 -7
  1611. data/vendor/local/share/man/man3/gnutls_x509_crl_set_number.3 +53 -0
  1612. data/vendor/local/share/man/man3/gnutls_x509_crl_set_this_update.3 +16 -7
  1613. data/vendor/local/share/man/man3/gnutls_x509_crl_set_version.3 +16 -7
  1614. data/vendor/local/share/man/man3/gnutls_x509_crl_sign.3 +19 -8
  1615. data/vendor/local/share/man/man3/gnutls_x509_crl_sign2.3 +16 -7
  1616. data/vendor/local/share/man/man3/gnutls_x509_crl_verify.3 +19 -9
  1617. data/vendor/local/share/man/man3/gnutls_x509_crq_deinit.3 +17 -7
  1618. data/vendor/local/share/man/man3/gnutls_x509_crq_export.3 +23 -13
  1619. data/vendor/local/share/man/man3/gnutls_x509_crq_export2.3 +57 -0
  1620. data/vendor/local/share/man/man3/gnutls_x509_crq_get_attribute_by_oid.3 +25 -15
  1621. data/vendor/local/share/man/man3/gnutls_x509_crq_get_attribute_data.3 +62 -0
  1622. data/vendor/local/share/man/man3/gnutls_x509_crq_get_attribute_info.3 +63 -0
  1623. data/vendor/local/share/man/man3/gnutls_x509_crq_get_basic_constraints.3 +61 -0
  1624. data/vendor/local/share/man/man3/gnutls_x509_crq_get_challenge_password.3 +22 -12
  1625. data/vendor/local/share/man/man3/gnutls_x509_crq_get_dn.3 +25 -17
  1626. data/vendor/local/share/man/man3/gnutls_x509_crq_get_dn_by_oid.3 +23 -16
  1627. data/vendor/local/share/man/man3/gnutls_x509_crq_get_dn_oid.3 +22 -15
  1628. data/vendor/local/share/man/man3/gnutls_x509_crq_get_extension_by_oid.3 +62 -0
  1629. data/vendor/local/share/man/man3/gnutls_x509_crq_get_extension_data.3 +62 -0
  1630. data/vendor/local/share/man/man3/gnutls_x509_crq_get_extension_info.3 +65 -0
  1631. data/vendor/local/share/man/man3/gnutls_x509_crq_get_key_id.3 +61 -0
  1632. data/vendor/local/share/man/man3/gnutls_x509_crq_get_key_purpose_oid.3 +59 -0
  1633. data/vendor/local/share/man/man3/gnutls_x509_crq_get_key_rsa_raw.3 +53 -0
  1634. data/vendor/local/share/man/man3/gnutls_x509_crq_get_key_usage.3 +59 -0
  1635. data/vendor/local/share/man/man3/gnutls_x509_crq_get_pk_algorithm.3 +22 -14
  1636. data/vendor/local/share/man/man3/gnutls_x509_crq_get_private_key_usage_period.3 +52 -0
  1637. data/vendor/local/share/man/man3/gnutls_x509_crq_get_subject_alt_name.3 +69 -0
  1638. data/vendor/local/share/man/man3/gnutls_x509_crq_get_subject_alt_othername_oid.3 +67 -0
  1639. data/vendor/local/share/man/man3/gnutls_x509_crq_get_version.3 +19 -9
  1640. data/vendor/local/share/man/man3/gnutls_x509_crq_import.3 +21 -10
  1641. data/vendor/local/share/man/man3/gnutls_x509_crq_init.3 +18 -8
  1642. data/vendor/local/share/man/man3/gnutls_x509_crq_print.3 +54 -0
  1643. data/vendor/local/share/man/man3/gnutls_x509_crq_privkey_sign.3 +61 -0
  1644. data/vendor/local/share/man/man3/gnutls_x509_crq_set_attribute_by_oid.3 +22 -12
  1645. data/vendor/local/share/man/man3/gnutls_x509_crq_set_basic_constraints.3 +53 -0
  1646. data/vendor/local/share/man/man3/gnutls_x509_crq_set_challenge_password.3 +20 -10
  1647. data/vendor/local/share/man/man3/gnutls_x509_crq_set_dn_by_oid.3 +24 -14
  1648. data/vendor/local/share/man/man3/gnutls_x509_crq_set_key.3 +19 -10
  1649. data/vendor/local/share/man/man3/gnutls_x509_crq_set_key_purpose_oid.3 +55 -0
  1650. data/vendor/local/share/man/man3/gnutls_x509_crq_set_key_rsa_raw.3 +52 -0
  1651. data/vendor/local/share/man/man3/gnutls_x509_crq_set_key_usage.3 +49 -0
  1652. data/vendor/local/share/man/man3/gnutls_x509_crq_set_private_key_usage_period.3 +49 -0
  1653. data/vendor/local/share/man/man3/gnutls_x509_crq_set_pubkey.3 +50 -0
  1654. data/vendor/local/share/man/man3/gnutls_x509_crq_set_subject_alt_name.3 +57 -0
  1655. data/vendor/local/share/man/man3/gnutls_x509_crq_set_version.3 +19 -10
  1656. data/vendor/local/share/man/man3/gnutls_x509_crq_sign.3 +22 -11
  1657. data/vendor/local/share/man/man3/gnutls_x509_crq_sign2.3 +17 -8
  1658. data/vendor/local/share/man/man3/gnutls_x509_crq_verify.3 +50 -0
  1659. data/vendor/local/share/man/man3/gnutls_x509_crt_check_hostname.3 +16 -7
  1660. data/vendor/local/share/man/man3/gnutls_x509_crt_check_issuer.3 +21 -10
  1661. data/vendor/local/share/man/man3/gnutls_x509_crt_check_revocation.3 +16 -7
  1662. data/vendor/local/share/man/man3/gnutls_x509_crt_cpy_crl_dist_points.3 +17 -8
  1663. data/vendor/local/share/man/man3/gnutls_x509_crt_deinit.3 +17 -8
  1664. data/vendor/local/share/man/man3/gnutls_x509_crt_export.3 +17 -8
  1665. data/vendor/local/share/man/man3/gnutls_x509_crt_export2.3 +55 -0
  1666. data/vendor/local/share/man/man3/gnutls_x509_crt_get_activation_time.3 +15 -6
  1667. data/vendor/local/share/man/man3/gnutls_x509_crt_get_authority_info_access.3 +109 -0
  1668. data/vendor/local/share/man/man3/gnutls_x509_crt_get_authority_key_gn_serial.3 +67 -0
  1669. data/vendor/local/share/man/man3/gnutls_x509_crt_get_authority_key_id.3 +30 -16
  1670. data/vendor/local/share/man/man3/gnutls_x509_crt_get_basic_constraints.3 +23 -14
  1671. data/vendor/local/share/man/man3/gnutls_x509_crt_get_ca_status.3 +20 -11
  1672. data/vendor/local/share/man/man3/gnutls_x509_crt_get_crl_dist_points.3 +22 -26
  1673. data/vendor/local/share/man/man3/gnutls_x509_crt_get_dn.3 +26 -17
  1674. data/vendor/local/share/man/man3/gnutls_x509_crt_get_dn_by_oid.3 +32 -21
  1675. data/vendor/local/share/man/man3/gnutls_x509_crt_get_dn_oid.3 +25 -14
  1676. data/vendor/local/share/man/man3/gnutls_x509_crt_get_expiration_time.3 +15 -6
  1677. data/vendor/local/share/man/man3/gnutls_x509_crt_get_extension_by_oid.3 +27 -17
  1678. data/vendor/local/share/man/man3/gnutls_x509_crt_get_extension_data.3 +22 -12
  1679. data/vendor/local/share/man/man3/gnutls_x509_crt_get_extension_info.3 +29 -18
  1680. data/vendor/local/share/man/man3/gnutls_x509_crt_get_extension_oid.3 +26 -13
  1681. data/vendor/local/share/man/man3/gnutls_x509_crt_get_fingerprint.3 +19 -10
  1682. data/vendor/local/share/man/man3/gnutls_x509_crt_get_issuer.3 +20 -11
  1683. data/vendor/local/share/man/man3/gnutls_x509_crt_get_issuer_alt_name.3 +73 -0
  1684. data/vendor/local/share/man/man3/gnutls_x509_crt_get_issuer_alt_name2.3 +67 -0
  1685. data/vendor/local/share/man/man3/gnutls_x509_crt_get_issuer_alt_othername_oid.3 +70 -0
  1686. data/vendor/local/share/man/man3/gnutls_x509_crt_get_issuer_dn.3 +21 -12
  1687. data/vendor/local/share/man/man3/gnutls_x509_crt_get_issuer_dn_by_oid.3 +30 -19
  1688. data/vendor/local/share/man/man3/gnutls_x509_crt_get_issuer_dn_oid.3 +25 -14
  1689. data/vendor/local/share/man/man3/gnutls_x509_crt_get_issuer_unique_id.3 +56 -0
  1690. data/vendor/local/share/man/man3/gnutls_x509_crt_get_key_id.3 +18 -9
  1691. data/vendor/local/share/man/man3/gnutls_x509_crt_get_key_purpose_oid.3 +24 -13
  1692. data/vendor/local/share/man/man3/gnutls_x509_crt_get_key_usage.3 +21 -12
  1693. data/vendor/local/share/man/man3/gnutls_x509_crt_get_pk_algorithm.3 +18 -9
  1694. data/vendor/local/share/man/man3/gnutls_x509_crt_get_pk_dsa_raw.3 +16 -7
  1695. data/vendor/local/share/man/man3/gnutls_x509_crt_get_pk_rsa_raw.3 +16 -7
  1696. data/vendor/local/share/man/man3/gnutls_x509_crt_get_policy.3 +57 -0
  1697. data/vendor/local/share/man/man3/gnutls_x509_crt_get_preferred_hash_algorithm.3 +55 -0
  1698. data/vendor/local/share/man/man3/gnutls_x509_crt_get_private_key_usage_period.3 +53 -0
  1699. data/vendor/local/share/man/man3/gnutls_x509_crt_get_proxy.3 +26 -18
  1700. data/vendor/local/share/man/man3/gnutls_x509_crt_get_raw_dn.3 +18 -9
  1701. data/vendor/local/share/man/man3/gnutls_x509_crt_get_raw_issuer_dn.3 +18 -9
  1702. data/vendor/local/share/man/man3/gnutls_x509_crt_get_serial.3 +21 -13
  1703. data/vendor/local/share/man/man3/gnutls_x509_crt_get_signature.3 +18 -9
  1704. data/vendor/local/share/man/man3/gnutls_x509_crt_get_signature_algorithm.3 +18 -8
  1705. data/vendor/local/share/man/man3/gnutls_x509_crt_get_subject.3 +20 -11
  1706. data/vendor/local/share/man/man3/gnutls_x509_crt_get_subject_alt_name.3 +24 -18
  1707. data/vendor/local/share/man/man3/gnutls_x509_crt_get_subject_alt_name2.3 +33 -17
  1708. data/vendor/local/share/man/man3/gnutls_x509_crt_get_subject_alt_othername_oid.3 +23 -11
  1709. data/vendor/local/share/man/man3/gnutls_x509_crt_get_subject_key_id.3 +21 -12
  1710. data/vendor/local/share/man/man3/gnutls_x509_crt_get_subject_unique_id.3 +54 -0
  1711. data/vendor/local/share/man/man3/gnutls_x509_crt_get_verify_algorithm.3 +54 -0
  1712. data/vendor/local/share/man/man3/gnutls_x509_crt_get_version.3 +16 -7
  1713. data/vendor/local/share/man/man3/gnutls_x509_crt_import.3 +20 -10
  1714. data/vendor/local/share/man/man3/gnutls_x509_crt_import_pkcs11.3 +50 -0
  1715. data/vendor/local/share/man/man3/gnutls_x509_crt_import_pkcs11_url.3 +53 -0
  1716. data/vendor/local/share/man/man3/gnutls_x509_crt_init.3 +16 -7
  1717. data/vendor/local/share/man/man3/gnutls_x509_crt_list_import.3 +23 -8
  1718. data/vendor/local/share/man/man3/gnutls_x509_crt_list_import2.3 +59 -0
  1719. data/vendor/local/share/man/man3/gnutls_x509_crt_list_import_pkcs11.3 +54 -0
  1720. data/vendor/local/share/man/man3/gnutls_x509_crt_list_verify.3 +28 -25
  1721. data/vendor/local/share/man/man3/gnutls_x509_crt_print.3 +18 -9
  1722. data/vendor/local/share/man/man3/gnutls_x509_crt_privkey_sign.3 +57 -0
  1723. data/vendor/local/share/man/man3/gnutls_x509_crt_set_activation_time.3 +17 -8
  1724. data/vendor/local/share/man/man3/gnutls_x509_crt_set_authority_info_access.3 +59 -0
  1725. data/vendor/local/share/man/man3/gnutls_x509_crt_set_authority_key_id.3 +17 -8
  1726. data/vendor/local/share/man/man3/gnutls_x509_crt_set_basic_constraints.3 +19 -10
  1727. data/vendor/local/share/man/man3/gnutls_x509_crt_set_ca_status.3 +17 -8
  1728. data/vendor/local/share/man/man3/gnutls_x509_crt_set_crl_dist_points.3 +19 -10
  1729. data/vendor/local/share/man/man3/gnutls_x509_crt_set_crl_dist_points2.3 +55 -0
  1730. data/vendor/local/share/man/man3/gnutls_x509_crt_set_crq.3 +20 -11
  1731. data/vendor/local/share/man/man3/gnutls_x509_crt_set_crq_extensions.3 +50 -0
  1732. data/vendor/local/share/man/man3/gnutls_x509_crt_set_dn_by_oid.3 +19 -10
  1733. data/vendor/local/share/man/man3/gnutls_x509_crt_set_expiration_time.3 +17 -8
  1734. data/vendor/local/share/man/man3/gnutls_x509_crt_set_extension_by_oid.3 +20 -11
  1735. data/vendor/local/share/man/man3/gnutls_x509_crt_set_issuer_dn_by_oid.3 +19 -10
  1736. data/vendor/local/share/man/man3/gnutls_x509_crt_set_key.3 +17 -8
  1737. data/vendor/local/share/man/man3/gnutls_x509_crt_set_key_purpose_oid.3 +19 -9
  1738. data/vendor/local/share/man/man3/gnutls_x509_crt_set_key_usage.3 +17 -8
  1739. data/vendor/local/share/man/man3/gnutls_x509_crt_set_pin_function.3 +53 -0
  1740. data/vendor/local/share/man/man3/gnutls_x509_crt_set_policy.3 +56 -0
  1741. data/vendor/local/share/man/man3/gnutls_x509_crt_set_private_key_usage_period.3 +49 -0
  1742. data/vendor/local/share/man/man3/gnutls_x509_crt_set_proxy.3 +22 -13
  1743. data/vendor/local/share/man/man3/gnutls_x509_crt_set_proxy_dn.3 +20 -12
  1744. data/vendor/local/share/man/man3/gnutls_x509_crt_set_pubkey.3 +50 -0
  1745. data/vendor/local/share/man/man3/gnutls_x509_crt_set_serial.3 +18 -9
  1746. data/vendor/local/share/man/man3/gnutls_x509_crt_set_subject_alt_name.3 +56 -0
  1747. data/vendor/local/share/man/man3/gnutls_x509_crt_set_subject_alternative_name.3 +25 -12
  1748. data/vendor/local/share/man/man3/gnutls_x509_crt_set_subject_key_id.3 +17 -8
  1749. data/vendor/local/share/man/man3/gnutls_x509_crt_set_version.3 +18 -9
  1750. data/vendor/local/share/man/man3/gnutls_x509_crt_sign.3 +17 -8
  1751. data/vendor/local/share/man/man3/gnutls_x509_crt_sign2.3 +18 -9
  1752. data/vendor/local/share/man/man3/gnutls_x509_crt_verify.3 +19 -10
  1753. data/vendor/local/share/man/man3/gnutls_x509_crt_verify_data.3 +20 -9
  1754. data/vendor/local/share/man/man3/gnutls_x509_crt_verify_hash.3 +54 -0
  1755. data/vendor/local/share/man/man3/gnutls_x509_dn_deinit.3 +17 -8
  1756. data/vendor/local/share/man/man3/gnutls_x509_dn_export.3 +18 -9
  1757. data/vendor/local/share/man/man3/gnutls_x509_dn_export2.3 +54 -0
  1758. data/vendor/local/share/man/man3/gnutls_x509_dn_get_rdn_ava.3 +28 -9
  1759. data/vendor/local/share/man/man3/gnutls_x509_dn_import.3 +17 -13
  1760. data/vendor/local/share/man/man3/gnutls_x509_dn_init.3 +17 -8
  1761. data/vendor/local/share/man/man3/gnutls_x509_dn_oid_known.3 +15 -6
  1762. data/vendor/local/share/man/man3/gnutls_x509_dn_oid_name.3 +51 -0
  1763. data/vendor/local/share/man/man3/gnutls_x509_policy_release.3 +45 -0
  1764. data/vendor/local/share/man/man3/gnutls_x509_privkey_cpy.3 +17 -8
  1765. data/vendor/local/share/man/man3/gnutls_x509_privkey_deinit.3 +16 -7
  1766. data/vendor/local/share/man/man3/gnutls_x509_privkey_export.3 +17 -8
  1767. data/vendor/local/share/man/man3/gnutls_x509_privkey_export2.3 +58 -0
  1768. data/vendor/local/share/man/man3/gnutls_x509_privkey_export2_pkcs8.3 +67 -0
  1769. data/vendor/local/share/man/man3/gnutls_x509_privkey_export_dsa_raw.3 +17 -7
  1770. data/vendor/local/share/man/man3/gnutls_x509_privkey_export_ecc_raw.3 +57 -0
  1771. data/vendor/local/share/man/man3/gnutls_x509_privkey_export_pkcs8.3 +20 -11
  1772. data/vendor/local/share/man/man3/gnutls_x509_privkey_export_rsa_raw.3 +16 -7
  1773. data/vendor/local/share/man/man3/gnutls_x509_privkey_export_rsa_raw2.3 +65 -0
  1774. data/vendor/local/share/man/man3/gnutls_x509_privkey_fix.3 +16 -7
  1775. data/vendor/local/share/man/man3/gnutls_x509_privkey_generate.3 +19 -8
  1776. data/vendor/local/share/man/man3/gnutls_x509_privkey_get_key_id.3 +18 -9
  1777. data/vendor/local/share/man/man3/gnutls_x509_privkey_get_pk_algorithm.3 +16 -7
  1778. data/vendor/local/share/man/man3/gnutls_x509_privkey_get_pk_algorithm2.3 +48 -0
  1779. data/vendor/local/share/man/man3/gnutls_x509_privkey_import.3 +20 -10
  1780. data/vendor/local/share/man/man3/gnutls_x509_privkey_import2.3 +61 -0
  1781. data/vendor/local/share/man/man3/gnutls_x509_privkey_import_dsa_raw.3 +17 -8
  1782. data/vendor/local/share/man/man3/gnutls_x509_privkey_import_ecc_raw.3 +57 -0
  1783. data/vendor/local/share/man/man3/gnutls_x509_privkey_import_openssl.3 +57 -0
  1784. data/vendor/local/share/man/man3/gnutls_x509_privkey_import_pkcs8.3 +29 -15
  1785. data/vendor/local/share/man/man3/gnutls_x509_privkey_import_rsa_raw.3 +17 -8
  1786. data/vendor/local/share/man/man3/gnutls_x509_privkey_import_rsa_raw2.3 +63 -0
  1787. data/vendor/local/share/man/man3/gnutls_x509_privkey_init.3 +16 -7
  1788. data/vendor/local/share/man/man3/gnutls_x509_privkey_sec_param.3 +48 -0
  1789. data/vendor/local/share/man/man3/gnutls_x509_privkey_sign_data.3 +23 -9
  1790. data/vendor/local/share/man/man3/gnutls_x509_privkey_sign_hash.3 +23 -9
  1791. data/vendor/local/share/man/man3/gnutls_x509_privkey_verify_params.3 +45 -0
  1792. data/vendor/local/share/man/man3/gnutls_x509_rdn_get.3 +19 -10
  1793. data/vendor/local/share/man/man3/gnutls_x509_rdn_get_by_oid.3 +20 -11
  1794. data/vendor/local/share/man/man3/gnutls_x509_rdn_get_oid.3 +19 -8
  1795. data/vendor/local/share/man/man3/gnutls_x509_trust_list_add_cas.3 +54 -0
  1796. data/vendor/local/share/man/man3/gnutls_x509_trust_list_add_crls.3 +59 -0
  1797. data/vendor/local/share/man/man3/gnutls_x509_trust_list_add_named_crt.3 +65 -0
  1798. data/vendor/local/share/man/man3/gnutls_x509_trust_list_add_system_trust.3 +52 -0
  1799. data/vendor/local/share/man/man3/gnutls_x509_trust_list_add_trust_file.3 +58 -0
  1800. data/vendor/local/share/man/man3/gnutls_x509_trust_list_add_trust_mem.3 +57 -0
  1801. data/vendor/local/share/man/man3/gnutls_x509_trust_list_deinit.3 +46 -0
  1802. data/vendor/local/share/man/man3/gnutls_x509_trust_list_get_issuer.3 +54 -0
  1803. data/vendor/local/share/man/man3/gnutls_x509_trust_list_init.3 +49 -0
  1804. data/vendor/local/share/man/man3/gnutls_x509_trust_list_verify_crt.3 +61 -0
  1805. data/vendor/local/share/man/man3/gnutls_x509_trust_list_verify_named_crt.3 +62 -0
  1806. data/vendor/local/src/tml/make/libffi_3.0.6-1_win32.log +265 -0
  1807. data/vendor/local/src/tml/make/libffi_3.0.6-1_win32.sh +76 -0
  1808. data/vendor/local/src/tml/packaging/zlib_1.2.5-2_win32.log +42 -0
  1809. data/vendor/local/src/tml/packaging/zlib_1.2.5-2_win32.sh +189 -0
  1810. metadata +668 -4
@@ -0,0 +1,3355 @@
1
+ This is nettle.info, produced by makeinfo version 4.13 from
2
+ nettle.texinfo.
3
+
4
+ This manual is for the Nettle library (version 2.5), a low-level
5
+ cryptographic library.
6
+
7
+ Originally written 2001 by Niels Möller, updated 2011.
8
+
9
+ This manual is placed in the public domain. You may freely copy
10
+ it, in whole or in part, with or without modification. Attribution
11
+ is appreciated, but not required.
12
+
13
+ INFO-DIR-SECTION Encryption
14
+ START-INFO-DIR-ENTRY
15
+ * Nettle: (nettle). A low-level cryptographic library.
16
+ END-INFO-DIR-ENTRY
17
+
18
+ 
19
+ File: nettle.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir)
20
+
21
+ Nettle
22
+ ******
23
+
24
+ This document describes the Nettle low-level cryptographic library. You
25
+ can use the library directly from your C programs, or write or use an
26
+ object-oriented wrapper for your favorite language or application.
27
+
28
+ This manual is for the Nettle library (version 2.5), a low-level
29
+ cryptographic library.
30
+
31
+ Originally written 2001 by Niels Möller, updated 2011.
32
+
33
+ This manual is placed in the public domain. You may freely copy
34
+ it, in whole or in part, with or without modification. Attribution
35
+ is appreciated, but not required.
36
+
37
+ * Menu:
38
+
39
+ * Introduction:: What is Nettle?
40
+ * Copyright:: Your rights.
41
+ * Conventions:: General interface conventions.
42
+ * Example:: An example program.
43
+ * Linking:: Linking with the libnettle and libhogweed.
44
+ * Reference:: All Nettle functions and features.
45
+ * Nettle soup:: For the serious nettle hacker.
46
+ * Installation:: How to install Nettle.
47
+ * Index:: Function and concept index.
48
+
49
+ --- The Detailed Node Listing ---
50
+
51
+ Reference
52
+
53
+ * Hash functions::
54
+ * Cipher functions::
55
+ * Cipher modes::
56
+ * Keyed hash functions::
57
+ * Public-key algorithms::
58
+ * Randomness::
59
+ * Ascii encoding::
60
+ * Miscellaneous functions::
61
+ * Compatibility functions::
62
+
63
+ Cipher modes
64
+
65
+ * CBC::
66
+ * CTR::
67
+ * GCM::
68
+
69
+ Public-key algorithms
70
+
71
+ * RSA:: The RSA public key algorithm.
72
+ * DSA:: The DSA digital signature algorithm.
73
+
74
+ 
75
+ File: nettle.info, Node: Introduction, Next: Copyright, Prev: Top, Up: Top
76
+
77
+ 1 Introduction
78
+ **************
79
+
80
+ Nettle is a cryptographic library that is designed to fit easily in more
81
+ or less any context: In crypto toolkits for object-oriented languages
82
+ (C++, Python, Pike, ...), in applications like LSH or GNUPG, or even in
83
+ kernel space. In most contexts, you need more than the basic
84
+ cryptographic algorithms, you also need some way to keep track of
85
+ available algorithms, their properties and variants. You often have
86
+ some algorithm selection process, often dictated by a protocol you want
87
+ to implement.
88
+
89
+ And as the requirements of applications differ in subtle and not so
90
+ subtle ways, an API that fits one application well can be a pain to use
91
+ in a different context. And that is why there are so many different
92
+ cryptographic libraries around.
93
+
94
+ Nettle tries to avoid this problem by doing one thing, the low-level
95
+ crypto stuff, and providing a _simple_ but general interface to it. In
96
+ particular, Nettle doesn't do algorithm selection. It doesn't do memory
97
+ allocation. It doesn't do any I/O.
98
+
99
+ The idea is that one can build several application and context
100
+ specific interfaces on top of Nettle, and share the code, test cases,
101
+ benchmarks, documentation, etc. Examples are the Nettle module for the
102
+ Pike language, and LSH, which both use an object-oriented abstraction
103
+ on top of the library.
104
+
105
+ This manual explains how to use the Nettle library. It also tries to
106
+ provide some background on the cryptography, and advice on how to best
107
+ put it to use.
108
+
109
+ 
110
+ File: nettle.info, Node: Copyright, Next: Conventions, Prev: Introduction, Up: Top
111
+
112
+ 2 Copyright
113
+ ***********
114
+
115
+ Nettle is distributed under the GNU Lesser General Public License
116
+ (LGPL), see the file COPYING.LIB for details. A few of the individual
117
+ files are in the public domain. To find the current status of particular
118
+ files, you have to read the copyright notices at the top of the files.
119
+
120
+ This manual is in the public domain. You may freely copy it in whole
121
+ or in part, e.g., into documentation of programs that build on Nettle.
122
+ Attribution, as well as contribution of improvements to the text, is of
123
+ course appreciated, but it is not required.
124
+
125
+ A list of the supported algorithms, their origins and licenses:
126
+
127
+ _AES_
128
+ The implementation of the AES cipher (also known as rijndael) is
129
+ written by Rafael Sevilla. Assembler for x86 by Rafael Sevilla and
130
+ Niels Möller, Sparc assembler by Niels Möller. Released under the
131
+ LGPL.
132
+
133
+ _ARCFOUR_
134
+ The implementation of the ARCFOUR (also known as RC4) cipher is
135
+ written by Niels Möller. Released under the LGPL.
136
+
137
+ _ARCTWO_
138
+ The implementation of the ARCTWO (also known as RC2) cipher is
139
+ written by Nikos Mavroyanopoulos and modified by Werner Koch and
140
+ Simon Josefsson. Released under the LGPL.
141
+
142
+ _BLOWFISH_
143
+ The implementation of the BLOWFISH cipher is written by Werner
144
+ Koch, copyright owned by the Free Software Foundation. Also hacked
145
+ by Simon Josefsson and Niels Möller. Released under the LGPL.
146
+
147
+ _CAMELLIA_
148
+ The C implementation is by Nippon Telegraph and Telephone
149
+ Corporation (NTT), heavily modified by Niels Möller. Assembler for
150
+ x86 and x86_64 by Niels Möller. Released under the LGPL.
151
+
152
+ _CAST128_
153
+ The implementation of the CAST128 cipher is written by Steve Reid.
154
+ Released into the public domain.
155
+
156
+ _DES_
157
+ The implementation of the DES cipher is written by Dana L. How, and
158
+ released under the LGPL.
159
+
160
+ _MD2_
161
+ The implementation of MD2 is written by Andrew Kuchling, and hacked
162
+ some by Andreas Sigfridsson and Niels Möller. Python Cryptography
163
+ Toolkit license (essentially public domain).
164
+
165
+ _MD4_
166
+ This is almost the same code as for MD5 below, with modifications
167
+ by Marcus Comstedt. Released into the public domain.
168
+
169
+ _MD5_
170
+ The implementation of the MD5 message digest is written by Colin
171
+ Plumb. It has been hacked some more by Andrew Kuchling and Niels
172
+ Möller. Released into the public domain.
173
+
174
+ _RIPMED160_
175
+ The implementation of RIPEMD160 message digest is based on the
176
+ code in libgcrypt, copyright owned by the Free Software
177
+ Foundation. Ported to Nettle by Andres Mejia. Released under the
178
+ LGPL.
179
+
180
+ _SALSA20_
181
+ The C implementation of SALSA20 is based on D. J. Bernstein's
182
+ reference implementation (in the public domain), adapted to Nettle
183
+ by Simon Josefsson, and heavily modified by Niels Möller. Assembly
184
+ for x86_64 by Niels Möller. Released under the LGPL.
185
+
186
+ _SERPENT_
187
+ The implementation of the SERPENT cipher is based on the code in
188
+ libgcrypt, copyright owned by the Free Software Foundation.
189
+ Adapted to Nettle by Simon Josefsson and heavily modified by Niels
190
+ Möller. Assembly for x86_64 by Niels Möller. Released under the
191
+ LGPL.
192
+
193
+ _SHA1_
194
+ The C implementation of the SHA1 message digest is written by Peter
195
+ Gutmann, and hacked some more by Andrew Kuchling and Niels Möller.
196
+ Released into the public domain. Assembler for x86 by Niels Möller,
197
+ released under the LGPL.
198
+
199
+ _SHA224, SHA256, SHA384, and SHA512_
200
+ Written by Niels Möller, using Peter Gutmann's SHA1 code as a
201
+ model. Released under the LGPL.
202
+
203
+ _TWOFISH_
204
+ The implementation of the TWOFISH cipher is written by Ruud de
205
+ Rooij. Released under the LGPL.
206
+
207
+ _RSA_
208
+ Written by Niels Möller, released under the LGPL. Uses the GMP
209
+ library for bignum operations.
210
+
211
+ _DSA_
212
+ Written by Niels Möller, released under the LGPL. Uses the GMP
213
+ library for bignum operations.
214
+
215
+ 
216
+ File: nettle.info, Node: Conventions, Next: Example, Prev: Copyright, Up: Top
217
+
218
+ 3 Conventions
219
+ *************
220
+
221
+ For each supported algorithm, there is an include file that defines a
222
+ _context struct_, a few constants, and declares functions for operating
223
+ on the context. The context struct encapsulates all information needed
224
+ by the algorithm, and it can be copied or moved in memory with no
225
+ unexpected effects.
226
+
227
+ For consistency, functions for different algorithms are very similar,
228
+ but there are some differences, for instance reflecting if the key setup
229
+ or encryption function differ for encryption and decryption, and whether
230
+ or not key setup can fail. There are also differences between algorithms
231
+ that don't show in function prototypes, but which the application must
232
+ nevertheless be aware of. There is no big difference between the
233
+ functions for stream ciphers and for block ciphers, although they should
234
+ be used quite differently by the application.
235
+
236
+ If your application uses more than one algorithm of the same type,
237
+ you should probably create an interface that is tailor-made for your
238
+ needs, and then write a few lines of glue code on top of Nettle.
239
+
240
+ By convention, for an algorithm named `foo', the struct tag for the
241
+ context struct is `foo_ctx', constants and functions uses prefixes like
242
+ `FOO_BLOCK_SIZE' (a constant) and `foo_set_key' (a function).
243
+
244
+ In all functions, strings are represented with an explicit length, of
245
+ type `unsigned', and a pointer of type `uint8_t *' or `const uint8_t
246
+ *'. For functions that transform one string to another, the argument
247
+ order is length, destination pointer and source pointer. Source and
248
+ destination areas are of the same length. Source and destination may be
249
+ the same, so that you can process strings in place, but they _must not_
250
+ overlap in any other way.
251
+
252
+ Many of the functions lack return value and can never fail. Those
253
+ functions which can fail, return one on success and zero on failure.
254
+
255
+ 
256
+ File: nettle.info, Node: Example, Next: Linking, Prev: Conventions, Up: Top
257
+
258
+ 4 Example
259
+ *********
260
+
261
+ A simple example program that reads a file from standard input and
262
+ writes its SHA1 checksum on standard output should give the flavor of
263
+ Nettle.
264
+
265
+ #include <stdio.h>
266
+ #include <stdlib.h>
267
+
268
+ #include <nettle/sha.h>
269
+
270
+ #define BUF_SIZE 1000
271
+
272
+ static void
273
+ display_hex(unsigned length, uint8_t *data)
274
+ {
275
+ unsigned i;
276
+
277
+ for (i = 0; i<length; i++)
278
+ printf("%02x ", data[i]);
279
+
280
+ printf("\n");
281
+ }
282
+
283
+ int
284
+ main(int argc, char **argv)
285
+ {
286
+ struct sha1_ctx ctx;
287
+ uint8_t buffer[BUF_SIZE];
288
+ uint8_t digest[SHA1_DIGEST_SIZE];
289
+
290
+ sha1_init(&ctx);
291
+ for (;;)
292
+ {
293
+ int done = fread(buffer, 1, sizeof(buffer), stdin);
294
+ sha1_update(&ctx, done, buffer);
295
+ if (done < sizeof(buffer))
296
+ break;
297
+ }
298
+ if (ferror(stdin))
299
+ return EXIT_FAILURE;
300
+
301
+ sha1_digest(&ctx, SHA1_DIGEST_SIZE, digest);
302
+
303
+ display_hex(SHA1_DIGEST_SIZE, digest);
304
+ return EXIT_SUCCESS;
305
+ }
306
+
307
+ On a typical Unix system, this program can be compiled and linked
308
+ with the command line
309
+ cc sha-example.c -o sha-example -lnettle
310
+
311
+ 
312
+ File: nettle.info, Node: Linking, Next: Reference, Prev: Example, Up: Top
313
+
314
+ 5 Linking
315
+ *********
316
+
317
+ Nettle actually consists of two libraries, `libnettle' and
318
+ `libhogweed'. The `libhogweed' library contains those functions of
319
+ Nettle that uses bignum operations, and depends on the GMP library.
320
+ With this division, linking works the same for both static and dynamic
321
+ libraries.
322
+
323
+ If an application uses only the symmetric crypto algorithms of Nettle
324
+ (i.e., block ciphers, hash functions, and the like), it's sufficient to
325
+ link with `-lnettle'. If an application also uses public-key
326
+ algorithms, the recommended linker flags are `-lhogweed -lnettle
327
+ -lgmp'. If the involved libraries are installed as dynamic libraries, it
328
+ may be sufficient to link with just `-lhogweed', and the loader will
329
+ resolve the dependencies automatically.
330
+
331
+ 
332
+ File: nettle.info, Node: Reference, Next: Nettle soup, Prev: Linking, Up: Top
333
+
334
+ 6 Reference
335
+ ***********
336
+
337
+ This chapter describes all the Nettle functions, grouped by family.
338
+
339
+ * Menu:
340
+
341
+ * Hash functions::
342
+ * Cipher functions::
343
+ * Cipher modes::
344
+ * Keyed hash functions::
345
+ * Public-key algorithms::
346
+ * Randomness::
347
+ * Ascii encoding::
348
+ * Miscellaneous functions::
349
+ * Compatibility functions::
350
+
351
+ 
352
+ File: nettle.info, Node: Hash functions, Next: Cipher functions, Prev: Reference, Up: Reference
353
+
354
+ 6.1 Hash functions
355
+ ==================
356
+
357
+ A cryptographic "hash function" is a function that takes variable size
358
+ strings, and maps them to strings of fixed, short, length. There are
359
+ naturally lots of collisions, as there are more possible 1MB files than
360
+ 20 byte strings. But the function is constructed such that is hard to
361
+ find the collisions. More precisely, a cryptographic hash function `H'
362
+ should have the following properties:
363
+
364
+ _One-way_
365
+ Given a hash value `H(x)' it is hard to find a string `x' that
366
+ hashes to that value.
367
+
368
+ _Collision-resistant_
369
+ It is hard to find two different strings, `x' and `y', such that
370
+ `H(x)' = `H(y)'.
371
+
372
+
373
+ Hash functions are useful as building blocks for digital signatures,
374
+ message authentication codes, pseudo random generators, association of
375
+ unique ids to documents, and many other things.
376
+
377
+ The most commonly used hash functions are MD5 and SHA1.
378
+ Unfortunately, both these fail the collision-resistance requirement;
379
+ cryptologists have found ways to construct colliding inputs. The
380
+ recommended hash function for new applications is SHA256, even though
381
+ it uses a structure similar to MD5 and SHA1. Constructing better hash
382
+ functions is an urgent research problem.
383
+
384
+ 6.1.1 MD5
385
+ ---------
386
+
387
+ MD5 is a message digest function constructed by Ronald Rivest, and
388
+ described in `RFC 1321'. It outputs message digests of 128 bits, or 16
389
+ octets. Nettle defines MD5 in `<nettle/md5.h>'.
390
+
391
+ -- Context struct: struct md5_ctx
392
+
393
+ -- Constant: MD5_DIGEST_SIZE
394
+ The size of an MD5 digest, i.e. 16.
395
+
396
+ -- Constant: MD5_DATA_SIZE
397
+ The internal block size of MD5. Useful for some special
398
+ constructions, in particular HMAC-MD5.
399
+
400
+ -- Function: void md5_init (struct md5_ctx *CTX)
401
+ Initialize the MD5 state.
402
+
403
+ -- Function: void md5_update (struct md5_ctx *CTX, unsigned LENGTH,
404
+ const uint8_t *DATA)
405
+ Hash some more data.
406
+
407
+ -- Function: void md5_digest (struct md5_ctx *CTX, unsigned LENGTH,
408
+ uint8_t *DIGEST)
409
+ Performs final processing and extracts the message digest, writing
410
+ it to DIGEST. LENGTH may be smaller than `MD5_DIGEST_SIZE', in
411
+ which case only the first LENGTH octets of the digest are written.
412
+
413
+ This function also resets the context in the same way as
414
+ `md5_init'.
415
+
416
+ The normal way to use MD5 is to call the functions in order: First
417
+ `md5_init', then `md5_update' zero or more times, and finally
418
+ `md5_digest'. After `md5_digest', the context is reset to its initial
419
+ state, so you can start over calling `md5_update' to hash new data.
420
+
421
+ To start over, you can call `md5_init' at any time.
422
+
423
+ 6.1.2 MD2
424
+ ---------
425
+
426
+ MD2 is another hash function of Ronald Rivest's, described in `RFC
427
+ 1319'. It outputs message digests of 128 bits, or 16 octets. Nettle
428
+ defines MD2 in `<nettle/md2.h>'.
429
+
430
+ -- Context struct: struct md2_ctx
431
+
432
+ -- Constant: MD2_DIGEST_SIZE
433
+ The size of an MD2 digest, i.e. 16.
434
+
435
+ -- Constant: MD2_DATA_SIZE
436
+ The internal block size of MD2.
437
+
438
+ -- Function: void md2_init (struct md2_ctx *CTX)
439
+ Initialize the MD2 state.
440
+
441
+ -- Function: void md2_update (struct md2_ctx *CTX, unsigned LENGTH,
442
+ const uint8_t *DATA)
443
+ Hash some more data.
444
+
445
+ -- Function: void md2_digest (struct md2_ctx *CTX, unsigned LENGTH,
446
+ uint8_t *DIGEST)
447
+ Performs final processing and extracts the message digest, writing
448
+ it to DIGEST. LENGTH may be smaller than `MD2_DIGEST_SIZE', in
449
+ which case only the first LENGTH octets of the digest are written.
450
+
451
+ This function also resets the context in the same way as
452
+ `md2_init'.
453
+
454
+ 6.1.3 MD4
455
+ ---------
456
+
457
+ MD4 is a predecessor of MD5, described in `RFC 1320'. Like MD5, it is
458
+ constructed by Ronald Rivest. It outputs message digests of 128 bits,
459
+ or 16 octets. Nettle defines MD4 in `<nettle/md4.h>'. Use of MD4 is not
460
+ recommended, but it is sometimes needed for compatibility with existing
461
+ applications and protocols.
462
+
463
+ -- Context struct: struct md4_ctx
464
+
465
+ -- Constant: MD4_DIGEST_SIZE
466
+ The size of an MD4 digest, i.e. 16.
467
+
468
+ -- Constant: MD4_DATA_SIZE
469
+ The internal block size of MD4.
470
+
471
+ -- Function: void md4_init (struct md4_ctx *CTX)
472
+ Initialize the MD4 state.
473
+
474
+ -- Function: void md4_update (struct md4_ctx *CTX, unsigned LENGTH,
475
+ const uint8_t *DATA)
476
+ Hash some more data.
477
+
478
+ -- Function: void md4_digest (struct md4_ctx *CTX, unsigned LENGTH,
479
+ uint8_t *DIGEST)
480
+ Performs final processing and extracts the message digest, writing
481
+ it to DIGEST. LENGTH may be smaller than `MD4_DIGEST_SIZE', in
482
+ which case only the first LENGTH octets of the digest are written.
483
+
484
+ This function also resets the context in the same way as
485
+ `md4_init'.
486
+
487
+ 6.1.4 RIPEMD160
488
+ ---------------
489
+
490
+ RIPEMD160 is a hash function designed by Hans Dobbertin, Antoon
491
+ Bosselaers, and Bart Preneel, as a strengthened version of RIPEMD
492
+ (which, like MD4 and MD5, fails the collision-resistance requirement).
493
+ It produces message digests of 160 bits, or 20 octets. Nettle defined
494
+ RIPEMD160 in `nettle/ripemd160.h'.
495
+
496
+ -- Context struct: struct ripemd160_ctx
497
+
498
+ -- Constant: RIPEMD160_DIGEST_SIZE
499
+ The size of an RIPEMD160 digest, i.e. 20.
500
+
501
+ -- Constant: RIPEMD160_DATA_SIZE
502
+ The internal block size of RIPEMD160.
503
+
504
+ -- Function: void ripemd160_init (struct ripemd160_ctx *CTX)
505
+ Initialize the RIPEMD160 state.
506
+
507
+ -- Function: void ripemd160_update (struct ripemd160_ctx *CTX,
508
+ unsigned LENGTH, const uint8_t *DATA)
509
+ Hash some more data.
510
+
511
+ -- Function: void ripemd160_digest (struct ripemd160_ctx *CTX,
512
+ unsigned LENGTH, uint8_t *DIGEST)
513
+ Performs final processing and extracts the message digest, writing
514
+ it to DIGEST. LENGTH may be smaller than `RIPEMD160_DIGEST_SIZE',
515
+ in which case only the first LENGTH octets of the digest are
516
+ written.
517
+
518
+ This function also resets the context in the same way as
519
+ `ripemd160_init'.
520
+
521
+ 6.1.5 SHA1
522
+ ----------
523
+
524
+ SHA1 is a hash function specified by "NIST" (The U.S. National Institute
525
+ for Standards and Technology). It outputs hash values of 160 bits, or 20
526
+ octets. Nettle defines SHA1 in `<nettle/sha.h>'.
527
+
528
+ The functions are analogous to the MD5 ones.
529
+
530
+ -- Context struct: struct sha1_ctx
531
+
532
+ -- Constant: SHA1_DIGEST_SIZE
533
+ The size of an SHA1 digest, i.e. 20.
534
+
535
+ -- Constant: SHA1_DATA_SIZE
536
+ The internal block size of SHA1. Useful for some special
537
+ constructions, in particular HMAC-SHA1.
538
+
539
+ -- Function: void sha1_init (struct sha1_ctx *CTX)
540
+ Initialize the SHA1 state.
541
+
542
+ -- Function: void sha1_update (struct sha1_ctx *CTX, unsigned LENGTH,
543
+ const uint8_t *DATA)
544
+ Hash some more data.
545
+
546
+ -- Function: void sha1_digest (struct sha1_ctx *CTX, unsigned LENGTH,
547
+ uint8_t *DIGEST)
548
+ Performs final processing and extracts the message digest, writing
549
+ it to DIGEST. LENGTH may be smaller than `SHA1_DIGEST_SIZE', in
550
+ which case only the first LENGTH octets of the digest are written.
551
+
552
+ This function also resets the context in the same way as
553
+ `sha1_init'.
554
+
555
+ 6.1.6 SHA256
556
+ ------------
557
+
558
+ SHA256 is another hash function specified by "NIST", intended as a
559
+ replacement for SHA1, generating larger digests. It outputs hash values
560
+ of 256 bits, or 32 octets. Nettle defines SHA256 in `<nettle/sha.h>'.
561
+
562
+ The functions are analogous to the MD5 ones.
563
+
564
+ -- Context struct: struct sha256_ctx
565
+
566
+ -- Constant: SHA256_DIGEST_SIZE
567
+ The size of an SHA256 digest, i.e. 32.
568
+
569
+ -- Constant: SHA256_DATA_SIZE
570
+ The internal block size of SHA256. Useful for some special
571
+ constructions, in particular HMAC-SHA256.
572
+
573
+ -- Function: void sha256_init (struct sha256_ctx *CTX)
574
+ Initialize the SHA256 state.
575
+
576
+ -- Function: void sha256_update (struct sha256_ctx *CTX, unsigned
577
+ LENGTH, const uint8_t *DATA)
578
+ Hash some more data.
579
+
580
+ -- Function: void sha256_digest (struct sha256_ctx *CTX, unsigned
581
+ LENGTH, uint8_t *DIGEST)
582
+ Performs final processing and extracts the message digest, writing
583
+ it to DIGEST. LENGTH may be smaller than `SHA256_DIGEST_SIZE', in
584
+ which case only the first LENGTH octets of the digest are written.
585
+
586
+ This function also resets the context in the same way as
587
+ `sha256_init'.
588
+
589
+ 6.1.7 SHA224
590
+ ------------
591
+
592
+ SHA224 is a variant of SHA256, with a different initial state, and with
593
+ the output truncated to 224 bits, or 28 octets. Nettle defines SHA224 in
594
+ `<nettle/sha.h>'.
595
+
596
+ The functions are analogous to the MD5 ones.
597
+
598
+ -- Context struct: struct sha224_ctx
599
+
600
+ -- Constant: SHA224_DIGEST_SIZE
601
+ The size of an SHA224 digest, i.e. 28.
602
+
603
+ -- Constant: SHA224_DATA_SIZE
604
+ The internal block size of SHA224. Useful for some special
605
+ constructions, in particular HMAC-SHA224.
606
+
607
+ -- Function: void sha224_init (struct sha224_ctx *CTX)
608
+ Initialize the SHA224 state.
609
+
610
+ -- Function: void sha224_update (struct sha224_ctx *CTX, unsigned
611
+ LENGTH, const uint8_t *DATA)
612
+ Hash some more data.
613
+
614
+ -- Function: void sha224_digest (struct sha224_ctx *CTX, unsigned
615
+ LENGTH, uint8_t *DIGEST)
616
+ Performs final processing and extracts the message digest, writing
617
+ it to DIGEST. LENGTH may be smaller than `SHA224_DIGEST_SIZE', in
618
+ which case only the first LENGTH octets of the digest are written.
619
+
620
+ This function also resets the context in the same way as
621
+ `sha224_init'.
622
+
623
+ 6.1.8 SHA512
624
+ ------------
625
+
626
+ SHA512 is a larger sibling to SHA256, with a very similar structure but
627
+ with both the output and the internal variables of twice the size. The
628
+ internal variables are 64 bits rather than 32, making it significantly
629
+ slower on 32-bit computers. It outputs hash values of 512 bits, or 64
630
+ octets. Nettle defines SHA512 in `<nettle/sha.h>'.
631
+
632
+ The functions are analogous to the MD5 ones.
633
+
634
+ -- Context struct: struct sha512_ctx
635
+
636
+ -- Constant: SHA512_DIGEST_SIZE
637
+ The size of an SHA512 digest, i.e. 64.
638
+
639
+ -- Constant: SHA512_DATA_SIZE
640
+ The internal block size of SHA512. Useful for some special
641
+ constructions, in particular HMAC-SHA512.
642
+
643
+ -- Function: void sha512_init (struct sha512_ctx *CTX)
644
+ Initialize the SHA512 state.
645
+
646
+ -- Function: void sha512_update (struct sha512_ctx *CTX, unsigned
647
+ LENGTH, const uint8_t *DATA)
648
+ Hash some more data.
649
+
650
+ -- Function: void sha512_digest (struct sha512_ctx *CTX, unsigned
651
+ LENGTH, uint8_t *DIGEST)
652
+ Performs final processing and extracts the message digest, writing
653
+ it to DIGEST. LENGTH may be smaller than `SHA512_DIGEST_SIZE', in
654
+ which case only the first LENGTH octets of the digest are written.
655
+
656
+ This function also resets the context in the same way as
657
+ `sha512_init'.
658
+
659
+ 6.1.9 SHA384
660
+ ------------
661
+
662
+ SHA384 is a variant of SHA512, with a different initial state, and with
663
+ the output truncated to 384 bits, or 48 octets. Nettle defines SHA384 in
664
+ `<nettle/sha.h>'.
665
+
666
+ The functions are analogous to the MD5 ones.
667
+
668
+ -- Context struct: struct sha384_ctx
669
+
670
+ -- Constant: SHA384_DIGEST_SIZE
671
+ The size of an SHA384 digest, i.e. 48.
672
+
673
+ -- Constant: SHA384_DATA_SIZE
674
+ The internal block size of SHA384. Useful for some special
675
+ constructions, in particular HMAC-SHA384.
676
+
677
+ -- Function: void sha384_init (struct sha384_ctx *CTX)
678
+ Initialize the SHA384 state.
679
+
680
+ -- Function: void sha384_update (struct sha384_ctx *CTX, unsigned
681
+ LENGTH, const uint8_t *DATA)
682
+ Hash some more data.
683
+
684
+ -- Function: void sha384_digest (struct sha384_ctx *CTX, unsigned
685
+ LENGTH, uint8_t *DIGEST)
686
+ Performs final processing and extracts the message digest, writing
687
+ it to DIGEST. LENGTH may be smaller than `SHA384_DIGEST_SIZE', in
688
+ which case only the first LENGTH octets of the digest are written.
689
+
690
+ This function also resets the context in the same way as
691
+ `sha384_init'.
692
+
693
+ 6.1.10 `struct nettle_hash'
694
+ ---------------------------
695
+
696
+ Nettle includes a struct including information about the supported hash
697
+ functions. It is defined in `<nettle/nettle-meta.h>', and is used by
698
+ Nettle's implementation of HMAC (*note Keyed hash functions::).
699
+
700
+ -- Meta struct: `struct nettle_hash' name context_size digest_size
701
+ block_size init update digest
702
+ The last three attributes are function pointers, of types
703
+ `nettle_hash_init_func', `nettle_hash_update_func', and
704
+ `nettle_hash_digest_func'. The first argument to these functions is
705
+ `void *' pointer to a context struct, which is of size
706
+ `context_size'.
707
+
708
+ -- Constant Struct: struct nettle_hash nettle_md2
709
+ -- Constant Struct: struct nettle_hash nettle_md4
710
+ -- Constant Struct: struct nettle_hash nettle_md5
711
+ -- Constant Struct: struct nettle_hash nettle_ripemd160
712
+ -- Constant Struct: struct nettle_hash nettle_sha1
713
+ -- Constant Struct: struct nettle_hash nettle_sha224
714
+ -- Constant Struct: struct nettle_hash nettle_sha256
715
+ -- Constant Struct: struct nettle_hash nettle_sha384
716
+ -- Constant Struct: struct nettle_hash nettle_sha512
717
+ These are all the hash functions that Nettle implements.
718
+
719
+ Nettle also exports a list of all these hashes. This list can be
720
+ used to dynamically enumerate or search the supported algorithms:
721
+
722
+ -- Constant Struct: struct nettle_hash ** nettle_hashes
723
+
724
+ 
725
+ File: nettle.info, Node: Cipher functions, Next: Cipher modes, Prev: Hash functions, Up: Reference
726
+
727
+ 6.2 Cipher functions
728
+ ====================
729
+
730
+ A "cipher" is a function that takes a message or "plaintext" and a
731
+ secret "key" and transforms it to a "ciphertext". Given only the
732
+ ciphertext, but not the key, it should be hard to find the plaintext.
733
+ Given matching pairs of plaintext and ciphertext, it should be hard to
734
+ find the key.
735
+
736
+ There are two main classes of ciphers: Block ciphers and stream
737
+ ciphers.
738
+
739
+ A block cipher can process data only in fixed size chunks, called
740
+ "blocks". Typical block sizes are 8 or 16 octets. To encrypt arbitrary
741
+ messages, you usually have to pad it to an integral number of blocks,
742
+ split it into blocks, and then process each block. The simplest way is
743
+ to process one block at a time, independent of each other. That mode of
744
+ operation is called "ECB", Electronic Code Book mode. However, using
745
+ ECB is usually a bad idea. For a start, plaintext blocks that are equal
746
+ are transformed to ciphertext blocks that are equal; that leaks
747
+ information about the plaintext. Usually you should apply the cipher is
748
+ some "feedback mode", "CBC" (Cipher Block Chaining) and "CTR" (Counter
749
+ mode) being two of of the most popular. See *Note Cipher modes::, for
750
+ information on how to apply CBC and CTR with Nettle.
751
+
752
+ A stream cipher can be used for messages of arbitrary length. A
753
+ typical stream cipher is a keyed pseudo-random generator. To encrypt a
754
+ plaintext message of N octets, you key the generator, generate N octets
755
+ of pseudo-random data, and XOR it with the plaintext. To decrypt,
756
+ regenerate the same stream using the key, XOR it to the ciphertext, and
757
+ the plaintext is recovered.
758
+
759
+ *Caution:* The first rule for this kind of cipher is the same as for
760
+ a One Time Pad: _never_ ever use the same key twice.
761
+
762
+ A common misconception is that encryption, by itself, implies
763
+ authentication. Say that you and a friend share a secret key, and you
764
+ receive an encrypted message. You apply the key, and get a plaintext
765
+ message that makes sense to you. Can you then be sure that it really was
766
+ your friend that wrote the message you're reading? The answer is no. For
767
+ example, if you were using a block cipher in ECB mode, an attacker may
768
+ pick up the message on its way, and reorder, delete or repeat some of
769
+ the blocks. Even if the attacker can't decrypt the message, he can
770
+ change it so that you are not reading the same message as your friend
771
+ wrote. If you are using a block cipher in CBC mode rather than ECB, or
772
+ are using a stream cipher, the possibilities for this sort of attack
773
+ are different, but the attacker can still make predictable changes to
774
+ the message.
775
+
776
+ It is recommended to _always_ use an authentication mechanism in
777
+ addition to encrypting the messages. Popular choices are Message
778
+ Authentication Codes like HMAC-SHA1 (*note Keyed hash functions::), or
779
+ digital signatures like RSA.
780
+
781
+ Some ciphers have so called "weak keys", keys that results in
782
+ undesirable structure after the key setup processing, and should be
783
+ avoided. In Nettle, most key setup functions have no return value, but
784
+ for ciphers with weak keys, the return value indicates whether or not
785
+ the given key is weak. For good keys, key setup returns 1, and for weak
786
+ keys, it returns 0. When possible, avoid algorithms that have weak
787
+ keys. There are several good ciphers that don't have any weak keys.
788
+
789
+ To encrypt a message, you first initialize a cipher context for
790
+ encryption or decryption with a particular key. You then use the context
791
+ to process plaintext or ciphertext messages. The initialization is known
792
+ as "key setup". With Nettle, it is recommended to use each context
793
+ struct for only one direction, even if some of the ciphers use a single
794
+ key setup function that can be used for both encryption and decryption.
795
+
796
+ 6.2.1 AES
797
+ ---------
798
+
799
+ AES is a block cipher, specified by NIST as a replacement for the older
800
+ DES standard. The standard is the result of a competition between
801
+ cipher designers. The winning design, also known as RIJNDAEL, was
802
+ constructed by Joan Daemen and Vincent Rijnmen.
803
+
804
+ Like all the AES candidates, the winning design uses a block size of
805
+ 128 bits, or 16 octets, and variable key-size, 128, 192 and 256 bits
806
+ (16, 24 and 32 octets) being the allowed key sizes. It does not have
807
+ any weak keys. Nettle defines AES in `<nettle/aes.h>'.
808
+
809
+ -- Context struct: struct aes_ctx
810
+
811
+ -- Constant: AES_BLOCK_SIZE
812
+ The AES block-size, 16
813
+
814
+ -- Constant: AES_MIN_KEY_SIZE
815
+
816
+ -- Constant: AES_MAX_KEY_SIZE
817
+
818
+ -- Constant: AES_KEY_SIZE
819
+ Default AES key size, 32
820
+
821
+ -- Function: void aes_set_encrypt_key (struct aes_ctx *CTX, unsigned
822
+ LENGTH, const uint8_t *KEY)
823
+ -- Function: void aes_set_decrypt_key (struct aes_ctx *CTX, unsigned
824
+ LENGTH, const uint8_t *KEY)
825
+ Initialize the cipher, for encryption or decryption, respectively.
826
+
827
+ -- Function: void aes_invert_key (struct aes_ctx *DST, const struct
828
+ aes_ctx *SRC)
829
+ Given a context SRC initialized for encryption, initializes the
830
+ context struct DST for decryption, using the same key. If the same
831
+ context struct is passed for both `src' and `dst', it is converted
832
+ in place. Calling `aes_set_encrypt_key' and `aes_invert_key' is
833
+ more efficient than calling `aes_set_encrypt_key' and
834
+ `aes_set_decrypt_key'. This function is mainly useful for
835
+ applications which needs to both encrypt and decrypt using the
836
+ _same_ key.
837
+
838
+ -- Function: void aes_encrypt (struct aes_ctx *CTX, unsigned LENGTH,
839
+ uint8_t *DST, const uint8_t *SRC)
840
+ Encryption function. LENGTH must be an integral multiple of the
841
+ block size. If it is more than one block, the data is processed in
842
+ ECB mode. `src' and `dst' may be equal, but they must not overlap
843
+ in any other way.
844
+
845
+ -- Function: void aes_decrypt (struct aes_ctx *CTX, unsigned LENGTH,
846
+ uint8_t *DST, const uint8_t *SRC)
847
+ Analogous to `aes_encrypt'
848
+
849
+ 6.2.2 ARCFOUR
850
+ -------------
851
+
852
+ ARCFOUR is a stream cipher, also known under the trade marked name RC4,
853
+ and it is one of the fastest ciphers around. A problem is that the key
854
+ setup of ARCFOUR is quite weak, you should never use keys with
855
+ structure, keys that are ordinary passwords, or sequences of keys like
856
+ "secret:1", "secret:2", .... If you have keys that don't look like
857
+ random bit strings, and you want to use ARCFOUR, always hash the key
858
+ before feeding it to ARCFOUR. Furthermore, the initial bytes of the
859
+ generated key stream leak information about the key; for this reason, it
860
+ is recommended to discard the first 512 bytes of the key stream.
861
+
862
+ /* A more robust key setup function for ARCFOUR */
863
+ void
864
+ arcfour_set_key_hashed(struct arcfour_ctx *ctx,
865
+ unsigned length, const uint8_t *key)
866
+ {
867
+ struct sha256_ctx hash;
868
+ uint8_t digest[SHA256_DIGEST_SIZE];
869
+ uint8_t buffer[0x200];
870
+
871
+ sha256_init(&hash);
872
+ sha256_update(&hash, length, key);
873
+ sha256_digest(&hash, SHA256_DIGEST_SIZE, digest);
874
+
875
+ arcfour_set_key(ctx, SHA256_DIGEST_SIZE, digest);
876
+ arcfour_crypt(ctx, sizeof(buffer), buffer, buffer);
877
+ }
878
+
879
+ Nettle defines ARCFOUR in `<nettle/arcfour.h>'.
880
+
881
+ -- Context struct: struct arcfour_ctx
882
+
883
+ -- Constant: ARCFOUR_MIN_KEY_SIZE
884
+ Minimum key size, 1
885
+
886
+ -- Constant: ARCFOUR_MAX_KEY_SIZE
887
+ Maximum key size, 256
888
+
889
+ -- Constant: ARCFOUR_KEY_SIZE
890
+ Default ARCFOUR key size, 16
891
+
892
+ -- Function: void arcfour_set_key (struct arcfour_ctx *CTX, unsigned
893
+ LENGTH, const uint8_t *KEY)
894
+ Initialize the cipher. The same function is used for both
895
+ encryption and decryption.
896
+
897
+ -- Function: void arcfour_crypt (struct arcfour_ctx *CTX, unsigned
898
+ LENGTH, uint8_t *DST, const uint8_t *SRC)
899
+ Encrypt some data. The same function is used for both encryption
900
+ and decryption. Unlike the block ciphers, this function modifies
901
+ the context, so you can split the data into arbitrary chunks and
902
+ encrypt them one after another. The result is the same as if you
903
+ had called `arcfour_crypt' only once with all the data.
904
+
905
+ 6.2.3 ARCTWO
906
+ ------------
907
+
908
+ ARCTWO (also known as the trade marked name RC2) is a block cipher
909
+ specified in RFC 2268. Nettle also include a variation of the ARCTWO
910
+ set key operation that lack one step, to be compatible with the reverse
911
+ engineered RC2 cipher description, as described in a Usenet post to
912
+ `sci.crypt' by Peter Gutmann.
913
+
914
+ ARCTWO uses a block size of 64 bits, and variable key-size ranging
915
+ from 1 to 128 octets. Besides the key, ARCTWO also has a second
916
+ parameter to key setup, the number of effective key bits, `ekb'. This
917
+ parameter can be used to artificially reduce the key size. In practice,
918
+ `ekb' is usually set equal to the input key size. Nettle defines
919
+ ARCTWO in `<nettle/arctwo.h>'.
920
+
921
+ We do not recommend the use of ARCTWO; the Nettle implementation is
922
+ provided primarily for interoperability with existing applications and
923
+ standards.
924
+
925
+ -- Context struct: struct arctwo_ctx
926
+
927
+ -- Constant: ARCTWO_BLOCK_SIZE
928
+ The ARCTWO block-size, 8
929
+
930
+ -- Constant: ARCTWO_MIN_KEY_SIZE
931
+
932
+ -- Constant: ARCTWO_MAX_KEY_SIZE
933
+
934
+ -- Constant: ARCTWO_KEY_SIZE
935
+ Default ARCTWO key size, 8
936
+
937
+ -- Function: void arctwo_set_key_ekb (struct arctwo_ctx *CTX, unsigned
938
+ LENGTH, const uint8_t *KEY, unsigned EKB)
939
+ -- Function: void arctwo_set_key (struct arctwo_ctx *CTX, unsigned
940
+ LENGTH, const uint8_t *KEY)
941
+ -- Function: void arctwo_set_key_gutmann (struct arctwo_ctx *CTX,
942
+ unsigned LENGTH, const uint8_t *KEY)
943
+ Initialize the cipher. The same function is used for both
944
+ encryption and decryption. The first function is the most general
945
+ one, which lets you provide both the variable size key, and the
946
+ desired effective key size (in bits). The maximum value for EKB is
947
+ 1024, and for convenience, `ekb = 0' has the same effect as `ekb =
948
+ 1024'.
949
+
950
+ `arctwo_set_key(ctx, length, key)' is equivalent to
951
+ `arctwo_set_key_ekb(ctx, length, key, 8*length)', and
952
+ `arctwo_set_key_gutmann(ctx, length, key)' is equivalent to
953
+ `arctwo_set_key_ekb(ctx, length, key, 1024)'
954
+
955
+ -- Function: void arctwo_encrypt (struct arctwo_ctx *CTX, unsigned
956
+ LENGTH, uint8_t *DST, const uint8_t *SRC)
957
+ Encryption function. LENGTH must be an integral multiple of the
958
+ block size. If it is more than one block, the data is processed in
959
+ ECB mode. `src' and `dst' may be equal, but they must not overlap
960
+ in any other way.
961
+
962
+ -- Function: void arctwo_decrypt (struct arctwo_ctx *CTX, unsigned
963
+ LENGTH, uint8_t *DST, const uint8_t *SRC)
964
+ Analogous to `arctwo_encrypt'
965
+
966
+ 6.2.4 BLOWFISH
967
+ --------------
968
+
969
+ BLOWFISH is a block cipher designed by Bruce Schneier. It uses a block
970
+ size of 64 bits (8 octets), and a variable key size, up to 448 bits. It
971
+ has some weak keys. Nettle defines BLOWFISH in `<nettle/blowfish.h>'.
972
+
973
+ -- Context struct: struct blowfish_ctx
974
+
975
+ -- Constant: BLOWFISH_BLOCK_SIZE
976
+ The BLOWFISH block-size, 8
977
+
978
+ -- Constant: BLOWFISH_MIN_KEY_SIZE
979
+ Minimum BLOWFISH key size, 8
980
+
981
+ -- Constant: BLOWFISH_MAX_KEY_SIZE
982
+ Maximum BLOWFISH key size, 56
983
+
984
+ -- Constant: BLOWFISH_KEY_SIZE
985
+ Default BLOWFISH key size, 16
986
+
987
+ -- Function: int blowfish_set_key (struct blowfish_ctx *CTX, unsigned
988
+ LENGTH, const uint8_t *KEY)
989
+ Initialize the cipher. The same function is used for both
990
+ encryption and decryption. Checks for weak keys, returning 1 for
991
+ good keys and 0 for weak keys. Applications that don't care about
992
+ weak keys can ignore the return value.
993
+
994
+ `blowfish_encrypt' or `blowfish_decrypt' with a weak key will
995
+ crash with an assert violation.
996
+
997
+ -- Function: void blowfish_encrypt (struct blowfish_ctx *CTX, unsigned
998
+ LENGTH, uint8_t *DST, const uint8_t *SRC)
999
+ Encryption function. LENGTH must be an integral multiple of the
1000
+ block size. If it is more than one block, the data is processed in
1001
+ ECB mode. `src' and `dst' may be equal, but they must not overlap
1002
+ in any other way.
1003
+
1004
+ -- Function: void blowfish_decrypt (struct blowfish_ctx *CTX, unsigned
1005
+ LENGTH, uint8_t *DST, const uint8_t *SRC)
1006
+ Analogous to `blowfish_encrypt'
1007
+
1008
+ 6.2.5 Camellia
1009
+ --------------
1010
+
1011
+ Camellia is a block cipher developed by Mitsubishi and Nippon Telegraph
1012
+ and Telephone Corporation, described in `RFC3713', and recommended by
1013
+ some Japanese and European authorities as an alternative to AES. The
1014
+ algorithm is patented. The implementation in Nettle is derived from the
1015
+ implementation released by NTT under the GNU LGPL (v2.1 or later), and
1016
+ relies on the implicit patent license of the LGPL. There is also a
1017
+ statement of royalty-free licensing for Camellia at
1018
+ `http://www.ntt.co.jp/news/news01e/0104/010417.html', but this
1019
+ statement has some limitations which seem problematic for free software.
1020
+
1021
+ Camellia uses a the same block size and key sizes as AES: The block
1022
+ size is 128 bits (16 octets), and the supported key sizes are 128, 192,
1023
+ and 256 bits. Nettle defines Camellia in `<nettle/camellia.h>'.
1024
+
1025
+ -- Context struct: struct camellia_ctx
1026
+
1027
+ -- Constant: CAMELLIA_BLOCK_SIZE
1028
+ The CAMELLIA block-size, 16
1029
+
1030
+ -- Constant: CAMELLIA_MIN_KEY_SIZE
1031
+
1032
+ -- Constant: CAMELLIA_MAX_KEY_SIZE
1033
+
1034
+ -- Constant: CAMELLIA_KEY_SIZE
1035
+ Default CAMELLIA key size, 32
1036
+
1037
+ -- Function: void camellia_set_encrypt_key (struct camellia_ctx *CTX,
1038
+ unsigned LENGTH, const uint8_t *KEY)
1039
+ -- Function: void camellia_set_decrypt_key (struct camellia_ctx *CTX,
1040
+ unsigned LENGTH, const uint8_t *KEY)
1041
+ Initialize the cipher, for encryption or decryption, respectively.
1042
+
1043
+ -- Function: void camellia_invert_key (struct camellia_ctx *DST, const
1044
+ struct camellia_ctx *SRC)
1045
+ Given a context SRC initialized for encryption, initializes the
1046
+ context struct DST for decryption, using the same key. If the same
1047
+ context struct is passed for both `src' and `dst', it is converted
1048
+ in place. Calling `camellia_set_encrypt_key' and
1049
+ `camellia_invert_key' is more efficient than calling
1050
+ `camellia_set_encrypt_key' and `camellia_set_decrypt_key'. This
1051
+ function is mainly useful for applications which needs to both
1052
+ encrypt and decrypt using the _same_ key.
1053
+
1054
+ -- Function: void camellia_crypt (struct camellia_ctx *CTX, unsigned
1055
+ LENGTH, uint8_t *DST, const uint8_t *SRC)
1056
+ The same function is used for both encryption and decryption.
1057
+ LENGTH must be an integral multiple of the block size. If it is
1058
+ more than one block, the data is processed in ECB mode. `src' and
1059
+ `dst' may be equal, but they must not overlap in any other way.
1060
+
1061
+ 6.2.6 CAST128
1062
+ -------------
1063
+
1064
+ CAST-128 is a block cipher, specified in `RFC 2144'. It uses a 64 bit
1065
+ (8 octets) block size, and a variable key size of up to 128 bits.
1066
+ Nettle defines cast128 in `<nettle/cast128.h>'.
1067
+
1068
+ -- Context struct: struct cast128_ctx
1069
+
1070
+ -- Constant: CAST128_BLOCK_SIZE
1071
+ The CAST128 block-size, 8
1072
+
1073
+ -- Constant: CAST128_MIN_KEY_SIZE
1074
+ Minimum CAST128 key size, 5
1075
+
1076
+ -- Constant: CAST128_MAX_KEY_SIZE
1077
+ Maximum CAST128 key size, 16
1078
+
1079
+ -- Constant: CAST128_KEY_SIZE
1080
+ Default CAST128 key size, 16
1081
+
1082
+ -- Function: void cast128_set_key (struct cast128_ctx *CTX, unsigned
1083
+ LENGTH, const uint8_t *KEY)
1084
+ Initialize the cipher. The same function is used for both
1085
+ encryption and decryption.
1086
+
1087
+ -- Function: void cast128_encrypt (struct cast128_ctx *CTX, unsigned
1088
+ LENGTH, uint8_t *DST, const uint8_t *SRC)
1089
+ Encryption function. LENGTH must be an integral multiple of the
1090
+ block size. If it is more than one block, the data is processed in
1091
+ ECB mode. `src' and `dst' may be equal, but they must not overlap
1092
+ in any other way.
1093
+
1094
+ -- Function: void cast128_decrypt (struct cast128_ctx *CTX, unsigned
1095
+ LENGTH, uint8_t *DST, const uint8_t *SRC)
1096
+ Analogous to `cast128_encrypt'
1097
+
1098
+ 6.2.7 DES
1099
+ ---------
1100
+
1101
+ DES is the old Data Encryption Standard, specified by NIST. It uses a
1102
+ block size of 64 bits (8 octets), and a key size of 56 bits. However,
1103
+ the key bits are distributed over 8 octets, where the least significant
1104
+ bit of each octet may be used for parity. A common way to use DES is to
1105
+ generate 8 random octets in some way, then set the least significant bit
1106
+ of each octet to get odd parity, and initialize DES with the resulting
1107
+ key.
1108
+
1109
+ The key size of DES is so small that keys can be found by brute
1110
+ force, using specialized hardware or lots of ordinary work stations in
1111
+ parallel. One shouldn't be using plain DES at all today, if one uses
1112
+ DES at all one should be using "triple DES", see DES3 below.
1113
+
1114
+ DES also has some weak keys. Nettle defines DES in `<nettle/des.h>'.
1115
+
1116
+ -- Context struct: struct des_ctx
1117
+
1118
+ -- Constant: DES_BLOCK_SIZE
1119
+ The DES block-size, 8
1120
+
1121
+ -- Constant: DES_KEY_SIZE
1122
+ DES key size, 8
1123
+
1124
+ -- Function: int des_set_key (struct des_ctx *CTX, const uint8_t *KEY)
1125
+ Initialize the cipher. The same function is used for both
1126
+ encryption and decryption. Parity bits are ignored. Checks for
1127
+ weak keys, returning 1 for good keys and 0 for weak keys.
1128
+ Applications that don't care about weak keys can ignore the return
1129
+ value.
1130
+
1131
+ -- Function: void des_encrypt (struct des_ctx *CTX, unsigned LENGTH,
1132
+ uint8_t *DST, const uint8_t *SRC)
1133
+ Encryption function. LENGTH must be an integral multiple of the
1134
+ block size. If it is more than one block, the data is processed in
1135
+ ECB mode. `src' and `dst' may be equal, but they must not overlap
1136
+ in any other way.
1137
+
1138
+ -- Function: void des_decrypt (struct des_ctx *CTX, unsigned LENGTH,
1139
+ uint8_t *DST, const uint8_t *SRC)
1140
+ Analogous to `des_encrypt'
1141
+
1142
+ -- Function: int des_check_parity (unsigned LENGTH, const uint8_t
1143
+ *KEY);
1144
+ Checks that the given key has correct, odd, parity. Returns 1 for
1145
+ correct parity, and 0 for bad parity.
1146
+
1147
+ -- Function: void des_fix_parity (unsigned LENGTH, uint8_t *DST, const
1148
+ uint8_t *SRC)
1149
+ Adjusts the parity bits to match DES's requirements. You need this
1150
+ function if you have created a random-looking string by a key
1151
+ agreement protocol, and want to use it as a DES key. DST and SRC
1152
+ may be equal.
1153
+
1154
+ 6.2.8 DES3
1155
+ ----------
1156
+
1157
+ The inadequate key size of DES has already been mentioned. One way to
1158
+ increase the key size is to pipe together several DES boxes with
1159
+ independent keys. It turns out that using two DES ciphers is not as
1160
+ secure as one might think, even if the key size of the combination is a
1161
+ respectable 112 bits.
1162
+
1163
+ The standard way to increase DES's key size is to use three DES
1164
+ boxes. The mode of operation is a little peculiar: the middle DES box
1165
+ is wired in the reverse direction. To encrypt a block with DES3, you
1166
+ encrypt it using the first 56 bits of the key, then _decrypt_ it using
1167
+ the middle 56 bits of the key, and finally encrypt it again using the
1168
+ last 56 bits of the key. This is known as "ede" triple-DES, for
1169
+ "encrypt-decrypt-encrypt".
1170
+
1171
+ The "ede" construction provides some backward compatibility, as you
1172
+ get plain single DES simply by feeding the same key to all three boxes.
1173
+ That should help keeping down the gate count, and the price, of hardware
1174
+ circuits implementing both plain DES and DES3.
1175
+
1176
+ DES3 has a key size of 168 bits, but just like plain DES, useless
1177
+ parity bits are inserted, so that keys are represented as 24 octets
1178
+ (192 bits). As a 112 bit key is large enough to make brute force
1179
+ attacks impractical, some applications uses a "two-key" variant of
1180
+ triple-DES. In this mode, the same key bits are used for the first and
1181
+ the last DES box in the pipe, while the middle box is keyed
1182
+ independently. The two-key variant is believed to be secure, i.e. there
1183
+ are no known attacks significantly better than brute force.
1184
+
1185
+ Naturally, it's simple to implement triple-DES on top of Nettle's DES
1186
+ functions. Nettle includes an implementation of three-key "ede"
1187
+ triple-DES, it is defined in the same place as plain DES,
1188
+ `<nettle/des.h>'.
1189
+
1190
+ -- Context struct: struct des3_ctx
1191
+
1192
+ -- Constant: DES3_BLOCK_SIZE
1193
+ The DES3 block-size is the same as DES_BLOCK_SIZE, 8
1194
+
1195
+ -- Constant: DES3_KEY_SIZE
1196
+ DES key size, 24
1197
+
1198
+ -- Function: int des3_set_key (struct des3_ctx *CTX, const uint8_t
1199
+ *KEY)
1200
+ Initialize the cipher. The same function is used for both
1201
+ encryption and decryption. Parity bits are ignored. Checks for
1202
+ weak keys, returning 1 if all three keys are good keys, and 0 if
1203
+ one or more key is weak. Applications that don't care about weak
1204
+ keys can ignore the return value.
1205
+
1206
+ For random-looking strings, you can use `des_fix_parity' to adjust
1207
+ the parity bits before calling `des3_set_key'.
1208
+
1209
+ -- Function: void des3_encrypt (struct des3_ctx *CTX, unsigned LENGTH,
1210
+ uint8_t *DST, const uint8_t *SRC)
1211
+ Encryption function. LENGTH must be an integral multiple of the
1212
+ block size. If it is more than one block, the data is processed in
1213
+ ECB mode. `src' and `dst' may be equal, but they must not overlap
1214
+ in any other way.
1215
+
1216
+ -- Function: void des3_decrypt (struct des3_ctx *CTX, unsigned LENGTH,
1217
+ uint8_t *DST, const uint8_t *SRC)
1218
+ Analogous to `des_encrypt'
1219
+
1220
+ 6.2.9 Salsa20
1221
+ -------------
1222
+
1223
+ Salsa20 is a fairly recent stream cipher designed by D. J. Bernstein. It
1224
+ is built on the observation that a cryptographic hash function can be
1225
+ used for encryption: Form the hash input from the secret key and a
1226
+ counter, xor the hash output and the first block of the plaintext, then
1227
+ increment the counter to process the next block (similar to CTR mode,
1228
+ see *note CTR::). Bernstein defined an encryption algorithm, Snuffle,
1229
+ in this way to ridicule United States export restrictions which treated
1230
+ hash functions as nice and harmless, but ciphers as dangerous munitions.
1231
+
1232
+ Salsa20 uses the same idea, but with a new specialized hash function
1233
+ to mix key, block counter, and a couple of constants (input and output
1234
+ are the same size, making it not directly applicable for use as a
1235
+ general hash function). It's also designed for speed; on x86_64, it is
1236
+ currently the fastest cipher offered by nettle. It uses a block size of
1237
+ 512 bits (64 octets) and there are two specified key sizes, 128 and 256
1238
+ bits (16 and 32 octets).
1239
+
1240
+ When using Salsa20 to process a message, one specifies both a key
1241
+ and a "nonce", the latter playing a similar rôle to the initialization
1242
+ vector (IV) used with CBC or CTR mode. For this reason, Nettle uses the
1243
+ term IV to refer to the Salsa20 nonce. One can use the same key for
1244
+ several messages, provided one uses a unique random iv for each
1245
+ message. The iv is 64 bits (8 octets). The block counter is initialized
1246
+ to zero for each message, and is also 64 bits (8 octets). Nettle
1247
+ defines Salsa20 in `<nettle/salsa20.h>'.
1248
+
1249
+ -- Context struct: struct salsa20_ctx
1250
+
1251
+ -- Constant: SALSA20_MIN_KEY_SIZE
1252
+ -- Constant: SALSA20_MAX_KEY_SIZE
1253
+ The two supported key sizes, 16 and 32 octets.
1254
+
1255
+ -- Constant: SALSA20_KEY_SIZE
1256
+ Recommended key size, 32.
1257
+
1258
+ -- Constant: SALSA20_BLOCK_SIZE
1259
+ Salsa20 block size, 64.
1260
+
1261
+ -- Constant: SALSA20_IV_SIZE
1262
+ Size of the IV, 8.
1263
+
1264
+ -- Function: void salsa20_set_key (struct salsa20_ctx *CTX, unsigned
1265
+ LENGTH, const uint8_t *KEY)
1266
+ Initialize the cipher. The same function is used for both
1267
+ encryption and decryption. Before using the cipher, you _must_
1268
+ also call `salsa20_set_iv', see below.
1269
+
1270
+ -- Function: void salsa20_set_iv (struct salsa20_ctx *CTX, const
1271
+ uint8_t *IV)
1272
+ Sets the IV. It is always of size `SALSA20_IV_SIZE', 8 octets.
1273
+ This function also initializes the block counter, setting it to
1274
+ zero.
1275
+
1276
+ -- Function: void salsa20_crypt (struct salsa20_ctx *CTX, unsigned
1277
+ LENGTH, uint8_t *DST, const uint8_t *SRC)
1278
+ Encrypts or decrypts the data of a message, using salsa20. When a
1279
+ message is encrypted using a sequence of calls to `salsa20_crypt',
1280
+ all but the last call _must_ use a length that is a multiple of
1281
+ `SALSA20_BLOCK_SIZE'.
1282
+
1283
+
1284
+ 6.2.10 SERPENT
1285
+ --------------
1286
+
1287
+ SERPENT is one of the AES finalists, designed by Ross Anderson, Eli
1288
+ Biham and Lars Knudsen. Thus, the interface and properties are similar
1289
+ to AES'. One peculiarity is that it is quite pointless to use it with
1290
+ anything but the maximum key size, smaller keys are just padded to
1291
+ larger ones. Nettle defines SERPENT in `<nettle/serpent.h>'.
1292
+
1293
+ -- Context struct: struct serpent_ctx
1294
+
1295
+ -- Constant: SERPENT_BLOCK_SIZE
1296
+ The SERPENT block-size, 16
1297
+
1298
+ -- Constant: SERPENT_MIN_KEY_SIZE
1299
+ Minimum SERPENT key size, 16
1300
+
1301
+ -- Constant: SERPENT_MAX_KEY_SIZE
1302
+ Maximum SERPENT key size, 32
1303
+
1304
+ -- Constant: SERPENT_KEY_SIZE
1305
+ Default SERPENT key size, 32
1306
+
1307
+ -- Function: void serpent_set_key (struct serpent_ctx *CTX, unsigned
1308
+ LENGTH, const uint8_t *KEY)
1309
+ Initialize the cipher. The same function is used for both
1310
+ encryption and decryption.
1311
+
1312
+ -- Function: void serpent_encrypt (struct serpent_ctx *CTX, unsigned
1313
+ LENGTH, uint8_t *DST, const uint8_t *SRC)
1314
+ Encryption function. LENGTH must be an integral multiple of the
1315
+ block size. If it is more than one block, the data is processed in
1316
+ ECB mode. `src' and `dst' may be equal, but they must not overlap
1317
+ in any other way.
1318
+
1319
+ -- Function: void serpent_decrypt (struct serpent_ctx *CTX, unsigned
1320
+ LENGTH, uint8_t *DST, const uint8_t *SRC)
1321
+ Analogous to `serpent_encrypt'
1322
+
1323
+ 6.2.11 TWOFISH
1324
+ --------------
1325
+
1326
+ Another AES finalist, this one designed by Bruce Schneier and others.
1327
+ Nettle defines it in `<nettle/twofish.h>'.
1328
+
1329
+ -- Context struct: struct twofish_ctx
1330
+
1331
+ -- Constant: TWOFISH_BLOCK_SIZE
1332
+ The TWOFISH block-size, 16
1333
+
1334
+ -- Constant: TWOFISH_MIN_KEY_SIZE
1335
+ Minimum TWOFISH key size, 16
1336
+
1337
+ -- Constant: TWOFISH_MAX_KEY_SIZE
1338
+ Maximum TWOFISH key size, 32
1339
+
1340
+ -- Constant: TWOFISH_KEY_SIZE
1341
+ Default TWOFISH key size, 32
1342
+
1343
+ -- Function: void twofish_set_key (struct twofish_ctx *CTX, unsigned
1344
+ LENGTH, const uint8_t *KEY)
1345
+ Initialize the cipher. The same function is used for both
1346
+ encryption and decryption.
1347
+
1348
+ -- Function: void twofish_encrypt (struct twofish_ctx *CTX, unsigned
1349
+ LENGTH, uint8_t *DST, const uint8_t *SRC)
1350
+ Encryption function. LENGTH must be an integral multiple of the
1351
+ block size. If it is more than one block, the data is processed in
1352
+ ECB mode. `src' and `dst' may be equal, but they must not overlap
1353
+ in any other way.
1354
+
1355
+ -- Function: void twofish_decrypt (struct twofish_ctx *CTX, unsigned
1356
+ LENGTH, uint8_t *DST, const uint8_t *SRC)
1357
+ Analogous to `twofish_encrypt'
1358
+
1359
+ 6.2.12 `struct nettle_cipher'
1360
+ -----------------------------
1361
+
1362
+ Nettle includes a struct including information about some of the more
1363
+ regular cipher functions. It should be considered a little experimental,
1364
+ but can be useful for applications that need a simple way to handle
1365
+ various algorithms. Nettle defines these structs in
1366
+ `<nettle/nettle-meta.h>'.
1367
+
1368
+ -- Meta struct: `struct nettle_cipher' name context_size block_size
1369
+ key_size set_encrypt_key set_decrypt_key encrypt decrypt
1370
+ The last four attributes are function pointers, of types
1371
+ `nettle_set_key_func' and `nettle_crypt_func'. The first argument
1372
+ to these functions is a `void *' pointer to a context struct,
1373
+ which is of size `context_size'.
1374
+
1375
+ -- Constant Struct: struct nettle_cipher nettle_aes128
1376
+ -- Constant Struct: struct nettle_cipher nettle_aes192
1377
+ -- Constant Struct: struct nettle_cipher nettle_aes256
1378
+ -- Constant Struct: struct nettle_cipher nettle_arctwo40;
1379
+ -- Constant Struct: struct nettle_cipher nettle_arctwo64;
1380
+ -- Constant Struct: struct nettle_cipher nettle_arctwo128;
1381
+ -- Constant Struct: struct nettle_cipher nettle_arctwo_gutmann128;
1382
+ -- Constant Struct: struct nettle_cipher nettle_arcfour128
1383
+ -- Constant Struct: struct nettle_cipher nettle_camellia128
1384
+ -- Constant Struct: struct nettle_cipher nettle_camellia192
1385
+ -- Constant Struct: struct nettle_cipher nettle_camellia256
1386
+ -- Constant Struct: struct nettle_cipher nettle_cast128
1387
+ -- Constant Struct: struct nettle_cipher nettle_serpent128
1388
+ -- Constant Struct: struct nettle_cipher nettle_serpent192
1389
+ -- Constant Struct: struct nettle_cipher nettle_serpent256
1390
+ -- Constant Struct: struct nettle_cipher nettle_twofish128
1391
+ -- Constant Struct: struct nettle_cipher nettle_twofish192
1392
+ -- Constant Struct: struct nettle_cipher nettle_twofish256
1393
+ Nettle includes such structs for all the _regular_ ciphers, i.e.
1394
+ ones without weak keys or other oddities.
1395
+
1396
+ Nettle also exports a list of all these ciphers without weak keys
1397
+ or other oddities. This list can be used to dynamically enumerate
1398
+ or search the supported algorithms:
1399
+
1400
+ -- Constant Struct: struct nettle_cipher ** nettle_ciphers
1401
+
1402
+ 
1403
+ File: nettle.info, Node: Cipher modes, Next: Keyed hash functions, Prev: Cipher functions, Up: Reference
1404
+
1405
+ 6.3 Cipher modes
1406
+ ================
1407
+
1408
+ Cipher modes of operation specifies the procedure to use when encrypting
1409
+ a message that is larger than the cipher's block size. As explained in
1410
+ *Note Cipher functions::, splitting the message into blocks and
1411
+ processing them independently with the block cipher (Electronic Code
1412
+ Book mode, ECB) leaks information. Besides ECB, Nettle provides three
1413
+ other modes of operation: Cipher Block Chaining (CBC), Counter mode
1414
+ (CTR), and Galois/Counter mode (gcm). CBC is widely used, but there are
1415
+ a few subtle issues of information leakage, see, e.g., SSH CBC
1416
+ vulnerability (http://www.kb.cert.org/vuls/id/958563). CTR and GCM were
1417
+ standardized more recently, and are believed to be more secure. GCM
1418
+ includes message authentication; for the other modes, one should always
1419
+ use a MAC (*note Keyed hash functions::) or signature to authenticate
1420
+ the message.
1421
+
1422
+ * Menu:
1423
+
1424
+ * CBC::
1425
+ * CTR::
1426
+ * GCM::
1427
+
1428
+ 
1429
+ File: nettle.info, Node: CBC, Next: CTR, Prev: Cipher modes, Up: Cipher modes
1430
+
1431
+ 6.3.1 Cipher Block Chaining
1432
+ ---------------------------
1433
+
1434
+ When using CBC mode, plaintext blocks are not encrypted independently
1435
+ of each other, like in Electronic Cook Book mode. Instead, when
1436
+ encrypting a block in CBC mode, the previous ciphertext block is XORed
1437
+ with the plaintext before it is fed to the block cipher. When
1438
+ encrypting the first block, a random block called an "IV", or
1439
+ Initialization Vector, is used as the "previous ciphertext block". The
1440
+ IV should be chosen randomly, but it need not be kept secret, and can
1441
+ even be transmitted in the clear together with the encrypted data.
1442
+
1443
+ In symbols, if `E_k' is the encryption function of a block cipher,
1444
+ and `IV' is the initialization vector, then `n' plaintext blocks
1445
+ `M_1',... `M_n' are transformed into `n' ciphertext blocks `C_1',...
1446
+ `C_n' as follows:
1447
+
1448
+ C_1 = E_k(IV XOR M_1)
1449
+ C_2 = E_k(C_1 XOR M_2)
1450
+
1451
+ ...
1452
+
1453
+ C_n = E_k(C_(n-1) XOR M_n)
1454
+
1455
+ Nettle's includes two functions for applying a block cipher in Cipher
1456
+ Block Chaining (CBC) mode, one for encryption and one for decryption.
1457
+ These functions uses `void *' to pass cipher contexts around.
1458
+
1459
+ -- Function: void cbc_encrypt (void *CTX, nettle_crypt_func F,
1460
+ unsigned BLOCK_SIZE, uint8_t *IV, unsigned LENGTH, uint8_t
1461
+ *DST, const uint8_t *SRC)
1462
+ -- Function: void cbc_decrypt (void *CTX, void (*F)(), unsigned
1463
+ BLOCK_SIZE, uint8_t *IV, unsigned LENGTH, uint8_t *DST, const
1464
+ uint8_t *SRC)
1465
+ Applies the encryption or decryption function F in CBC mode. The
1466
+ final ciphertext block processed is copied into IV before
1467
+ returning, so that large message be processed be a sequence of
1468
+ calls to `cbc_encrypt'. The function F is of type
1469
+
1470
+ `void f (void *CTX, unsigned LENGTH, uint8_t DST, const uint8_t
1471
+ *SRC)',
1472
+
1473
+ and the `cbc_encrypt' and `cbc_decrypt' functions pass their
1474
+ argument CTX on to F.
1475
+
1476
+ There are also some macros to help use these functions correctly.
1477
+
1478
+ -- Macro: CBC_CTX (CONTEXT_TYPE, BLOCK_SIZE)
1479
+ Expands to
1480
+ {
1481
+ context_type ctx;
1482
+ uint8_t iv[block_size];
1483
+ }
1484
+
1485
+ It can be used to define a CBC context struct, either directly,
1486
+
1487
+ struct CBC_CTX(struct aes_ctx, AES_BLOCK_SIZE) ctx;
1488
+
1489
+ or to give it a struct tag,
1490
+
1491
+ struct aes_cbc_ctx CBC_CTX (struct aes_ctx, AES_BLOCK_SIZE);
1492
+
1493
+ -- Macro: CBC_SET_IV (CTX, IV)
1494
+ First argument is a pointer to a context struct as defined by
1495
+ `CBC_CTX', and the second is a pointer to an Initialization Vector
1496
+ (IV) that is copied into that context.
1497
+
1498
+ -- Macro: CBC_ENCRYPT (CTX, F, LENGTH, DST, SRC)
1499
+ -- Macro: CBC_DECRYPT (CTX, F, LENGTH, DST, SRC)
1500
+ A simpler way to invoke `cbc_encrypt' and `cbc_decrypt'. The first
1501
+ argument is a pointer to a context struct as defined by `CBC_CTX',
1502
+ and the second argument is an encryption or decryption function
1503
+ following Nettle's conventions. The last three arguments define
1504
+ the source and destination area for the operation.
1505
+
1506
+ These macros use some tricks to make the compiler display a warning
1507
+ if the types of F and CTX don't match, e.g. if you try to use an
1508
+ `struct aes_ctx' context with the `des_encrypt' function.
1509
+
1510
+ 
1511
+ File: nettle.info, Node: CTR, Next: GCM, Prev: CBC, Up: Cipher modes
1512
+
1513
+ 6.3.2 Counter mode
1514
+ ------------------
1515
+
1516
+ Counter mode (CTR) uses the block cipher as a keyed pseudo-random
1517
+ generator. The output of the generator is XORed with the data to be
1518
+ encrypted. It can be understood as a way to transform a block cipher to
1519
+ a stream cipher.
1520
+
1521
+ The message is divided into `n' blocks `M_1',... `M_n', where `M_n'
1522
+ is of size `m' which may be smaller than the block size. Except for the
1523
+ last block, all the message blocks must be of size equal to the
1524
+ cipher's block size.
1525
+
1526
+ If `E_k' is the encryption function of a block cipher, `IC' is the
1527
+ initial counter, then the `n' plaintext blocks are transformed into `n'
1528
+ ciphertext blocks `C_1',... `C_n' as follows:
1529
+
1530
+ C_1 = E_k(IC) XOR M_1
1531
+ C_2 = E_k(IC + 1) XOR M_2
1532
+
1533
+ ...
1534
+
1535
+ C_(n-1) = E_k(IC + n - 2) XOR M_(n-1)
1536
+ C_n = E_k(IC + n - 1) [1..m] XOR M_n
1537
+
1538
+ The IC is the initial value for the counter, it plays a similar rôle
1539
+ as the IV for CBC. When adding, `IC + x', IC is interpreted as an
1540
+ integer, in network byte order. For the last block, `E_k(IC + n - 1)
1541
+ [1..m]' means that the cipher output is truncated to `m' bytes.
1542
+
1543
+ -- Function: void ctr_crypt (void *CTX, nettle_crypt_func F, unsigned
1544
+ BLOCK_SIZE, uint8_t *CTR, unsigned LENGTH, uint8_t *DST,
1545
+ const uint8_t *SRC)
1546
+ Applies the encryption function F in CTR mode. Note that for CTR
1547
+ mode, encryption and decryption is the same operation, and hence F
1548
+ should always be the encryption function for the underlying block
1549
+ cipher.
1550
+
1551
+ When a message is encrypted using a sequence of calls to
1552
+ `ctr_crypt', all but the last call _must_ use a length that is a
1553
+ multiple of the block size.
1554
+
1555
+ Like for CBC, there are also a couple of helper macros.
1556
+
1557
+ -- Macro: CTR_CTX (CONTEXT_TYPE, BLOCK_SIZE)
1558
+ Expands to
1559
+ {
1560
+ context_type ctx;
1561
+ uint8_t ctr[block_size];
1562
+ }
1563
+
1564
+ -- Macro: CTR_SET_COUNTER (CTX, IV)
1565
+ First argument is a pointer to a context struct as defined by
1566
+ `CTR_CTX', and the second is a pointer to an initial counter that
1567
+ is copied into that context.
1568
+
1569
+ -- Macro: CTR_CRYPT (CTX, F, LENGTH, DST, SRC)
1570
+ A simpler way to invoke `ctr_crypt'. The first argument is a
1571
+ pointer to a context struct as defined by `CTR_CTX', and the second
1572
+ argument is an encryption function following Nettle's conventions.
1573
+ The last three arguments define the source and destination area
1574
+ for the operation.
1575
+
1576
+ 
1577
+ File: nettle.info, Node: GCM, Prev: CTR, Up: Cipher modes
1578
+
1579
+ 6.3.3 Galois counter mode
1580
+ -------------------------
1581
+
1582
+ Galois counter mode is the combination of counter mode with message
1583
+ authentication based on universal hashing. The main objective of the
1584
+ design is to provide high performance for hardware implementations,
1585
+ where other popular MAC algorithms (*note Keyed hash functions::
1586
+ becomes a bottleneck for high-speed hardware implementations. It was
1587
+ proposed by David A. McGrew and John Viega in 2005, and recommended by
1588
+ NIST in 2007, NIST Special Publication 800-38D
1589
+ (http://csrc.nist.gov/publications/nistpubs/800-38D/SP-800-38D.pdf). It
1590
+ is constructed on top of a block cipher which must have a block size of
1591
+ 128 bits.
1592
+
1593
+ GCM is applied to messages of arbitrary length. The inputs are:
1594
+
1595
+ * A key, which can be used for many messages.
1596
+
1597
+ * An initialization vector (IV) which _must_ be unique for each
1598
+ message.
1599
+
1600
+ * Additional authenticated data, which is to be included in the
1601
+ message authentication, but not encrypted. May be empty.
1602
+
1603
+ * The plaintext. Maybe empty.
1604
+
1605
+ The outputs are a ciphertext, of the same length as the plaintext,
1606
+ and a message digest of length 128 bits. Nettle's support for GCM
1607
+ consists of a low-level general interface, some convenience macros, and
1608
+ specific functions for GCM using AES as the underlying cipher. These
1609
+ interfaces are defined in `<nettle/gcm.h>'
1610
+
1611
+ 6.3.3.1 General GCM interface
1612
+ .............................
1613
+
1614
+ -- Context struct: struct gcm_key
1615
+ Message independent hash subkey, and related tables.
1616
+
1617
+ -- Context struct: struct gcm_ctx
1618
+ Holds state corresponding to a particular message.
1619
+
1620
+ -- Constant: GCM_BLOCK_SIZE
1621
+ GCM's block size, 16.
1622
+
1623
+ -- Constant: GCM_IV_SIZE
1624
+ Recommended size of the IV, 12. Other sizes are allowed.
1625
+
1626
+ -- Function: void gcm_set_key (struct gcm_key *KEY, void *CIPHER,
1627
+ nettle_crypt_func *F)
1628
+ Initializes KEY. CIPHER gives a context struct for the underlying
1629
+ cipher, which must have been previously initialized for
1630
+ encryption, and F is the encryption function.
1631
+
1632
+ -- Function: void gcm_set_iv (struct gcm_ctx *CTX, const struct
1633
+ gcm_key *KEY, unsigned LENGTH, const uint8_t *IV)
1634
+ Initializes CTX using the given IV. The KEY argument is actually
1635
+ needed only if LENGTH differs from `GCM_IV_SIZE'.
1636
+
1637
+ -- Function: void gcm_update (struct gcm_ctx *CTX, const struct
1638
+ gcm_key *KEY, unsigned LENGTH, const uint8_t *DATA)
1639
+ Provides associated data to be authenticated. If used, must be
1640
+ called before `gcm_encrypt' or `gcm_decrypt'. All but the last call
1641
+ for each message _must_ use a length that is a multiple of the
1642
+ block size.
1643
+
1644
+ -- Function: void gcm_encrypt (struct gcm_ctx *CTX, const struct
1645
+ gcm_key *KEY void *CIPHER, nettle_crypt_func *F, unsigned
1646
+ LENGTH, uint8_t *DST, const uint8_t *SRC)
1647
+ -- Function: void gcm_decrypt (struct gcm_ctx *CTX, const struct
1648
+ gcm_key *KEY, void *CIPHER, nettle_crypt_func *F, unsigned
1649
+ LENGTH, uint8_t *DST, const uint8_t *SRC)
1650
+ Encrypts or decrypts the data of a message. CIPHER is the context
1651
+ struct for the underlying cipher and F is the encryption function.
1652
+ All but the last call for each message _must_ use a length that is
1653
+ a multiple of the block size.
1654
+
1655
+ -- Function: void gcm_digest (struct gcm_ctx *CTX, const struct
1656
+ gcm_key *KEY, void *CIPHER, nettle_crypt_func *F, unsigned
1657
+ LENGTH, uint8_t *DIGEST)
1658
+ Extracts the message digest (also known "authentication tag").
1659
+ This is the final operation when processing a message. LENGTH is
1660
+ usually equal to `GCM_BLOCK_SIZE', but if you provide a smaller
1661
+ value, only the first LENGTH octets of the digest are written.
1662
+
1663
+ To encrypt a message using GCM, first initialize a context for the
1664
+ underlying block cipher with a key to use for encryption. Then call the
1665
+ above functions in the following order: `gcm_set_key', `gcm_set_iv',
1666
+ `gcm_update', `gcm_encrypt', `gcm_digest'. The decryption procedure is
1667
+ analogous, just calling `gcm_decrypt' instead of `gcm_encrypt' (note
1668
+ that GCM decryption still uses the encryption function of the
1669
+ underlying block cipher). To process a new message, using the same key,
1670
+ call `gcm_set_iv' with a new iv.
1671
+
1672
+ 6.3.3.2 GCM helper macros
1673
+ .........................
1674
+
1675
+ The following macros are defined.
1676
+
1677
+ -- Macro: GCM_CTX (CONTEXT_TYPE)
1678
+ This defines an all-in-one context struct, including the context
1679
+ of the underlying cipher, the hash subkey, and the per-message
1680
+ state. It expands to
1681
+ {
1682
+ context_type cipher;
1683
+ struct gcm_key key;
1684
+ struct gcm_ctx gcm;
1685
+ }
1686
+
1687
+ Example use:
1688
+ struct gcm_aes_ctx GCM_CTX(struct aes_ctx);
1689
+
1690
+ The following macros operate on context structs of this form.
1691
+
1692
+ -- Macro: GCM_SET_KEY (CTX, SET_KEY, ENCRYPT, LENGTH, DATA)
1693
+ First argument, CTX, is a context struct as defined by `GCM_CTX'.
1694
+ SET_KEY and ENCRYPT are functions for setting the encryption key
1695
+ and for encrypting data using the underlying cipher. LENGTH and
1696
+ DATA give the key.
1697
+
1698
+ -- Macro: GCM_SET_IV (CTX, LENGTH, DATA)
1699
+ First argument is a context struct as defined by `GCM_CTX'. LENGTH
1700
+ and DATA give the initialization vector (IV).
1701
+
1702
+ -- Macro: GCM_UPDATE (CTX, LENGTH, DATA)
1703
+ Simpler way to call `gcm_update'. First argument is a context
1704
+ struct as defined by `GCM_CTX'
1705
+
1706
+ -- Macro: GCM_ENCRYPT (CTX, ENCRYPT, LENGTH, DST, SRC)
1707
+ -- Macro: GCM_DECRYPT (CTX, ENCRYPT, LENGTH, DST, SRC)
1708
+ -- Macro: GCM_DIGEST (CTX, ENCRYPT, LENGTH, DIGEST)
1709
+ Simpler way to call `gcm_encrypt', `gcm_decrypt' or `gcm_digest'.
1710
+ First argument is a context struct as defined by `GCM_CTX'. Second
1711
+ argument, ENCRYPT, is a pointer to the encryption function of the
1712
+ underlying cipher.
1713
+
1714
+ 6.3.3.3 GCM-AES interface
1715
+ .........................
1716
+
1717
+ The following functions implement the common case of GCM using AES as
1718
+ the underlying cipher.
1719
+
1720
+ -- Context struct: struct gcm_aes_ctx
1721
+ The context struct, defined using `GCM_CTX'.
1722
+
1723
+ -- Function: void gcm_aes_set_key (struct gcm_aes_ctx *CTX, unsigned
1724
+ LENGTH, const uint8_t *KEY)
1725
+ Initializes CTX using the given key. All valid AES key sizes can
1726
+ be used.
1727
+
1728
+ -- Function: void gcm_aes_set_iv (struct gcm_aes_ctx *CTX, unsigned
1729
+ LENGTH, const uint8_t *IV)
1730
+ Initializes the per-message state, using the given IV.
1731
+
1732
+ -- Function: void gcm_aes_update (struct gcm_aes_ctx *CTX, unsigned
1733
+ LENGTH, const uint8_t *DATA)
1734
+ Provides associated data to be authenticated. If used, must be
1735
+ called before `gcm_aes_encrypt' or `gcm_aes_decrypt'. All but the
1736
+ last call for each message _must_ use a length that is a multiple
1737
+ of the block size.
1738
+
1739
+ -- Function: void gcm_aes_encrypt (struct gcm_aes_ctx *CTX, unsigned
1740
+ LENGTH, uint8_t *DST, const uint8_t *SRC)
1741
+ -- Function: void gcm_aes_decrypt (struct gcm_aes_ctx *CTX, unsigned
1742
+ LENGTH, uint8_t *DST, const uint8_t *SRC)
1743
+ Encrypts or decrypts the data of a message. All but the last call
1744
+ for each message _must_ use a length that is a multiple of the
1745
+ block size.
1746
+
1747
+
1748
+ -- Function: void gcm_aes_digest (struct gcm_aes_ctx *CTX, unsigned
1749
+ LENGTH, uint8_t *DIGEST)
1750
+ Extracts the message digest (also known "authentication tag").
1751
+ This is the final operation when processing a message. LENGTH is
1752
+ usually equal to `GCM_BLOCK_SIZE', but if you provide a smaller
1753
+ value, only the first LENGTH octets of the digest are written.
1754
+
1755
+ 
1756
+ File: nettle.info, Node: Keyed hash functions, Next: Public-key algorithms, Prev: Cipher modes, Up: Reference
1757
+
1758
+ 6.4 Keyed Hash Functions
1759
+ ========================
1760
+
1761
+ A "keyed hash function", or "Message Authentication Code" (MAC) is a
1762
+ function that takes a key and a message, and produces fixed size MAC.
1763
+ It should be hard to compute a message and a matching MAC without
1764
+ knowledge of the key. It should also be hard to compute the key given
1765
+ only messages and corresponding MACs.
1766
+
1767
+ Keyed hash functions are useful primarily for message authentication,
1768
+ when Alice and Bob shares a secret: The sender, Alice, computes the MAC
1769
+ and attaches it to the message. The receiver, Bob, also computes the
1770
+ MAC of the message, using the same key, and compares that to Alice's
1771
+ value. If they match, Bob can be assured that the message has not been
1772
+ modified on its way from Alice.
1773
+
1774
+ However, unlike digital signatures, this assurance is not
1775
+ transferable. Bob can't show the message and the MAC to a third party
1776
+ and prove that Alice sent that message. Not even if he gives away the
1777
+ key to the third party. The reason is that the _same_ key is used on
1778
+ both sides, and anyone knowing the key can create a correct MAC for any
1779
+ message. If Bob believes that only he and Alice knows the key, and he
1780
+ knows that he didn't attach a MAC to a particular message, he knows it
1781
+ must be Alice who did it. However, the third party can't distinguish
1782
+ between a MAC created by Alice and one created by Bob.
1783
+
1784
+ Keyed hash functions are typically a lot faster than digital
1785
+ signatures as well.
1786
+
1787
+ 6.4.1 HMAC
1788
+ ----------
1789
+
1790
+ One can build keyed hash functions from ordinary hash functions. Older
1791
+ constructions simply concatenate secret key and message and hashes
1792
+ that, but such constructions have weaknesses. A better construction is
1793
+ HMAC, described in `RFC 2104'.
1794
+
1795
+ For an underlying hash function `H', with digest size `l' and
1796
+ internal block size `b', HMAC-H is constructed as follows: From a given
1797
+ key `k', two distinct subkeys `k_i' and `k_o' are constructed, both of
1798
+ length `b'. The HMAC-H of a message `m' is then computed as `H(k_o |
1799
+ H(k_i | m))', where `|' denotes string concatenation.
1800
+
1801
+ HMAC keys can be of any length, but it is recommended to use keys of
1802
+ length `l', the digest size of the underlying hash function `H'. Keys
1803
+ that are longer than `b' are shortened to length `l' by hashing with
1804
+ `H', so arbitrarily long keys aren't very useful.
1805
+
1806
+ Nettle's HMAC functions are defined in `<nettle/hmac.h>'. There are
1807
+ abstract functions that use a pointer to a `struct nettle_hash' to
1808
+ represent the underlying hash function and `void *' pointers that point
1809
+ to three different context structs for that hash function. There are
1810
+ also concrete functions for HMAC-MD5, HMAC-RIPEMD160 HMAC-SHA1,
1811
+ HMAC-SHA256, and HMAC-SHA512. First, the abstract functions:
1812
+
1813
+ -- Function: void hmac_set_key (void *OUTER, void *INNER, void *STATE,
1814
+ const struct nettle_hash *H, unsigned LENGTH, const uint8_t
1815
+ *KEY)
1816
+ Initializes the three context structs from the key. The OUTER and
1817
+ INNER contexts corresponds to the subkeys `k_o' and `k_i'. STATE
1818
+ is used for hashing the message, and is initialized as a copy of
1819
+ the INNER context.
1820
+
1821
+ -- Function: void hmac_update (void *STATE, const struct nettle_hash
1822
+ *H, unsigned LENGTH, const uint8_t *DATA)
1823
+ This function is called zero or more times to process the message.
1824
+ Actually, `hmac_update(state, H, length, data)' is equivalent to
1825
+ `H->update(state, length, data)', so if you wish you can use the
1826
+ ordinary update function of the underlying hash function instead.
1827
+
1828
+ -- Function: void hmac_digest (const void *OUTER, const void *INNER,
1829
+ void *STATE, const struct nettle_hash *H, unsigned LENGTH,
1830
+ uint8_t *DIGEST)
1831
+ Extracts the MAC of the message, writing it to DIGEST. OUTER and
1832
+ INNER are not modified. LENGTH is usually equal to
1833
+ `H->digest_size', but if you provide a smaller value, only the
1834
+ first LENGTH octets of the MAC are written.
1835
+
1836
+ This function also resets the STATE context so that you can start
1837
+ over processing a new message (with the same key).
1838
+
1839
+ Like for CBC, there are some macros to help use these functions
1840
+ correctly.
1841
+
1842
+ -- Macro: HMAC_CTX (TYPE)
1843
+ Expands to
1844
+ {
1845
+ type outer;
1846
+ type inner;
1847
+ type state;
1848
+ }
1849
+
1850
+ It can be used to define a HMAC context struct, either directly,
1851
+
1852
+ struct HMAC_CTX(struct md5_ctx) ctx;
1853
+
1854
+ or to give it a struct tag,
1855
+
1856
+ struct hmac_md5_ctx HMAC_CTX (struct md5_ctx);
1857
+
1858
+ -- Macro: HMAC_SET_KEY (CTX, H, LENGTH, KEY)
1859
+ CTX is a pointer to a context struct as defined by `HMAC_CTX', H
1860
+ is a pointer to a `const struct nettle_hash' describing the
1861
+ underlying hash function (so it must match the type of the
1862
+ components of CTX). The last two arguments specify the secret key.
1863
+
1864
+ -- Macro: HMAC_DIGEST (CTX, H, LENGTH, DIGEST)
1865
+ CTX is a pointer to a context struct as defined by `HMAC_CTX', H
1866
+ is a pointer to a `const struct nettle_hash' describing the
1867
+ underlying hash function. The last two arguments specify where the
1868
+ digest is written.
1869
+
1870
+ Note that there is no `HMAC_UPDATE' macro; simply call `hmac_update'
1871
+ function directly, or the update function of the underlying hash
1872
+ function.
1873
+
1874
+ 6.4.2 Concrete HMAC functions
1875
+ -----------------------------
1876
+
1877
+ Now we come to the specialized HMAC functions, which are easier to use
1878
+ than the general HMAC functions.
1879
+
1880
+ 6.4.2.1 HMAC-MD5
1881
+ ................
1882
+
1883
+ -- Context struct: struct hmac_md5_ctx
1884
+
1885
+ -- Function: void hmac_md5_set_key (struct hmac_md5_ctx *CTX, unsigned
1886
+ KEY_LENGTH, const uint8_t *KEY)
1887
+ Initializes the context with the key.
1888
+
1889
+ -- Function: void hmac_md5_update (struct hmac_md5_ctx *CTX, unsigned
1890
+ LENGTH, const uint8_t *DATA)
1891
+ Process some more data.
1892
+
1893
+ -- Function: void hmac_md5_digest (struct hmac_md5_ctx *CTX, unsigned
1894
+ LENGTH, uint8_t *DIGEST)
1895
+ Extracts the MAC, writing it to DIGEST. LENGTH may be smaller than
1896
+ `MD5_DIGEST_SIZE', in which case only the first LENGTH octets of
1897
+ the MAC are written.
1898
+
1899
+ This function also resets the context for processing new messages,
1900
+ with the same key.
1901
+
1902
+ 6.4.2.2 HMAC-RIPEMD160
1903
+ ......................
1904
+
1905
+ -- Context struct: struct hmac_ripemd160_ctx
1906
+
1907
+ -- Function: void hmac_ripemd160_set_key (struct hmac_ripemd160_ctx
1908
+ *CTX, unsigned KEY_LENGTH, const uint8_t *KEY)
1909
+ Initializes the context with the key.
1910
+
1911
+ -- Function: void hmac_ripemd160_update (struct hmac_ripemd160_ctx
1912
+ *CTX, unsigned LENGTH, const uint8_t *DATA)
1913
+ Process some more data.
1914
+
1915
+ -- Function: void hmac_ripemd160_digest (struct hmac_ripemd160_ctx
1916
+ *CTX, unsigned LENGTH, uint8_t *DIGEST)
1917
+ Extracts the MAC, writing it to DIGEST. LENGTH may be smaller than
1918
+ `RIPEMD160_DIGEST_SIZE', in which case only the first LENGTH
1919
+ octets of the MAC are written.
1920
+
1921
+ This function also resets the context for processing new messages,
1922
+ with the same key.
1923
+
1924
+ 6.4.2.3 HMAC-SHA1
1925
+ .................
1926
+
1927
+ -- Context struct: struct hmac_sha1_ctx
1928
+
1929
+ -- Function: void hmac_sha1_set_key (struct hmac_sha1_ctx *CTX,
1930
+ unsigned KEY_LENGTH, const uint8_t *KEY)
1931
+ Initializes the context with the key.
1932
+
1933
+ -- Function: void hmac_sha1_update (struct hmac_sha1_ctx *CTX,
1934
+ unsigned LENGTH, const uint8_t *DATA)
1935
+ Process some more data.
1936
+
1937
+ -- Function: void hmac_sha1_digest (struct hmac_sha1_ctx *CTX,
1938
+ unsigned LENGTH, uint8_t *DIGEST)
1939
+ Extracts the MAC, writing it to DIGEST. LENGTH may be smaller than
1940
+ `SHA1_DIGEST_SIZE', in which case only the first LENGTH octets of
1941
+ the MAC are written.
1942
+
1943
+ This function also resets the context for processing new messages,
1944
+ with the same key.
1945
+
1946
+ 6.4.2.4 HMAC-SHA256
1947
+ ...................
1948
+
1949
+ -- Context struct: struct hmac_sha256_ctx
1950
+
1951
+ -- Function: void hmac_sha256_set_key (struct hmac_sha256_ctx *CTX,
1952
+ unsigned KEY_LENGTH, const uint8_t *KEY)
1953
+ Initializes the context with the key.
1954
+
1955
+ -- Function: void hmac_sha256_update (struct hmac_sha256_ctx *CTX,
1956
+ unsigned LENGTH, const uint8_t *DATA)
1957
+ Process some more data.
1958
+
1959
+ -- Function: void hmac_sha256_digest (struct hmac_sha256_ctx *CTX,
1960
+ unsigned LENGTH, uint8_t *DIGEST)
1961
+ Extracts the MAC, writing it to DIGEST. LENGTH may be smaller than
1962
+ `SHA256_DIGEST_SIZE', in which case only the first LENGTH octets
1963
+ of the MAC are written.
1964
+
1965
+ This function also resets the context for processing new messages,
1966
+ with the same key.
1967
+
1968
+ 6.4.2.5 HMAC-SHA512
1969
+ ...................
1970
+
1971
+ -- Context struct: struct hmac_sha512_ctx
1972
+
1973
+ -- Function: void hmac_sha512_set_key (struct hmac_sha512_ctx *CTX,
1974
+ unsigned KEY_LENGTH, const uint8_t *KEY)
1975
+ Initializes the context with the key.
1976
+
1977
+ -- Function: void hmac_sha512_update (struct hmac_sha512_ctx *CTX,
1978
+ unsigned LENGTH, const uint8_t *DATA)
1979
+ Process some more data.
1980
+
1981
+ -- Function: void hmac_sha512_digest (struct hmac_sha512_ctx *CTX,
1982
+ unsigned LENGTH, uint8_t *DIGEST)
1983
+ Extracts the MAC, writing it to DIGEST. LENGTH may be smaller than
1984
+ `SHA512_DIGEST_SIZE', in which case only the first LENGTH octets
1985
+ of the MAC are written.
1986
+
1987
+ This function also resets the context for processing new messages,
1988
+ with the same key.
1989
+
1990
+ 
1991
+ File: nettle.info, Node: Public-key algorithms, Next: Randomness, Prev: Keyed hash functions, Up: Reference
1992
+
1993
+ 6.5 Public-key algorithms
1994
+ =========================
1995
+
1996
+ Nettle uses GMP, the GNU bignum library, for all calculations with
1997
+ large numbers. In order to use the public-key features of Nettle, you
1998
+ must install GMP, at least version 3.0, before compiling Nettle, and
1999
+ you need to link your programs with `-lhogweed -lnettle -lgmp'.
2000
+
2001
+ The concept of "Public-key" encryption and digital signatures was
2002
+ discovered by Whitfield Diffie and Martin E. Hellman and described in a
2003
+ paper 1976. In traditional, "symmetric", cryptography, sender and
2004
+ receiver share the same keys, and these keys must be distributed in a
2005
+ secure way. And if there are many users or entities that need to
2006
+ communicate, each _pair_ needs a shared secret key known by nobody else.
2007
+
2008
+ Public-key cryptography uses trapdoor one-way functions. A "one-way
2009
+ function" is a function `F' such that it is easy to compute the value
2010
+ `F(x)' for any `x', but given a value `y', it is hard to compute a
2011
+ corresponding `x' such that `y = F(x)'. Two examples are cryptographic
2012
+ hash functions, and exponentiation in certain groups.
2013
+
2014
+ A "trapdoor one-way function" is a function `F' that is one-way,
2015
+ unless one knows some secret information about `F'. If one knows the
2016
+ secret, it is easy to compute both `F' and it's inverse. If this
2017
+ sounds strange, look at the RSA example below.
2018
+
2019
+ Two important uses for one-way functions with trapdoors are
2020
+ public-key encryption, and digital signatures. The public-key
2021
+ encryption functions in Nettle are not yet documented; the rest of this
2022
+ chapter is about digital signatures.
2023
+
2024
+ To use a digital signature algorithm, one must first create a
2025
+ "key-pair": A public key and a corresponding private key. The private
2026
+ key is used to sign messages, while the public key is used for verifying
2027
+ that that signatures and messages match. Some care must be taken when
2028
+ distributing the public key; it need not be kept secret, but if a bad
2029
+ guy is able to replace it (in transit, or in some user's list of known
2030
+ public keys), bad things may happen.
2031
+
2032
+ There are two operations one can do with the keys. The signature
2033
+ operation takes a message and a private key, and creates a signature for
2034
+ the message. A signature is some string of bits, usually at most a few
2035
+ thousand bits or a few hundred octets. Unlike paper-and-ink signatures,
2036
+ the digital signature depends on the message, so one can't cut it out of
2037
+ context and glue it to a different message.
2038
+
2039
+ The verification operation takes a public key, a message, and a
2040
+ string that is claimed to be a signature on the message, and returns
2041
+ true or false. If it returns true, that means that the three input
2042
+ values matched, and the verifier can be sure that someone went through
2043
+ with the signature operation on that very message, and that the
2044
+ "someone" also knows the private key corresponding to the public key.
2045
+
2046
+ The desired properties of a digital signature algorithm are as
2047
+ follows: Given the public key and pairs of messages and valid
2048
+ signatures on them, it should be hard to compute the private key, and
2049
+ it should also be hard to create a new message and signature that is
2050
+ accepted by the verification operation.
2051
+
2052
+ Besides signing meaningful messages, digital signatures can be used
2053
+ for authorization. A server can be configured with a public key, such
2054
+ that any client that connects to the service is given a random nonce
2055
+ message. If the server gets a reply with a correct signature matching
2056
+ the nonce message and the configured public key, the client is granted
2057
+ access. So the configuration of the server can be understood as "grant
2058
+ access to whoever knows the private key corresponding to this
2059
+ particular public key, and to no others".
2060
+
2061
+ * Menu:
2062
+
2063
+ * RSA:: The RSA public key algorithm.
2064
+ * DSA:: The DSA digital signature algorithm.
2065
+
2066
+ 
2067
+ File: nettle.info, Node: RSA, Next: DSA, Prev: Public-key algorithms, Up: Public-key algorithms
2068
+
2069
+ 6.5.1 RSA
2070
+ ---------
2071
+
2072
+ The RSA algorithm was the first practical digital signature algorithm
2073
+ that was constructed. It was described 1978 in a paper by Ronald
2074
+ Rivest, Adi Shamir and L.M. Adleman, and the technique was also
2075
+ patented in the USA in 1983. The patent expired on September 20, 2000,
2076
+ and since that day, RSA can be used freely, even in the USA.
2077
+
2078
+ It's remarkably simple to describe the trapdoor function behind RSA.
2079
+ The "one-way"-function used is
2080
+
2081
+ F(x) = x^e mod n
2082
+
2083
+ I.e. raise x to the `e':th power, while discarding all multiples of
2084
+ `n'. The pair of numbers `n' and `e' is the public key. `e' can be
2085
+ quite small, even `e = 3' has been used, although slightly larger
2086
+ numbers are recommended. `n' should be about 1000 bits or larger.
2087
+
2088
+ If `n' is large enough, and properly chosen, the inverse of F, the
2089
+ computation of `e':th roots modulo `n', is very difficult. But,
2090
+ where's the trapdoor?
2091
+
2092
+ Let's first look at how RSA key-pairs are generated. First `n' is
2093
+ chosen as the product of two large prime numbers `p' and `q' of roughly
2094
+ the same size (so if `n' is 1000 bits, `p' and `q' are about 500 bits
2095
+ each). One also computes the number `phi = (p-1)(q-1)', in mathematical
2096
+ speak, `phi' is the order of the multiplicative group of integers
2097
+ modulo n.
2098
+
2099
+ Next, `e' is chosen. It must have no factors in common with `phi' (in
2100
+ particular, it must be odd), but can otherwise be chosen more or less
2101
+ randomly. `e = 65537' is a popular choice, because it makes raising to
2102
+ the `e''th power particularly efficient, and being prime, it usually
2103
+ has no factors common with `phi'.
2104
+
2105
+ Finally, a number `d', `d < n' is computed such that `e d mod phi =
2106
+ 1'. It can be shown that such a number exists (this is why `e' and
2107
+ `phi' must have no common factors), and that for all x,
2108
+
2109
+ (x^e)^d mod n = x^(ed) mod n = (x^d)^e mod n = x
2110
+
2111
+ Using Euclid's algorithm, `d' can be computed quite easily from
2112
+ `phi' and `e'. But it is still hard to get `d' without knowing `phi',
2113
+ which depends on the factorization of `n'.
2114
+
2115
+ So `d' is the trapdoor, if we know `d' and `y = F(x)', we can
2116
+ recover x as `y^d mod n'. `d' is also the private half of the RSA
2117
+ key-pair.
2118
+
2119
+ The most common signature operation for RSA is defined in `PKCS#1',
2120
+ a specification by RSA Laboratories. The message to be signed is first
2121
+ hashed using a cryptographic hash function, e.g. MD5 or SHA1. Next,
2122
+ some padding, the ASN.1 "Algorithm Identifier" for the hash function,
2123
+ and the message digest itself, are concatenated and converted to a
2124
+ number `x'. The signature is computed from `x' and the private key as
2125
+ `s = x^d mod n'(1) (*note RSA-Footnote-1::). The signature, `s' is a
2126
+ number of about the same size of `n', and it usually encoded as a
2127
+ sequence of octets, most significant octet first.
2128
+
2129
+ The verification operation is straight-forward, `x' is computed from
2130
+ the message in the same way as above. Then `s^e mod n' is computed, the
2131
+ operation returns true if and only if the result equals `x'.
2132
+
2133
+ 6.5.2 Nettle's RSA support
2134
+ --------------------------
2135
+
2136
+ Nettle represents RSA keys using two structures that contain large
2137
+ numbers (of type `mpz_t').
2138
+
2139
+ -- Context struct: rsa_public_key size n e
2140
+ `size' is the size, in octets, of the modulo, and is used
2141
+ internally. `n' and `e' is the public key.
2142
+
2143
+ -- Context struct: rsa_private_key size d p q a b c
2144
+ `size' is the size, in octets, of the modulo, and is used
2145
+ internally. `d' is the secret exponent, but it is not actually
2146
+ used when signing. Instead, the factors `p' and `q', and the
2147
+ parameters `a', `b' and `c' are used. They are computed from `p',
2148
+ `q' and `e' such that `a e mod (p - 1) = 1, b e mod (q - 1) = 1, c
2149
+ q mod p = 1'.
2150
+
2151
+ Before use, these structs must be initialized by calling one of
2152
+
2153
+ -- Function: void rsa_public_key_init (struct rsa_public_key *PUB)
2154
+ -- Function: void rsa_private_key_init (struct rsa_private_key *KEY)
2155
+ Calls `mpz_init' on all numbers in the key struct.
2156
+
2157
+ and when finished with them, the space for the numbers must be
2158
+ deallocated by calling one of
2159
+
2160
+ -- Function: void rsa_public_key_clear (struct rsa_public_key *PUB)
2161
+ -- Function: void rsa_private_key_clear (struct rsa_private_key *KEY)
2162
+ Calls `mpz_clear' on all numbers in the key struct.
2163
+
2164
+ In general, Nettle's RSA functions deviates from Nettle's "no memory
2165
+ allocation"-policy. Space for all the numbers, both in the key structs
2166
+ above, and temporaries, are allocated dynamically. For information on
2167
+ how to customize allocation, see *Note GMP Allocation: (gmp)Custom
2168
+ Allocation.
2169
+
2170
+ When you have assigned values to the attributes of a key, you must
2171
+ call
2172
+
2173
+ -- Function: int rsa_public_key_prepare (struct rsa_public_key *PUB)
2174
+ -- Function: int rsa_private_key_prepare (struct rsa_private_key *KEY)
2175
+ Computes the octet size of the key (stored in the `size' attribute,
2176
+ and may also do other basic sanity checks. Returns one if
2177
+ successful, or zero if the key can't be used, for instance if the
2178
+ modulo is smaller than the minimum size needed for RSA operations
2179
+ specified by PKCS#1.
2180
+
2181
+ Before signing or verifying a message, you first hash it with the
2182
+ appropriate hash function. You pass the hash function's context struct
2183
+ to the RSA signature function, and it will extract the message digest
2184
+ and do the rest of the work. There are also alternative functions that
2185
+ take the hash digest as argument.
2186
+
2187
+ There is currently no support for using SHA224 or SHA384 with RSA
2188
+ signatures, since there's no gain in either computation time nor
2189
+ message size compared to using SHA256 and SHA512, respectively.
2190
+
2191
+ Creation and verification of signatures is done with the following
2192
+ functions:
2193
+
2194
+ -- Function: int rsa_md5_sign (const struct rsa_private_key *KEY,
2195
+ struct md5_ctx *HASH, mpz_t SIGNATURE)
2196
+ -- Function: int rsa_sha1_sign (const struct rsa_private_key *KEY,
2197
+ struct sha1_ctx *HASH, mpz_t SIGNATURE)
2198
+ -- Function: int rsa_sha256_sign (const struct rsa_private_key *KEY,
2199
+ struct sha256_ctx *HASH, mpz_t SIGNATURE)
2200
+ -- Function: int rsa_sha512_sign (const struct rsa_private_key *KEY,
2201
+ struct sha512_ctx *HASH, mpz_t SIGNATURE)
2202
+ The signature is stored in SIGNATURE (which must have been
2203
+ `mpz_init''ed earlier). The hash context is reset so that it can be
2204
+ used for new messages. Returns one on success, or zero on failure.
2205
+ Signing fails if the key is too small for the given hash size,
2206
+ e.g., it's not possible to create a signature using SHA512 and a
2207
+ 512-bit RSA key.
2208
+
2209
+ -- Function: int rsa_md5_sign_digest (const struct rsa_private_key
2210
+ *KEY, const uint8_t *DIGEST, mpz_t SIGNATURE)
2211
+ -- Function: int rsa_sha1_sign_digest (const struct rsa_private_key
2212
+ *KEY, const uint8_t *DIGEST, mpz_t SIGNATURE);
2213
+ -- Function: int rsa_sha256_sign_digest (const struct rsa_private_key
2214
+ *KEY, const uint8_t *DIGEST, mpz_t SIGNATURE);
2215
+ -- Function: int rsa_sha512_sign_digest (const struct rsa_private_key
2216
+ *KEY, const uint8_t *DIGEST, mpz_t SIGNATURE);
2217
+ Creates a signature from the given hash digest. DIGEST should
2218
+ point to a digest of size `MD5_DIGEST_SIZE', `SHA1_DIGEST_SIZE',
2219
+ or `SHA256_DIGEST_SIZE', respectively. The signature is stored in
2220
+ SIGNATURE (which must have been `mpz_init':ed earlier). Returns
2221
+ one on success, or zero on failure.
2222
+
2223
+ -- Function: int rsa_md5_verify (const struct rsa_public_key *KEY,
2224
+ struct md5_ctx *HASH, const mpz_t SIGNATURE)
2225
+ -- Function: int rsa_sha1_verify (const struct rsa_public_key *KEY,
2226
+ struct sha1_ctx *HASH, const mpz_t SIGNATURE)
2227
+ -- Function: int rsa_sha256_verify (const struct rsa_public_key *KEY,
2228
+ struct sha256_ctx *HASH, const mpz_t SIGNATURE)
2229
+ -- Function: int rsa_sha512_verify (const struct rsa_public_key *KEY,
2230
+ struct sha512_ctx *HASH, const mpz_t SIGNATURE)
2231
+ Returns 1 if the signature is valid, or 0 if it isn't. In either
2232
+ case, the hash context is reset so that it can be used for new
2233
+ messages.
2234
+
2235
+ -- Function: int rsa_md5_verify_digest (const struct rsa_public_key
2236
+ *KEY, const uint8_t *DIGEST, const mpz_t SIGNATURE)
2237
+ -- Function: int rsa_sha1_verify_digest (const struct rsa_public_key
2238
+ *KEY, const uint8_t *DIGEST, const mpz_t SIGNATURE)
2239
+ -- Function: int rsa_sha256_verify_digest (const struct rsa_public_key
2240
+ *KEY, const uint8_t *DIGEST, const mpz_t SIGNATURE)
2241
+ -- Function: int rsa_sha512_verify_digest (const struct rsa_public_key
2242
+ *KEY, const uint8_t *DIGEST, const mpz_t SIGNATURE)
2243
+ Returns 1 if the signature is valid, or 0 if it isn't. DIGEST
2244
+ should point to a digest of size `MD5_DIGEST_SIZE',
2245
+ `SHA1_DIGEST_SIZE', or `SHA256_DIGEST_SIZE', respectively.
2246
+
2247
+ If you need to use the RSA trapdoor, the private key, in a way that
2248
+ isn't supported by the above functions Nettle also includes a function
2249
+ that computes `x^d mod n' and nothing more, using the CRT optimization.
2250
+
2251
+ -- Function: void rsa_compute_root (struct rsa_private_key *KEY, mpz_t
2252
+ X, const mpz_t M)
2253
+ Computes `x = m^d', efficiently.
2254
+
2255
+ At last, how do you create new keys?
2256
+
2257
+ -- Function: int rsa_generate_keypair (struct rsa_public_key *PUB,
2258
+ struct rsa_private_key *KEY, void *RANDOM_CTX,
2259
+ nettle_random_func RANDOM, void *PROGRESS_CTX,
2260
+ nettle_progress_func PROGRESS, unsigned N_SIZE, unsigned
2261
+ E_SIZE);
2262
+ There are lots of parameters. PUB and KEY is where the resulting
2263
+ key pair is stored. The structs should be initialized, but you
2264
+ don't need to call `rsa_public_key_prepare' or
2265
+ `rsa_private_key_prepare' after key generation.
2266
+
2267
+ RANDOM_CTX and RANDOM is a randomness generator.
2268
+ `random(random_ctx, length, dst)' should generate `length' random
2269
+ octets and store them at `dst'. For advice, see *Note Randomness::.
2270
+
2271
+ PROGRESS and PROGRESS_CTX can be used to get callbacks during the
2272
+ key generation process, in order to uphold an illusion of
2273
+ progress. PROGRESS can be NULL, in that case there are no
2274
+ callbacks.
2275
+
2276
+ SIZE_N is the desired size of the modulo, in bits. If SIZE_E is
2277
+ non-zero, it is the desired size of the public exponent and a
2278
+ random exponent of that size is selected. But if E_SIZE is zero,
2279
+ it is assumed that the caller has already chosen a value for `e',
2280
+ and stored it in PUB. Returns one on success, and zero on
2281
+ failure. The function can fail for example if if N_SIZE is too
2282
+ small, or if E_SIZE is zero and `pub->e' is an even number.
2283
+
2284
+ 
2285
+ File: nettle.info, Node: RSA-Footnotes, Up: RSA
2286
+
2287
+ (1) Actually, the computation is not done like this, it is done more
2288
+ efficiently using `p', `q' and the Chinese remainder theorem (CRT). But
2289
+ the result is the same.
2290
+
2291
+ 
2292
+ File: nettle.info, Node: DSA, Prev: RSA, Up: Public-key algorithms
2293
+
2294
+ 6.5.3 Nettle's DSA support
2295
+ --------------------------
2296
+
2297
+ The DSA digital signature algorithm is more complex than RSA. It was
2298
+ specified during the early 1990s, and in 1994 NIST published FIPS 186
2299
+ which is the authoritative specification. Sometimes DSA is referred to
2300
+ using the acronym DSS, for Digital Signature Standard. The most recent
2301
+ revision of the specification, FIPS186-3, was issueed in 2009, and it
2302
+ adds support for larger hash functions than sha1.
2303
+
2304
+ For DSA, the underlying mathematical problem is the computation of
2305
+ discreet logarithms. The public key consists of a large prime `p', a
2306
+ small prime `q' which is a factor of `p-1', a number `g' which
2307
+ generates a subgroup of order `q' modulo `p', and an element `y' in
2308
+ that subgroup.
2309
+
2310
+ In the original DSA, the size of `q' is fixed to 160 bits, to match
2311
+ with the SHA1 hash algorithm. The size of `p' is in principle
2312
+ unlimited, but the standard specifies only nine specific sizes: `512 +
2313
+ l*64', where `l' is between 0 and 8. Thus, the maximum size of `p' is
2314
+ 1024 bits, and sizes less than 1024 bits are considered obsolete and not
2315
+ secure.
2316
+
2317
+ The subgroup requirement means that if you compute
2318
+
2319
+ g^t mod p
2320
+
2321
+ for all possible integers `t', you will get precisely `q' distinct
2322
+ values.
2323
+
2324
+ The private key is a secret exponent `x', such that
2325
+
2326
+ g^x = y mod p
2327
+
2328
+ In mathematical speak, `x' is the "discrete logarithm" of `y' mod
2329
+ `p', with respect to the generator `g'. The size of `x' will also be
2330
+ about the same size as `q'. The security of the DSA algorithm relies on
2331
+ the difficulty of the discrete logarithm problem. Current algorithms to
2332
+ compute discrete logarithms in this setting, and hence crack DSA, are
2333
+ of two types. The first type works directly in the (multiplicative)
2334
+ group of integers mod `p'. The best known algorithm of this type is the
2335
+ Number Field Sieve, and it's complexity is similar to the complexity of
2336
+ factoring numbers of the same size as `p'. The other type works in the
2337
+ smaller `q'-sized subgroup generated by `g', which has a more difficult
2338
+ group structure. One good algorithm is Pollard-rho, which has
2339
+ complexity `sqrt(q)'.
2340
+
2341
+ The important point is that security depends on the size of _both_
2342
+ `p' and `q', and they should be choosen so that the difficulty of both
2343
+ discrete logarithm methods are comparable. Today, the security margin
2344
+ of the original DSA may be uncomfortably small. Using a `p' of 1024
2345
+ bits implies that cracking using the number field sieve is expected to
2346
+ take about the same time as factoring a 1024-bit RSA modulo, and using
2347
+ a `q' of size 160 bits implies that cracking using Pollard-rho will
2348
+ take roughly `2^80' group operations. With the size of `q' fixed, tied
2349
+ to the SHA1 digest size, it may be tempting to increase the size of `p'
2350
+ to, say, 4096 bits. This will provide excellent resistance against
2351
+ attacks like the number field sieve which works in the large group. But
2352
+ it will do very little to defend against Pollard-rho attacking the small
2353
+ subgroup; the attacker is slowed down at most by a single factor of 10
2354
+ due to the more expensive group operation. And the attacker will surely
2355
+ choose the latter attack.
2356
+
2357
+ The signature generation algorithm is randomized; in order to create
2358
+ a DSA signature, you need a good source for random numbers (*note
2359
+ Randomness::). Let us describe the common case of a 160-bit `q'.
2360
+
2361
+ To create a signature, one starts with the hash digest of the
2362
+ message, `h', which is a 160 bit number, and a random number `k,
2363
+ 0<k<q', also 160 bits. Next, one computes
2364
+
2365
+ r = (g^k mod p) mod q
2366
+ s = k^-1 (h + x r) mod q
2367
+
2368
+ The signature is the pair `(r, s)', two 160 bit numbers. Note the
2369
+ two different mod operations when computing `r', and the use of the
2370
+ secret exponent `x'.
2371
+
2372
+ To verify a signature, one first checks that `0 < r,s < q', and then
2373
+ one computes backwards,
2374
+
2375
+ w = s^-1 mod q
2376
+ v = (g^(w h) y^(w r) mod p) mod q
2377
+
2378
+ The signature is valid if `v = r'. This works out because `w = s^-1
2379
+ mod q = k (h + x r)^-1 mod q', so that
2380
+
2381
+ g^(w h) y^(w r) = g^(w h) (g^x)^(w r) = g^(w (h + x r)) = g^k
2382
+
2383
+ When reducing mod `q' this yields `r'. Note that when verifying a
2384
+ signature, we don't know either `k' or `x': those numbers are secret.
2385
+
2386
+ If you can choose between RSA and DSA, which one is best? Both are
2387
+ believed to be secure. DSA gained popularity in the late 1990s, as a
2388
+ patent free alternative to RSA. Now that the RSA patents have expired,
2389
+ there's no compelling reason to want to use DSA. Today, the original
2390
+ DSA key size does not provide a large security margin, and it should
2391
+ probably be phased out together with RSA keys of 1024 bits. Using the
2392
+ revised DSA algorithm with a larger hash function, in particular,
2393
+ SHA256, a 256-bit `q', and `p' of size 2048 bits or more, should
2394
+ provide for a more comfortable security margin, but these variants are
2395
+ not yet in wide use.
2396
+
2397
+ DSA signatures are smaller than RSA signatures, which is important
2398
+ for some specialized applications.
2399
+
2400
+ From a practical point of view, DSA's need for a good randomness
2401
+ source is a serious disadvantage. If you ever use the same `k' (and
2402
+ `r') for two different message, you leak your private key.
2403
+
2404
+ 6.5.4 Nettle's DSA support
2405
+ --------------------------
2406
+
2407
+ Like for RSA, Nettle represents DSA keys using two structures,
2408
+ containing values of type `mpz_t'. For information on how to customize
2409
+ allocation, see *Note GMP Allocation: (gmp)Custom Allocation.
2410
+
2411
+ Most of the DSA functions are very similar to the corresponding RSA
2412
+ functions, but there are a few differences pointed out below. For a
2413
+ start, there are no functions corresponding to `rsa_public_key_prepare'
2414
+ and `rsa_private_key_prepare'.
2415
+
2416
+ -- Context struct: dsa_public_key p q g y
2417
+ The public parameters described above.
2418
+
2419
+ -- Context struct: dsa_private_key x
2420
+ The private key `x'.
2421
+
2422
+ Before use, these structs must be initialized by calling one of
2423
+
2424
+ -- Function: void dsa_public_key_init (struct dsa_public_key *PUB)
2425
+ -- Function: void dsa_private_key_init (struct dsa_private_key *KEY)
2426
+ Calls `mpz_init' on all numbers in the key struct.
2427
+
2428
+ When finished with them, the space for the numbers must be
2429
+ deallocated by calling one of
2430
+
2431
+ -- Function: void dsa_public_key_clear (struct dsa_public_key *PUB)
2432
+ -- Function: void dsa_private_key_clear (struct dsa_private_key *KEY)
2433
+ Calls `mpz_clear' on all numbers in the key struct.
2434
+
2435
+ Signatures are represented using the structure below, and need to be
2436
+ initialized and cleared in the same way as the key structs.
2437
+
2438
+ -- Context struct: dsa_signature r s
2439
+
2440
+ -- Function: void dsa_signature_init (struct dsa_signature *SIGNATURE)
2441
+ -- Function: void dsa_signature_clear (struct dsa_signature *SIGNATURE)
2442
+ You must call `dsa_signature_init' before creating or using a
2443
+ signature, and call `dsa_signature_clear' when you are finished
2444
+ with it.
2445
+
2446
+ For signing, you need to provide both the public and the private key
2447
+ (unlike RSA, where the private key struct includes all information
2448
+ needed for signing), and a source for random numbers. Signatures can
2449
+ use the SHA1 or the SHA256 hash function, although the implementation
2450
+ of DSA with SHA256 should be considered somewhat experimental due to
2451
+ lack of official test vectors and interoperability testing.
2452
+
2453
+ -- Function: int dsa_sha1_sign (const struct dsa_public_key *PUB,
2454
+ const struct dsa_private_key *KEY, void *RANDOM_CTX,
2455
+ nettle_random_func RANDOM, struct sha1_ctx *HASH, struct
2456
+ dsa_signature *SIGNATURE)
2457
+ -- Function: int dsa_sha1_sign_digest (const struct dsa_public_key
2458
+ *PUB, const struct dsa_private_key *KEY, void *RANDOM_CTX,
2459
+ nettle_random_func RANDOM, const uint8_t *DIGEST, struct
2460
+ dsa_signature *SIGNATURE)
2461
+ -- Function: int dsa_sha256_sign (const struct dsa_public_key *PUB,
2462
+ const struct dsa_private_key *KEY, void *RANDOM_CTX,
2463
+ nettle_random_func RANDOM, struct sha256_ctx *HASH, struct
2464
+ dsa_signature *SIGNATURE)
2465
+ -- Function: int dsa_sha256_sign_digest (const struct dsa_public_key
2466
+ *PUB, const struct dsa_private_key *KEY, void *RANDOM_CTX,
2467
+ nettle_random_func RANDOM, const uint8_t *DIGEST, struct
2468
+ dsa_signature *SIGNATURE)
2469
+ Creates a signature from the given hash context or digest.
2470
+ RANDOM_CTX and RANDOM is a randomness generator.
2471
+ `random(random_ctx, length, dst)' should generate `length' random
2472
+ octets and store them at `dst'. For advice, see *Note
2473
+ Randomness::. Returns one on success, or zero on failure. Signing
2474
+ fails if the key size and the hash size don't match.
2475
+
2476
+ Verifying signatures is a little easier, since no randomness
2477
+ generator is needed. The functions are
2478
+
2479
+ -- Function: int dsa_sha1_verify (const struct dsa_public_key *KEY,
2480
+ struct sha1_ctx *HASH, const struct dsa_signature *SIGNATURE)
2481
+ -- Function: int dsa_sha1_verify_digest (const struct dsa_public_key
2482
+ *KEY, const uint8_t *DIGEST, const struct dsa_signature
2483
+ *SIGNATURE)
2484
+ -- Function: int dsa_sha256_verify (const struct dsa_public_key *KEY,
2485
+ struct sha256_ctx *HASH, const struct dsa_signature
2486
+ *SIGNATURE)
2487
+ -- Function: int dsa_sha256_verify_digest (const struct dsa_public_key
2488
+ *KEY, const uint8_t *DIGEST, const struct dsa_signature
2489
+ *SIGNATURE)
2490
+ Verifies a signature. Returns 1 if the signature is valid,
2491
+ otherwise 0.
2492
+
2493
+ Key generation uses mostly the same parameters as the corresponding
2494
+ RSA function.
2495
+
2496
+ -- Function: int dsa_generate_keypair (struct dsa_public_key *PUB,
2497
+ struct dsa_private_key *KEY, void *RANDOM_CTX,
2498
+ nettle_random_func RANDOM, void *PROGRESS_CTX,
2499
+ nettle_progress_func PROGRESS, unsigned P_BITS, unsigned
2500
+ Q_BITS)
2501
+ PUB and KEY is where the resulting key pair is stored. The structs
2502
+ should be initialized before you call this function.
2503
+
2504
+ RANDOM_CTX and RANDOM is a randomness generator.
2505
+ `random(random_ctx, length, dst)' should generate `length' random
2506
+ octets and store them at `dst'. For advice, see *Note Randomness::.
2507
+
2508
+ PROGRESS and PROGRESS_CTX can be used to get callbacks during the
2509
+ key generation process, in order to uphold an illusion of
2510
+ progress. PROGRESS can be NULL, in that case there are no
2511
+ callbacks.
2512
+
2513
+ P_BITS and Q_BITS are the desired sizes of `p' and `q'. To
2514
+ generate keys that conform to the original DSA standard, you must
2515
+ use `q_bits = 160' and select P_BITS of the form `p_bits = 512 +
2516
+ l*64', for `0 <= l <= 8', where the smaller sizes are no longer
2517
+ recommended, so you should most likely stick to `p_bits = 1024'.
2518
+ Non-standard sizes are possible, in particular `p_bits' larger
2519
+ than 1024, although DSA implementations can not in general be
2520
+ expected to support such keys. Also note that using very large
2521
+ P_BITS, with Q_BITS fixed at 160, doesn't make much sense, because
2522
+ the security is also limited by the size of the smaller prime.
2523
+ Using a larger `q_bits' requires switchign to a larger hash
2524
+ function. To generate DSA keys for use with SHA256, use `q_bits =
2525
+ 256' and, e.g., `p_bits = 2048'.
2526
+
2527
+ Returns one on success, and zero on failure. The function will
2528
+ fail if Q_BITS is neither 160 nor 256, or if P_BITS is unreasonably
2529
+ small.
2530
+
2531
+ 
2532
+ File: nettle.info, Node: Randomness, Next: Ascii encoding, Prev: Public-key algorithms, Up: Reference
2533
+
2534
+ 6.6 Randomness
2535
+ ==============
2536
+
2537
+ A crucial ingredient in many cryptographic contexts is randomness: Let
2538
+ `p' be a random prime, choose a random initialization vector `iv', a
2539
+ random key `k' and a random exponent `e', etc. In the theories, it is
2540
+ assumed that you have plenty of randomness around. If this assumption
2541
+ is not true in practice, systems that are otherwise perfectly secure,
2542
+ can be broken. Randomness has often turned out to be the weakest link
2543
+ in the chain.
2544
+
2545
+ In non-cryptographic applications, such as games as well as
2546
+ scientific simulation, a good randomness generator usually means a
2547
+ generator that has good statistical properties, and is seeded by some
2548
+ simple function of things like the current time, process id, and host
2549
+ name.
2550
+
2551
+ However, such a generator is inadequate for cryptography, for at
2552
+ least two reasons:
2553
+
2554
+ * It's too easy for an attacker to guess the initial seed. Even if
2555
+ it will take some 2^32 tries before he guesses right, that's far
2556
+ too easy. For example, if the process id is 16 bits, the
2557
+ resolution of "current time" is one second, and the attacker knows
2558
+ what day the generator was seeded, there are only about 2^32
2559
+ possibilities to try if all possible values for the process id and
2560
+ time-of-day are tried.
2561
+
2562
+ * The generator output reveals too much. By observing only a small
2563
+ segment of the generator's output, its internal state can be
2564
+ recovered, and from there, all previous output and all future
2565
+ output can be computed by the attacker.
2566
+
2567
+ A randomness generator that is used for cryptographic purposes must
2568
+ have better properties. Let's first look at the seeding, as the issues
2569
+ here are mostly independent of the rest of the generator. The initial
2570
+ state of the generator (its seed) must be unguessable by the attacker.
2571
+ So what's unguessable? It depends on what the attacker already knows.
2572
+ The concept used in information theory to reason about such things is
2573
+ called "entropy", or "conditional entropy" (not to be confused with the
2574
+ thermodynamic concept with the same name). A reasonable requirement is
2575
+ that the seed contains a conditional entropy of at least some 80-100
2576
+ bits. This property can be explained as follows: Allow the attacker to
2577
+ ask `n' yes-no-questions, of his own choice, about the seed. If the
2578
+ attacker, using this question-and-answer session, as well as any other
2579
+ information he knows about the seeding process, still can't guess the
2580
+ seed correctly, then the conditional entropy is more than `n' bits.
2581
+
2582
+ Let's look at an example. Say information about timing of received
2583
+ network packets is used in the seeding process. If there is some random
2584
+ network traffic going on, this will contribute some bits of entropy or
2585
+ "unguessability" to the seed. However, if the attacker can listen in to
2586
+ the local network, or if all but a small number of the packets were
2587
+ transmitted by machines that the attacker can monitor, this additional
2588
+ information makes the seed easier for the attacker to figure out. Even
2589
+ if the information is exactly the same, the conditional entropy, or
2590
+ unguessability, is smaller for an attacker that knows some of it already
2591
+ before the hypothetical question-and-answer session.
2592
+
2593
+ Seeding of good generators is usually based on several sources. The
2594
+ key point here is that the amount of unguessability that each source
2595
+ contributes, depends on who the attacker is. Some sources that have been
2596
+ used are:
2597
+
2598
+ High resolution timing of i/o activities
2599
+ Such as completed blocks from spinning hard disks, network
2600
+ packets, etc. Getting access to such information is quite system
2601
+ dependent, and not all systems include suitable hardware. If
2602
+ available, it's one of the better randomness source one can find
2603
+ in a digital, mostly predictable, computer.
2604
+
2605
+ User activity
2606
+ Timing and contents of user interaction events is another popular
2607
+ source that is available for interactive programs (even if I
2608
+ suspect that it is sometimes used in order to make the user feel
2609
+ good, not because the quality of the input is needed or used
2610
+ properly). Obviously, not available when a machine is unattended.
2611
+ Also beware of networks: User interaction that happens across a
2612
+ long serial cable, TELNET session, or even SSH session may be
2613
+ visible to an attacker, in full or partially.
2614
+
2615
+ Audio input
2616
+ Any room, or even a microphone input that's left unconnected, is a
2617
+ source of some random background noise, which can be fed into the
2618
+ seeding process.
2619
+
2620
+ Specialized hardware
2621
+ Hardware devices with the sole purpose of generating random data
2622
+ have been designed. They range from radioactive samples with an
2623
+ attached Geiger counter, to amplification of the inherent noise in
2624
+ electronic components such as diodes and resistors, to
2625
+ low-frequency sampling of chaotic systems. Hashing successive
2626
+ images of a Lava lamp is a spectacular example of the latter type.
2627
+
2628
+ Secret information
2629
+ Secret information, such as user passwords or keys, or private
2630
+ files stored on disk, can provide some unguessability. A problem
2631
+ is that if the information is revealed at a later time, the
2632
+ unguessability vanishes. Another problem is that this kind of
2633
+ information tends to be fairly constant, so if you rely on it and
2634
+ seed your generator regularly, you risk constructing almost
2635
+ similar seeds or even constructing the same seed more than once.
2636
+
2637
+ For all practical sources, it's difficult but important to provide a
2638
+ reliable lower bound on the amount of unguessability that it provides.
2639
+ Two important points are to make sure that the attacker can't observe
2640
+ your sources (so if you like the Lava lamp idea, remember that you have
2641
+ to get your own lamp, and not put it by a window or anywhere else where
2642
+ strangers can see it), and that hardware failures are detected. What if
2643
+ the bulb in the Lava lamp, which you keep locked into a cupboard
2644
+ following the above advice, breaks after a few months?
2645
+
2646
+ So let's assume that we have been able to find an unguessable seed,
2647
+ which contains at least 80 bits of conditional entropy, relative to all
2648
+ attackers that we care about (typically, we must at the very least
2649
+ assume that no attacker has root privileges on our machine).
2650
+
2651
+ How do we generate output from this seed, and how much can we get?
2652
+ Some generators (notably the Linux `/dev/random' generator) tries to
2653
+ estimate available entropy and restrict the amount of output. The goal
2654
+ is that if you read 128 bits from `/dev/random', you should get 128
2655
+ "truly random" bits. This is a property that is useful in some
2656
+ specialized circumstances, for instance when generating key material for
2657
+ a one time pad, or when working with unconditional blinding, but in most
2658
+ cases, it doesn't matter much. For most application, there's no limit on
2659
+ the amount of useful "random" data that we can generate from a small
2660
+ seed; what matters is that the seed is unguessable and that the
2661
+ generator has good cryptographic properties.
2662
+
2663
+ At the heart of all generators lies its internal state. Future output
2664
+ is determined by the internal state alone. Let's call it the generator's
2665
+ key. The key is initialized from the unguessable seed. Important
2666
+ properties of a generator are:
2667
+
2668
+ "Key-hiding"
2669
+ An attacker observing the output should not be able to recover the
2670
+ generator's key.
2671
+
2672
+ "Independence of outputs"
2673
+ Observing some of the output should not help the attacker to guess
2674
+ previous or future output.
2675
+
2676
+ "Forward secrecy"
2677
+ Even if an attacker compromises the generator's key, he should not
2678
+ be able to guess the generator output _before_ the key compromise.
2679
+
2680
+ "Recovery from key compromise"
2681
+ If an attacker compromises the generator's key, he can compute
2682
+ _all_ future output. This is inevitable if the generator is seeded
2683
+ only once, at startup. However, the generator can provide a
2684
+ reseeding mechanism, to achieve recovery from key compromise. More
2685
+ precisely: If the attacker compromises the key at a particular
2686
+ time `t_1', there is another later time `t_2', such that if the
2687
+ attacker observes all output generated between `t_1' and `t_2', he
2688
+ still can't guess what output is generated after `t_2'.
2689
+
2690
+
2691
+ Nettle includes one randomness generator that is believed to have all
2692
+ the above properties, and two simpler ones.
2693
+
2694
+ ARCFOUR, like any stream cipher, can be used as a randomness
2695
+ generator. Its output should be of reasonable quality, if the seed is
2696
+ hashed properly before it is used with `arcfour_set_key'. There's no
2697
+ single natural way to reseed it, but if you need reseeding, you should
2698
+ be using Yarrow instead.
2699
+
2700
+ The "lagged Fibonacci" generator in `<nettle/knuth-lfib.h>' is a
2701
+ fast generator with good statistical properties, but is *not* for
2702
+ cryptographic use, and therefore not documented here. It is included
2703
+ mostly because the Nettle test suite needs to generate some test data
2704
+ from a small seed.
2705
+
2706
+ The recommended generator to use is Yarrow, described below.
2707
+
2708
+ 6.6.1 Yarrow
2709
+ ------------
2710
+
2711
+ Yarrow is a family of pseudo-randomness generators, designed for
2712
+ cryptographic use, by John Kelsey, Bruce Schneier and Niels Ferguson.
2713
+ Yarrow-160 is described in a paper at
2714
+ `http://www.counterpane.com/yarrow.html', and it uses SHA1 and
2715
+ triple-DES, and has a 160-bit internal state. Nettle implements
2716
+ Yarrow-256, which is similar, but uses SHA256 and AES to get an
2717
+ internal state of 256 bits.
2718
+
2719
+ Yarrow was an almost finished project, the paper mentioned above is
2720
+ the closest thing to a specification for it, but some smaller details
2721
+ are left out. There is no official reference implementation or test
2722
+ cases. This section includes an overview of Yarrow, but for the
2723
+ details of Yarrow-256, as implemented by Nettle, you have to consult
2724
+ the source code. Maybe a complete specification can be written later.
2725
+
2726
+ Yarrow can use many sources (at least two are needed for proper
2727
+ reseeding), and two randomness "pools", referred to as the "slow pool"
2728
+ and the "fast pool". Input from the sources is fed alternatingly into
2729
+ the two pools. When one of the sources has contributed 100 bits of
2730
+ entropy to the fast pool, a "fast reseed" happens and the fast pool is
2731
+ mixed into the internal state. When at least two of the sources have
2732
+ contributed at least 160 bits each to the slow pool, a "slow reseed"
2733
+ takes place. The contents of both pools are mixed into the internal
2734
+ state. These procedures should ensure that the generator will eventually
2735
+ recover after a key compromise.
2736
+
2737
+ The output is generated by using AES to encrypt a counter, using the
2738
+ generator's current key. After each request for output, another 256
2739
+ bits are generated which replace the key. This ensures forward secrecy.
2740
+
2741
+ Yarrow can also use a "seed file" to save state across restarts.
2742
+ Yarrow is seeded by either feeding it the contents of the previous seed
2743
+ file, or feeding it input from its sources until a slow reseed happens.
2744
+
2745
+ Nettle defines Yarrow-256 in `<nettle/yarrow.h>'.
2746
+
2747
+ -- Context struct: struct yarrow256_ctx
2748
+
2749
+ -- Context struct: struct yarrow_source
2750
+ Information about a single source.
2751
+
2752
+ -- Constant: YARROW256_SEED_FILE_SIZE
2753
+ Recommanded size of the Yarrow-256 seed file.
2754
+
2755
+ -- Function: void yarrow256_init (struct yarrow256_ctx *CTX, unsigned
2756
+ NSOURCES, struct yarrow_source *SOURCES)
2757
+ Initializes the yarrow context, and its NSOURCES sources. It's
2758
+ possible to call it with NSOURCES=0 and SOURCES=NULL, if you don't
2759
+ need the update features.
2760
+
2761
+ -- Function: void yarrow256_seed (struct yarrow256_ctx *CTX, unsigned
2762
+ LENGTH, uint8_t *SEED_FILE)
2763
+ Seeds Yarrow-256 from a previous seed file. LENGTH should be at
2764
+ least `YARROW256_SEED_FILE_SIZE', but it can be larger.
2765
+
2766
+ The generator will trust you that the SEED_FILE data really is
2767
+ unguessable. After calling this function, you _must_ overwrite the
2768
+ old seed file with newly generated data from `yarrow256_random'.
2769
+ If it's possible for several processes to read the seed file at
2770
+ about the same time, access must be coordinated using some locking
2771
+ mechanism.
2772
+
2773
+ -- Function: int yarrow256_update (struct yarrow256_ctx *CTX, unsigned
2774
+ SOURCE, unsigned ENTROPY, unsigned LENGTH, const uint8_t
2775
+ *DATA)
2776
+ Updates the generator with data from source SOURCE (an index that
2777
+ must be smaller than the number of sources). ENTROPY is your
2778
+ estimated lower bound for the entropy in the data, measured in
2779
+ bits. Calling update with zero ENTROPY is always safe, no matter
2780
+ if the data is random or not.
2781
+
2782
+ Returns 1 if a reseed happened, in which case an application using
2783
+ a seed file may want to generate new seed data with
2784
+ `yarrow256_random' and overwrite the seed file. Otherwise, the
2785
+ function returns 0.
2786
+
2787
+ -- Function: void yarrow256_random (struct yarrow256_ctx *CTX,
2788
+ unsigned LENGTH, uint8_t *DST)
2789
+ Generates LENGTH octets of output. The generator must be seeded
2790
+ before you call this function.
2791
+
2792
+ If you don't need forward secrecy, e.g. if you need non-secret
2793
+ randomness for initialization vectors or padding, you can gain some
2794
+ efficiency by buffering, calling this function for reasonably large
2795
+ blocks of data, say 100-1000 octets at a time.
2796
+
2797
+ -- Function: int yarrow256_is_seeded (struct yarrow256_ctx *CTX)
2798
+ Returns 1 if the generator is seeded and ready to generate output,
2799
+ otherwise 0.
2800
+
2801
+ -- Function: unsigned yarrow256_needed_sources (struct yarrow256_ctx
2802
+ *CTX)
2803
+ Returns the number of sources that must reach the threshold before
2804
+ a slow reseed will happen. Useful primarily when the generator is
2805
+ unseeded.
2806
+
2807
+ -- Function: void yarrow256_fast_reseed (struct yarrow256_ctx *CTX)
2808
+ -- Function: void yarrow256_slow_reseed (struct yarrow256_ctx *CTX)
2809
+ Causes a fast or slow reseed to take place immediately, regardless
2810
+ of the current entropy estimates of the two pools. Use with care.
2811
+
2812
+ Nettle includes an entropy estimator for one kind of input source:
2813
+ User keyboard input.
2814
+
2815
+ -- Context struct: struct yarrow_key_event_ctx
2816
+ Information about recent key events.
2817
+
2818
+ -- Function: void yarrow_key_event_init (struct yarrow_key_event_ctx
2819
+ *CTX)
2820
+ Initializes the context.
2821
+
2822
+ -- Function: unsigned yarrow_key_event_estimate (struct
2823
+ yarrow_key_event_ctx *CTX, unsigned KEY, unsigned TIME)
2824
+ KEY is the id of the key (ASCII value, hardware key code, X
2825
+ keysym, ..., it doesn't matter), and TIME is the timestamp of the
2826
+ event. The time must be given in units matching the resolution by
2827
+ which you read the clock. If you read the clock with microsecond
2828
+ precision, TIME should be provided in units of microseconds. But
2829
+ if you use `gettimeofday' on a typical Unix system where the clock
2830
+ ticks 10 or so microseconds at a time, TIME should be given in
2831
+ units of 10 microseconds.
2832
+
2833
+ Returns an entropy estimate, in bits, suitable for calling
2834
+ `yarrow256_update'. Usually, 0, 1 or 2 bits.
2835
+
2836
+ 
2837
+ File: nettle.info, Node: Ascii encoding, Next: Miscellaneous functions, Prev: Randomness, Up: Reference
2838
+
2839
+ 6.7 Ascii encoding
2840
+ ==================
2841
+
2842
+ Encryption will transform your data from text into binary format, and
2843
+ that may be a problem if you want, for example, to send the data as if
2844
+ it was plain text in an email (or store it along with descriptive text
2845
+ in a file). You may then use an encoding from binary to text: each
2846
+ binary byte is translated into a number of bytes of plain text.
2847
+
2848
+ A base-N encoding of data is one representation of data that only
2849
+ uses N different symbols (instead of the 256 possible values of a byte).
2850
+
2851
+ The base64 encoding will always use alphanumeric (upper and lower
2852
+ case) characters and the '+', '/' and '=' symbols to represent the
2853
+ data. Four output characters are generated for each three bytes of
2854
+ input. In case the length of the input is not a multiple of three,
2855
+ padding characters are added at the end.
2856
+
2857
+ The base16 encoding, also known as "hexadecimal", uses the decimal
2858
+ digits and the letters from A to F. Two hexadecimal digits are generated
2859
+ for each input byte. Base16 may be useful if you want to use the data
2860
+ for filenames or URLs, for example.
2861
+
2862
+ Nettle supports both base64 and base16 encoding and decoding.
2863
+
2864
+ Encoding and decoding uses a context struct to maintain its state
2865
+ (with the exception of base16 encoding, which doesn't need any). To
2866
+ encode or decode the your data, first initialize the context, then call
2867
+ the update function as many times as necessary, and complete the
2868
+ operation by calling the final function.
2869
+
2870
+ The following functions can be used to perform base64 encoding and
2871
+ decoding. They are defined in `<nettle/base64.h>'.
2872
+
2873
+ -- Context struct: struct base64_encode_ctx
2874
+
2875
+ -- Function: void base64_encode_init (struct base64_encode_ctx *CTX)
2876
+ Initializes a base64 context. This is necessary before starting an
2877
+ encoding session.
2878
+
2879
+ -- Function: unsigned base64_encode_single (struct base64_encode_ctx
2880
+ *CTX, uint8_t *DST, uint8_t SRC)
2881
+ Encodes a single byte. Returns amount of output (always 1 or 2).
2882
+
2883
+ -- Macro: BASE64_ENCODE_LENGTH (LENGTH)
2884
+ The maximum number of output bytes when passing LENGTH input bytes
2885
+ to `base64_encode_update'.
2886
+
2887
+ -- Function: unsigned base64_encode_update (struct base64_encode_ctx
2888
+ *CTX, uint8_t *DST, unsigned LENGTH, const uint8_t *SRC)
2889
+ After CTX is initialized, this function may be called to encode
2890
+ LENGTH bytes from SRC. The result will be placed in DST, and the
2891
+ return value will be the number of bytes generated. Note that DST
2892
+ must be at least of size BASE64_ENCODE_LENGTH(LENGTH).
2893
+
2894
+ -- Constant: BASE64_ENCODE_FINAL_LENGTH
2895
+ The maximum amount of output from `base64_encode_final'.
2896
+
2897
+ -- Function: unsigned base64_encode_final (struct base64_encode_ctx
2898
+ *CTX, uint8_t *DST)
2899
+ After calling base64_encode_update one or more times, this function
2900
+ should be called to generate the final output bytes, including any
2901
+ needed paddding. The return value is the number of output bytes
2902
+ generated.
2903
+
2904
+ -- Context struct: struct base64_decode_ctx
2905
+
2906
+ -- Function: void base64_decode_init (struct base64_decode_ctx *CTX)
2907
+ Initializes a base64 decoding context. This is necessary before
2908
+ starting a decoding session.
2909
+
2910
+ -- Function: int base64_decode_single (struct base64_decode_ctx *CTX,
2911
+ uint8_t *DST, uint8_t SRC)
2912
+ Decodes a single byte (SRC) and stores the result in DST. Returns
2913
+ amount of output (0 or 1), or -1 on errors.
2914
+
2915
+ -- Macro: BASE64_DECODE_LENGTH (LENGTH)
2916
+ The maximum number of output bytes when passing LENGTH input bytes
2917
+ to `base64_decode_update'.
2918
+
2919
+ -- Function: void base64_decode_update (struct base64_decode_ctx *CTX,
2920
+ unsigned *DST_LENGTH, uint8_t *DST, unsigned SRC_LENGTH,
2921
+ const uint8_t *SRC)
2922
+ After CTX is initialized, this function may be called to decode
2923
+ SRC_LENGTH bytes from SRC. DST should point to an area of size at
2924
+ least BASE64_DECODE_LENGTH(LENGTH), and for sanity checking,
2925
+ DST_LENGTH should be initialized to the size of that area before
2926
+ the call. DST_LENGTH is updated to the amount of decoded output.
2927
+ The function will return 1 on success and 0 on error.
2928
+
2929
+ -- Function: int base64_decode_final (struct base64_decode_ctx *CTX)
2930
+ Check that final padding is correct. Returns 1 on success, and 0 on
2931
+ error.
2932
+
2933
+ Similarly to the base64 functions, the following functions perform
2934
+ base16 encoding, and are defined in `<nettle/base16.h>'. Note that
2935
+ there is no encoding context necessary for doing base16 encoding.
2936
+
2937
+ -- Function: void base16_encode_single (uint8_t *DST, uint8_t SRC)
2938
+ Encodes a single byte. Always stores two digits in DST[0] and
2939
+ DST[1].
2940
+
2941
+ -- Macro: BASE16_ENCODE_LENGTH (LENGTH)
2942
+ The number of output bytes when passing LENGTH input bytes to
2943
+ `base16_encode_update'.
2944
+
2945
+ -- Function: void base16_encode_update (uint8_t *DST, unsigned LENGTH,
2946
+ const uint8_t *SRC)
2947
+ Always stores BASE16_ENCODE_LENGTH(LENGTH) digits in DST.
2948
+
2949
+ -- Context struct: struct base16_decode_ctx
2950
+
2951
+ -- Function: void base16_decode_init (struct base16_decode_ctx *CTX)
2952
+ Initializes a base16 decoding context. This is necessary before
2953
+ starting a decoding session.
2954
+
2955
+ -- Function: int base16_decode_single (struct base16_decode_ctx *CTX,
2956
+ uint8_t *DST, uint8_t SRC)
2957
+ Decodes a single byte from SRC into DST. Returns amount of output
2958
+ (0 or 1), or -1 on errors.
2959
+
2960
+ -- Macro: BASE16_DECODE_LENGTH (LENGTH)
2961
+ The maximum number of output bytes when passing LENGTH input bytes
2962
+ to `base16_decode_update'.
2963
+
2964
+ -- Function: int base16_decode_update (struct base16_decode_ctx *CTX,
2965
+ unsigned *DST_LENGTH, uint8_t *DST, unsigned SRC_LENGTH,
2966
+ const uint8_t *SRC)
2967
+ After CTX is initialized, this function may be called to decode
2968
+ SRC_LENGTH bytes from SRC. DST should point to an area of size at
2969
+ least BASE16_DECODE_LENGTH(LENGTH), and for sanity checking,
2970
+ DST_LENGTH should be initialized to the size of that area before
2971
+ the call. DST_LENGTH is updated to the amount of decoded output.
2972
+ The function will return 1 on success and 0 on error.
2973
+
2974
+ -- Function: int base16_decode_final (struct base16_decode_ctx *CTX)
2975
+ Checks that the end of data is correct (i.e., an even number of
2976
+ hexadecimal digits have been seen). Returns 1 on success, and 0 on
2977
+ error.
2978
+
2979
+ 
2980
+ File: nettle.info, Node: Miscellaneous functions, Next: Compatibility functions, Prev: Ascii encoding, Up: Reference
2981
+
2982
+ 6.8 Miscellaneous functions
2983
+ ===========================
2984
+
2985
+ -- Function: uint8_t * memxor (uint8_t *DST, const uint8_t *SRC,
2986
+ size_t N)
2987
+ XORs the source area on top of the destination area. The interface
2988
+ doesn't follow the Nettle conventions, because it is intended to be
2989
+ similar to the ANSI-C `memcpy' function.
2990
+
2991
+ `memxor' is declared in `<nettle/memxor.h>'.
2992
+
2993
+ 
2994
+ File: nettle.info, Node: Compatibility functions, Prev: Miscellaneous functions, Up: Reference
2995
+
2996
+ 6.9 Compatibility functions
2997
+ ===========================
2998
+
2999
+ For convenience, Nettle includes alternative interfaces to some
3000
+ algorithms, for compatibility with some other popular crypto toolkits.
3001
+ These are not fully documented here; refer to the source or to the
3002
+ documentation for the original implementation.
3003
+
3004
+ MD5 is defined in [RFC 1321], which includes a reference
3005
+ implementation. Nettle defines a compatible interface to MD5 in
3006
+ `<nettle/md5-compat.h>'. This file defines the typedef `MD5_CTX', and
3007
+ declares the functions `MD5Init', `MD5Update' and `MD5Final'.
3008
+
3009
+ Eric Young's "libdes" (also part of OpenSSL) is a quite popular DES
3010
+ implementation. Nettle includes a subset if its interface in
3011
+ `<nettle/des-compat.h>'. This file defines the typedefs
3012
+ `des_key_schedule' and `des_cblock', two constants `DES_ENCRYPT' and
3013
+ `DES_DECRYPT', and declares one global variable `des_check_key', and
3014
+ the functions `des_cbc_cksum' `des_cbc_encrypt', `des_ecb2_encrypt',
3015
+ `des_ecb3_encrypt', `des_ecb_encrypt', `des_ede2_cbc_encrypt',
3016
+ `des_ede3_cbc_encrypt', `des_is_weak_key', `des_key_sched',
3017
+ `des_ncbc_encrypt' `des_set_key', and `des_set_odd_parity'.
3018
+
3019
+ 
3020
+ File: nettle.info, Node: Nettle soup, Next: Installation, Prev: Reference, Up: Top
3021
+
3022
+ 7 Traditional Nettle Soup
3023
+ *************************
3024
+
3025
+ For the serious nettle hacker, here is a recipe for nettle soup. 4
3026
+ servings.
3027
+
3028
+ 1 liter fresh nettles (urtica dioica)
3029
+
3030
+ 2 tablespoons butter
3031
+
3032
+ 3 tablespoons flour
3033
+
3034
+ 1 liter stock (meat or vegetable)
3035
+
3036
+ 1/2 teaspoon salt
3037
+
3038
+ a tad white pepper
3039
+
3040
+ some cream or milk
3041
+
3042
+ Gather 1 liter fresh nettles. Use gloves! Small, tender shoots are
3043
+ preferable but the tops of larger nettles can also be used.
3044
+
3045
+ Rinse the nettles very well. Boil them for 10 minutes in lightly
3046
+ salted water. Strain the nettles and save the water. Hack the nettles.
3047
+ Melt the butter and mix in the flour. Dilute with stock and the
3048
+ nettle-water you saved earlier. Add the hacked nettles. If you wish you
3049
+ can add some milk or cream at this stage. Bring to a boil and let boil
3050
+ for a few minutes. Season with salt and pepper.
3051
+
3052
+ Serve with boiled egg-halves.
3053
+
3054
+ 
3055
+ File: nettle.info, Node: Installation, Next: Index, Prev: Nettle soup, Up: Top
3056
+
3057
+ 8 Installation
3058
+ **************
3059
+
3060
+ Nettle uses `autoconf'. To build it, unpack the source and run
3061
+
3062
+ ./configure
3063
+ make
3064
+ make check
3065
+ make install
3066
+
3067
+ to install in under the default prefix, `/usr/local'.
3068
+
3069
+ To get a list of configure options, use `./configure --help'.
3070
+
3071
+ By default, both static and shared libraries are built and
3072
+ installed. To omit building the shared libraries, use the `
3073
+ --disable-shared' option to `./configure'.
3074
+
3075
+ Using GNU make is recommended. For other make programs, in particular
3076
+ BSD make, you may have to use the `--disable-dependency-tracking'
3077
+ option to `./configure'.
3078
+
3079
+ 
3080
+ File: nettle.info, Node: Index, Prev: Installation, Up: Top
3081
+
3082
+ Function and Concept Index
3083
+ **************************
3084
+
3085
+ [index]
3086
+ * Menu:
3087
+
3088
+ * aes_decrypt: Cipher functions. (line 123)
3089
+ * aes_encrypt: Cipher functions. (line 116)
3090
+ * aes_invert_key: Cipher functions. (line 105)
3091
+ * aes_set_decrypt_key: Cipher functions. (line 101)
3092
+ * aes_set_encrypt_key: Cipher functions. (line 99)
3093
+ * arcfour_crypt: Cipher functions. (line 175)
3094
+ * arcfour_set_key: Cipher functions. (line 170)
3095
+ * arctwo_decrypt: Cipher functions. (line 240)
3096
+ * arctwo_encrypt: Cipher functions. (line 233)
3097
+ * arctwo_set_key: Cipher functions. (line 217)
3098
+ * arctwo_set_key_ekb: Cipher functions. (line 215)
3099
+ * arctwo_set_key_gutmann: Cipher functions. (line 219)
3100
+ * base16_decode_final: Ascii encoding. (line 139)
3101
+ * base16_decode_init: Ascii encoding. (line 116)
3102
+ * BASE16_DECODE_LENGTH: Ascii encoding. (line 125)
3103
+ * base16_decode_single: Ascii encoding. (line 121)
3104
+ * base16_decode_update: Ascii encoding. (line 131)
3105
+ * BASE16_ENCODE_LENGTH: Ascii encoding. (line 106)
3106
+ * base16_encode_single: Ascii encoding. (line 102)
3107
+ * base16_encode_update: Ascii encoding. (line 111)
3108
+ * base64_decode_final: Ascii encoding. (line 94)
3109
+ * base64_decode_init: Ascii encoding. (line 71)
3110
+ * BASE64_DECODE_LENGTH: Ascii encoding. (line 80)
3111
+ * base64_decode_single: Ascii encoding. (line 76)
3112
+ * base64_decode_update: Ascii encoding. (line 86)
3113
+ * base64_encode_final: Ascii encoding. (line 63)
3114
+ * base64_encode_init: Ascii encoding. (line 40)
3115
+ * BASE64_ENCODE_LENGTH: Ascii encoding. (line 48)
3116
+ * base64_encode_single: Ascii encoding. (line 45)
3117
+ * base64_encode_update: Ascii encoding. (line 53)
3118
+ * Block Cipher: Cipher functions. (line 12)
3119
+ * blowfish_decrypt: Cipher functions. (line 282)
3120
+ * blowfish_encrypt: Cipher functions. (line 275)
3121
+ * blowfish_set_key: Cipher functions. (line 265)
3122
+ * camellia_crypt: Cipher functions. (line 332)
3123
+ * camellia_invert_key: Cipher functions. (line 321)
3124
+ * camellia_set_decrypt_key: Cipher functions. (line 317)
3125
+ * camellia_set_encrypt_key: Cipher functions. (line 315)
3126
+ * cast128_decrypt: Cipher functions. (line 372)
3127
+ * cast128_encrypt: Cipher functions. (line 365)
3128
+ * cast128_set_key: Cipher functions. (line 360)
3129
+ * CBC Mode: CBC. (line 6)
3130
+ * CBC_CTX: CBC. (line 51)
3131
+ * CBC_DECRYPT: CBC. (line 72)
3132
+ * cbc_decrypt: CBC. (line 37)
3133
+ * CBC_ENCRYPT: CBC. (line 71)
3134
+ * cbc_encrypt: CBC. (line 34)
3135
+ * CBC_SET_IV: CBC. (line 66)
3136
+ * Cipher: Cipher functions. (line 6)
3137
+ * Cipher Block Chaining: CBC. (line 6)
3138
+ * Collision-resistant: Hash functions. (line 18)
3139
+ * Conditional entropy: Randomness. (line 51)
3140
+ * Counter Mode: CTR. (line 6)
3141
+ * CTR Mode: CTR. (line 6)
3142
+ * CTR_CRYPT: CTR. (line 60)
3143
+ * ctr_crypt: CTR. (line 36)
3144
+ * CTR_CTX: CTR. (line 48)
3145
+ * CTR_SET_COUNTER: CTR. (line 55)
3146
+ * des3_decrypt: Cipher functions. (line 494)
3147
+ * des3_encrypt: Cipher functions. (line 487)
3148
+ * des3_set_key: Cipher functions. (line 476)
3149
+ * des_check_parity: Cipher functions. (line 420)
3150
+ * des_decrypt: Cipher functions. (line 416)
3151
+ * des_encrypt: Cipher functions. (line 409)
3152
+ * des_fix_parity: Cipher functions. (line 425)
3153
+ * des_set_key: Cipher functions. (line 401)
3154
+ * dsa_generate_keypair: DSA. (line 210)
3155
+ * dsa_private_key_clear: DSA. (line 142)
3156
+ * dsa_private_key_init: DSA. (line 135)
3157
+ * dsa_public_key_clear: DSA. (line 141)
3158
+ * dsa_public_key_init: DSA. (line 134)
3159
+ * dsa_sha1_sign: DSA. (line 166)
3160
+ * dsa_sha1_sign_digest: DSA. (line 170)
3161
+ * dsa_sha1_verify: DSA. (line 190)
3162
+ * dsa_sha1_verify_digest: DSA. (line 193)
3163
+ * dsa_sha256_sign: DSA. (line 174)
3164
+ * dsa_sha256_sign_digest: DSA. (line 178)
3165
+ * dsa_sha256_verify: DSA. (line 196)
3166
+ * dsa_sha256_verify_digest: DSA. (line 199)
3167
+ * dsa_signature_clear: DSA. (line 151)
3168
+ * dsa_signature_init: DSA. (line 150)
3169
+ * Entropy: Randomness. (line 51)
3170
+ * Galois Counter Mode: GCM. (line 6)
3171
+ * GCM: GCM. (line 6)
3172
+ * gcm_aes_decrypt: GCM. (line 167)
3173
+ * gcm_aes_digest: GCM. (line 174)
3174
+ * gcm_aes_encrypt: GCM. (line 165)
3175
+ * gcm_aes_set_iv: GCM. (line 154)
3176
+ * gcm_aes_set_key: GCM. (line 149)
3177
+ * gcm_aes_update: GCM. (line 158)
3178
+ * GCM_CTX: GCM. (line 102)
3179
+ * GCM_DECRYPT: GCM. (line 132)
3180
+ * gcm_decrypt: GCM. (line 74)
3181
+ * GCM_DIGEST: GCM. (line 133)
3182
+ * gcm_digest: GCM. (line 82)
3183
+ * GCM_ENCRYPT: GCM. (line 131)
3184
+ * gcm_encrypt: GCM. (line 71)
3185
+ * GCM_SET_IV: GCM. (line 123)
3186
+ * gcm_set_iv: GCM. (line 58)
3187
+ * GCM_SET_KEY: GCM. (line 117)
3188
+ * gcm_set_key: GCM. (line 52)
3189
+ * GCM_UPDATE: GCM. (line 127)
3190
+ * gcm_update: GCM. (line 63)
3191
+ * Hash function: Hash functions. (line 6)
3192
+ * HMAC_CTX: Keyed hash functions.
3193
+ (line 88)
3194
+ * HMAC_DIGEST: Keyed hash functions.
3195
+ (line 110)
3196
+ * hmac_digest: Keyed hash functions.
3197
+ (line 76)
3198
+ * hmac_md5_digest: Keyed hash functions.
3199
+ (line 140)
3200
+ * hmac_md5_set_key: Keyed hash functions.
3201
+ (line 132)
3202
+ * hmac_md5_update: Keyed hash functions.
3203
+ (line 136)
3204
+ * hmac_ripemd160_digest: Keyed hash functions.
3205
+ (line 162)
3206
+ * hmac_ripemd160_set_key: Keyed hash functions.
3207
+ (line 154)
3208
+ * hmac_ripemd160_update: Keyed hash functions.
3209
+ (line 158)
3210
+ * HMAC_SET_KEY: Keyed hash functions.
3211
+ (line 104)
3212
+ * hmac_set_key: Keyed hash functions.
3213
+ (line 61)
3214
+ * hmac_sha1_digest: Keyed hash functions.
3215
+ (line 184)
3216
+ * hmac_sha1_set_key: Keyed hash functions.
3217
+ (line 176)
3218
+ * hmac_sha1_update: Keyed hash functions.
3219
+ (line 180)
3220
+ * hmac_sha256_digest: Keyed hash functions.
3221
+ (line 206)
3222
+ * hmac_sha256_set_key: Keyed hash functions.
3223
+ (line 198)
3224
+ * hmac_sha256_update: Keyed hash functions.
3225
+ (line 202)
3226
+ * hmac_sha512_digest: Keyed hash functions.
3227
+ (line 228)
3228
+ * hmac_sha512_set_key: Keyed hash functions.
3229
+ (line 220)
3230
+ * hmac_sha512_update: Keyed hash functions.
3231
+ (line 224)
3232
+ * hmac_update: Keyed hash functions.
3233
+ (line 68)
3234
+ * Keyed Hash Function: Keyed hash functions.
3235
+ (line 6)
3236
+ * MAC: Keyed hash functions.
3237
+ (line 6)
3238
+ * md2_digest: Hash functions. (line 96)
3239
+ * md2_init: Hash functions. (line 88)
3240
+ * md2_update: Hash functions. (line 92)
3241
+ * md4_digest: Hash functions. (line 129)
3242
+ * md4_init: Hash functions. (line 121)
3243
+ * md4_update: Hash functions. (line 125)
3244
+ * md5_digest: Hash functions. (line 58)
3245
+ * md5_init: Hash functions. (line 50)
3246
+ * md5_update: Hash functions. (line 54)
3247
+ * memxor: Miscellaneous functions.
3248
+ (line 8)
3249
+ * Message Authentication Code: Keyed hash functions.
3250
+ (line 6)
3251
+ * One-way: Hash functions. (line 14)
3252
+ * One-way function: Public-key algorithms.
3253
+ (line 18)
3254
+ * Public Key Cryptography: Public-key algorithms.
3255
+ (line 18)
3256
+ * Randomness: Randomness. (line 6)
3257
+ * ripemd160_digest: Hash functions. (line 162)
3258
+ * ripemd160_init: Hash functions. (line 154)
3259
+ * ripemd160_update: Hash functions. (line 158)
3260
+ * rsa_compute_root: RSA. (line 187)
3261
+ * rsa_generate_keypair: RSA. (line 196)
3262
+ * rsa_md5_sign: RSA. (line 130)
3263
+ * rsa_md5_sign_digest: RSA. (line 145)
3264
+ * rsa_md5_verify: RSA. (line 159)
3265
+ * rsa_md5_verify_digest: RSA. (line 171)
3266
+ * rsa_private_key_clear: RSA. (line 96)
3267
+ * rsa_private_key_init: RSA. (line 89)
3268
+ * rsa_private_key_prepare: RSA. (line 109)
3269
+ * rsa_public_key_clear: RSA. (line 95)
3270
+ * rsa_public_key_init: RSA. (line 88)
3271
+ * rsa_public_key_prepare: RSA. (line 108)
3272
+ * rsa_sha1_sign: RSA. (line 132)
3273
+ * rsa_sha1_sign_digest: RSA. (line 147)
3274
+ * rsa_sha1_verify: RSA. (line 161)
3275
+ * rsa_sha1_verify_digest: RSA. (line 173)
3276
+ * rsa_sha256_sign: RSA. (line 134)
3277
+ * rsa_sha256_sign_digest: RSA. (line 149)
3278
+ * rsa_sha256_verify: RSA. (line 163)
3279
+ * rsa_sha256_verify_digest: RSA. (line 175)
3280
+ * rsa_sha512_sign: RSA. (line 136)
3281
+ * rsa_sha512_sign_digest: RSA. (line 151)
3282
+ * rsa_sha512_verify: RSA. (line 165)
3283
+ * rsa_sha512_verify_digest: RSA. (line 177)
3284
+ * salsa20_crypt: Cipher functions. (line 554)
3285
+ * salsa20_set_iv: Cipher functions. (line 548)
3286
+ * salsa20_set_key: Cipher functions. (line 542)
3287
+ * serpent_decrypt: Cipher functions. (line 597)
3288
+ * serpent_encrypt: Cipher functions. (line 590)
3289
+ * serpent_set_key: Cipher functions. (line 585)
3290
+ * sha1_digest: Hash functions. (line 197)
3291
+ * sha1_init: Hash functions. (line 189)
3292
+ * sha1_update: Hash functions. (line 193)
3293
+ * sha224_digest: Hash functions. (line 265)
3294
+ * sha224_init: Hash functions. (line 257)
3295
+ * sha224_update: Hash functions. (line 261)
3296
+ * sha256_digest: Hash functions. (line 231)
3297
+ * sha256_init: Hash functions. (line 223)
3298
+ * sha256_update: Hash functions. (line 227)
3299
+ * sha384_digest: Hash functions. (line 335)
3300
+ * sha384_init: Hash functions. (line 327)
3301
+ * sha384_update: Hash functions. (line 331)
3302
+ * sha512_digest: Hash functions. (line 301)
3303
+ * sha512_init: Hash functions. (line 293)
3304
+ * sha512_update: Hash functions. (line 297)
3305
+ * Stream Cipher: Cipher functions. (line 12)
3306
+ * twofish_decrypt: Cipher functions. (line 633)
3307
+ * twofish_encrypt: Cipher functions. (line 626)
3308
+ * twofish_set_key: Cipher functions. (line 621)
3309
+ * yarrow256_fast_reseed: Randomness. (line 277)
3310
+ * yarrow256_init: Randomness. (line 226)
3311
+ * yarrow256_is_seeded: Randomness. (line 267)
3312
+ * yarrow256_needed_sources: Randomness. (line 272)
3313
+ * yarrow256_random: Randomness. (line 258)
3314
+ * yarrow256_seed: Randomness. (line 232)
3315
+ * yarrow256_slow_reseed: Randomness. (line 278)
3316
+ * yarrow256_update: Randomness. (line 245)
3317
+ * yarrow_key_event_estimate: Randomness. (line 293)
3318
+ * yarrow_key_event_init: Randomness. (line 289)
3319
+
3320
+
3321
+ 
3322
+ Tag Table:
3323
+ Node: Top543
3324
+ Node: Introduction2159
3325
+ Node: Copyright3725
3326
+ Node: Conventions7757
3327
+ Node: Example9719
3328
+ Node: Linking10966
3329
+ Node: Reference11799
3330
+ Node: Hash functions12186
3331
+ Node: Cipher functions25387
3332
+ Node: Cipher modes54077
3333
+ Node: CBC55105
3334
+ Node: CTR58379
3335
+ Node: GCM60906
3336
+ Node: Keyed hash functions68467
3337
+ Node: Public-key algorithms77824
3338
+ Node: RSA81744
3339
+ Node: RSA-Footnotes92358
3340
+ Ref: RSA-Footnote-192411
3341
+ Node: DSA92580
3342
+ Node: Randomness103923
3343
+ Node: Ascii encoding119027
3344
+ Node: Miscellaneous functions125477
3345
+ Node: Compatibility functions125985
3346
+ Node: Nettle soup127230
3347
+ Node: Installation128223
3348
+ Node: Index128918
3349
+ 
3350
+ End Tag Table
3351
+
3352
+ 
3353
+ Local Variables:
3354
+ coding: utf-8
3355
+ End: