ProxSpace/msys2/usr/share/gtk-doc/html/p11-kit/sharing-managed.html

78 lines
4.7 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Managed modules: p11-kit</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="p11-kit">
<link rel="up" href="sharing.html" title="Sharing PKCS#11 modules">
<link rel="prev" href="sharing.html" title="Sharing PKCS#11 modules">
<link rel="next" href="sharing.html" title="Proxy Module">
<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="sharing.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="sharing.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="sharing.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="sharing-managed"></a>Managed modules</h2></div></div></div>
<p><code class="literal">p11-kit</code> wraps PKCS#11 modules to manage
them and customize their functionality so that they are able
to be shared between multiple callers in the same process.</p>
<p>Each caller that uses the
<a class="link" href="p11-kit-Modules.html#p11-kit-modules-load" title="p11_kit_modules_load ()"><code class="function">p11_kit_modules_load()</code></a>
or <a class="link" href="p11-kit-Modules.html#p11-kit-module-load" title="p11_kit_module_load ()"><code class="function">p11_kit_module_load()</code></a>
function gets independent wrapped PKCS#11 module(s). This is unless a caller
or module configuration specifies that a module should be used in an
unmanaged fashion.</p>
<p>When modules are managed, the following aspects are wrapped and
coordinated:</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<p>Calls to <code class="literal">C_Initialize</code> and
<code class="literal">C_Finalize</code> can be called by multiple
callers.</p>
<p>The first time that the managed module
<code class="literal">C_Initialize</code> is called, the PKCS#11 module's actual
<code class="literal">C_Initialize</code> function is called. Subsequent calls by
other callers will cause <code class="literal">p11-kit</code> to increment an
internal initialization count, rather than calling
<code class="literal">C_Initialize</code> again.</p>
<p>Multiple callers can call the managed
<code class="literal">C_Initialize</code> function concurrently from different
threads and <code class="literal">p11-kit</code> will guarantee that this managed
in a thread-safe manner.</p>
</li>
<li class="listitem">
<p>When the managed module <code class="literal">C_Finalize</code> is used
to finalize a module, each time it is called it decrements the internal
initialization count for that module. When the internal initialization
count reaches zero, the module's actual <code class="literal">C_Finalize</code>
function is called.</p>
<p>Multiple callers can call the managed <code class="literal">C_Finalize</code>
function concurrently from different threads and <code class="literal">p11-kit</code>
will guarantee that this managed in a thread-safe manner.</p>
</li>
<li class="listitem"><p>Call to <code class="literal">C_CloseAllSessions</code> only close the
sessions that the caller of the managed module has opened. This allows the
<code class="literal">C_CloseAllSessions</code> function to be used without closing
sessions for other callers of the same PKCS#11 module.</p></li>
<li class="listitem"><p>Managed modules have ability to log PKCS#11 method calls for debugging
purposes. See the <a class="link" href="pkcs11-conf.html#option-log-calls"><code class="literal">log-calls = yes</code></a>
module configuration option.</p></li>
<li class="listitem"><p>Managed modules have the ability to be remoted to another machine or
isolated in their own process.
See the <a class="link" href="pkcs11-conf.html#option-remote"><code class="literal">remote = ...</code></a>
module configuration option.</p></li>
</ul></div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.33.1</div>
</body>
</html>