<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://esecutech.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Administrator</id>
	<title>SecuTech Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://esecutech.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Administrator"/>
	<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=Special:Contributions/Administrator"/>
	<updated>2026-10-24T10:39:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=Seed_portal&amp;diff=3365</id>
		<title>Seed portal</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=Seed_portal&amp;diff=3365"/>
		<updated>2019-12-12T04:38:18Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:UniOTP_Tools]]&lt;br /&gt;
&lt;br /&gt;
==Seed Portal and Token Troubleshooting Guide==&lt;br /&gt;
Guide Version: 1.0&lt;br /&gt;
==Introduction==&lt;br /&gt;
The UniOTP Seed portal located here: https://esecutech.com/seed_portal/index.php is used to download, convert and troubleshoot OTP secret key files and tokens.&lt;br /&gt;
&lt;br /&gt;
English and Chinese language option in the top left.&lt;br /&gt;
&lt;br /&gt;
[[File:seedportal.png|400px|thumb|center|UniOTP seed portal, &amp;quot;Choose File&amp;quot; operation does not upload the secret key files anywhere, it only loads them onto the browser of the local machine.]]&lt;br /&gt;
The features are:&lt;br /&gt;
*[[#Download_tokens| Download tokens]]&lt;br /&gt;
*[[#Load_tokens| Load tokens]]&lt;br /&gt;
*[[#Convert_tokens| Convert seedfile format]]&lt;br /&gt;
*[[#Synchronize_tokens| Synchronize seed file to token]]&lt;br /&gt;
*[[#Search_tokens| Search for lost serial number of a token]]&lt;br /&gt;
*[[#troubleshoot_tokens| Troubleshooting OTPs]]&lt;br /&gt;
&amp;lt;div id=&amp;quot;Download_tokens&amp;quot;&amp;gt;&lt;br /&gt;
== Download tokens from SecuTech ==&lt;br /&gt;
When a new token has been purchased from SecuTech, a link is provided, eg. https://esecutech.com/seed_portal/index.php?1234&lt;br /&gt;
[[File:secure_access.png|400px|thumb|center|Purchaser email check]]&lt;br /&gt;
When this page is visited, it will request the purchaser&#039;s email address to confirm that the link user is the purchaser. This link will expire after 7 days or after downloading the tokens, the link can be force expired. IP addresses that repeatedly attempt to visit possible links will be blacklisted. Please email sales (at) esecutech.com for assistance or to re-enable the link if more than 7 days is needed.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;Load_tokens&amp;quot;&amp;gt;&lt;br /&gt;
== Load tokens from file ==&lt;br /&gt;
A uinf secret key file can be loaded into the UniOTP seed portal for testing and conversion purposes. See [[Virtual_OTP_token | virtual OTP token]] for creating a uinf file for testing purposes.&lt;br /&gt;
&lt;br /&gt;
In the &amp;quot;Upload tokens&amp;quot; tab, please use the &amp;quot;Choose Files&amp;quot; button to upload .uinf secret key files.&lt;br /&gt;
&lt;br /&gt;
XML and encrypted file support is planned for the future.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;Convert_tokens&amp;quot;&amp;gt;&lt;br /&gt;
== Convert seed file for different platforms ==&lt;br /&gt;
[[File:seedportal_Download.png|400px|thumb|center|Generate zip file with chosen formats]]&lt;br /&gt;
The Seed portal page provides 4 file types for different platforms:&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
CSV in base 16/Hex: commonly used by custom solutions&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*DUO format CSV: This format is a secret key container type used by DUO security: https://duo.com/&lt;br /&gt;
&amp;quot;Token serial name&amp;quot; , &amp;quot;secret key (in hex)&amp;quot;, &amp;quot;counter&amp;quot;&lt;br /&gt;
*Generic format CSV: This format is a nice format for viewing with Excel and can be used by a custom solution easily&lt;br /&gt;
First line is header which provides format: &amp;quot;serial&amp;quot;, &amp;quot;secret key (in hex)&amp;quot;, &amp;quot;counter&amp;quot;, &amp;quot;type (HOTP/TOTP/OCRA)&amp;quot;, &amp;quot;timestamp (time last synchronized)&amp;quot;, &amp;quot;digits&amp;quot;, &amp;quot;authwnd (authentication window)&amp;quot;, &amp;quot;timestep&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Please note that the authentication window and timestep may not be needed, for example most authentication servers use a global default, and is not token specific. Timestep is provided as 60 even for HOTP tokens, as some servers have different behaviours to missing values, despite not been used.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
CSV in base 32: Google authenticator&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*Generic format CSV: This format is a nice format for viewing with Excel and can be used by a custom solution easily&lt;br /&gt;
First line is header which provides format: &amp;quot;serial&amp;quot;, &amp;quot;secret key (in base32)&amp;quot;, &amp;quot;counter&amp;quot;, &amp;quot;type (HOTP/TOTP/OCRA)&amp;quot;, &amp;quot;timestamp (time last synchronized)&amp;quot;, &amp;quot;digits&amp;quot;, &amp;quot;authwnd (authentication window)&amp;quot;, &amp;quot;timestep&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Please note that the authentication window and timestep may not be needed, for example most authentication servers use a global default, and is not token specific. Timestep is provided as 60 even for HOTP tokens, as some servers have different behaviours to missing values, despite not been used.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
XML in base 64: most commonly supported seed file format, eg. RCDev http://www.rcdevs.com/products/openotp/&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*Encrypted export is not supported by the Seed portal yet.&lt;br /&gt;
*Raw XML: XML formatted secret key file that conforms to: https://tools.ietf.org/html/rfc6030&lt;br /&gt;
This format is supported by most OTP authentication servers.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
UINF: SecuTech&#039;s proprietary seed format.&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*Encrypted export is not supported by the Seed portal yet.&lt;br /&gt;
*Raw uinf file: Exports the secret key file in uinf format. Previously used by SecuTech&#039;s legacy management system, please retain this file for future use for token trouble shooting using the seed portal.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;Synchronize_tokens&amp;quot;&amp;gt;&lt;br /&gt;
== Test and Synchronize a token ==&lt;br /&gt;
To test if a token is out of synch due to repeatedly pressing the button on the token or a time lag from the onboard clock, please use this feature.&lt;br /&gt;
[[File:seedportal_virtualtoken.png|400px|thumb|center|Token troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
Please select a token from the list, it will be highlighted in a deep red and the serial name will appear next to: &amp;quot;Selected token:&amp;quot;, the current OTP that the computer expects the OTP to be displaying based on the seed file is generated.&lt;br /&gt;
&lt;br /&gt;
To synchronize a token, input atleast 1 OTP. Note that whilst it is possible to input 1 OTP for this operation, a single OTP is not recommended to be used over 50 OTP&#039;s. When synchronizing over large ranges, please use 2 OTP&#039;s. Default synch range is 3000, please set this accordingly and press &amp;quot;Synchronize OTP&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If successful, the seed for the synchronized token will be set to the current values found.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;Search_tokens&amp;quot;&amp;gt;&lt;br /&gt;
== Search for a lost serial number ==&lt;br /&gt;
In the event that a token&#039;s serial number is lost, for example the sticker is worn out and the token itself has been returned, it can be identified.&lt;br /&gt;
&lt;br /&gt;
This process is identical to a synchronization process, however the tool will search through the defined range to find the matching OTP sequences on all seeds loaded. &lt;br /&gt;
&lt;br /&gt;
Open the original uinf file (note that multiple uinf secret key files can be loaded into the tool), input 2 OTP&#039;s from the device and press search. If the token has been in use for some time and it is HOTP based, the uinf files may be out of synch to the token. &lt;br /&gt;
&lt;br /&gt;
As a rule of thumb, the &amp;quot;search range&amp;quot; should be approximately 3 * number of days the token has been in use. It would be unusual for users to have more uses then this.&lt;br /&gt;
If thousands of tokens are used, multiple instances of the search can be run by splitting the secret key files using &amp;quot;Download tokens&amp;quot; tab, &amp;quot;Custom grouping&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note that this process is time consuming, a minimum of 450 sequences are tested every second (more with a fast computer). For 1000 tokens with a search range of 1000 (roughly 1 year of HOTP token usage), it can take close to 1 hour to complete. In this event we recommend splitting the file into 4 parts and opening 4 different instances of the seed portal to quarter the time taken.&lt;br /&gt;
&lt;br /&gt;
Chrome pauses javascript operations on pages that are not open, when attempting to run multiple instances, make sure that the browser tabs the seed portal instances are in, have been dragged next to each other and are visible.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;troubleshoot_tokens&amp;quot;&amp;gt;&lt;br /&gt;
== General troubleshooting for OTP servers and tokens ==&lt;br /&gt;
When setting up (or developing) OTP servers/authenticators and tokens, a common issue is with timezone conversions.&lt;br /&gt;
&lt;br /&gt;
On the Token test and synchronize tab is the current Unix time, timestamp, and manual counter incrementor/decrementor.&lt;br /&gt;
&lt;br /&gt;
The Unix time and &amp;quot;Check timestamp on external site&amp;quot; is useful for determining if the computer time is correct. A difference of more then a few seconds can cause issues with TOTP tokens.&lt;br /&gt;
&lt;br /&gt;
The manual counter feature is useful for anyone creating their own authenticator and wishes to quickly test OTP&#039;s of a token.&lt;br /&gt;
&lt;br /&gt;
It is possible to create your own UINF file for testing purposes, please navigate [[Virtual_OTP_token|here]] for more details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=Category:UniMate_Video_Guides&amp;diff=3432</id>
		<title>Category:UniMate Video Guides</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=Category:UniMate_Video_Guides&amp;diff=3432"/>
		<updated>2018-09-12T07:29:37Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=Category:UniToken_Quick_Start_Guides&amp;diff=2932</id>
		<title>Category:UniToken Quick Start Guides</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=Category:UniToken_Quick_Start_Guides&amp;diff=2932"/>
		<updated>2018-09-10T04:56:24Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[https://s3-ap-southeast-2.amazonaws.com/secutechsdkbucket/en/quick-start-guide/quick-start-guide-unitoken-EN201312.pdf UniToken Quick Start Guide]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=Category:UniOTP_Quick_Start_Guides&amp;diff=2984</id>
		<title>Category:UniOTP Quick Start Guides</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=Category:UniOTP_Quick_Start_Guides&amp;diff=2984"/>
		<updated>2018-09-10T04:55:28Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [https://s3-ap-southeast-2.amazonaws.com/secutechsdkbucket/en/quick-start-guide/quick-start-guide-uniotp-EN201703.pdf UniOTP Quick Start Guide]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=Category:UniKey_Quick_Start_Guides&amp;diff=2930</id>
		<title>Category:UniKey Quick Start Guides</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=Category:UniKey_Quick_Start_Guides&amp;diff=2930"/>
		<updated>2018-09-10T04:54:52Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [https://s3-ap-southeast-2.amazonaws.com/secutechsdkbucket/en/quick-start-guide/quick-start-guide-unikey-170818.pdf UniKey Quick Start Guide]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=Category:UniMate_Video_Guides&amp;diff=3431</id>
		<title>Category:UniMate Video Guides</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=Category:UniMate_Video_Guides&amp;diff=3431"/>
		<updated>2018-08-19T07:21:19Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Created page with &amp;quot;{{#evu:https://www.youtube.com/watch?v=N6B8vk3_S2w |alignment=right }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#evu:https://www.youtube.com/watch?v=N6B8vk3_S2w&lt;br /&gt;
|alignment=right&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=Category:UniKey_Quick_Start_Guides&amp;diff=2928</id>
		<title>Category:UniKey Quick Start Guides</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=Category:UniKey_Quick_Start_Guides&amp;diff=2928"/>
		<updated>2017-07-28T12:03:49Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [http://files.esecutech.com/en/quick-start-guide/quick-start-guide-unikey-20170620.pdf UniKey Quick Start Guide]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=UniKey_Ultra_Dual_Photo&amp;diff=3227</id>
		<title>UniKey Ultra Dual Photo</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=UniKey_Ultra_Dual_Photo&amp;diff=3227"/>
		<updated>2017-04-29T01:58:22Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:UniKey_Gallery]]&lt;br /&gt;
&lt;br /&gt;
[[Image:UniKey_Ultra_Dual-1.jpg|600px|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:UniKey Ultra Dual-2.jpg|600px|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:UniKey Ultra Dual-3.jpg|600px|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Unikey_Ultra_Dual-4.jpg|600px|200px]]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=UniKey_Ultra_Dual_Photo&amp;diff=3226</id>
		<title>UniKey Ultra Dual Photo</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=UniKey_Ultra_Dual_Photo&amp;diff=3226"/>
		<updated>2017-04-29T01:56:30Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Created page with &amp;quot;category:UniKey_Gallery&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:UniKey_Gallery]]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=File:Unikey_Ultra_Dual-4.jpg&amp;diff=3225</id>
		<title>File:Unikey Ultra Dual-4.jpg</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=File:Unikey_Ultra_Dual-4.jpg&amp;diff=3225"/>
		<updated>2017-04-29T01:51:49Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=File:UniKey_Ultra_Dual-3.jpg&amp;diff=3224</id>
		<title>File:UniKey Ultra Dual-3.jpg</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=File:UniKey_Ultra_Dual-3.jpg&amp;diff=3224"/>
		<updated>2017-04-29T00:41:02Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=File:UniKey_Ultra_Dual-2.jpg&amp;diff=3223</id>
		<title>File:UniKey Ultra Dual-2.jpg</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=File:UniKey_Ultra_Dual-2.jpg&amp;diff=3223"/>
		<updated>2017-04-29T00:30:19Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=File:UniKey_Ultra_Dual-1.jpg&amp;diff=3222</id>
		<title>File:UniKey Ultra Dual-1.jpg</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=File:UniKey_Ultra_Dual-1.jpg&amp;diff=3222"/>
		<updated>2017-04-29T00:25:11Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=UniMate_API_Reference_Error_Codes&amp;diff=2612</id>
		<title>UniMate API Reference Error Codes</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=UniMate_API_Reference_Error_Codes&amp;diff=2612"/>
		<updated>2016-07-06T01:52:10Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:UniMate API]]&lt;br /&gt;
== List of Error Codes ==&lt;br /&gt;
&lt;br /&gt;
=== General Error Codes ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Error Code&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Macro Definition&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;S_OK &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Success (no issues)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;-1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;S_DEVICE_FAILURE&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;No connection&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;-2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;S_INVALID_PASSWORD&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Password verification failed&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;-3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;S_DEVICE_LOCK&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Device locked&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;-4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;S_NOT_ENOUGH_MEMORY&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Insufficient memory&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;-5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;S_INVALID_CERTIFICATE&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Invalid certificate format&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;-6&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;S_INVALID_ALGORITHM&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Invalid algorithm&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;-7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;S_INVALID_PARAMETER&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Invalid parameter&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;-8&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;S_UNKOWN_ERROR&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Unknown error&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;-9&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;S_USER_CANCEL&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Cancelled by the user&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=MediaWiki:Sidebar&amp;diff=104</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=MediaWiki:Sidebar&amp;diff=104"/>
		<updated>2016-07-06T01:50:19Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Navigation &lt;br /&gt;
**mainpage|mainpage-description&lt;br /&gt;
&lt;br /&gt;
*UniKey&lt;br /&gt;
**category:UniKey_API|UniKey API &lt;br /&gt;
**category:UniKey_Application_Solutions|UniKey Application Solutions &lt;br /&gt;
**category:UniKey_FAQ|UniKey FAQ&lt;br /&gt;
**category:UniKey_Gallery|UniKey Gallery&lt;br /&gt;
**category:UniKey_Hardware_Troubleshooting|UniKey Hardware Troubleshooting&lt;br /&gt;
**category:UniKey_Library_Integration_Guides|UniKey Library Integration Guides &lt;br /&gt;
**category:UniKey_Tools|UniKey Tools &lt;br /&gt;
&lt;br /&gt;
*UniToken&lt;br /&gt;
**category:UniToken_API|UniToken API &lt;br /&gt;
**category:UniToken_FAQ|UniToken FAQ&lt;br /&gt;
**category:UniToken_Gallery|UniToken Gallery&lt;br /&gt;
**category:UniToken_Hardware_Troubleshooting|UniToken Hardware Troubleshooting&lt;br /&gt;
**category:UniToken_Integration_Guide|UniToken Integration Guides &lt;br /&gt;
**category:UniToken_Tools|UniToken Tools &lt;br /&gt;
&lt;br /&gt;
*UniOTP&lt;br /&gt;
**category:UniOTP_API|UniOTP API &lt;br /&gt;
**category:UniOTP_FAQ|UniOTP FAQ&lt;br /&gt;
**category:UniOTP_Gallery|UniOTP Gallery&lt;br /&gt;
**category:UniOTP_Hardware_Troubleshooting|UniOTP Hardware Troubleshooting&lt;br /&gt;
**category:UniOTP_Integration_Solutions|UniOTP Integration Solutions&lt;br /&gt;
**category:UniOTP_Tools|UniOTP Tools &lt;br /&gt;
&lt;br /&gt;
*UniMate&lt;br /&gt;
**category:UniMate API|UniMate API&lt;br /&gt;
**category:UniMate_FAQ|UniMate FAQ&lt;br /&gt;
**category:UniMate Family|UniMate Family&lt;br /&gt;
**category:UniMate_Gallery|UniMate Gallery&lt;br /&gt;
**category:UniMate_Manuals|UniMate Manuals&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=Category:UniMate_FAQ&amp;diff=245</id>
		<title>Category:UniMate FAQ</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=Category:UniMate_FAQ&amp;diff=245"/>
		<updated>2016-07-01T04:30:32Z</updated>

		<summary type="html">&lt;p&gt;Administrator: /* How can I begin using UniMate? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Mobile Authentication]]&lt;br /&gt;
UniMate Frequently Asked Questions Category&lt;br /&gt;
&lt;br /&gt;
=== What is UniMate? ===&lt;br /&gt;
&lt;br /&gt;
UniMate is SecuTech&#039;s mobile authentication product family focusing on secure transaction authentication and platform interchangeability. UniMate employes two-factor authentication, the involvement of &amp;quot;something you have&amp;quot; and &amp;quot;something you know&amp;quot;. The UniMate family comprises of tokens UniMate STD and UniMate Flex, secure card reader UniMate Reader, and USB to audio adapter UniMate Adapter.&lt;br /&gt;
&lt;br /&gt;
=== How does UniMate work? ===&lt;br /&gt;
&lt;br /&gt;
UniMate authentication utilises PKI technology, where employed certificates are securely stored within the UniMate device and are inaccessible without the appropriate permissions to interact with the device. UniMate leverages the TRRS audio port found on most, if not all, mobile devices for secured communication during use of the device, in addition to providing a USB interface for use and configuration on the desktop platform.&lt;br /&gt;
&lt;br /&gt;
=== How can I begin using UniMate? ===&lt;br /&gt;
&lt;br /&gt;
Please see the [[:category:UniMate Quick Start Guides|UniMate Quick Start Guides]].&lt;br /&gt;
&lt;br /&gt;
=== What is PKI? ===&lt;br /&gt;
&lt;br /&gt;
Public Key Infrastructure (PKI) is a set of hardware, software, people, policies, and procedures needed to create, manage, distribute, use, store, and revoke digital certificates.&lt;br /&gt;
&lt;br /&gt;
=== Why use UniMate? ===&lt;br /&gt;
&lt;br /&gt;
Using UniMate is safer than using a static password alone, as authentication requires two factors. The first factor is the physical UniMate device itself, which contains the digital certificate used during the authentication process. The second factor is the password to log onto the UniMate device before beginning the transaction process. These added factors in the authentication process make it substantially more difficult for unauthorised access than the use of a single factor, such as a password, alone.&lt;br /&gt;
&lt;br /&gt;
=== What is the default PIN of UniMate? ===&lt;br /&gt;
&lt;br /&gt;
The default Admin PIN is eight zeros, or &amp;quot;00000000&amp;quot;, without quotation marks.&lt;br /&gt;
The default User PIN is eight ones, or &amp;quot;11111111&amp;quot;, without quotation marks.&lt;br /&gt;
&lt;br /&gt;
=== What should I do if my UniMate device is locked? ===&lt;br /&gt;
&lt;br /&gt;
If the user account associated with your UniMate device is locked, please contact the administrator to unlock your user account.&lt;br /&gt;
&lt;br /&gt;
=== What steps does SecuTech take to ensure UniMate is environmentally friendly? ===&lt;br /&gt;
&lt;br /&gt;
SecuTech is committed to supplying products that are environmentally sustainable. All parts and production processes of UniMate devices are lead-free and ROHS-compliant. &lt;br /&gt;
&lt;br /&gt;
=== Where can I receive further assistance? ===&lt;br /&gt;
&lt;br /&gt;
We, at SecuTech, are dedicated to providing high-quality technical support to our customers. If you have any questions, please feel free to contact us at https://esecutech.com/support or support@esecutech.com.&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=Category:UniOTP_Quick_Start_Guides&amp;diff=2982</id>
		<title>Category:UniOTP Quick Start Guides</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=Category:UniOTP_Quick_Start_Guides&amp;diff=2982"/>
		<updated>2016-07-01T04:11:56Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Created page with &amp;quot;* [http://files.esecutech.com/en/quick-start-guide/quick-start-guide-uniotp-20140522.pdf UniOTP Quick Start Guide]&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [http://files.esecutech.com/en/quick-start-guide/quick-start-guide-uniotp-20140522.pdf UniOTP Quick Start Guide]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=Main_Page&amp;diff=57</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=Main_Page&amp;diff=57"/>
		<updated>2016-07-01T04:11:33Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Welcome to the SecuTech Wiki&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Information on our products and viewable manuals and guides are available on our Wiki.&lt;br /&gt;
&lt;br /&gt;
Please note this Wiki is currently under construction and is continually updated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;width: 728px; height: 247px;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;UniKey [Software Protection]&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey API|UniKey API Reference]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey Application Solutions|UniKey Application Solutions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey FAQ|UniKey Frequently Asked Questions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey Gallery|UniKey Gallery]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey Hardware Troubleshooting|UniKey Hardware Troubleshooting Guide]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey Library Integration Guides|UniKey Library Integration Guides]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey Quick Start Guides|UniKey Quick Start Guides]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey Tools|UniKey Tools]]&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;UniToken [USB Authentication]&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken API|UniToken API Reference]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken FAQ|UniToken Frequently Asked Questions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken Gallery|UniToken Gallery]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken Hardware Troubleshooting|UniToken Hardware Troubleshooting Guide]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken Integration Guide|UniToken Integration Guide]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken Quick Start Guides|UniToken Quick Start Guides]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken Tools|UniToken Tools]]&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;UniOTP [One-time Password]&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniOTP API|UniOTP API Reference]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniOTP FAQ|UniOTP Frequently Asked Questions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniOTP Gallery|UniOTP Gallery]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniOTP Integration Solutions|UniOTP Integration Solutions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniOTP Quick Start Guides|UniOTP Quick Start Guides]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniOTP Tools|UniOTP Tools]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;UniMate [Mobile Authentication]&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate API|UniMate API Reference]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate Family|UniMate Family]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate FAQ|UniMate Frequently Asked Questions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate Gallery|UniMate Gallery]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate Manuals|UniMate Manuals]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate Solutions|UniMate Solutions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate Quick Start Guides|UniMate Quick Start Guides]]&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Resources&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:Resources|Resources]]&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=Category:UniMate_Quick_Start_Guides&amp;diff=2933</id>
		<title>Category:UniMate Quick Start Guides</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=Category:UniMate_Quick_Start_Guides&amp;diff=2933"/>
		<updated>2016-07-01T04:10:54Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Created page with &amp;quot;* [http://files.esecutech.com/en/quick-start-guide/quick-start-guide-unimate-std-flex-EN201607.pdf UniMate STD Quick Start Guide] * [http://files.esecutech.com/en/quick-start-...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [http://files.esecutech.com/en/quick-start-guide/quick-start-guide-unimate-std-flex-EN201607.pdf UniMate STD Quick Start Guide]&lt;br /&gt;
* [http://files.esecutech.com/en/quick-start-guide/quick-start-guide-unimate-std-flex-EN201607.pdf UniMate Flex Quick Start Guide]&lt;br /&gt;
* [http://files.esecutech.com/en/quick-start-guide/quick-start-guide-unimate-usb-drive-EN201607.pdf UniMate USB Quick Start Guide]&lt;br /&gt;
* [http://files.esecutech.com/en/quick-start-guide/quick-start-guide-unimate-usb-drive-EN201607.pdf UniMate Drive Quick Start Guide]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=Category:UniToken_Quick_Start_Guides&amp;diff=2931</id>
		<title>Category:UniToken Quick Start Guides</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=Category:UniToken_Quick_Start_Guides&amp;diff=2931"/>
		<updated>2016-07-01T04:09:21Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Created page with &amp;quot;*[http://files.esecutech.com/en/quick-start-guide/quick-start-guide-unitoken-EN201312.pdf UniToken Quick Start Guide]&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[http://files.esecutech.com/en/quick-start-guide/quick-start-guide-unitoken-EN201312.pdf UniToken Quick Start Guide]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=Category:UniKey_Quick_Start_Guides&amp;diff=2927</id>
		<title>Category:UniKey Quick Start Guides</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=Category:UniKey_Quick_Start_Guides&amp;diff=2927"/>
		<updated>2016-07-01T04:08:14Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Created page with &amp;quot;* [http://files.esecutech.com/en/quick-start-guide/quick-start-guide-unikey-EN2015.pdf UniKey Quick Start Guide]&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [http://files.esecutech.com/en/quick-start-guide/quick-start-guide-unikey-EN2015.pdf UniKey Quick Start Guide]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=Main_Page&amp;diff=56</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=Main_Page&amp;diff=56"/>
		<updated>2016-07-01T04:06:48Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Welcome to the SecuTech Wiki&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Information on our products and viewable manuals and guides are available on our Wiki.&lt;br /&gt;
&lt;br /&gt;
Please note this Wiki is currently under construction and is continually updated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;width: 728px; height: 247px;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;UniKey [Software Protection]&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey API|UniKey API Reference]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey Application Solutions|UniKey Application Solutions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey FAQ|UniKey Frequently Asked Questions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey Gallery|UniKey Gallery]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey Hardware Troubleshooting|UniKey Hardware Troubleshooting Guide]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey Library Integration Guides|UniKey Library Integration Guides]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey Quick Start Guides|UniKey Quick Start Guides]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey Tools|UniKey Tools]]&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;UniToken [USB Authentication]&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken API|UniToken API Reference]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken FAQ|UniToken Frequently Asked Questions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken Gallery|UniToken Gallery]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken Hardware Troubleshooting|UniToken Hardware Troubleshooting Guide]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken Integration Guide|UniToken Integration Guide]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken Quick Start Guides|UniToken Quick Start Guides]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken Tools|UniToken Tools]]&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;UniOTP [One-time Password]&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniOTP API|UniOTP API Reference]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniOTP FAQ|UniOTP Frequently Asked Questions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniOTP Gallery|UniOTP Gallery]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniOTP Integration Solutions|UniOTP Integration Solutions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniOTP Tools|UniOTP Tools]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;UniMate [Mobile Authentication]&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate API|UniMate API Reference]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate Family|UniMate Family]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate FAQ|UniMate Frequently Asked Questions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate Gallery|UniMate Gallery]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate Manuals|UniMate Manuals]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate Solutions|UniMate Solutions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate Quick Start Guides|UniMate Quick Start Guides]]&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Resources&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:Resources|Resources]]&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=Category:UniMate_Solutions&amp;diff=113</id>
		<title>Category:UniMate Solutions</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=Category:UniMate_Solutions&amp;diff=113"/>
		<updated>2016-07-01T04:02:58Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Category:UniMate to Category:UniMate Solutions without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=Main_Page&amp;diff=55</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=Main_Page&amp;diff=55"/>
		<updated>2016-06-30T06:57:16Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Welcome to the SecuTech Wiki&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Information on our products and viewable manuals and guides are available on our Wiki.&lt;br /&gt;
&lt;br /&gt;
Please note this Wiki is currently under construction and is continually updated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;width: 728px; height: 247px;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;UniKey [Software Protection]&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey API|UniKey API Reference]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey Application Solutions|UniKey Application Solutions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey FAQ|UniKey Frequently Asked Questions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey Gallery|UniKey Gallery]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey Hardware Troubleshooting|UniKey Hardware Troubleshooting Guide]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey Library Integration Guides|UniKey Library Integration Guides]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [http://files.esecutech.com/marketing-materials/ProductsDoc/UniKey/UniKeyQuickStartGuide-2015.pdf UniKey Quick Start Guide]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey Tools|UniKey Tools]]&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;UniToken [USB Authentication]&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken API|UniToken API Reference]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken FAQ|UniToken Frequently Asked Questions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken Gallery|UniToken Gallery]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken Hardware Troubleshooting|UniToken Hardware Troubleshooting Guide]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken Integration Guide|UniToken Integration Guide]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [http://files.esecutech.com/marketing-materials/ProductsDoc/UniToken/UniToken_quickstart-130827EN.pdf UniToken Quick Start Guide]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken Tools|UniToken Tools]]&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;UniOTP [One-time Password]&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniOTP API|UniOTP API Reference]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniOTP FAQ|UniOTP Frequently Asked Questions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniOTP Gallery|UniOTP Gallery]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniOTP Integration Solutions|UniOTP Integration Solutions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniOTP Tools|UniOTP Tools]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;UniMate [Mobile Authentication]&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate API|UniMate API Reference]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate Family|UniMate Family]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate FAQ|UniMate Frequently Asked Questions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate Gallery|UniMate Gallery]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate Manuals|UniMate Manuals]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate|UniMate Documentation]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Resources&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:Resources|Resources]]&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=Main_Page&amp;diff=54</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=Main_Page&amp;diff=54"/>
		<updated>2016-06-30T06:55:12Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Welcome to the SecuTech Wiki&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Information on our products and viewable manuals and guides are available on our Wiki.&lt;br /&gt;
&lt;br /&gt;
Please note this Wiki is currently under construction and is continually updated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;width: 728px; height: 247px;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;UniKey [Software Protection]&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey API|UniKey API Reference]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey Application Solutions|UniKey Application Solutions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey FAQ|UniKey Frequently Asked Questions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey Gallery|UniKey Gallery]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey Hardware Troubleshooting|UniKey Hardware Troubleshooting Guide]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey Library Integration Guides|UniKey Library Integration Guides]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [http://files.esecutech.com/marketing-materials/ProductsDoc/UniKey/UniKeyQuickStartGuide-2015.pdf UniKey Quick Start Guide]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniKey Tools|UniKey Tools]]&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;UniToken [USB Authentication]&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken API|UniToken API Reference]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken FAQ|UniToken Frequently Asked Questions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken Gallery|UniToken Gallery]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken Hardware Troubleshooting|UniToken Hardware Troubleshooting Guide]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken Integration Guide|UniToken Integration Guide]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [http://files.esecutech.com/marketing-materials/ProductsDoc/UniToken/UniToken_quickstart-130827EN.pdf UniToken Quick Start Guide]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniToken Tools|UniToken Tools]]&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;UniOTP [One-time Password]&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniOTP API|UniOTP API Reference]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniOTP FAQ|UniOTP Frequently Asked Questions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniOTP Gallery|UniOTP Gallery]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniOTP Integration Solutions|UniOTP Integration Solutions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniOTP Tools|UniOTP Tools]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;UniMate [Mobile Authentication]&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate API|UniMate API Reference]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate Family|UniMate Family]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate FAQ|UniMate Frequently Asked Questions]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate Gallery|UniMate Gallery]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate Manuals|UniMate Manuals]]&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- [[:category:UniMate|UniMate Documentation]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Resources&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;- &amp;lt;a href=&amp;quot;/wiki/index.php/Category:Resources&amp;quot; title=&amp;quot;Category:Resources&amp;quot;&amp;gt;Resources&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=MediaWiki:Sidebar&amp;diff=103</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=MediaWiki:Sidebar&amp;diff=103"/>
		<updated>2016-06-30T06:47:22Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Navigation &lt;br /&gt;
**mainpage|mainpage-description&lt;br /&gt;
&lt;br /&gt;
*UniKey&lt;br /&gt;
**category:UniKey_API|UniKey API &lt;br /&gt;
**category:UniKey_Application_Solutions|UniKey Application Solutions &lt;br /&gt;
**category:UniKey_FAQ|UniKey FAQ&lt;br /&gt;
**category:UniKey_Gallery|UniKey Gallery&lt;br /&gt;
**category:UniKey_Hardware_Troubleshooting|UniKey Hardware Troubleshooting&lt;br /&gt;
**category:UniKey_Library_Integration_Guides|UniKey Library Integration Guides &lt;br /&gt;
**category:UniKey_Tools|UniKey Tools &lt;br /&gt;
&lt;br /&gt;
*UniToken&lt;br /&gt;
**category:UniToken_API|UniToken API &lt;br /&gt;
**category:UniToken_FAQ|UniToken FAQ&lt;br /&gt;
**category:UniToken_Gallery|UniToken Gallery&lt;br /&gt;
**category:UniToken_Hardware_Troubleshooting|UniToken Hardware Troubleshooting&lt;br /&gt;
**category:UniToken_Integration_Guide|UniToken Integration Guides &lt;br /&gt;
**category:UniToken_Tools|UniToken Tools &lt;br /&gt;
&lt;br /&gt;
*UniOTP&lt;br /&gt;
**category:UniOTP_API|UniOTP API &lt;br /&gt;
**category:UniOTP_FAQ|UniOTP FAQ&lt;br /&gt;
**category:UniOTP_Gallery|UniOTP Gallery&lt;br /&gt;
**category:UniOTP_Hardware_Troubleshooting|UniOTP Hardware Troubleshooting&lt;br /&gt;
**category:UniOTP_Integration_Solutions|UniOTP Integration Solutions&lt;br /&gt;
**category:UniOTP_Tools|UniOTP Tools &lt;br /&gt;
&lt;br /&gt;
*UniMate&lt;br /&gt;
**category:UniMate_FAQ|UniMate FAQ&lt;br /&gt;
**category:UniMate_Gallery|UniMate Gallery&lt;br /&gt;
**category:UniMate_Manuals|UniMate Manuals&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=MediaWiki:Sidebar&amp;diff=102</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=MediaWiki:Sidebar&amp;diff=102"/>
		<updated>2016-06-30T06:45:15Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Navigation &lt;br /&gt;
**mainpage|mainpage-description&lt;br /&gt;
&lt;br /&gt;
*Software Protection &lt;br /&gt;
**category:UniKey_Application_Solutions|UniKey Application Solutions &lt;br /&gt;
**category:UniKey_Library_Integration_Guides|UniKey Library Integration Guides &lt;br /&gt;
**category:UniKey_Tools|UniKey Tools &lt;br /&gt;
**category:UniKey_API|UniKey API &lt;br /&gt;
**category:UniKey_Hardware_Troubleshooting|UniKey Hardware Troubleshooting&lt;br /&gt;
**category:UniKey_FAQ|UniKey FAQ&lt;br /&gt;
**category:UniKey_Gallery|UniKey Gallery&lt;br /&gt;
&lt;br /&gt;
*USB Authentication &lt;br /&gt;
**category:UniToken_Integration_Guide|UniToken Integration Guides &lt;br /&gt;
**category:UniToken_Tools|UniToken Tools &lt;br /&gt;
**category:UniToken_API|UniToken API &lt;br /&gt;
**category:UniToken_Hardware_Troubleshooting|UniToken Hardware Troubleshooting&lt;br /&gt;
**category:UniToken_FAQ|UniToken FAQ&lt;br /&gt;
**category:UniToken_Gallery|UniToken Gallery&lt;br /&gt;
&lt;br /&gt;
*One-time Password &lt;br /&gt;
**category:UniOTP_Integration_Solutions|UniOTP Integration Solutions&lt;br /&gt;
**category:UniOTP_Tools|UniOTP Tools &lt;br /&gt;
**category:UniOTP_API|UniOTP API &lt;br /&gt;
**category:UniOTP_Hardware_Troubleshooting|UniOTP Hardware Troubleshooting&lt;br /&gt;
**category:UniOTP_FAQ|UniOTP FAQ&lt;br /&gt;
**category:UniOTP_Gallery|UniOTP Gallery&lt;br /&gt;
&lt;br /&gt;
*Mobile Authentication&lt;br /&gt;
**category:UniMate_Manuals|UniMate Manuals&lt;br /&gt;
**category:UniMate_FAQ|UniMate FAQ&lt;br /&gt;
**category:UniMate_Gallery|UniMate Gallery&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=UniMate_USB_PKCS_11_Manual&amp;diff=2805</id>
		<title>UniMate USB PKCS 11 Manual</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=UniMate_USB_PKCS_11_Manual&amp;diff=2805"/>
		<updated>2016-06-30T06:28:18Z</updated>

		<summary type="html">&lt;p&gt;Administrator: /* Supported PKCS#11 Algorithms and API */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:UniMate Manuals]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id = &amp;quot;Table of Contents&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==&amp;lt;b&amp;gt;PKCS#11 Manual&amp;lt;/b&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Version 2.0&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Version&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Date&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1.0&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2015.7&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2.0&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2016.7&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The data and information contained in this document cannot be altered without the express written permission of SecuTech Solution Inc. No part of this document can be reproduced or transmitted for any purpose whatsoever, either by electronic or mechanical means.&lt;br /&gt;
&lt;br /&gt;
The general terms of trade of SecuTech Solution Inc. apply. Diverging agreements must be made in writing.&lt;br /&gt;
&lt;br /&gt;
Copyright SecuTech Solution Inc. All rights reserved.&lt;br /&gt;
&lt;br /&gt;
WINDOWS is a registered trademark of Microsoft Corporation.&lt;br /&gt;
&lt;br /&gt;
The WINDOWS-logo is a registered trademark &amp;lt;sup&amp;gt;(TM)&amp;lt;/sup&amp;gt; of Microsoft Corporation. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Software License&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The software and the enclosed documentation are copyright-protected. By installing the software, you agree to the conditions of the licensing agreement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Licensing Agreement&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SecuTech Solution Inc. (SecuTech for short) gives the buyer the simple, exclusive and non-transferable licensing right to use the software on one individual computer or networked computer system (LAN). Copying and any other form of reproduction of the software in full or in part as well as mixing and linking it with others is prohibited. The buyer is authorized to make one single copy of the software as backup. SecuTech reserves the right to change or improve the software without notice or to replace it with a new development. SecuTech is not obliged to inform the buyer of changes, improvements or new developments or to make these available to him. A legally binding promise of certain qualities is not given. SecuTech is not responsible for damage unless it is the result of deliberate action or negligence on the part of SecuTech or its aids and assistants. SecuTech accepts no responsibility of any kind for indirect, accompanying or subsequent damage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Contact Information&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Web: &amp;lt;/b&amp;gt;http://www.esecutech.com&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Email: &amp;lt;/b&amp;gt;[mailto:sales@eSecuTech.com sales@esecutech.com]&lt;br /&gt;
&lt;br /&gt;
Please Email any comments, suggestions or questions regarding this document or our products to us at: [mailto:sales@eSecuTech.com sales@esecutech.com]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
; CE Attestation of Conformity&lt;br /&gt;
[[File:CE Attestation.png|left|100px|top]]&lt;br /&gt;
: UniMate is in conformity with the protection requirements of CE Directives 89/336/EEC Amending Directive 92/31/EEC. UniMate satisfies the limits and verifying methods: EN55022/CISPR 22 Class B, EN55024: 1998.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
; FCC Standard&lt;br /&gt;
[[File:FCC.png|left|100px|top]]&lt;br /&gt;
: This device is in conformance with Part 15 of the FCC Rules and Regulation for Information Technology Equipment.&lt;br /&gt;
: Operation of this product is subject to the following two conditions: (1) this device may not cause harmful interference, and (2) this device must accept any interference received, including interference that may cause undesired operation.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:USB Logo.png|left|100px|top]] The equipment of UniMate is USBbased.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
; Conformity to ISO 9001&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;2000&lt;br /&gt;
[[File:ISO 9001.png|left|100px|top]]&lt;br /&gt;
: The Quality System of SecuTech Solution Inc., including its implementation, meets the requirements of the standard ISO 9001:2000&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
; ROHS&lt;br /&gt;
[[File:ROHS.png|left|100px|top]]&lt;br /&gt;
: All UniMate products are environmentally friendly with ROHS certificates.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;page-break-before:always&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
PKCS#11 is a Public-Key Cryptography Standard (PKCS) for public key cryptography, developed by RSA Laboratories and includes both algorithm-specific and algorithm-independent implementation standards. It is an industry standard that defines a technology independent programming interface for cryptographic devices such as smart cards and PCMCIA cards. This standard specifies an application program interface&lt;br /&gt;
(API) called Cryptoki (Cryptographic Token Interface), to devices, either physical or virtual, which hold cryptographic information (keys and other data) and perform cryptographic functions. This API is used across many platforms and is powerful enough for most security-related applications. SecuTech uses PKCS#11 as the main API for UniMate programming. UniMate supports PKCS#11 applications via UniMate middleware. &lt;br /&gt;
&lt;br /&gt;
The following files are needed when developing UniMate PKCS#11 applications: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Files&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Path&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Cryptoki.h&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Provided by RSA&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;pkcs11.h&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Provided by RSA&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Pkcs11f.h&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Provided by RSA&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Pkcs11t.h/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Provided by RSA&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;UniMateP11.dll / UniMateP11.so&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;SDK\PKCS#11\Libraries\&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The PKCS#11 module of UniMate supports the creation of the following objects: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Object Class&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKO_DATA&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;For data structures defined by the application&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKO_SECRET_KEY&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;For symmetric keys&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKO_CERTIFICATE&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;For X.509 v3 certificates&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKO_PUBLIC_KEY&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;For RSA/DSA public key&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKO_PRIVATE_KEY&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;For RSA/DSA private key&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All the objects listed in the above table can be created with UniMate. The secure storage in UniMate is limited, so objects can only be created in memory but can NOT be stored in the UniMate secure storage. Only encryption keys and permanently present data need to be saved in the UniMate.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;page-break-before:always&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Supported PKCS#11 Algorithms and API== &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; &amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Algorithm&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Encrypt/Decrypt&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Sign/Verify&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Digest&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Generate key/pair&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RSA_PKCS_KEY_PAIR_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RSA_PKCS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DSA_KEY_PAIR_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DSA&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RC2_KEY_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RC2_ECB&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RC2_CBC&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RC2_CBC_PAD&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RC4_KEY_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RC4&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES_KEY_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES_ECB&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES_CBC&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES3_KEY_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES3_ECB&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES3_CBC&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES3_CBC_PAD&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_MD2&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_MD5&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_SHA_1&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DH_PKCS_KEY_PAIR_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_AES_KEY_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_AES_CBC&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_AES_ECB&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The table below lists all of the key sizes in the UniMate PKCS#11 library: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Algorithms&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Key Sizes&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RSA_PKCS_KEY_PAIR_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1024bits, 2048bits&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES_KEY_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;64 bits&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES3_KEY_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;192 bits&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_AES_KEY_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;128 ~ 256 bits&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;page-break-before:always&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UniMate PKCS#11 Function Library==&lt;br /&gt;
The UniMate PKCS#11 library only implements the standard PKCS#11 APIs. Any other APIs beyond PKCS#11 are not implemented. If such an API is called, an error return code such as CKR_FUNCTION_NO_SUPPORT will be returned. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Category&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Supported&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;4&amp;quot;&amp;gt;&amp;lt;b&amp;gt;General Purpose Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Initialize&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Finalize&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetInfo&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetFunctionList&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;9&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Slot and UniMate Management&amp;lt;br&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetSlotList&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetSlotInfo&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetUniMateInfo&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_WaitForSlotEvent&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetMechanismList&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetMechanismInfo&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_InitUniMate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_InitPIN&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SetPIN&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;8&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Session Management Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_OpenSession&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_CloseSession&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_CloseAllSessions&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetSessionInfo&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetOperationState&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SetOperationState&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Login&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Logout&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;9&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Object Management Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_CreateObject&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_CopyObject&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DestroyObject&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetObjectSize&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetAttributeValue&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SetAttributeValue&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_FindObjectsInit&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_FindObjects&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_FindObjectsFinal&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;4&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Encryption Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_EncryptInit&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Encrypt&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_EncryptUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_EncryptFinal&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;page-break-before:always&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Category&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Supported&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;4&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Decryption Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DecryptInit&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Decrypt&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DecryptUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DecryptFinal&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Message Digesting Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DigestInit&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Digest&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DigestUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DigestKey&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DigestFinal&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;6&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Signing and Hashing Function&amp;lt;br&amp;gt;(MAC)&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SignInit&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Sign&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SignUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SignFinal&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SignRecoverInit&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SignRecover&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;6&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Functions for Verifying&amp;lt;br&amp;gt;Signatures and Hashing (MAC)&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_VerifyInit&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Verify&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_VerifyUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_VerifyFinal&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_VerifyRecoverInit&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_VerifyRecover&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;4&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Dual-Purpose Cryptographic&amp;lt;br&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DigestEncryptUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DecryptDigestUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SignEncryptUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DecryptVerifyUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Key Management Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GenerateKey&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GenerateKeyPair&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_WrapKey&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_UnwrapKey&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DeriveKey&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Random Number Generation&amp;lt;br&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SeedRandom&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GenerateRandom&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Callback Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;page-break-before:always&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Samples==&lt;br /&gt;
All the samples are implemented in C, and they all support PKCS#11 standard v.2.20. The samples are provided in: &amp;lt;code&amp;gt;SDK\PKCS#11\Sample&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Initialize&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize the PKCS#11 library&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetSlotList&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Get the slot list&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_OpenSession&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Open a session&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Login&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Log in&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_InitPIN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize user PIN&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Logout&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Log out&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_FindObjectsInit&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize the search for any object&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_FindObjects&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Find the objects which match&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_FindObjectsFinal&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Cleanup the search&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_CloseSession&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Close a session&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetAttributeValue&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Get the attribute value&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Finalize&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Close PKCS #11 library&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GenerateKeyPair&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Generate a new public/private key pair&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GenerateKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Generate a secret key&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_WrapKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Wrap (encrypt) a key&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_UnwrapKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Unwrap (decrypt) a key&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_DeriveKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Derive a key from a base key&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_SetPIN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Modify the current users PIN&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetTokenInfo&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Get the slot information&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_SignInit&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize a signature&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Sign&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Sign data&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_SignUpdate&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Continue a multiple-part signature&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_SignFinal&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Finish a multiple-part signature&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_SignRecoverInit&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize a signature&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_SignRecover&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Sign data, where the data can be recovered from the signature&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_DestroyObject&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Destroy an object&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;page-break-before:always&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetFunctionList&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Return the function list&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetMechanismList&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Obtain a list of mechanism types&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetMechanismInfo&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Obtain information about a particular mechanism possibly supported by a token&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_InitToken&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize a token&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetSessionInfo&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Obtain information about the session&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetOperationState&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Obtain the cryptographic state of a session&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_SetOperationState&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Restore the cryptographic state of a session&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_EncryptInit&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize an encryption operation&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Encrypt&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Encrypt single-part data&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_EncryptUpdate&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Continue a multiple-part encryption&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_EncryptFinal&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Finish a multiple-part encryption operation&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_DecryptInit&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize a decryption&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Decrypt&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Decrypt encrypted data in a single part&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_DecryptUpdate&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Continue a multiple-part decryption&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_DecryptFinal&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Finish a multiple-part decryption&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_DigestInit&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize a message-digesting operation.&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Digest&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Digest data in a single part&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_DigestUpdate&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Continue a multiple-part message-digesting&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_DigestFinal&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Finish a multiple-part message-digesting&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_VerifyInit&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize a verification&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Verify&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Verify a signature&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_VerifyUpdate&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Continue a multiple-part verification&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_VerifyFinal&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Finish a multiple-part verification&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_VerifyRecoverInit&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize a signature verification&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_VerifyRecover&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Verify a signature, where the data is recovered from the signature&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_SeedRandom&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Mix additional seed material into the token&#039;s random number generator&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GenerateRandom&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Generate random data&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetFunctionStatus&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Obtain an updated status of a function running in parallel with an application&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_CancelFunction&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Cancel a function&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_WaitForSlotEvent&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Wait for a slot event to occur&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;page-break-before:always&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If you have any questions, please feel free to contact us at: http://www.esecutech.com/support or [mailto:support@esecutech.com support@esecutech.com]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| style=&amp;quot;border-style: solid; border-width: 1px;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=&amp;quot;nolines&amp;quot; widths=175px heights=50px caption=&amp;quot;Follow Us!&amp;quot;&amp;gt;&lt;br /&gt;
File:Twitter.png|&#039;&#039;&#039;[https://twitter.com/eSecuTech Twitter]&#039;&#039;&#039;&lt;br /&gt;
File:Facebook.png|&#039;&#039;&#039;[https://www.facebook.com/eSecuTech/ Facebook]&#039;&#039;&#039;&lt;br /&gt;
File:YouTube.png|&#039;&#039;&#039;[https://www.youtube.com/user/esecutech YouTube]&#039;&#039;&#039;&lt;br /&gt;
File:Linked In.png|&#039;&#039;&#039;[https://ca.linkedin.com/in/secutech-solutions-inc-39110b25 LinkedIn]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Footer Logo List.png|left]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b style=&amp;quot;color: #CC0000; font-size: 125%;&amp;quot;&amp;gt;About SecuTech&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SecuTech Solution Inc. is a company specializing in data protection and strong authentication, providing total customer satisfaction in security systems &amp;amp;amp; services for banks, financial institutions &amp;amp;amp; other industries. Having extensive and in-depth experience within the information security market, SecuTech has drawn upon this experience to utilize today&#039;s cutting-edge technologies that are effective against increasingly sophisticated cyber attacks. Enabling enterprises, financial institutions, and government to safely adopt the economic benefits of mobile and cloud computing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;http://www.esecutech.com&amp;lt;br&amp;gt;SecuTech Solution Inc.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;text-align:left;&amp;quot; | Contact Us:&lt;br /&gt;
! &lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| North America&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| China&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Asia-Pacific&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| EMEA&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Address&lt;br /&gt;
| 1250 Boulevard Ren-Lvesque Ouest, #2200, Montreal, QC, H3B 4W8, Canada&lt;br /&gt;
| Level 12, #67 Bei Si Huan Xi Lu, Beijing, China, 100080&lt;br /&gt;
| Suite 5.14, 32 Delhi Rd, North Ryde, NSW, 2113, Australia&lt;br /&gt;
| 4 Cours Bayard 69002 Lyon, France&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Phone&lt;br /&gt;
| +1 -888-259-5825&lt;br /&gt;
| +8610-8288 8834&lt;br /&gt;
| 00612-9888 6185&lt;br /&gt;
| +33-042-600-2810&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Fax&lt;br /&gt;
| +1 -888-259-5825 ext.0&lt;br /&gt;
| +8610-8288 8834&lt;br /&gt;
| 00612-9888 6185&lt;br /&gt;
| +33-042-600-2810&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Email&lt;br /&gt;
| [mailto:info@esecutech.com info@esecutech.com]&lt;br /&gt;
| [mailto:cn@esecutech.com cn@esecutech.com]&lt;br /&gt;
| [mailto:aus@esecutech.com aus@esecutech.com]&lt;br /&gt;
| [mailto:europe@esecutech.com europe@esecutech.com]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Copyright 2012 SecuTech Solution Inc. All rights reserved. Reproduction in whole or in part without written permission from SecuTech is prohibited. SecuTech UniMate and the SecuTech logo are trademarks of SecuTech Inc. Windows and all other trademarks are properties of their respective owners. Features and specifications are subject to change without notice.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:SecuTech Logo.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;[[#top|TOP]]&amp;lt;/b&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=UniMate_USB_PKCS_11_Manual&amp;diff=2804</id>
		<title>UniMate USB PKCS 11 Manual</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=UniMate_USB_PKCS_11_Manual&amp;diff=2804"/>
		<updated>2016-06-30T06:27:36Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:UniMate Manuals]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id = &amp;quot;Table of Contents&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==&amp;lt;b&amp;gt;PKCS#11 Manual&amp;lt;/b&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Version 2.0&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Version&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Date&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1.0&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2015.7&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2.0&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2016.7&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The data and information contained in this document cannot be altered without the express written permission of SecuTech Solution Inc. No part of this document can be reproduced or transmitted for any purpose whatsoever, either by electronic or mechanical means.&lt;br /&gt;
&lt;br /&gt;
The general terms of trade of SecuTech Solution Inc. apply. Diverging agreements must be made in writing.&lt;br /&gt;
&lt;br /&gt;
Copyright SecuTech Solution Inc. All rights reserved.&lt;br /&gt;
&lt;br /&gt;
WINDOWS is a registered trademark of Microsoft Corporation.&lt;br /&gt;
&lt;br /&gt;
The WINDOWS-logo is a registered trademark &amp;lt;sup&amp;gt;(TM)&amp;lt;/sup&amp;gt; of Microsoft Corporation. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Software License&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The software and the enclosed documentation are copyright-protected. By installing the software, you agree to the conditions of the licensing agreement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Licensing Agreement&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SecuTech Solution Inc. (SecuTech for short) gives the buyer the simple, exclusive and non-transferable licensing right to use the software on one individual computer or networked computer system (LAN). Copying and any other form of reproduction of the software in full or in part as well as mixing and linking it with others is prohibited. The buyer is authorized to make one single copy of the software as backup. SecuTech reserves the right to change or improve the software without notice or to replace it with a new development. SecuTech is not obliged to inform the buyer of changes, improvements or new developments or to make these available to him. A legally binding promise of certain qualities is not given. SecuTech is not responsible for damage unless it is the result of deliberate action or negligence on the part of SecuTech or its aids and assistants. SecuTech accepts no responsibility of any kind for indirect, accompanying or subsequent damage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Contact Information&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Web: &amp;lt;/b&amp;gt;http://www.esecutech.com&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Email: &amp;lt;/b&amp;gt;[mailto:sales@eSecuTech.com sales@esecutech.com]&lt;br /&gt;
&lt;br /&gt;
Please Email any comments, suggestions or questions regarding this document or our products to us at: [mailto:sales@eSecuTech.com sales@esecutech.com]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
; CE Attestation of Conformity&lt;br /&gt;
[[File:CE Attestation.png|left|100px|top]]&lt;br /&gt;
: UniMate is in conformity with the protection requirements of CE Directives 89/336/EEC Amending Directive 92/31/EEC. UniMate satisfies the limits and verifying methods: EN55022/CISPR 22 Class B, EN55024: 1998.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
; FCC Standard&lt;br /&gt;
[[File:FCC.png|left|100px|top]]&lt;br /&gt;
: This device is in conformance with Part 15 of the FCC Rules and Regulation for Information Technology Equipment.&lt;br /&gt;
: Operation of this product is subject to the following two conditions: (1) this device may not cause harmful interference, and (2) this device must accept any interference received, including interference that may cause undesired operation.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:USB Logo.png|left|100px|top]] The equipment of UniMate is USBbased.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
; Conformity to ISO 9001&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;2000&lt;br /&gt;
[[File:ISO 9001.png|left|100px|top]]&lt;br /&gt;
: The Quality System of SecuTech Solution Inc., including its implementation, meets the requirements of the standard ISO 9001:2000&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
; ROHS&lt;br /&gt;
[[File:ROHS.png|left|100px|top]]&lt;br /&gt;
: All UniMate products are environmentally friendly with ROHS certificates.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;page-break-before:always&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
PKCS#11 is a Public-Key Cryptography Standard (PKCS) for public key cryptography, developed by RSA Laboratories and includes both algorithm-specific and algorithm-independent implementation standards. It is an industry standard that defines a technology independent programming interface for cryptographic devices such as smart cards and PCMCIA cards. This standard specifies an application program interface&lt;br /&gt;
(API) called Cryptoki (Cryptographic Token Interface), to devices, either physical or virtual, which hold cryptographic information (keys and other data) and perform cryptographic functions. This API is used across many platforms and is powerful enough for most security-related applications. SecuTech uses PKCS#11 as the main API for UniMate programming. UniMate supports PKCS#11 applications via UniMate middleware. &lt;br /&gt;
&lt;br /&gt;
The following files are needed when developing UniMate PKCS#11 applications: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Files&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Path&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Cryptoki.h&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Provided by RSA&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;pkcs11.h&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Provided by RSA&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Pkcs11f.h&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Provided by RSA&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Pkcs11t.h/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Provided by RSA&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;UniMateP11.dll / UniMateP11.so&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;SDK\PKCS#11\Libraries\&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The PKCS#11 module of UniMate supports the creation of the following objects: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Object Class&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKO_DATA&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;For data structures defined by the application&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKO_SECRET_KEY&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;For symmetric keys&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKO_CERTIFICATE&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;For X.509 v3 certificates&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKO_PUBLIC_KEY&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;For RSA/DSA public key&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKO_PRIVATE_KEY&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;For RSA/DSA private key&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All the objects listed in the above table can be created with UniMate. The secure storage in UniMate is limited, so objects can only be created in memory but can NOT be stored in the UniMate secure storage. Only encryption keys and permanently present data need to be saved in the UniMate.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;page-break-before:always&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Supported PKCS#11 Algorithms and API== &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; &amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Algorithm&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Encrypt/Decrypt&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Sign/Verify&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Digest&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Generate key/pair&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RSA_PKCS_KEY_PAIR_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RSA_PKCS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DSA_KEY_PAIR_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DSA&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RC2_KEY_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RC2_ECB&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RC2_CBC&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RC2_CBC_PAD&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RC4_KEY_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RC4&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES_KEY_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES_ECB&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES_CBC&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES3_KEY_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES3_ECB&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES3_CBC&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES3_CBC_PAD&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_MD2&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_MD5&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_SHA_1&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DH_PKCS_KEY_PAIR_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_AES_KEY_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_AES_CBC&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_AES_ECB&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#10004;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The table below lists all of the key sizes in the UniMate PKCS#11 library: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Algorithms&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Key Sizes&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RSA_PKCS_KEY_PAIR_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1024bits, 2048bits&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES_KEY_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;64 bits&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES3_KEY_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;192 bits&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_AES_KEY_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;128 &amp;amp;#65374; 256 bits&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;page-break-before:always&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UniMate PKCS#11 Function Library==&lt;br /&gt;
The UniMate PKCS#11 library only implements the standard PKCS#11 APIs. Any other APIs beyond PKCS#11 are not implemented. If such an API is called, an error return code such as CKR_FUNCTION_NO_SUPPORT will be returned. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Category&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Supported&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;4&amp;quot;&amp;gt;&amp;lt;b&amp;gt;General Purpose Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Initialize&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Finalize&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetInfo&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetFunctionList&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;9&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Slot and UniMate Management&amp;lt;br&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetSlotList&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetSlotInfo&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetUniMateInfo&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_WaitForSlotEvent&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetMechanismList&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetMechanismInfo&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_InitUniMate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_InitPIN&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SetPIN&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;8&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Session Management Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_OpenSession&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_CloseSession&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_CloseAllSessions&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetSessionInfo&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetOperationState&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SetOperationState&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Login&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Logout&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;9&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Object Management Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_CreateObject&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_CopyObject&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DestroyObject&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetObjectSize&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetAttributeValue&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SetAttributeValue&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_FindObjectsInit&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_FindObjects&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_FindObjectsFinal&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;4&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Encryption Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_EncryptInit&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Encrypt&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_EncryptUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_EncryptFinal&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;page-break-before:always&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Category&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Supported&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;4&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Decryption Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DecryptInit&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Decrypt&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DecryptUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DecryptFinal&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Message Digesting Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DigestInit&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Digest&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DigestUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DigestKey&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DigestFinal&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;6&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Signing and Hashing Function&amp;lt;br&amp;gt;(MAC)&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SignInit&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Sign&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SignUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SignFinal&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SignRecoverInit&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SignRecover&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;6&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Functions for Verifying&amp;lt;br&amp;gt;Signatures and Hashing (MAC)&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_VerifyInit&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Verify&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_VerifyUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_VerifyFinal&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_VerifyRecoverInit&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_VerifyRecover&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;4&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Dual-Purpose Cryptographic&amp;lt;br&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DigestEncryptUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DecryptDigestUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SignEncryptUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DecryptVerifyUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Key Management Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GenerateKey&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GenerateKeyPair&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_WrapKey&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_UnwrapKey&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DeriveKey&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Random Number Generation&amp;lt;br&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SeedRandom&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GenerateRandom&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Callback Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;page-break-before:always&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Samples==&lt;br /&gt;
All the samples are implemented in C, and they all support PKCS#11 standard v.2.20. The samples are provided in: &amp;lt;code&amp;gt;SDK\PKCS#11\Sample&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Initialize&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize the PKCS#11 library&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetSlotList&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Get the slot list&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_OpenSession&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Open a session&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Login&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Log in&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_InitPIN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize user PIN&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Logout&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Log out&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_FindObjectsInit&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize the search for any object&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_FindObjects&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Find the objects which match&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_FindObjectsFinal&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Cleanup the search&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_CloseSession&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Close a session&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetAttributeValue&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Get the attribute value&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Finalize&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Close PKCS #11 library&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GenerateKeyPair&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Generate a new public/private key pair&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GenerateKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Generate a secret key&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_WrapKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Wrap (encrypt) a key&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_UnwrapKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Unwrap (decrypt) a key&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_DeriveKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Derive a key from a base key&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_SetPIN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Modify the current users PIN&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetTokenInfo&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Get the slot information&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_SignInit&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize a signature&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Sign&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Sign data&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_SignUpdate&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Continue a multiple-part signature&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_SignFinal&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Finish a multiple-part signature&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_SignRecoverInit&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize a signature&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_SignRecover&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Sign data, where the data can be recovered from the signature&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_DestroyObject&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Destroy an object&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;page-break-before:always&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetFunctionList&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Return the function list&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetMechanismList&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Obtain a list of mechanism types&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetMechanismInfo&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Obtain information about a particular mechanism possibly supported by a token&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_InitToken&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize a token&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetSessionInfo&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Obtain information about the session&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetOperationState&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Obtain the cryptographic state of a session&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_SetOperationState&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Restore the cryptographic state of a session&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_EncryptInit&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize an encryption operation&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Encrypt&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Encrypt single-part data&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_EncryptUpdate&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Continue a multiple-part encryption&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_EncryptFinal&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Finish a multiple-part encryption operation&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_DecryptInit&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize a decryption&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Decrypt&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Decrypt encrypted data in a single part&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_DecryptUpdate&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Continue a multiple-part decryption&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_DecryptFinal&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Finish a multiple-part decryption&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_DigestInit&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize a message-digesting operation.&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Digest&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Digest data in a single part&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_DigestUpdate&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Continue a multiple-part message-digesting&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_DigestFinal&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Finish a multiple-part message-digesting&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_VerifyInit&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize a verification&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Verify&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Verify a signature&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_VerifyUpdate&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Continue a multiple-part verification&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_VerifyFinal&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Finish a multiple-part verification&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_VerifyRecoverInit&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize a signature verification&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_VerifyRecover&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Verify a signature, where the data is recovered from the signature&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_SeedRandom&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Mix additional seed material into the token&#039;s random number generator&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GenerateRandom&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Generate random data&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetFunctionStatus&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Obtain an updated status of a function running in parallel with an application&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_CancelFunction&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Cancel a function&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_WaitForSlotEvent&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Wait for a slot event to occur&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;page-break-before:always&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If you have any questions, please feel free to contact us at: http://www.esecutech.com/support or [mailto:support@esecutech.com support@esecutech.com]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| style=&amp;quot;border-style: solid; border-width: 1px;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=&amp;quot;nolines&amp;quot; widths=175px heights=50px caption=&amp;quot;Follow Us!&amp;quot;&amp;gt;&lt;br /&gt;
File:Twitter.png|&#039;&#039;&#039;[https://twitter.com/eSecuTech Twitter]&#039;&#039;&#039;&lt;br /&gt;
File:Facebook.png|&#039;&#039;&#039;[https://www.facebook.com/eSecuTech/ Facebook]&#039;&#039;&#039;&lt;br /&gt;
File:YouTube.png|&#039;&#039;&#039;[https://www.youtube.com/user/esecutech YouTube]&#039;&#039;&#039;&lt;br /&gt;
File:Linked In.png|&#039;&#039;&#039;[https://ca.linkedin.com/in/secutech-solutions-inc-39110b25 LinkedIn]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Footer Logo List.png|left]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b style=&amp;quot;color: #CC0000; font-size: 125%;&amp;quot;&amp;gt;About SecuTech&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SecuTech Solution Inc. is a company specializing in data protection and strong authentication, providing total customer satisfaction in security systems &amp;amp;amp; services for banks, financial institutions &amp;amp;amp; other industries. Having extensive and in-depth experience within the information security market, SecuTech has drawn upon this experience to utilize today&#039;s cutting-edge technologies that are effective against increasingly sophisticated cyber attacks. Enabling enterprises, financial institutions, and government to safely adopt the economic benefits of mobile and cloud computing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;http://www.esecutech.com&amp;lt;br&amp;gt;SecuTech Solution Inc.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;text-align:left;&amp;quot; | Contact Us:&lt;br /&gt;
! &lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| North America&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| China&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Asia-Pacific&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| EMEA&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Address&lt;br /&gt;
| 1250 Boulevard Ren-Lvesque Ouest, #2200, Montreal, QC, H3B 4W8, Canada&lt;br /&gt;
| Level 12, #67 Bei Si Huan Xi Lu, Beijing, China, 100080&lt;br /&gt;
| Suite 5.14, 32 Delhi Rd, North Ryde, NSW, 2113, Australia&lt;br /&gt;
| 4 Cours Bayard 69002 Lyon, France&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Phone&lt;br /&gt;
| +1 -888-259-5825&lt;br /&gt;
| +8610-8288 8834&lt;br /&gt;
| 00612-9888 6185&lt;br /&gt;
| +33-042-600-2810&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Fax&lt;br /&gt;
| +1 -888-259-5825 ext.0&lt;br /&gt;
| +8610-8288 8834&lt;br /&gt;
| 00612-9888 6185&lt;br /&gt;
| +33-042-600-2810&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Email&lt;br /&gt;
| [mailto:info@esecutech.com info@esecutech.com]&lt;br /&gt;
| [mailto:cn@esecutech.com cn@esecutech.com]&lt;br /&gt;
| [mailto:aus@esecutech.com aus@esecutech.com]&lt;br /&gt;
| [mailto:europe@esecutech.com europe@esecutech.com]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Copyright 2012 SecuTech Solution Inc. All rights reserved. Reproduction in whole or in part without written permission from SecuTech is prohibited. SecuTech UniMate and the SecuTech logo are trademarks of SecuTech Inc. Windows and all other trademarks are properties of their respective owners. Features and specifications are subject to change without notice.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:SecuTech Logo.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;[[#top|TOP]]&amp;lt;/b&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=UniMate_USB_CSP_Manual&amp;diff=2793</id>
		<title>UniMate USB CSP Manual</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=UniMate_USB_CSP_Manual&amp;diff=2793"/>
		<updated>2016-06-30T06:24:44Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:UniMate Manuals]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id = &amp;quot;Table of Contents&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==&amp;lt;b&amp;gt;CSP Manual&amp;lt;/b&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Version 2.0&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Version&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Date&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1.0&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2015.7&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2.0&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2016.7&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The data and information contained in this document cannot be altered without the express written permission of SecuTech Solution Inc. No part of this document can be reproduced or transmitted for any purpose whatsoever, either by electronic or mechanical means.&lt;br /&gt;
&lt;br /&gt;
The general terms of trade of SecuTech Solution Inc. apply. Diverging agreements must be made in writing.&lt;br /&gt;
&lt;br /&gt;
Copyright SecuTech Solution Inc. All rights reserved.&lt;br /&gt;
&lt;br /&gt;
WINDOWS is a registered trademark of Microsoft Corporation.&lt;br /&gt;
&lt;br /&gt;
The WINDOWS-logo is a registered trademark &amp;lt;sup&amp;gt;(TM)&amp;lt;/sup&amp;gt; of Microsoft Corporation. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Software License&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The software and the enclosed documentation are copyright-protected. By installing the software, you agree to the conditions of the licensing agreement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Licensing Agreement&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SecuTech Solution Inc. (SecuTech for short) gives the buyer the simple, exclusive and non-transferable licensing right to use the software on one individual computer or networked computer system (LAN). Copying and any other form of reproduction of the software in full or in part as well as mixing and linking it with others is prohibited. The buyer is authorized to make one single copy of the software as backup. SecuTech reserves the right to change or improve the software without notice or to replace it with a new development. SecuTech is not obliged to inform the buyer of changes, improvements or new developments or to make these available to him. A legally binding promise of certain qualities is not given. SecuTech is not responsible for damage unless it is the result of deliberate action or negligence on the part of SecuTech or its aids and assistants. SecuTech accepts no responsibility of any kind for indirect, accompanying or subsequent damage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Contact Information&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Web: &amp;lt;/b&amp;gt;http://www.esecutech.com&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Email: &amp;lt;/b&amp;gt; [mailto:sales@eSecuTech.com sales@esecutech.com]&lt;br /&gt;
&lt;br /&gt;
Please Email any comments, suggestions or questions regarding this document or our products to us at: [mailto:sales@eSecuTech.com sales@esecutech.com] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
; CE Attestation of Conformity&lt;br /&gt;
[[File:CE Attestation.png|left|100px|top]]&lt;br /&gt;
: UniMate is in conformity with the protection requirements of CE Directives 89/336/EEC Amending Directive 92/31/EEC. UniMate satisfies the limits and verifying methods: EN55022/CISPR 22 Class B, EN55024: 1998.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
; FCC Standard&lt;br /&gt;
[[File:FCC.png|left|100px|top]]&lt;br /&gt;
: This device is in conformance with Part 15 of the FCC Rules and Regulation for Information Technology Equipment.&lt;br /&gt;
: Operation of this product is subject to the following two conditions: (1) this device may not cause harmful interference, and (2) this device must accept any interference received, including interference that may cause undesired operation.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:USB Logo.png|left|100px|top]] The equipment of UniMate is USBbased.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
; Conformity to ISO 9001&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;2000&lt;br /&gt;
[[File:ISO 9001.png|left|100px|top]]&lt;br /&gt;
: The Quality System of SecuTech Solution Inc., including its implementation, meets the requirements of the standard ISO 9001:2000&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
; ROHS&lt;br /&gt;
[[File:ROHS.png|left|100px|top]]&lt;br /&gt;
: All UniMate products are environmentally friendly with ROHS certificates.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;page-break-before:always&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
CAPI (Cryptographic Application Programming Interface), developed by Microsoft as part of Microsoft Windows, is an interface to a library of functions software developers can call upon for security and cryptography services. It is intended for use by developers of applications for MS Windows platforms.&lt;br /&gt;
&lt;br /&gt;
CAPI allows multiple cryptographic service providers (CSP) to coexist on the same computer and to be used in the same application. It is also possible to associate a CSP with a particular smartcard, so that smartcard-enabled Windows applications will call the correct CSP. MS Windows contains many helper functions that application developers may use to simplify code when working with cryptographic functions or with complicated data structures (such as certificates).&lt;br /&gt;
&lt;br /&gt;
Choosing which API to use when developing applications is dependent on the needs of the particular application. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==Algorithms and APIs==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr &amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Connection functions&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptAcquireContext&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Create a context and initialize access to CSP which must be specified&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptReleaseContext&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Release the context created in CryptAcquireContext and other resources&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptGetProvParam&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Return information related to CSP&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptSetProvParam&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Set parameters of CSP&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr &amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Generate and exchange key functions&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptGenKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Generate key or key pair&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptDeriveKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Derive a session key from a data hash and guarantee the generated key difference&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptSetKeyParam&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Set key attributes&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptGetKeyParam&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Retrieves the data that controls the operations of the key&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptExportKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Export key from container&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptImportKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Import the key to CSP container&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptDestroyKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Release key handle, after which the handle will be invalid and cannot be accessed&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptDuplicateKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Create a duplicate of the key&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptGenRandom&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Generate random data&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptGetUserKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Gets a handle to a permanent user key&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr &amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Data encryption function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptDecrypt&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Decrypt document&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptEncrypt&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Encrypt document&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptCreateHash&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Returns a handle to a created hashing object and initializes it&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptDestroyHash&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Delete hashing object handle&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptDuplicateHash&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Duplicates a hashing object, including state, up to when the duplication is done&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptHashData&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Hash input data&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptGetHashParam&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Get the hash value and data that control the operations of the hash object&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptHashSessionKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Hash a session key without revealing the key value to the application&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptSetHashParam&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Set the attributes of a hash object, such as specific algorithm or initial contents&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptSignHash&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Sign a hash object&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptVerifySignature&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Verifies the signature of a hash object&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;page-break-before:always&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Samples== &lt;br /&gt;
All the samples are implemented in the C++ language, and they all support the MS-CAPI standard. We provide the samples below, located in path: &amp;lt;code&amp;gt;SDK\CSP(MS-CAPI)\Sample&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Files&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Algorithm&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;algorithmTest.cpp &amp;lt;br&amp;gt; algorithmTest.h&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;This sample demonstrates operations on symmetric keys, hashing and asymmetric keys.&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Container&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;kcsTest.cpp &amp;lt;br&amp;gt; kcsTest.h&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;This sample demonstrates enumeration, deletion and creation of files.&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Certificates&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;listcerts.cpp &amp;lt;br&amp;gt; listcerts.h&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;This sample demonstrates operations on a certificate list.&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
===Algorithm samples=== &lt;br /&gt;
&amp;lt;b&amp;gt;These samples include 3 functions:&amp;lt;/b&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;int GenerateAlgTest(ULONG ulALG)&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;int DeviceAlgTest(ULONG ulALG)&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;int RstTest(ULONG version)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;GenerateAlgTest is used for DES key generation, encryption and decryption operations:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Steps&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1. Create a container&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptAcquireContext&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2. Retrieve parameters that govern the operations of a CSP&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptGetProvParam&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;3. Generate a key&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptGenKey&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;4. Data Encryption&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptEncrypt&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;5. Data Decryption&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptDecrypt&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;DeviceAlgTest is used for key derivation, data encryption and decryption operations:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Steps&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1. Create a container&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptAcquireContext&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2. Initiate the hashing of a stream of data&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptCreateHash&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;3. Add data to a specified hash object&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptHashData&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;4. Derive a key&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptDeriveKey&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;5. Data Encryption&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptEncrypt&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;6. Data Decryption&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptDecrypt&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;RstTest is used for RSA key generation, data encryption and decryption operations:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Steps&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1. Create a container&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptAcquireContext&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2. Generate a key&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptGenKey&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;3. Data Encryption&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptEncrypt&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;4. Data Decryption&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptDecrypt&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
===Container sample=== &lt;br /&gt;
This sample demonstrates how to enumerate, add and delete containers with the function - &amp;lt;code&amp;gt;int kcsTest(ULONG ulActive)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;For enumerating a container: &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Steps&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1. Acquire a &amp;amp;quot;VERIFYCONTEXT&amp;amp;quot; handle&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptAcquireContext&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2. Enumerate through the key containers&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptGetProvParam&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;3. Acquire a handle to the key container found&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptAcquireContext&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;4. Try to get a handle to the key pair&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptGetUserKey&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;5. Get key permissions&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptGetKeyParam&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;6. Display key permissions&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;For adding a container:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Steps&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1. Check whether the container already exists&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptAcquireContext&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2. If not, create a container&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptAcquireContext&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;For deleting a container:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Steps&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1. Check whether the container already exists&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptAcquireContext&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2. If it does, release the handle to the context&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptReleaseContext&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;3. Delete the container&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptAcquireContext&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===List Certificate sample=== &lt;br /&gt;
This sample demonstrates how to enumerate certificates with the function - &amp;lt;code&amp;gt;int listcerts(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;For enumerating certificates:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Steps&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1. Open a handle to the certificate store: MY\\UniMateStore&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CertOpenStore&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2. Go over each and every certificate within the certificate store&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CertEnumCertificatesInStore&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;3. Get and display the subject name from the certificate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CertGetNameString&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;page-break-before:always&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PKI package== &lt;br /&gt;
UniMate provides a PKI package for developers and end users respectively. The package provides the UniMate PKI installation, if you want to use the PKI package, you must install it. &lt;br /&gt;
&lt;br /&gt;
===Installation=== &lt;br /&gt;
The UniMate PKI package can be found in the redists folder of the SDK. &lt;br /&gt;
&lt;br /&gt;
For the developer package, double click the icon to run PKI package.exe, and follow the instructions below:&lt;br /&gt;
&lt;br /&gt;
Click Install.&lt;br /&gt;
&lt;br /&gt;
[[File:UniMate PKI Setup.PNG]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Afterwards, click Finish to close the setup wizard.&lt;br /&gt;
&lt;br /&gt;
[[File:UniMate PKI Finish.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Uninstallation=== &lt;br /&gt;
To uninstall the software, select &amp;lt;code&amp;gt;Start Menu -- All apps -- UniMate Drive\PKI package\uninstall&amp;lt;/code&amp;gt; (on Windows 8/10 you may need to right-click the file in the folder, mouse over More and select Open file location). Otherwise, by default the uninstaller is located in: &amp;lt;code&amp;gt;C:\Users\&amp;amp;lt;your_username&amp;amp;gt;\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\UniMate Drive\PKI package&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Click OK and restart your computer to finish the uninstallation.&lt;br /&gt;
&lt;br /&gt;
[[File:UniMate PKI Uninstall.PNG]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;page-break-before:always&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
If you have any questions, please feel free to contact us at: http://www.esecutech.com/support or [mailto:support@esecutech.com support@esecutech.com]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| style=&amp;quot;border-style: solid; border-width: 1px;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=&amp;quot;nolines&amp;quot; widths=175px heights=50px caption=&amp;quot;Follow Us!&amp;quot;&amp;gt;&lt;br /&gt;
File:Twitter.png|&#039;&#039;&#039;[https://twitter.com/eSecuTech Twitter]&#039;&#039;&#039;&lt;br /&gt;
File:Facebook.png|&#039;&#039;&#039;[https://www.facebook.com/eSecuTech/ Facebook]&#039;&#039;&#039;&lt;br /&gt;
File:YouTube.png|&#039;&#039;&#039;[https://www.youtube.com/user/esecutech YouTube]&#039;&#039;&#039;&lt;br /&gt;
File:Linked In.png|&#039;&#039;&#039;[https://ca.linkedin.com/in/secutech-solutions-inc-39110b25 LinkedIn]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Footer Logo List.png|left]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b style=&amp;quot;color: #CC0000; font-size: 125%;&amp;quot;&amp;gt;About SecuTech&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SecuTech Solution Inc. is a company specializing in data protection and strong authentication, providing total customer satisfaction in security systems &amp;amp;amp; services for banks, financial institutions &amp;amp;amp; other industries. Having extensive and in-depth experience within the information security market, SecuTech has drawn upon this experience to utilize today&#039;s cutting-edge technologies that are effective against increasingly sophisticated cyber attacks. Enabling enterprises, financial institutions, and government to safely adopt the economic benefits of mobile and cloud computing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;http://www.esecutech.com&amp;lt;br&amp;gt;SecuTech Solution Inc.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;text-align:left;&amp;quot; | Contact Us:&lt;br /&gt;
! &lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| North America&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| China&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Asia-Pacific&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| EMEA&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Address&lt;br /&gt;
| 1250 Boulevard Ren-Lvesque Ouest, #2200, Montreal, QC, H3B 4W8, Canada&lt;br /&gt;
| Level 12, #67 Bei Si Huan Xi Lu, Beijing, China, 100080&lt;br /&gt;
| Suite 5.14, 32 Delhi Rd, North Ryde, NSW, 2113, Australia&lt;br /&gt;
| 4 Cours Bayard 69002 Lyon, France&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Phone&lt;br /&gt;
| +1 -888-259-5825&lt;br /&gt;
| +8610-8288 8834&lt;br /&gt;
| 00612-9888 6185&lt;br /&gt;
| +33-042-600-2810&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Fax&lt;br /&gt;
| +1 -888-259-5825 ext.0&lt;br /&gt;
| +8610-8288 8834&lt;br /&gt;
| 00612-9888 6185&lt;br /&gt;
| +33-042-600-2810&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Email&lt;br /&gt;
| [mailto:info@esecutech.com info@esecutech.com]&lt;br /&gt;
| [mailto:cn@esecutech.com cn@esecutech.com]&lt;br /&gt;
| [mailto:aus@esecutech.com aus@esecutech.com]&lt;br /&gt;
| [mailto:europe@esecutech.com europe@esecutech.com]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Copyright 2012 SecuTech Solution Inc. All rights reserved. Reproduction in whole or in part without written permission from SecuTech is prohibited. SecuTech UniMate and the SecuTech logo are trademarks of SecuTech Inc. Windows and all other trademarks are properties of their respective owners. Features and specifications are subject to change without notice.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:SecuTech Logo.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;[[#top|TOP]]&amp;lt;/b&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=UniMate_USB_User_Manual&amp;diff=2695</id>
		<title>UniMate USB User Manual</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=UniMate_USB_User_Manual&amp;diff=2695"/>
		<updated>2016-06-30T03:29:50Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:UniMate Manuals]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id = &amp;quot;Table of Contents&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==&amp;lt;b&amp;gt;UniMate Manual&amp;lt;/b&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Version 2.0&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Version&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Date&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1.0&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2015.7&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2.0&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2016.7&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The data and information contained in this document cannot be altered without the express written permission of SecuTech Solution Inc. No part of this document can be reproduced or transmitted for any purpose whatsoever, either by electronic or mechanical means.&lt;br /&gt;
&lt;br /&gt;
The general terms of trade of SecuTech Solution Inc. apply. Diverging agreements must be made in writing.&lt;br /&gt;
&lt;br /&gt;
Copyright SecuTech Solution Inc. All rights reserved.&lt;br /&gt;
&lt;br /&gt;
WINDOWS is a registered trademark of Microsoft Corporation.&lt;br /&gt;
&lt;br /&gt;
The WINDOWS-logo is a registered trademark &amp;lt;sup&amp;gt;(TM)&amp;lt;/sup&amp;gt; of Microsoft Corporation. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Software License&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The software and the enclosed documentation are copyright-protected. By installing the software, you agree to the conditions of the licensing agreement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Licensing Agreement&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SecuTech Solution Inc. (SecuTech for short) gives the buyer the simple, exclusive and non-transferable licensing right to use the software on one individual computer or networked computer system (LAN). Copying and any other form of reproduction of the software in full or in part as well as mixing and linking it with others is prohibited. The buyer is authorized to make one single copy of the software as backup. SecuTech reserves the right to change or improve the software without notice or to replace it with a new development. SecuTech is not obliged to inform the buyer of changes, improvements or new developments or to make these available to him. A legally binding promise of certain qualities is not given. SecuTech is not responsible for damage unless it is the result of deliberate action or negligence on the part of SecuTech or its aids and assistants. SecuTech accepts no responsibility of any kind for indirect, accompanying or subsequent damage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Contact Information&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Web: &amp;lt;/b&amp;gt;http://www.esecutech.com&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Email: &amp;lt;/b&amp;gt;[mailto:sales@eSecuTech.com sales@esecutech.com]&lt;br /&gt;
&lt;br /&gt;
Please Email any comments, suggestions or questions regarding this document or our products to us at: [mailto:sales@eSecuTech.com sales@esecutech.com]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
; CE Attestation of Conformity&lt;br /&gt;
[[File:CE Attestation.png|left|100px|top]]&lt;br /&gt;
: UniMate is in conformity with the protection requirements of CE Directives 89/336/EEC Amending Directive 92/31/EEC. UniMate satisfies the limits and verifying methods: EN55022/CISPR 22 Class B, EN55024: 1998.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
; FCC Standard&lt;br /&gt;
[[File:FCC.png|left|100px|top]]&lt;br /&gt;
: This device is in conformance with Part 15 of the FCC Rules and Regulation for Information Technology Equipment.&lt;br /&gt;
: Operation of this product is subject to the following two conditions: (1) this device may not cause harmful interference, and (2) this device must accept any interference received, including interference that may cause undesired operation.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:USB Logo.png|left|100px|top]] The equipment of UniMate is USBbased.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
; Conformity to ISO 9001&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;2000&lt;br /&gt;
[[File:ISO 9001.png|left|100px|top]]&lt;br /&gt;
: The Quality System of SecuTech Solution Inc., including its implementation, meets the requirements of the standard ISO 9001:2000&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
; ROHS&lt;br /&gt;
[[File:ROHS.png|left|100px|top]]&lt;br /&gt;
: All UniMate products are environmentally friendly with ROHS certificates.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
The UniMate device, hereinafter referred to as UniMate, is a mobile authenticator and information security PKI product based on CCID technology (except UniMate Drive) and is a secure container for digital credentials. An advanced processor and secure memory is built into the UniMate device to provide security for exchanging, storing and handling electronic information.&lt;br /&gt;
&lt;br /&gt;
UniMate has achieved an effective rights management and provides a highly-secure file system. The built-in processor achieves fast and efficient information processing.&lt;br /&gt;
&lt;br /&gt;
UniMate supports PKCS#11, CSP and Value Added APIs (CD-ROM and Partition). The abundant samples provided in the SDK help bring ease to integration.&lt;br /&gt;
&lt;br /&gt;
UniMate supports iOS, Android and a multitude of other devices through either a USB port using the CCID protocol or 3.5mm TRRS audio jack.&lt;br /&gt;
&lt;br /&gt;
==UniMate Features==&lt;br /&gt;
&lt;br /&gt;
;Universal features of UniMate:&lt;br /&gt;
*Globally unique hardware ID.&lt;br /&gt;
*Customizable software ID.&lt;br /&gt;
*Smart card based.&lt;br /&gt;
*On-board encryption.&lt;br /&gt;
*Two levels of PIN management mechanism.&lt;br /&gt;
*A secure file system.&lt;br /&gt;
*Up to 64KB of memory.&lt;br /&gt;
*Stylish and cute case.&lt;br /&gt;
*Lead free.&lt;br /&gt;
&lt;br /&gt;
===UniMate Drive===&lt;br /&gt;
&lt;br /&gt;
The UniMate Drive is a mobile authenticator and information security PKI product which can store key certificates. UniMate Drive includes storage types: U-Disk and CD-ROM. You can set up the storage size using the Partition tool and the Value Added library, ISO files can also be loaded into CD-ROM. You can also format the U-Disk and copy files into it, and so on. The total capacity of the UniMate Drive is between 2 to 32 GB, you can partition it as you wish. UniMate Drive supports PKCS#11, CSP and Value Added APIs (CD-ROM and Partition).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=425px&amp;gt; &lt;br /&gt;
UniMate Drive Architecture.jpeg&lt;br /&gt;
UniMate Drive Architecture Win.jpeg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UniMate Flex===&lt;br /&gt;
UniMate Flex is an interactive hybrid mobile authentication token designed particularly for use in banking. The two-factor authentication device makes use of a high-performance smart card, a LED display and confirmation buttons to verify the secondary form of authentication. Users can visually confirm transaction information on-screen and press the confirmation button to approve only authorized transactions.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; UniMate Flex features PKI based digital certificate and private key storage, as well as on-board encryption, with the ability to generate and store RSA secret key pairs within the key.&lt;br /&gt;
&lt;br /&gt;
[[File:UniMate Collage.jpeg|center|675px|top]]&lt;br /&gt;
&lt;br /&gt;
===UniMate USB===&lt;br /&gt;
&lt;br /&gt;
[[File:UniMate USB Rot.png|left|95px|top]]&lt;br /&gt;
[[File:UniMate USB Collage Rot.png|right|375px|top]]&lt;br /&gt;
&lt;br /&gt;
UniMate USB is a FIPS 140-2 algorithm certified smart card USB authentication token, and utilizes smart card technology for strong authentication. Smart card technology allows for highly robust authentication and verification solutions.&lt;br /&gt;
&lt;br /&gt;
; Organizational Use&lt;br /&gt;
----&lt;br /&gt;
; Enhanced Business&lt;br /&gt;
: With secure access in place, organizations can enable business through network connectivity and online services anytime, anywhere, with confidence.&lt;br /&gt;
; Security&lt;br /&gt;
: UniMate USB provides robust protection of sensitive business data from unauthorized access.&lt;br /&gt;
; Cost Effective&lt;br /&gt;
: UniMate USB reduces password administration costs and losses from data breaches, and provides multiple flexible solutions in one platform.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
; Personal Use&lt;br /&gt;
----&lt;br /&gt;
; Identity Protection&lt;br /&gt;
: UniMate USB provides individuals with a secure digital identity protected from theft and abuse.&lt;br /&gt;
; Portability and Convenience&lt;br /&gt;
: UniMate USB enables users to access their credentials securely wherever they go, whenever they want.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:FLEX Architecture *nix.jpeg|375px]]&lt;br /&gt;
[[File:FLEX Architecture Mobile.jpeg|375px]]&lt;br /&gt;
[[File:FLEX Architecture Win.jpeg|375px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Table of Contents|CONTENTS]]&lt;br /&gt;
&lt;br /&gt;
==Security==&lt;br /&gt;
&lt;br /&gt;
Security is the most important part in the UniMate system, which involves an identification and verification method, including the file access permission control mechanism inside the UniMate, a confidential access system. This security attribute is changed based on the current state of the device, when the card is reset or after the UniMate has finished some commands.&lt;br /&gt;
&lt;br /&gt;
===PIN===&lt;br /&gt;
The following table describes different key types and use.&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;PIN Type&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Use&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;User PIN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Directory level authentication.&amp;lt;br&amp;gt;Control different users&#039; read and write permissions.&amp;lt;br&amp;gt;Generate key pairs.&amp;lt;br&amp;gt;Certificate management.&amp;lt;br&amp;gt;Sign and so on.&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Admin PIN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Ensures the security during the card initialization&amp;lt;br&amp;gt;OR is used to reset User PIN/unlock a user.&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;User PIN:&amp;lt;/b&amp;gt; a personal identification number which is firstly hashed and then stored in the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Admin PIN:&amp;lt;/b&amp;gt; a console identification number.&lt;br /&gt;
&lt;br /&gt;
===Factory default settings===&lt;br /&gt;
&lt;br /&gt;
The default User PIN is 11111111 and the default Admin PIN is 00000000.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Table of Contents|CONTENTS]]&lt;br /&gt;
&lt;br /&gt;
==SDK==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Components&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CSP (MS-CAPI)&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Declaration of standardized identifiers and interface of CSP&amp;lt;br&amp;gt;CSP libraries&amp;lt;br&amp;gt;Redists/PKI package.exe&amp;lt;br&amp;gt;Samples for CSP&amp;lt;br&amp;gt;CSP Manual.pdf&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Documents&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Manual.pdf (UniMate manual)&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;PKCS#11&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Declaration of the standardized identifiers and interface of PKCS&amp;lt;br&amp;gt;PKCS libraries&amp;lt;br&amp;gt;Samples for PKCS&amp;lt;br&amp;gt;PKCS#11.pdf&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Utilities&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Utilities Installation (Console setup.exe, Monitor setup.exe)&amp;lt;br&amp;gt;Utilities Manual&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Value Added API&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Declaration of the standardized identifiers and interface of Value Added API&amp;lt;br&amp;gt;Value Added API libraries&amp;lt;br&amp;gt;Samples for Value Added API&amp;lt;br&amp;gt;API Manual.pdf&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Quick Start.pdf&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Product overview&amp;lt;br&amp;gt;Software introduction&amp;lt;br&amp;gt;Utilities introduction&amp;lt;br&amp;gt;Factory default settings&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;ReadMe.txt&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Changelog&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Table of Contents|CONTENTS]]&lt;br /&gt;
&lt;br /&gt;
==Applying Digital Certificates==&lt;br /&gt;
&lt;br /&gt;
UniMate provides a perfect container for digital certificates, supporting X.509 digital certificates. The UniMate PKI package is middleware that provides digital certificate usage. &lt;br /&gt;
&lt;br /&gt;
A digital certificate and authenticated access is needed to use the UniMate, as without it, any operation on the UniMate is forbidden. In this part, we will introduce how to apply digital certificates. We will take the VeriSign certificate and Microsoft Certificate as examples.&lt;br /&gt;
&lt;br /&gt;
===Applying Microsoft Certificates===&lt;br /&gt;
&lt;br /&gt;
[[File:Cert Address.jpeg|500px]]&lt;br /&gt;
&lt;br /&gt;
Insert a UniMate into the USB port first, and start IE to open the Microsoft certificate application page. This is the home page of the certificate application site. Firstly, you should click Request a certificate.&lt;br /&gt;
&lt;br /&gt;
[[File:CertWelcome.png|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
And then, select advanced certificate request.&lt;br /&gt;
&lt;br /&gt;
[[File:CertRequestCrop.png|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
On the page of Advanced Certificate Request, select Create and submit a request to this CA.&lt;br /&gt;
&lt;br /&gt;
[[File:AdvCertRequestCrop.png|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For a certificate template, select Smartcard User in the list; for CSP, select UniMateDRIVE CSP v2.0.&lt;br /&gt;
&lt;br /&gt;
[[File:AdvCertRequestOptions.png|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Then, a window will appear to ask you to type in your UniMates PIN. Click OK. The system will generate a certificate automatically.&lt;br /&gt;
&lt;br /&gt;
[[File:User Pin.png|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Click Install this certificate for installation.&lt;br /&gt;
&lt;br /&gt;
[[File:Cert Issued Crop.jpeg|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
After installation, the system will prompt that the certificate has been successfully installed.&lt;br /&gt;
&lt;br /&gt;
[[File:Cert Installed Crop.jpeg|500px]]&lt;br /&gt;
&lt;br /&gt;
===Using Digital Certificates===&lt;br /&gt;
&lt;br /&gt;
SecuTech provides a series of solutions about the use of digital certificates, in the aspects of IE, Outlook, PDF, Office, and so on.&lt;br /&gt;
&lt;br /&gt;
For detailed instructions about this, please download the related integration guides from www.eSecuTech.com&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Table of Contents|CONTENTS]]&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
===UniMate Drive===&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Key Features&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;Driverless Operation 2GB, 4GB, 8GB, 16GB and 32GB&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Selective Mass Storage&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Normal Partition&amp;lt;br&amp;gt;Virtual CD-ROM&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Dimensions&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;57x16x8 mm&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Weight&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;9g&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Min. Operating Voltage&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;5V&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Current Consumption&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;lt;= 50 mA&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Operating Temperature&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;0&amp;amp;#8451; to 70&amp;amp;#8451;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Storage Temperature&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;-10&amp;amp;#8451; to 85&amp;amp;#8451;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Humidity Rate&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;0-70% without condensation&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Casing&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Tamper-evident Metal&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Memory Data Retention&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;At least 10 years&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Memory Cell Rewrites&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;At least 100,000 times&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;PKI&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;PKCS#11&amp;lt;br&amp;gt;MS-CAPI&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Onboard Encryption Algorithms&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1024- and 2048-bit RSA&amp;lt;br&amp;gt;128- and 192-bit AES&amp;lt;br&amp;gt;64-bit DES and 192-bit TDES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Onboard Hashing&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;160-bit SHA-1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Operating System Compatibility&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Linux&amp;lt;br&amp;gt;Windows 2000, XP, 2003, Vista, 7 and 8&amp;lt;br&amp;gt;Windows Server 2008 and Server 2012&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UniMate Flex=== &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Hardware&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Dimensions&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;65x36x11.4 mm&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Weight&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;23g&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Audio Interface&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;3.5mm TRRS&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;USB Interface&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;USB Type A&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Display&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;LCD&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Hardware ID&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;64-bit Globally Unique&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Internal Memory&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;gt; 16KB&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Mobile Device Software&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Audio Authentication Interface&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Casing&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Tamper-evident Metal&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Middleware&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;PKCS#11&amp;lt;br&amp;gt;MS-CAPI&amp;lt;br&amp;gt;Audio Authentication API&amp;lt;br&amp;gt;X.509 Digital Certificate&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Performance&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Min. Operating Voltage&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;5V&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Current Consumption&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;lt;= 50 mA&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Operation Temperature&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;0&amp;amp;#8451; to 70&amp;amp;#8451;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Storage Temperature&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;-10&amp;amp;#8451; to 85&amp;amp;#8451;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Humidity Rate&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;0-70% without condensation&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Memory Data Retention&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;At least 10 years&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Memory Cell Rewriters&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;At least 100,000 times&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Supported Platforms&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Mobile OS: iOS, Android, Symbian, Windows Phone&amp;lt;br&amp;gt;PC: Windows, Linus, Mac OS X&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UniMate USB=== &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Key Features&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;PKI token with CCID interface&amp;lt;br&amp;gt;Embedded Smart Card&amp;lt;br&amp;gt;Onboard Encryption&amp;lt;br&amp;gt;Three-level Permission System&amp;lt;br&amp;gt;Secure File System&amp;lt;br&amp;gt;Auto-lock Mechanism&amp;lt;br&amp;gt;MS-CAPI, PKCS#11 and X.509 v3 Standard Compliant&amp;lt;br&amp;gt;Globally Unique Hardware ID (32-bit)&amp;lt;br&amp;gt;User-Defined Token ID&amp;lt;br&amp;gt;Lead-Free&amp;lt;br&amp;gt;Robust Case&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Hardware&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Dimensions&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;52.8x17x7 mm&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Weight&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;9g&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Interface&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;USB&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Performance&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Min. Operating Voltage&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;5V&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Current Consumption&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;lt;= 50 mA&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Operation Temperature&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;0&amp;amp;#8451; to 70&amp;amp;#8451;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Storage Temperature&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;-10&amp;amp;#8451; to 85&amp;amp;#8451;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Humidity Rate&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;0-70% without condensation&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;PKI&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;PKCS#11&amp;lt;br&amp;gt;MS-CAPI&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Onboard Encryption Algorithms&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1024- and 2048-bit RSA&amp;lt;br&amp;gt;128- and 192-bit AES&amp;lt;br&amp;gt;64-bit DES and 192-bit TDES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Onboard Hashing&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;160-bit SHA-1&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Supported Platforms&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Linux&amp;lt;br&amp;gt;Windows 2000, XP, 2003, Vista, 7 and 8&amp;lt;br&amp;gt;Windows Server 2008 and Server 2012&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Software Developers&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;UniMate USBAPI libraries in Windows and Linux&amp;lt;br&amp;gt;UniMate USB Console for management of UniMate USB devices&amp;lt;br&amp;gt;UniMate USB PKI middleware for PKCS# 11 and MS-CAPI applications&amp;lt;br&amp;gt;UniMate USB IE ActiveX Control, Firefox Plugin&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Software - Users&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;UniMate USB Monitor for registration and management of user digital certificates&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#Table of Contents|CONTENTS]]&lt;br /&gt;
&lt;br /&gt;
==Frequently Asked Questions==&lt;br /&gt;
&lt;br /&gt;
===What is UniMate?===&lt;br /&gt;
&lt;br /&gt;
UniMate is SecuTech&#039;s mobile authentication product family focusing on secure transaction authentication and platform interchangeability by employing two-factor authentication.&lt;br /&gt;
&lt;br /&gt;
===How does UniMate work?===&lt;br /&gt;
&lt;br /&gt;
UniMate authentication utilizes PKI technology, where certificates are securely stored within theUniMate device and are inaccessible without the appropriate permissions to interact with the device.&lt;br /&gt;
&lt;br /&gt;
The TRRS audio port found on most mobile devices is used for secure communication during use of the device, in addition to providing a micro USB interface for use and configuration on a desktop platform.&lt;br /&gt;
&lt;br /&gt;
===What is PKI?===&lt;br /&gt;
&lt;br /&gt;
Public Key Infrastructure (PKI) is a set of hardware, software, people, policies, and procedures needed to create, manage, distribute, use, store, and revoke digital certificates.&lt;br /&gt;
&lt;br /&gt;
===What algorithms are supported?===&lt;br /&gt;
&lt;br /&gt;
UniMate supports 2048-bit RSA, 1024-bit RSA, 128-bit AES, 192-bit AES, 64-bit DES, and 192-bit TDES.&lt;br /&gt;
&lt;br /&gt;
===What is the middleware?===&lt;br /&gt;
&lt;br /&gt;
The middleware contains PKCS#11, MS-CAPI, and Audio Authentication APIs and X.509 Digital Certificates.&lt;br /&gt;
&lt;br /&gt;
===What is the default PIN?===&lt;br /&gt;
&lt;br /&gt;
The default Admin PIN is eight zeros, or&lt;br /&gt;
&amp;amp;quot;00000000&amp;amp;quot;, the default User PIN is eight ones, or &amp;amp;quot;11111111&amp;amp;quot;, without quotation marks.&lt;br /&gt;
&lt;br /&gt;
===Where can I receive further assistance?===&lt;br /&gt;
&lt;br /&gt;
If you have any questions, please feel free to contact us at: http://www.esecutech.com/support or [mailto:support@esecutech.com support@esecutech.com]&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-style: solid; border-width: 1px;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=&amp;quot;nolines&amp;quot; widths=175px heights=50px caption=&amp;quot;Follow Us!&amp;quot;&amp;gt;&lt;br /&gt;
File:Twitter.png|&#039;&#039;&#039;[https://twitter.com/eSecuTech Twitter]&#039;&#039;&#039;&lt;br /&gt;
File:Facebook.png|&#039;&#039;&#039;[https://www.facebook.com/eSecuTech/ Facebook]&#039;&#039;&#039;&lt;br /&gt;
File:YouTube.png|&#039;&#039;&#039;[https://www.youtube.com/user/esecutech YouTube]&#039;&#039;&#039;&lt;br /&gt;
File:Linked In.png|&#039;&#039;&#039;[https://ca.linkedin.com/in/secutech-solutions-inc-39110b25 LinkedIn]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Footer Logo List.png|left]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b style=&amp;quot;color: #CC0000; font-size: 125%;&amp;quot;&amp;gt;About SecuTech&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SecuTech Solution Inc. is a company specializing in data protection and strong authentication, providing total customer satisfaction in security systems &amp;amp;amp; services for banks, financial institutions &amp;amp;amp; other industries. Having extensive and in-depth experience within the information security market, SecuTech has drawn upon this experience to utilize today&#039;s cutting-edge technologies that are effective against increasingly sophisticated cyber attacks. Enabling enterprises, financial institutions, and government to safely adopt the economic benefits of mobile and cloud computing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;http://www.esecutech.com&amp;lt;br&amp;gt;SecuTech Solution Inc.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;text-align:left;&amp;quot; | Contact Us:&lt;br /&gt;
! &lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| North America&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| China&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Asia-Pacific&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| EMEA&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Address&lt;br /&gt;
| 1250 Boulevard Ren-Lvesque Ouest, #2200, Montreal, QC, H3B 4W8, Canada&lt;br /&gt;
| Level 12, #67 Bei Si Huan Xi Lu, Beijing, China, 100080&lt;br /&gt;
| Suite 5.14, 32 Delhi Rd, North Ryde, NSW, 2113, Australia&lt;br /&gt;
| 4 Cours Bayard 69002 Lyon, France&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Phone&lt;br /&gt;
| +1 -888-259-5825&lt;br /&gt;
| +8610-8288 8834&lt;br /&gt;
| 00612-9888 6185&lt;br /&gt;
| +33-042-600-2810&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Fax&lt;br /&gt;
| +1 -888-259-5825 ext.0&lt;br /&gt;
| +8610-8288 8834&lt;br /&gt;
| 00612-9888 6185&lt;br /&gt;
| +33-042-600-2810&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Email&lt;br /&gt;
| [mailto:info@esecutech.com info@esecutech.com]&lt;br /&gt;
| [mailto:cn@esecutech.com cn@esecutech.com]&lt;br /&gt;
| [mailto:aus@esecutech.com aus@esecutech.com]&lt;br /&gt;
| [mailto:europe@esecutech.com europe@esecutech.com]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Copyright 2012 SecuTech Solution Inc. All rights reserved. Reproduction in whole or in part without written permission from SecuTech is prohibited. SecuTech UniMate and the SecuTech logo are trademarks of SecuTech Inc. Windows and all other trademarks are properties of their respective owners. Features and specifications are subject to change without notice.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:SecuTech Logo.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;[[#top|TOP]]&amp;lt;/b&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=UniMate_USB_PKCS_11_Manual&amp;diff=2800</id>
		<title>UniMate USB PKCS 11 Manual</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=UniMate_USB_PKCS_11_Manual&amp;diff=2800"/>
		<updated>2016-06-30T03:18:25Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:UniMate Manuals]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id = &amp;quot;Table of Contents&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==&amp;lt;b&amp;gt;PKCS#11 Manual&amp;lt;/b&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Version 2.0&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Version&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Date&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1.0&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2015.7&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2.0&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2016.7&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The data and information contained in this document cannot be altered without the express written permission of SecuTech Solution Inc. No part of this document can be reproduced or transmitted for any purpose whatsoever, either by electronic or mechanical means.&lt;br /&gt;
&lt;br /&gt;
The general terms of trade of SecuTech Solution Inc. apply. Diverging agreements must be made in writing.&lt;br /&gt;
&lt;br /&gt;
Copyright SecuTech Solution Inc. All rights reserved.&lt;br /&gt;
&lt;br /&gt;
WINDOWS is a registered trademark of Microsoft Corporation.&lt;br /&gt;
&lt;br /&gt;
The WINDOWS-logo is a registered trademark &amp;lt;sup&amp;gt;(TM)&amp;lt;/sup&amp;gt; of Microsoft Corporation. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Software License&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The software and the enclosed documentation are copyright-protected. By installing the software, you agree to the conditions of the licensing agreement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Licensing Agreement&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SecuTech Solution Inc. (SecuTech for short) gives the buyer the simple, exclusive and non-transferable licensing right to use the software on one individual computer or networked computer system (LAN). Copying and any other form of reproduction of the software in full or in part as well as mixing and linking it with others is prohibited. The buyer is authorized to make one single copy of the software as backup. SecuTech reserves the right to change or improve the software without notice or to replace it with a new development. SecuTech is not obliged to inform the buyer of changes, improvements or new developments or to make these available to him. A legally binding promise of certain qualities is not given. SecuTech is not responsible for damage unless it is the result of deliberate action or negligence on the part of SecuTech or its aids and assistants. SecuTech accepts no responsibility of any kind for indirect, accompanying or subsequent damage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Contact Information&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Web: &amp;lt;/b&amp;gt;http://www.esecutech.com&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Email: &amp;lt;/b&amp;gt;[mailto:sales@eSecuTech.com sales@esecutech.com]&lt;br /&gt;
&lt;br /&gt;
Please Email any comments, suggestions or questions regarding this document or our products to us at: [mailto:sales@eSecuTech.com sales@esecutech.com]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
; CE Attestation of Conformity&lt;br /&gt;
[[File:CE Attestation.png|left|100px|top]]&lt;br /&gt;
: UniMate is in conformity with the protection requirements of CE Directives 89/336/EEC Amending Directive 92/31/EEC. UniMate satisfies the limits and verifying methods: EN55022/CISPR 22 Class B, EN55024: 1998.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
; FCC Standard&lt;br /&gt;
[[File:FCC.png|left|100px|top]]&lt;br /&gt;
: This device is in conformance with Part 15 of the FCC Rules and Regulation for Information Technology Equipment.&lt;br /&gt;
: Operation of this product is subject to the following two conditions: (1) this device may not cause harmful interference, and (2) this device must accept any interference received, including interference that may cause undesired operation.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:USB Logo.png|left|100px|top]] The equipment of UniMate is USBbased.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
; Conformity to ISO 9001&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;2000&lt;br /&gt;
[[File:ISO 9001.png|left|100px|top]]&lt;br /&gt;
: The Quality System of SecuTech Solution Inc., including its implementation, meets the requirements of the standard ISO 9001:2000&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
; ROHS&lt;br /&gt;
[[File:ROHS.png|left|100px|top]]&lt;br /&gt;
: All UniMate products are environmentally friendly with ROHS certificates.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
PKCS#11 is a Public-Key Cryptography Standard (PKCS) for public key cryptography, developed by RSA Laboratories and includes both algorithm-specific and algorithm-independent implementation standards. It is an industry standard that defines a technology independent programming interface for cryptographic devices such as smart cards and PCMCIA cards. This standard specifies an application program interface&lt;br /&gt;
(API) called Cryptoki (Cryptographic Token Interface), to devices, either physical or virtual, which hold cryptographic information (keys and other data) and perform cryptographic functions. This API is used across many platforms and is powerful enough for most security-related applications. SecuTech uses PKCS#11 as the main API for UniMate programming. UniMate supports PKCS#11 applications via UniMate middleware. &lt;br /&gt;
&lt;br /&gt;
The following files are needed when developing UniMate PKCS#11 applications: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Files&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Path&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Cryptoki.h&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Provided by RSA&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;pkcs11.h&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Provided by RSA&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Pkcs11f.h&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Provided by RSA&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Pkcs11t.h/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Provided by RSA&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;UniMateP11.dll / UniMateP11.so&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;SDK\PKCS#11\Libraries\&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The PKCS#11 module of UniMate supports the creation of the following objects: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Object Class&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKO_DATA&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;For data structures defined by the application&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKO_SECRET_KEY&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;For symmetric keys&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKO_CERTIFICATE&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;For X.509 v3 certificates&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKO_PUBLIC_KEY&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;For RSA/DSA public key&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKO_PRIVATE_KEY&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;For RSA/DSA private key&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All the objects listed in the above table can be created with UniMate. The secure storage in UniMate is limited, so objects can only be created in memory but can NOT be stored in the UniMate secure storage. Only encryption keys and permanently present data need to be saved in the UniMate. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==Supported PKCS#11 Algorithms and API== &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; &amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Algorithm&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Encrypt/Decrypt&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Sign/Verify&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Digest&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Generate key/pair&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RSA_PKCS_KEY_PAIR_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#8730;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RSA_PKCS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#8730;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#8730;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DSA_KEY_PAIR_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DSA&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RC2_KEY_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RC2_ECB&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RC2_CBC&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RC2_CBC_PAD&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RC4_KEY_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RC4&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES_KEY_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#8730;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES_ECB&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#8730;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES_CBC&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#8730;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES3_KEY_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#8730;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES3_ECB&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#8730;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES3_CBC&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#8730;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES3_CBC_PAD&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#8730;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_MD2&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_MD5&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#8730;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_SHA_1&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#8730;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DH_PKCS_KEY_PAIR_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_AES_KEY_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#8730;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_AES_CBC&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#8730;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_AES_ECB&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;amp;#8730;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The table below lists all of the key sizes in the UniMate PKCS#11 library: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Algorithms&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Key Sizes&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_RSA_PKCS_KEY_PAIR_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1024bits, 2048bits&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES_KEY_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;64 bits&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_DES3_KEY_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;192 bits&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CKM_AES_KEY_GEN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;128 &amp;amp;#65374; 256 bits&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Table of Contents|CONTENTS]]&lt;br /&gt;
==UniMate PKCS#11 Function Library==&lt;br /&gt;
The UniMate PKCS#11 library only implements the standard PKCS#11 APIs. Any other APIs beyond PKCS#11 are not implemented. If such an API is called, an error return code such as CKR_FUNCTION_NO_SUPPORT will be returned. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Category&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Supported&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;4&amp;quot;&amp;gt;&amp;lt;b&amp;gt;General Purpose Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Initialize&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Finalize&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetInfo&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetFunctionList&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;9&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Slot and UniMate Management&amp;lt;br&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetSlotList&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetSlotInfo&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetUniMateInfo&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_WaitForSlotEvent&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetMechanismList&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetMechanismInfo&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_InitUniMate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_InitPIN&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SetPIN&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;8&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Session Management Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_OpenSession&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_CloseSession&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_CloseAllSessions&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetSessionInfo&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetOperationState&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SetOperationState&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Login&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Logout&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;9&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Object Management Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_CreateObject&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_CopyObject&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DestroyObject&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetObjectSize&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GetAttributeValue&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SetAttributeValue&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_FindObjectsInit&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_FindObjects&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_FindObjectsFinal&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;4&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Encryption Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_EncryptInit&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Encrypt&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_EncryptUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_EncryptFinal&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;4&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Decryption Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DecryptInit&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Decrypt&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DecryptUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DecryptFinal&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Message Digesting Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DigestInit&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Digest&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DigestUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DigestKey&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DigestFinal&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;6&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Signing and Hashing Function&amp;lt;br&amp;gt;(MAC)&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SignInit&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Sign&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SignUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SignFinal&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SignRecoverInit&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SignRecover&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;6&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Functions for Verifying Signatures&amp;lt;br&amp;gt;and Hashing (MAC)&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_VerifyInit&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_Verify&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_VerifyUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_VerifyFinal&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_VerifyRecoverInit&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_VerifyRecover&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;4&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Dual-Purpose Cryptographic&amp;lt;br&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DigestEncryptUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DecryptDigestUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SignEncryptUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DecryptVerifyUpdate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Key Management Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GenerateKey&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GenerateKeyPair&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_WrapKey&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_UnwrapKey&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_DeriveKey&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td rowspan=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Random Number Generation&amp;lt;br&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_SeedRandom&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;C_GenerateRandom&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Callback Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Table of Contents|CONTENTS]]&lt;br /&gt;
==Samples==&lt;br /&gt;
All the samples are implemented in C, and they all support PKCS#11 standard v.2.20. The samples are provided in: &amp;lt;code&amp;gt;SDK\PKCS#11\Sample&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Initialize&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize the PKCS#11 library&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetSlotList&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Get the slot list&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_OpenSession&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Open a session&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Login&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Log in&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_InitPIN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize user PIN&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Logout&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Log out&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_FindObjectsInit&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize the search for any object&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_FindObjects&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Find the objects which match&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_FindObjectsFinal&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Cleanup the search&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_CloseSession&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Close a session&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetAttributeValue&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Get the attribute value&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Finalize&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Close PKCS #11 library&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GenerateKeyPair&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Generate a new public/private key pair&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GenerateKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Generate a secret key&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_WrapKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Wrap (encrypt) a key&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_UnwrapKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Unwrap (decrypt) a key&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_DeriveKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Derive a key from a base key&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_SetPIN&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Modify the current users PIN&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetTokenInfo&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Get the slot information&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_SignInit&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize a signature&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Sign&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Sign data&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_SignUpdate&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Continue a multiple-part signature&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_SignFinal&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Finish a multiple-part signature&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_SignRecoverInit&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize a signature&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_SignRecover&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Sign data, where the data can be recovered from the signature&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_DestroyObject&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Destroy an object&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetFunctionList&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Return the function list&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetMechanismList&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Obtain a list of mechanism types&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetMechanismInfo&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Obtain information about a particular mechanism possibly supported by a token&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_InitToken&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize a token&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetSessionInfo&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Obtain information about the session&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetOperationState&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Obtain the cryptographic state of a session&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_SetOperationState&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Restore the cryptographic state of a session&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_EncryptInit&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize an encryption operation&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Encrypt&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Encrypt single-part data&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_EncryptUpdate&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Continue a multiple-part encryption&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_EncryptFinal&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Finish a multiple-part encryption operation&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_DecryptInit&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize a decryption&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Decrypt&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Decrypt encrypted data in a single part&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_DecryptUpdate&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Continue a multiple-part decryption&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_DecryptFinal&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Finish a multiple-part decryption&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_DigestInit&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize a message-digesting operation.&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Digest&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Digest data in a single part&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_DigestUpdate&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Continue a multiple-part message-digesting&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_DigestFinal&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Finish a multiple-part message-digesting&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_VerifyInit&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize a verification&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_Verify&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Verify a signature&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_VerifyUpdate&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Continue a multiple-part verification&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_VerifyFinal&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Finish a multiple-part verification&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_VerifyRecoverInit&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Initialize a signature verification&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_VerifyRecover&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Verify a signature, where the data is recovered from the signature&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_SeedRandom&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Mix additional seed material into the token&#039;s random number generator&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GenerateRandom&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Generate random data&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_GetFunctionStatus&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Obtain an updated status of a function running in parallel with an application&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_CancelFunction&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Cancel a function&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;C_WaitForSlotEvent&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Wait for a slot event to occur&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If you have any questions, please feel free to contact us at: http://www.esecutech.com/support or [mailto:support@esecutech.com support@esecutech.com]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| style=&amp;quot;border-style: solid; border-width: 1px;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=&amp;quot;nolines&amp;quot; widths=175px heights=50px caption=&amp;quot;Follow Us!&amp;quot;&amp;gt;&lt;br /&gt;
File:Twitter.png|&#039;&#039;&#039;[https://twitter.com/eSecuTech Twitter]&#039;&#039;&#039;&lt;br /&gt;
File:Facebook.png|&#039;&#039;&#039;[https://www.facebook.com/eSecuTech/ Facebook]&#039;&#039;&#039;&lt;br /&gt;
File:YouTube.png|&#039;&#039;&#039;[https://www.youtube.com/user/esecutech YouTube]&#039;&#039;&#039;&lt;br /&gt;
File:Linked In.png|&#039;&#039;&#039;[https://ca.linkedin.com/in/secutech-solutions-inc-39110b25 LinkedIn]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Footer Logo List.png|left]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b style=&amp;quot;color: #CC0000; font-size: 125%;&amp;quot;&amp;gt;About SecuTech&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SecuTech Solution Inc. is a company specializing in data protection and strong authentication, providing total customer satisfaction in security systems &amp;amp;amp; services for banks, financial institutions &amp;amp;amp; other industries. Having extensive and in-depth experience within the information security market, SecuTech has drawn upon this experience to utilize today&#039;s cutting-edge technologies that are effective against increasingly sophisticated cyber attacks. Enabling enterprises, financial institutions, and government to safely adopt the economic benefits of mobile and cloud computing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;http://www.esecutech.com&amp;lt;br&amp;gt;SecuTech Solution Inc.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;text-align:left;&amp;quot; | Contact Us:&lt;br /&gt;
! &lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| North America&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| China&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Asia-Pacific&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| EMEA&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Address&lt;br /&gt;
| 1250 Boulevard Ren-Lvesque Ouest, #2200, Montreal, QC, H3B 4W8, Canada&lt;br /&gt;
| Level 12, #67 Bei Si Huan Xi Lu, Beijing, China, 100080&lt;br /&gt;
| Suite 5.14, 32 Delhi Rd, North Ryde, NSW, 2113, Australia&lt;br /&gt;
| 4 Cours Bayard 69002 Lyon, France&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Phone&lt;br /&gt;
| +1 -888-259-5825&lt;br /&gt;
| +8610-8288 8834&lt;br /&gt;
| 00612-9888 6185&lt;br /&gt;
| +33-042-600-2810&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Fax&lt;br /&gt;
| +1 -888-259-5825 ext.0&lt;br /&gt;
| +8610-8288 8834&lt;br /&gt;
| 00612-9888 6185&lt;br /&gt;
| +33-042-600-2810&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Email&lt;br /&gt;
| [mailto:info@esecutech.com info@esecutech.com]&lt;br /&gt;
| [mailto:cn@esecutech.com cn@esecutech.com]&lt;br /&gt;
| [mailto:aus@esecutech.com aus@esecutech.com]&lt;br /&gt;
| [mailto:europe@esecutech.com europe@esecutech.com]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Copyright 2012 SecuTech Solution Inc. All rights reserved. Reproduction in whole or in part without written permission from SecuTech is prohibited. SecuTech UniMate and the SecuTech logo are trademarks of SecuTech Inc. Windows and all other trademarks are properties of their respective owners. Features and specifications are subject to change without notice.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:SecuTech Logo.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;[[#top|TOP]]&amp;lt;/b&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=UniMate_USB_CSP_Manual&amp;diff=2791</id>
		<title>UniMate USB CSP Manual</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=UniMate_USB_CSP_Manual&amp;diff=2791"/>
		<updated>2016-06-30T03:17:53Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:UniMate Manuals]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id = &amp;quot;Table of Contents&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==&amp;lt;b&amp;gt;CSP Manual&amp;lt;/b&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Version 2.0&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Version&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Date&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1.0&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2015.7&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2.0&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2016.7&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The data and information contained in this document cannot be altered without the express written permission of SecuTech Solution Inc. No part of this document can be reproduced or transmitted for any purpose whatsoever, either by electronic or mechanical means.&lt;br /&gt;
&lt;br /&gt;
The general terms of trade of SecuTech Solution Inc. apply. Diverging agreements must be made in writing.&lt;br /&gt;
&lt;br /&gt;
Copyright SecuTech Solution Inc. All rights reserved.&lt;br /&gt;
&lt;br /&gt;
WINDOWS is a registered trademark of Microsoft Corporation.&lt;br /&gt;
&lt;br /&gt;
The WINDOWS-logo is a registered trademark &amp;lt;sup&amp;gt;(TM)&amp;lt;/sup&amp;gt; of Microsoft Corporation. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Software License&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The software and the enclosed documentation are copyright-protected. By installing the software, you agree to the conditions of the licensing agreement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Licensing Agreement&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SecuTech Solution Inc. (SecuTech for short) gives the buyer the simple, exclusive and non-transferable licensing right to use the software on one individual computer or networked computer system (LAN). Copying and any other form of reproduction of the software in full or in part as well as mixing and linking it with others is prohibited. The buyer is authorized to make one single copy of the software as backup. SecuTech reserves the right to change or improve the software without notice or to replace it with a new development. SecuTech is not obliged to inform the buyer of changes, improvements or new developments or to make these available to him. A legally binding promise of certain qualities is not given. SecuTech is not responsible for damage unless it is the result of deliberate action or negligence on the part of SecuTech or its aids and assistants. SecuTech accepts no responsibility of any kind for indirect, accompanying or subsequent damage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Contact Information&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Web: &amp;lt;/b&amp;gt;http://www.esecutech.com&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Email: &amp;lt;/b&amp;gt; [mailto:sales@eSecuTech.com sales@esecutech.com]&lt;br /&gt;
&lt;br /&gt;
Please Email any comments, suggestions or questions regarding this document or our products to us at: [mailto:sales@eSecuTech.com sales@esecutech.com] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
; CE Attestation of Conformity&lt;br /&gt;
[[File:CE Attestation.png|left|100px|top]]&lt;br /&gt;
: UniMate is in conformity with the protection requirements of CE Directives 89/336/EEC Amending Directive 92/31/EEC. UniMate satisfies the limits and verifying methods: EN55022/CISPR 22 Class B, EN55024: 1998.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
; FCC Standard&lt;br /&gt;
[[File:FCC.png|left|100px|top]]&lt;br /&gt;
: This device is in conformance with Part 15 of the FCC Rules and Regulation for Information Technology Equipment.&lt;br /&gt;
: Operation of this product is subject to the following two conditions: (1) this device may not cause harmful interference, and (2) this device must accept any interference received, including interference that may cause undesired operation.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:USB Logo.png|left|100px|top]] The equipment of UniMate is USBbased.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
; Conformity to ISO 9001&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;2000&lt;br /&gt;
[[File:ISO 9001.png|left|100px|top]]&lt;br /&gt;
: The Quality System of SecuTech Solution Inc., including its implementation, meets the requirements of the standard ISO 9001:2000&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
; ROHS&lt;br /&gt;
[[File:ROHS.png|left|100px|top]]&lt;br /&gt;
: All UniMate products are environmentally friendly with ROHS certificates.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
CAPI (Cryptographic Application Programming Interface), developed by Microsoft as part of Microsoft Windows, is an interface to a library of functions software developers can call upon for security and cryptography services. It is intended for use by developers of applications for MS Windows platforms.&lt;br /&gt;
&lt;br /&gt;
CAPI allows multiple cryptographic service providers (CSP) to coexist on the same computer and to be used in the same application. It is also possible to associate a CSP with a particular smartcard, so that smartcard-enabled Windows applications will call the correct CSP. MS Windows contains many helper functions that application developers may use to simplify code when working with cryptographic functions or with complicated data structures (such as certificates).&lt;br /&gt;
&lt;br /&gt;
Choosing which API to use when developing applications is dependent on the needs of the particular application. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==Algorithms and APIs==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr &amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Connection functions&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptAcquireContext&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Create a context and initialize access to CSP which must be specified&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptReleaseContext&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Release the context created in CryptAcquireContext and other resources&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptGetProvParam&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Return information related to CSP&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptSetProvParam&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Set parameters of CSP&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr &amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Generate and exchange key functions&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptGenKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Generate key or key pair&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptDeriveKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Derive a session key from a data hash and guarantee the generated key difference&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptSetKeyParam&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Set key attributes&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptGetKeyParam&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Retrieves the data that controls the operations of the key&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptExportKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Export key from container&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptImportKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Import the key to CSP container&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptDestroyKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Release key handle, after which the handle will be invalid and cannot be accessed&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptDuplicateKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Create a duplicate of the key&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptGenRandom&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Generate random data&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptGetUserKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Gets a handle to a permanent user key&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr &amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Data encryption function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptDecrypt&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Decrypt document&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptEncrypt&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Encrypt document&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptCreateHash&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Returns a handle to a created hashing object and initializes it&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptDestroyHash&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Delete hashing object handle&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptDuplicateHash&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Duplicates a hashing object, including state, up to when the duplication is done&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptHashData&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Hash input data&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptGetHashParam&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Get the hash value and data that control the operations of the hash object&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptHashSessionKey&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Hash a session key without revealing the key value to the application&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptSetHashParam&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Set the attributes of a hash object, such as specific algorithm or initial contents&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptSignHash&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Sign a hash object&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CryptVerifySignature&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;Verifies the signature of a hash object&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Table of Contents|CONTENTS]]&lt;br /&gt;
==Samples== &lt;br /&gt;
All the samples are implemented in the C++ language, and they all support the MS-CAPI standard. We provide the samples below, located in path: &amp;lt;code&amp;gt;SDK\CSP(MS-CAPI)\Sample&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Files&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Description&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Algorithm&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;algorithmTest.cpp &amp;lt;br&amp;gt; algorithmTest.h&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;This sample demonstrates operations on symmetric keys, hashing and asymmetric keys.&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Container&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;kcsTest.cpp &amp;lt;br&amp;gt; kcsTest.h&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;This sample demonstrates enumeration, deletion and creation of files.&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Certificates&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;listcerts.cpp &amp;lt;br&amp;gt; listcerts.h&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;This sample demonstrates operations on a certificate list.&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
===Algorithm samples=== &lt;br /&gt;
&amp;lt;b&amp;gt;These samples include 3 functions:&amp;lt;/b&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;int GenerateAlgTest(ULONG ulALG)&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;int DeviceAlgTest(ULONG ulALG)&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;int RstTest(ULONG version)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;GenerateAlgTest is used for DES key generation, encryption and decryption operations:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Steps&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1. Create a container&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptAcquireContext&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2. Retrieve parameters that govern the operations of a CSP&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptGetProvParam&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;3. Generate a key&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptGenKey&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;4. Data Encryption&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptEncrypt&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;5. Data Decryption&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptDecrypt&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;DeviceAlgTest is used for key derivation, data encryption and decryption operations:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Steps&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1. Create a container&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptAcquireContext&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2. Initiate the hashing of a stream of data&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptCreateHash&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;3. Add data to a specified hash object&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptHashData&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;4. Derive a key&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptDeriveKey&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;5. Data Encryption&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptEncrypt&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;6. Data Decryption&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptDecrypt&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;RstTest is used for RSA key generation, data encryption and decryption operations:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Steps&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1. Create a container&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptAcquireContext&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2. Generate a key&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptGenKey&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;3. Data Encryption&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptEncrypt&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;4. Data Decryption&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptDecrypt&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
===Container sample=== &lt;br /&gt;
This sample demonstrates how to enumerate, add and delete containers with the function - &amp;lt;code&amp;gt;int kcsTest(ULONG ulActive)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;For enumerating a container: &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Steps&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1. Acquire a &amp;amp;quot;VERIFYCONTEXT&amp;amp;quot; handle&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptAcquireContext&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2. Enumerate through the key containers&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptGetProvParam&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;3. Acquire a handle to the key container found&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptAcquireContext&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;4. Try to get a handle to the key pair&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptGetUserKey&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;5. Get key permissions&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptGetKeyParam&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;6. Display key permissions&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;For adding a container:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Steps&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1. Check whether the container already exists&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptAcquireContext&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2. If not, create a container&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptAcquireContext&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;For deleting a container:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Steps&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1. Check whether the container already exists&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptAcquireContext&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2. If it does, release the handle to the context&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptReleaseContext&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;3. Delete the container&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CryptAcquireContext&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===List Certificate sample=== &lt;br /&gt;
This sample demonstrates how to enumerate certificates with the function - &amp;lt;code&amp;gt;int listcerts(void)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;For enumerating certificates:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Steps&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td style=&amp;quot;background-color: red;&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;color: #fff;&amp;quot;&amp;gt;Function&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;1. Open a handle to the certificate store: MY\\UniMateStore&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CertOpenStore&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;2. Go over each and every certificate within the certificate store&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CertEnumCertificatesInStore&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;3. Get and display the subject name from the certificate&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;CertGetNameString&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Table of Contents|CONTENTS]]&lt;br /&gt;
==PKI package== &lt;br /&gt;
UniMate provides a PKI package for developers and end users respectively. The package provides the UniMate PKI installation, if you want to use the PKI package, you must install it. &lt;br /&gt;
&lt;br /&gt;
===Installation=== &lt;br /&gt;
The UniMate PKI package can be found in the redists folder of the SDK. &lt;br /&gt;
&lt;br /&gt;
For the developer package, double click the icon to run PKI package.exe, and follow the instructions below:&lt;br /&gt;
&lt;br /&gt;
Click Install.&lt;br /&gt;
&lt;br /&gt;
[[File:UniMate PKI Setup.PNG]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Afterwards, click Finish to close the setup wizard.&lt;br /&gt;
&lt;br /&gt;
[[File:UniMate PKI Finish.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Uninstallation=== &lt;br /&gt;
To uninstall the software, select &amp;lt;code&amp;gt;Start Menu -- All apps -- UniMate Drive\PKI package\uninstall&amp;lt;/code&amp;gt; (on Windows 8/10 you may need to right-click the file in the folder, mouse over More and select Open file location). Otherwise, by default the uninstaller is located in: &amp;lt;code&amp;gt;C:\Users\&amp;amp;lt;your_username&amp;amp;gt;\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\UniMate Drive\PKI package&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Click OK and restart your computer to finish the uninstallation.&lt;br /&gt;
&lt;br /&gt;
[[File:UniMate PKI Uninstall.PNG]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
If you have any questions, please feel free to contact us at: http://www.esecutech.com/support or [mailto:support@esecutech.com support@esecutech.com]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| style=&amp;quot;border-style: solid; border-width: 1px;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;center&amp;quot; mode=&amp;quot;nolines&amp;quot; widths=175px heights=50px caption=&amp;quot;Follow Us!&amp;quot;&amp;gt;&lt;br /&gt;
File:Twitter.png|&#039;&#039;&#039;[https://twitter.com/eSecuTech Twitter]&#039;&#039;&#039;&lt;br /&gt;
File:Facebook.png|&#039;&#039;&#039;[https://www.facebook.com/eSecuTech/ Facebook]&#039;&#039;&#039;&lt;br /&gt;
File:YouTube.png|&#039;&#039;&#039;[https://www.youtube.com/user/esecutech YouTube]&#039;&#039;&#039;&lt;br /&gt;
File:Linked In.png|&#039;&#039;&#039;[https://ca.linkedin.com/in/secutech-solutions-inc-39110b25 LinkedIn]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Footer Logo List.png|left]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b style=&amp;quot;color: #CC0000; font-size: 125%;&amp;quot;&amp;gt;About SecuTech&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SecuTech Solution Inc. is a company specializing in data protection and strong authentication, providing total customer satisfaction in security systems &amp;amp;amp; services for banks, financial institutions &amp;amp;amp; other industries. Having extensive and in-depth experience within the information security market, SecuTech has drawn upon this experience to utilize today&#039;s cutting-edge technologies that are effective against increasingly sophisticated cyber attacks. Enabling enterprises, financial institutions, and government to safely adopt the economic benefits of mobile and cloud computing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;http://www.esecutech.com&amp;lt;br&amp;gt;SecuTech Solution Inc.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;text-align:left;&amp;quot; | Contact Us:&lt;br /&gt;
! &lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| North America&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| China&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Asia-Pacific&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| EMEA&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Address&lt;br /&gt;
| 1250 Boulevard Ren-Lvesque Ouest, #2200, Montreal, QC, H3B 4W8, Canada&lt;br /&gt;
| Level 12, #67 Bei Si Huan Xi Lu, Beijing, China, 100080&lt;br /&gt;
| Suite 5.14, 32 Delhi Rd, North Ryde, NSW, 2113, Australia&lt;br /&gt;
| 4 Cours Bayard 69002 Lyon, France&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Phone&lt;br /&gt;
| +1 -888-259-5825&lt;br /&gt;
| +8610-8288 8834&lt;br /&gt;
| 00612-9888 6185&lt;br /&gt;
| +33-042-600-2810&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Fax&lt;br /&gt;
| +1 -888-259-5825 ext.0&lt;br /&gt;
| +8610-8288 8834&lt;br /&gt;
| 00612-9888 6185&lt;br /&gt;
| +33-042-600-2810&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Email&lt;br /&gt;
| [mailto:info@esecutech.com info@esecutech.com]&lt;br /&gt;
| [mailto:cn@esecutech.com cn@esecutech.com]&lt;br /&gt;
| [mailto:aus@esecutech.com aus@esecutech.com]&lt;br /&gt;
| [mailto:europe@esecutech.com europe@esecutech.com]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Copyright 2012 SecuTech Solution Inc. All rights reserved. Reproduction in whole or in part without written permission from SecuTech is prohibited. SecuTech UniMate and the SecuTech logo are trademarks of SecuTech Inc. Windows and all other trademarks are properties of their respective owners. Features and specifications are subject to change without notice.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:SecuTech Logo.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;[[#top|TOP]]&amp;lt;/b&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
	<entry>
		<id>https://esecutech.com/wiki/index.php?title=Main_Page&amp;diff=53</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://esecutech.com/wiki/index.php?title=Main_Page&amp;diff=53"/>
		<updated>2016-06-30T03:17:22Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Welcome to the SecuTech Wiki&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Information on our products and viewable manuals and guides are available on our Wiki.&lt;br /&gt;
&lt;br /&gt;
Please note this Wiki is currently under construction and is continually updated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;width: 728px; height: 247px;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
&#039;&#039;&#039;UniKey [Software Protection]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
- [[:category:UniKey Application Solutions|UniKey Application Solutions]]&lt;br /&gt;
&lt;br /&gt;
- [[:category:UniKey Library Integration Guides|UniKey Library Integration Guides]]&lt;br /&gt;
&lt;br /&gt;
- [[:category:UniKey Tools|UniKey Tools]]&lt;br /&gt;
&lt;br /&gt;
- [[:category:UniKey API|UniKey API Reference]]&lt;br /&gt;
&lt;br /&gt;
- [[:category:UniKey Hardware Troubleshooting|UniKey Hardware Troubleshooting Guide]]&lt;br /&gt;
&lt;br /&gt;
- [[:category:UniKey FAQ|UniKey Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
- [http://files.esecutech.com/marketing-materials/ProductsDoc/UniKey/UniKeyQuickStartGuide-2015.pdf UniKey Quick Start Guide]&lt;br /&gt;
&lt;br /&gt;
- [[:category:UniKey Gallery|UniKey Gallery]]&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;UniToken [USB Authentication]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
- [[:category:UniToken Integration Guide|UniToken Integration Guide]]&lt;br /&gt;
&lt;br /&gt;
- [[:category:UniToken Tools|UniToken Tools]]&lt;br /&gt;
&lt;br /&gt;
- [[:category:UniToken API|UniToken API Reference]]&lt;br /&gt;
&lt;br /&gt;
- [[:category:UniToken Hardware Troubleshooting|UniToken Hardware Troubleshooting Guide]]&lt;br /&gt;
&lt;br /&gt;
- [[:category:UniToken FAQ|UniToken Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
- [http://files.esecutech.com/marketing-materials/ProductsDoc/UniToken/UniToken_quickstart-130827EN.pdf UniToken Quick Start Guide]&lt;br /&gt;
&lt;br /&gt;
- [[:category:UniToken Gallery|UniToken Gallery]]&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
&#039;&#039;&#039;UniOTP [One-time Password]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
- [[:category:UniOTP Integration Solutions|UniOTP Integration Solutions]]&lt;br /&gt;
&lt;br /&gt;
- [[:category:UniOTP Tools|UniOTP Tools]]&lt;br /&gt;
&lt;br /&gt;
- [[:category:UniOTP API|UniOTP API Reference]]&lt;br /&gt;
&lt;br /&gt;
- [[:category:UniOTP FAQ|UniOTP Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
- [[:category:UniOTP Gallery|UniOTP Gallery]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&#039;&#039;&#039;UniMate [Mobile Authentication]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
- [[:category:UniMate|UniMate Documentation]]&lt;br /&gt;
&lt;br /&gt;
- [[:category:UniMate Manuals|UniMate Manuals]]&lt;br /&gt;
&lt;br /&gt;
- [[:category:UniMate Family|UniMate Family]]&lt;br /&gt;
&lt;br /&gt;
- [[:category:UniMate API|UniMate API Reference]]&lt;br /&gt;
&lt;br /&gt;
- [[:category:UniMate FAQ|UniMate Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
- [[:category:UniMate Gallery|UniMate Gallery]]&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
- [[:category:Resources|Resources]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
</feed>