config root man

Current Path : /usr/opt/openssl11/share/doc/openssl/html/man3/

FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64
Upload File :
Current File : //usr/opt/openssl11/share/doc/openssl/html/man3/OSSL_STORE_expect_fn.html

<?xml version="1.0" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>OSSL_STORE_LOADER</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:root@hsxx.drive.ne.jp" />
</head>

<body style="background-color: white">


<!-- INDEX BEGIN -->
<div name="index">
<p><a name="__index__"></a></p>

<ul>

	<li><a href="#name">NAME</a></li>
	<li><a href="#synopsis">SYNOPSIS</a></li>
	<li><a href="#description">DESCRIPTION</a></li>
	<ul>

		<li><a href="#types">Types</a></li>
		<li><a href="#functions">Functions</a></li>
	</ul>

	<li><a href="#notes">NOTES</a></li>
	<li><a href="#return_values">RETURN VALUES</a></li>
	<li><a href="#see_also">SEE ALSO</a></li>
	<li><a href="#history">HISTORY</a></li>
	<li><a href="#copyright">COPYRIGHT</a></li>
</ul>

<hr name="index" />
</div>
<!-- INDEX END -->

<p>
</p>
<hr />
<h1><a name="name">NAME</a></h1>
<p>OSSL_STORE_LOADER, OSSL_STORE_LOADER_CTX, OSSL_STORE_LOADER_new,
OSSL_STORE_LOADER_get0_engine, OSSL_STORE_LOADER_get0_scheme,
OSSL_STORE_LOADER_set_open, OSSL_STORE_LOADER_set_ctrl,
OSSL_STORE_LOADER_set_expect, OSSL_STORE_LOADER_set_find,
OSSL_STORE_LOADER_set_load, OSSL_STORE_LOADER_set_eof,
OSSL_STORE_LOADER_set_error, OSSL_STORE_LOADER_set_close,
OSSL_STORE_LOADER_free, OSSL_STORE_register_loader,
OSSL_STORE_unregister_loader, OSSL_STORE_open_fn, OSSL_STORE_ctrl_fn,
OSSL_STORE_expect_fn, OSSL_STORE_find_fn,
OSSL_STORE_load_fn, OSSL_STORE_eof_fn, OSSL_STORE_error_fn,
OSSL_STORE_close_fn - Types and functions to manipulate, register and
unregister STORE loaders for different URI schemes</p>
<p>
</p>
<hr />
<h1><a name="synopsis">SYNOPSIS</a></h1>
<pre>
 #include &lt;openssl/store.h&gt;</pre>
<pre>
 typedef struct ossl_store_loader_st OSSL_STORE_LOADER;</pre>
<pre>
 OSSL_STORE_LOADER *OSSL_STORE_LOADER_new(ENGINE *e, const char *scheme);
 const ENGINE *OSSL_STORE_LOADER_get0_engine(const OSSL_STORE_LOADER
                                             *store_loader);
 const char *OSSL_STORE_LOADER_get0_scheme(const OSSL_STORE_LOADER
                                           *store_loader);</pre>
<pre>
 /* struct ossl_store_loader_ctx_st is defined differently by each loader */
 typedef struct ossl_store_loader_ctx_st OSSL_STORE_LOADER_CTX;</pre>
