/usr/share/doc/libgcrypt11-doc/html/Progress-handler.html is in libgcrypt11-doc 1.5.3-2ubuntu4.6.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for Libgcrypt
(version 1.5.3, 18 June 2018),
which is GNU's library of cryptographic building blocks.
Copyright (C) 2000, 2002, 2003, 2004, 2006, 2007, 2008, 2009, 2011 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version. The text of the license can be found in the
section entitled "GNU General Public License". -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>The Libgcrypt Reference Manual: Progress handler</title>
<meta name="description" content="The Libgcrypt Reference Manual: Progress handler">
<meta name="keywords" content="The Libgcrypt Reference Manual: Progress handler">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Handler-Functions.html#Handler-Functions" rel="up" title="Handler Functions">
<link href="Allocation-handler.html#Allocation-handler" rel="next" title="Allocation handler">
<link href="Handler-Functions.html#Handler-Functions" rel="prev" title="Handler Functions">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Progress-handler"></a>
<div class="header">
<p>
Next: <a href="Allocation-handler.html#Allocation-handler" accesskey="n" rel="next">Allocation handler</a>, Up: <a href="Handler-Functions.html#Handler-Functions" accesskey="u" rel="up">Handler Functions</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Progress-handler-1"></a>
<h3 class="section">4.1 Progress handler</h3>
<p>It is often useful to retrieve some feedback while long running
operations are performed.
</p>
<dl>
<dt><a name="index-gcry_005fhandler_005fprogress_005ft"></a>Data type: <strong>gcry_handler_progress_t</strong></dt>
<dd><p>Progress handler functions have to be of the type
<code>gcry_handler_progress_t</code>, which is defined as:
</p>
<p><code>void (*gcry_handler_progress_t) (void *, const char *, int, int, int)</code>
</p></dd></dl>
<p>The following function may be used to register a handler function for
this purpose.
</p>
<dl>
<dt><a name="index-gcry_005fset_005fprogress_005fhandler"></a>Function: <em>void</em> <strong>gcry_set_progress_handler</strong> <em>(gcry_handler_progress_t <var>cb</var>, void *<var>cb_data</var>)</em></dt>
<dd>
<p>This function installs <var>cb</var> as the ‘Progress handler’ function.
It may be used only during initialization. <var>cb</var> must be defined
as follows:
</p>
<div class="example">
<pre class="example">void
my_progress_handler (void *<var>cb_data</var>, const char *<var>what</var>,
int <var>printchar</var>, int <var>current</var>, int <var>total</var>)
{
/* Do something. */
}
</pre></div>
<p>A description of the arguments of the progress handler function follows.
</p>
<dl compact="compact">
<dt><var>cb_data</var></dt>
<dd><p>The argument provided in the call to <code>gcry_set_progress_handler</code>.
</p></dd>
<dt><var>what</var></dt>
<dd><p>A string identifying the type of the progress output. The following
values for <var>what</var> are defined:
</p>
<dl compact="compact">
<dt><code>need_entropy</code></dt>
<dd><p>Not enough entropy is available. <var>total</var> holds the number of
required bytes.
</p>
</dd>
<dt><code>primegen</code></dt>
<dd><p>Values for <var>printchar</var>:
</p><dl compact="compact">
<dt><code>\n</code></dt>
<dd><p>Prime generated.
</p></dd>
<dt><code>!</code></dt>
<dd><p>Need to refresh the pool of prime numbers.
</p></dd>
<dt><code><, ></code></dt>
<dd><p>Number of bits adjusted.
</p></dd>
<dt><code>^</code></dt>
<dd><p>Searching for a generator.
</p></dd>
<dt><code>.</code></dt>
<dd><p>Fermat test on 10 candidates failed.
</p></dd>
<dt><code>:</code></dt>
<dd><p>Restart with a new random value.
</p></dd>
<dt><code>+</code></dt>
<dd><p>Rabin Miller test passed.
</p></dd>
</dl>
</dd>
</dl>
</dd>
</dl>
</dd></dl>
</body>
</html>
|