<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[wolfSSL - Embedded SSL Library — Doing private-key operations with cryptographic chips]]></title>
		<link>https://www.wolfssl.com/forums/topic1136-doing-privatekey-operations-with-cryptographic-chips.html</link>
		<atom:link href="https://www.wolfssl.com/forums/feed-rss-topic1136.xml" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent posts in Doing private-key operations with cryptographic chips.]]></description>
		<lastBuildDate>Wed, 22 Nov 2017 17:47:06 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Doing private-key operations with cryptographic chips]]></title>
			<link>https://www.wolfssl.com/forums/post3686.html#p3686</link>
			<description><![CDATA[<p>Hi fvillaf,</p><p>No problem as far as the NDA goes. Glad to hear the solution worked for you!<br />Let us know if anything else comes up.</p><br /><p>Warm Regards,</p><p>Kaleb</p>]]></description>
			<author><![CDATA[null@example.com (Kaleb J. Himes)]]></author>
			<pubDate>Wed, 22 Nov 2017 17:47:06 +0000</pubDate>
			<guid>https://www.wolfssl.com/forums/post3686.html#p3686</guid>
		</item>
		<item>
			<title><![CDATA[Re: Doing private-key operations with cryptographic chips]]></title>
			<link>https://www.wolfssl.com/forums/post3684.html#p3684</link>
			<description><![CDATA[<p>Thanks for the tips, Kaleb. I did a couple of minor tests and it worked as a charm!</p><p>I opted for the approach #1 but, sadly, I cannot submit any work as a contributor because I signed an NDA with WiseKey before they supplied the API to me.</p>]]></description>
			<author><![CDATA[null@example.com (fvillaf)]]></author>
			<pubDate>Wed, 22 Nov 2017 14:21:02 +0000</pubDate>
			<guid>https://www.wolfssl.com/forums/post3684.html#p3684</guid>
		</item>
		<item>
			<title><![CDATA[Re: Doing private-key operations with cryptographic chips]]></title>
			<link>https://www.wolfssl.com/forums/post3681.html#p3681</link>
			<description><![CDATA[<p>Hi fvillaf,</p><p>Thank you for using the wolfSSL support forums. If you perform a search in the file &lt;wolf-root&gt;/wolfcrypt/src/rsa.c for the define HAVE_CAVIUM you will see how we went about adding support for the CAVIUM hardware RSA API calls. We would recommend one of two methods when adding support for hardware crypto:</p><p>#1 Add your own new pre-processor macro such as HAVE_VAULTIC405 and #ifndef out the wc_Rsa... API&#039;s you wish to replace.<br />&nbsp; &nbsp; &nbsp;Create a new directory such as &lt;wolf-root&gt;/wolfcrypt/src/port/vaultic405<br />&nbsp; &nbsp; &nbsp;Create a new file such as &lt;wolf-root&gt;/wolfcrypt/src/port/vaultic405/vaultic-rsa.c<br />&nbsp; &nbsp; &nbsp;Implement your own version of the wc_Rsa... API&#039;s that you #ifndef&#039;d out and have these API&#039;s call to the hardware directly.</p><p>#2 Add your own new pre-processor macro such as HAVE_VAULTIC405 and <br />&nbsp; &nbsp; &nbsp;follow the method we used with HAVE_CAVIUM define and place the hardware API calls directly into wolfcrypt/src/rsa.c<br />&nbsp; &nbsp; &nbsp;</p><br /><p>We have used #2 in the past but as we add support for more devices we have started to abstract that support by using the &lt;wolf-root&gt;/wolfcrypt/src/port/&lt;new device&gt; setup as it is cleaner and easier to maintain. Also if you do this solution then every time we put out a new release you would simply have to add back in the select few #ifndef HAVE_VAULTIC405 rules to rsa.c and then copy/paste your port directory into the new release. You can also submit your work back to us under a contributor agreement if you wish for us to maintain your port through release cycles.</p><p>Let us know if you have any questions on this.</p><br /><p>Warm Regards,</p><p>Kaleb</p>]]></description>
			<author><![CDATA[null@example.com (Kaleb J. Himes)]]></author>
			<pubDate>Tue, 21 Nov 2017 18:54:14 +0000</pubDate>
			<guid>https://www.wolfssl.com/forums/post3681.html#p3681</guid>
		</item>
		<item>
			<title><![CDATA[Doing private-key operations with cryptographic chips]]></title>
			<link>https://www.wolfssl.com/forums/post3680.html#p3680</link>
			<description><![CDATA[<p>Hi! </p><p>I&#039;m developing the firmware for an already existant hardware, that is using an ST32F207 as MCU and the VaultIC cryptographic chip from WiseKey (<a href="https://www.wisekey.com/vaultic405/">https://www.wisekey.com/vaultic405/</a>). </p><p>By an strict requirement, I need to maintain the private RSA key inside the vaultic, and sign/encrypt/decrypt only using chip&#039;s API. More: The private key is protected into the chip and canot be exported or extracted.</p><p>I need to:</p><p>- Generate and sign a CSR (done)<br />- Handle X509 certificates (done)<br />- Generate and sign VERY BIG xml files, exporting them as CMS (PKCS7) (Done, but only for small files)<br />- Implement an HTTPS web server (partially done - working in this)</p><p>The list above is only to illustrate in which scenarios I will probably need to work with the private key. I read that WolfSSL was already adapted to a bunch of chips with hardware acceleration for cryptographic functions, but I cannot find by myself how to replace any sign/verify done by software with the same functions implemented in external chips.</p><p>So, my questions are 2:</p><p>- How to use the functions of an external cryptographic chip to replace only the RSA sing/verify functions in wolfssl?<br />- How to generate big signed CMS (PKCS#7) files, in environmentes with restricted working ram but with big disks in sdcard?</p><p>Thank you in advance!!</p>]]></description>
			<author><![CDATA[null@example.com (fvillaf)]]></author>
			<pubDate>Tue, 21 Nov 2017 14:08:02 +0000</pubDate>
			<guid>https://www.wolfssl.com/forums/post3680.html#p3680</guid>
		</item>
	</channel>
</rss>