<pre>
 typedef OSSL_STORE_LOADER_CTX *(*OSSL_STORE_open_fn)(const char *uri,
                                                      const UI_METHOD *ui_method,
                                                      void *ui_data);
 int OSSL_STORE_LOADER_set_open(OSSL_STORE_LOADER *store_loader,
                                OSSL_STORE_open_fn store_open_function);
 typedef int (*OSSL_STORE_ctrl_fn)(OSSL_STORE_LOADER_CTX *ctx, int cmd,
                                   va_list args);
 int OSSL_STORE_LOADER_set_ctrl(OSSL_STORE_LOADER *store_loader,
                                OSSL_STORE_ctrl_fn store_ctrl_function);
 typedef int (*OSSL_STORE_expect_fn)(OSSL_STORE_LOADER_CTX *ctx, int expected);
 int OSSL_STORE_LOADER_set_expect(OSSL_STORE_LOADER *loader,
                                  OSSL_STORE_expect_fn expect_function);
 typedef int (*OSSL_STORE_find_fn)(OSSL_STORE_LOADER_CTX *ctx,
                                   OSSL_STORE_SEARCH *criteria);
 int OSSL_STORE_LOADER_set_find(OSSL_STORE_LOADER *loader,
                                OSSL_STORE_find_fn find_function);
 typedef OSSL_STORE_INFO *(*OSSL_STORE_load_fn)(OSSL_STORE_LOADER_CTX *ctx,
                                                UI_METHOD *ui_method,
                                                void *ui_data);
 int OSSL_STORE_LOADER_set_load(OSSL_STORE_LOADER *store_loader,
                                OSSL_STORE_load_fn store_load_function);
 typedef int (*OSSL_STORE_eof_fn)(OSSL_STORE_LOADER_CTX *ctx);
 int OSSL_STORE_LOADER_set_eof(OSSL_STORE_LOADER *store_loader,
                               OSSL_STORE_eof_fn store_eof_function);
 typedef int (*OSSL_STORE_error_fn)(OSSL_STORE_LOADER_CTX *ctx);
 int OSSL_STORE_LOADER_set_error(OSSL_STORE_LOADER *store_loader,
                                 OSSL_STORE_error_fn store_error_function);
 typedef int (*OSSL_STORE_close_fn)(OSSL_STORE_LOADER_CTX *ctx);
 int OSSL_STORE_LOADER_set_close(OSSL_STORE_LOADER *store_loader,
                                 OSSL_STORE_close_fn store_close_function);
 void OSSL_STORE_LOADER_free(OSSL_STORE_LOADER *store_loader);</pre>
<pre>
 int OSSL_STORE_register_loader(OSSL_STORE_LOADER *loader);
 OSSL_STORE_LOADER *OSSL_STORE_unregister_loader(const char *scheme);</pre>
<p>
</p>
<hr />
<h1><a name="description">DESCRIPTION</a></h1>
<p>These functions help applications and engines to create loaders for
schemes they support.</p>
<p>
</p>
<h2><a name="types">Types</a></h2>
<p><strong>OSSL_STORE_LOADER</strong> is the type to hold a loader.
It contains a scheme and the functions needed to implement
<code>OSSL_STORE_open()</code>, <code>OSSL_STORE_load()</code>, <code>OSSL_STORE_eof()</code>, <code>OSSL_STORE_error()</code> and
<code>OSSL_STORE_close()</code> for this scheme.</p>
<p><strong>OSSL_STORE_LOADER_CTX</strong> is a type template, to be defined by each loader
using <strong>struct ossl_store_loader_ctx_st { ... }</strong>.</p>
<p><strong>OSSL_STORE_open_fn</strong>, <strong>OSSL_STORE_ctrl_fn</strong>, <strong>OSSL_STORE_expect_fn</strong>,
<strong>OSSL_STORE_find_fn</strong>, <strong>OSSL_STORE_load_fn</strong>, <strong>OSSL_STORE_eof_fn</strong>,
and <strong>OSSL_STORE_close_fn</strong>
are the function pointer types used within a STORE loader.
The functions pointed at define the functionality of the given loader.</p>
<dl>
<dt><strong><a name="ossl_store_open_fn" class="item"><strong>OSSL_STORE_open_fn</strong></a></strong></dt>

<dd>
<p>This function takes a URI and is expected to interpret it in the best
manner possible according to the scheme the loader implements, it also
takes a <strong>UI_METHOD</strong> and associated data, to be used any time
something needs to be prompted for.
Furthermore, this function is expected to initialize what needs to be
initialized, to create a private data store (<strong>OSSL_STORE_LOADER_CTX</strong>, see
above), and to return it.
If something goes wrong, this function is expected to return NULL.</p>
</dd>
<dt><strong><a name="ossl_store_ctrl_fn" class="item"><strong>OSSL_STORE_ctrl_fn</strong></a></strong></dt>

<dd>
<p>This function takes a <strong>OSSL_STORE_LOADER_CTX</strong> pointer, a command number
<strong>cmd</strong> and a <strong>va_list</strong> <strong>args</strong> and is used to manipulate loader
specific parameters.</p>
<p>Loader specific command numbers must begin at <strong>OSSL_STORE_C_CUSTOM_START</strong>.
Any number below that is reserved for future globally known command
numbers.</p>
<p>This function is expected to return 1 on success, 0 on error.</p>
</dd>
<dt><strong><a name="ossl_store_expect_fn" class="item"><strong>OSSL_STORE_expect_fn</strong></a></strong></dt>

<dd>
<p>This function takes a <strong>OSSL_STORE_LOADER_CTX</strong> pointer and a <strong>OSSL_STORE_INFO</strong>
identity <strong>expected</strong>, and is used to tell the loader what object type is
expected.
<strong>expected</strong> may be zero to signify that no specific object type is expected.</p>
<p>This function is expected to return 1 on success, 0 on error.</p>
</dd>
<dt><strong><a name="ossl_store_find_fn" class="item"><strong>OSSL_STORE_find_fn</strong></a></strong></dt>

<dd>
<p>This function takes a <strong>OSSL_STORE_LOADER_CTX</strong> pointer and a
<strong>OSSL_STORE_SEARCH</strong> search criterion, and is used to tell the loader what
to search for.</p>
<p>When called with the loader context being <strong>NULL</strong>, this function is expected
to return 1 if the loader supports the criterion, otherwise 0.</p>
<p>When called with the loader context being something other than <strong>NULL</strong>, this
function is expected to return 1 on success, 0 on error.</p>
</dd>
<dt><strong><a name="ossl_store_load_fn" class="item"><strong>OSSL_STORE_load_fn</strong></a></strong></dt>

<dd>
<p>This function takes a <strong>OSSL_STORE_LOADER_CTX</strong> pointer and a <strong>UI_METHOD</strong>
with associated data.
It's expected to load the next available data, mold it into a data
structure that can be wrapped in a <strong>OSSL_STORE_INFO</strong> using one of the
<em>OSSL_STORE_INFO(3)</em> functions.
If no more data is available or an error occurs, this function is
expected to return NULL.
The <strong>OSSL_STORE_eof_fn</strong> and <strong>OSSL_STORE_error_fn</strong> functions must indicate if
it was in fact the end of data or if an error occurred.</p>
<p>Note that this function retrieves <em>one</em> data item only.</p>
</dd>
<dt><strong><a name="ossl_store_eof_fn" class="item"><strong>OSSL_STORE_eof_fn</strong></a></strong></dt>

<dd>
<p>This function takes a <strong>OSSL_STORE_LOADER_CTX</strong> pointer and is expected to
return 1 to indicate that the end of available data has been reached.
It is otherwise expected to return 0.</p>
</dd>
<dt><strong><a name="ossl_store_error_fn" class="item"><strong>OSSL_STORE_error_fn</strong></a></strong></dt>

<dd>
<p>This function takes a <strong>OSSL_STORE_LOADER_CTX</strong> pointer and is expected to
return 1 to indicate that an error occurred in a previous call to the
<strong>OSSL_STORE_load_fn</strong> function.
It is otherwise expected to return 0.</p>
</dd>
<dt><strong><a name="ossl_store_close_fn" class="item"><strong>OSSL_STORE_close_fn</strong></a></strong></dt>

<dd>
<p>This function takes a <strong>OSSL_STORE_LOADER_CTX</strong> pointer and is expected to
close or shut down what needs to be closed, and finally free the
contents of the <strong>OSSL_STORE_LOADER_CTX</strong> pointer.
It returns 1 on success and 0 on error.</p>
</dd>
</dl>
<p>
</p>
<h2><a name="functions">Functions</a></h2>
<p><code>OSSL_STORE_LOADER_new()</code> creates a new <strong>OSSL_STORE_LOADER</strong>.
It takes an <strong>ENGINE</strong> <strong>e</strong> and a string <strong>scheme</strong>.
<strong>scheme</strong> must <em>always</em> be set.
Both <strong>e</strong> and <strong>scheme</strong> are used as is and must therefore be alive as
long as the created loader is.</p>
<p>OSSL_STORE_LOADER_get0_engine() returns the engine of the <strong>store_loader</strong>.
OSSL_STORE_LOADER_get0_scheme() returns the scheme of the <strong>store_loader</strong>.</p>
<p><code>OSSL_STORE_LOADER_set_open()</code> sets the opener function for the
<strong>store_loader</strong>.</p>
<p><code>OSSL_STORE_LOADER_set_ctrl()</code> sets the control function for the
<strong>store_loader</strong>.</p>
<p><code>OSSL_STORE_LOADER_set_expect()</code> sets the expect function for the
<strong>store_loader</strong>.</p>
<p><code>OSSL_STORE_LOADER_set_load()</code> sets the loader function for the
<strong>store_loader</strong>.</p>
<p><code>OSSL_STORE_LOADER_set_eof()</code> sets the end of file checker function for the
<strong>store_loader</strong>.</p>
<p><code>OSSL_STORE_LOADER_set_close()</code> sets the closing function for the
<strong>store_loader</strong>.</p>
<p><code>OSSL_STORE_LOADER_free()</code> frees the given <strong>store_loader</strong>.</p>
<p><code>OSSL_STORE_register_loader()</code> register the given <strong>store_loader</strong> and thereby
makes it available for use with <code>OSSL_STORE_open()</code>, <code>OSSL_STORE_load()</code>,
<code>OSSL_STORE_eof()</code> and <code>OSSL_STORE_close()</code>.</p>
<p><code>OSSL_STORE_unregister_loader()</code> unregister the store loader for the given
<strong>scheme</strong>.</p>
<p>
</p>
<hr />
<h1><a name="notes">NOTES</a></h1>
<p>The <strong>file:</strong> scheme has built in support.</p>
<p>
</p>
<hr />
<h1><a name="return_values">RETURN VALUES</a></h1>
<p>The functions with the types <strong>OSSL_STORE_open_fn</strong>, <strong>OSSL_STORE_ctrl_fn</strong>,
<strong>OSSL_STORE_expect_fn</strong>,
<strong>OSSL_STORE_load_fn</strong>, <strong>OSSL_STORE_eof_fn</strong> and <strong>OSSL_STORE_close_fn</strong> have the
same return values as <code>OSSL_STORE_open()</code>, <code>OSSL_STORE_ctrl()</code>, <code>OSSL_STORE_expect()</code>,
<code>OSSL_STORE_load()</code>, <code>OSSL_STORE_eof()</code> and <code>OSSL_STORE_close()</code>, respectively.</p>
<p><code>OSSL_STORE_LOADER_new()</code> returns a pointer to a <strong>OSSL_STORE_LOADER</strong> on success,
or <strong>NULL</strong> on failure.</p>
<p><code>OSSL_STORE_LOADER_set_open()</code>, <code>OSSL_STORE_LOADER_set_ctrl()</code>,
<code>OSSL_STORE_LOADER_set_load()</code>, <code>OSSL_STORE_LOADER_set_eof()</code> and
<code>OSSL_STORE_LOADER_set_close()</code> return 1 on success, or 0 on failure.</p>
<p><code>OSSL_STORE_register_loader()</code> returns 1 on success, or 0 on failure.</p>
<p><code>OSSL_STORE_unregister_loader()</code> returns the unregistered loader on success,
or <strong>NULL</strong> on failure.</p>
<p>
</p>
<hr />
<h1><a name="see_also">SEE ALSO</a></h1>
<p><em>ossl_store(7)</em>, <em>OSSL_STORE_open(3)</em></p>
<p>
</p>
<hr />
<h1><a name="history">HISTORY</a></h1>
<p><code>OSSL_STORE_LOADER()</code>, <code>OSSL_STORE_LOADER_CTX()</code>, <code>OSSL_STORE_LOADER_new()</code>,
OSSL_STORE_LOADER_set0_scheme(), <code>OSSL_STORE_LOADER_set_open()</code>,
<code>OSSL_STORE_LOADER_set_ctrl()</code>, <code>OSSL_STORE_LOADER_set_load()</code>,
<code>OSSL_STORE_LOADER_set_eof()</code>, <code>OSSL_STORE_LOADER_set_close()</code>,
<code>OSSL_STORE_LOADER_free()</code>, <code>OSSL_STORE_register_loader()</code>,
<code>OSSL_STORE_unregister_loader()</code>, <a href="#ossl_store_open_fn"><code>OSSL_STORE_open_fn()</code></a>, <a href="#ossl_store_ctrl_fn"><code>OSSL_STORE_ctrl_fn()</code></a>,
<a href="#ossl_store_load_fn"><code>OSSL_STORE_load_fn()</code></a>, <a href="#ossl_store_eof_fn"><code>OSSL_STORE_eof_fn()</code></a> and <a href="#ossl_store_close_fn"><code>OSSL_STORE_close_fn()</code></a>
were added in OpenSSL 1.1.1.</p>
<p>
</p>
<hr />
<h1><a name="copyright">COPYRIGHT</a></h1>
<p>Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.</p>
<p>Licensed under the OpenSSL license (the &quot;License&quot;).  You may not use
this file except in compliance with the License.  You can obtain a copy
in the file LICENSE in the source distribution or at
<a href="https://www.openssl.org/source/license.html">https://www.openssl.org/source/license.html</a>.</p>

</body>

</html>

Man Man