<?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 — [SOLVED] partial chain verification in WOLFSSL]]></title>
		<link>https://www.wolfssl.com/forums/topic1181-solved-partial-chain-verification-in-wolfssl.html</link>
		<atom:link href="https://www.wolfssl.com/forums/feed-rss-topic1181.xml" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent posts in [SOLVED] partial chain verification in WOLFSSL.]]></description>
		<lastBuildDate>Mon, 30 Aug 2021 15:14:35 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: [SOLVED] partial chain verification in WOLFSSL]]></title>
			<link>https://www.wolfssl.com/forums/post6239.html#p6239</link>
			<description><![CDATA[<p>Hi hablutzel1</p><p>Thanks for sending your request to support@wolfssl.com.</p>]]></description>
			<author><![CDATA[null@example.com (embhorn)]]></author>
			<pubDate>Mon, 30 Aug 2021 15:14:35 +0000</pubDate>
			<guid>https://www.wolfssl.com/forums/post6239.html#p6239</guid>
		</item>
		<item>
			<title><![CDATA[Re: [SOLVED] partial chain verification in WOLFSSL]]></title>
			<link>https://www.wolfssl.com/forums/post6232.html#p6232</link>
			<description><![CDATA[<p>Hi Kaleb, I think that this practice might not be a best practice anymore (if it ever was):</p><div class="quotebox"><cite>Kaleb J. Himes wrote:</cite><blockquote><p>...<br />We consider it best practice to validate all certificates in the chain and use this by default. <br />...</p></blockquote></div><p>Quoting from <a href="https://datatracker.ietf.org/doc/html/rfc8446#section-4.4.2:">https://datatracker.ietf.org/doc/html/r … ion-4.4.2:</a></p><div class="quotebox"><blockquote><p>Note: Prior to TLS 1.3, &quot;certificate_list&quot; ordering required each<br />&nbsp; &nbsp;certificate to certify the one immediately preceding it; however,<br />&nbsp; &nbsp;some implementations allowed some flexibility.&nbsp; Servers sometimes<br />&nbsp; &nbsp;send both a current and deprecated intermediate for transitional<br />&nbsp; &nbsp;purposes, and others are simply configured incorrectly, but these<br />&nbsp; &nbsp;cases can nonetheless be validated properly.&nbsp; For maximum<br />&nbsp; &nbsp;compatibility, <strong>all implementations SHOULD be prepared to handle<br />&nbsp; &nbsp;potentially extraneous certificates and arbitrary orderings from any<br />&nbsp; &nbsp;TLS version</strong>, with the exception of the end-entity certificate which<br />&nbsp; &nbsp;MUST be first.</p></blockquote></div><p>So you might want to enable WOLFSSL_ALT_CERT_CHAINS by default to accomodate to &quot;be prepared to handle potentially extraneous certificates&quot;.</p><p>In addition, wolfSSL isn&#039;t supporting &quot;arbitrary orderings&quot; currently, i.e. for a path A (trust anchor) -&gt; B -&gt; C -&gt; D (leaf), if it receives the certificates in the order D - B - C, it fails.</p>]]></description>
			<author><![CDATA[null@example.com (hablutzel1)]]></author>
			<pubDate>Fri, 27 Aug 2021 22:12:22 +0000</pubDate>
			<guid>https://www.wolfssl.com/forums/post6232.html#p6232</guid>
		</item>
		<item>
			<title><![CDATA[Re: [SOLVED] partial chain verification in WOLFSSL]]></title>
			<link>https://www.wolfssl.com/forums/post6229.html#p6229</link>
			<description><![CDATA[<p>Hi @hablutzel1</p><br /><p>Thanks for joining the forum. Would you please send an email to support@wolfssl.com referencing this post? We&#039;d like to get some more information about the issue you are seeing.</p><p>Thanks,<br />Eric @ wolfSSL Support</p>]]></description>
			<author><![CDATA[null@example.com (embhorn)]]></author>
			<pubDate>Fri, 27 Aug 2021 21:52:57 +0000</pubDate>
			<guid>https://www.wolfssl.com/forums/post6229.html#p6229</guid>
		</item>
		<item>
			<title><![CDATA[Re: [SOLVED] partial chain verification in WOLFSSL]]></title>
			<link>https://www.wolfssl.com/forums/post6228.html#p6228</link>
			<description><![CDATA[<p>I&#039;ve found <a href="https://www.wolfssl.com/docs/wolfssl-manual/ch2/,">https://www.wolfssl.com/docs/wolfssl-manual/ch2/,</a> which confirms the validation behavior described by the OP:</p><div class="quotebox"><blockquote><p>WOLFSSL_ALT_CERT_CHAIN ... allows loading intermediate CA&#039;s as trusted and ignoring no signer failures for CA&#039;s up the chain to root. The alternate certificate chain mode only requires that the peer certificate validate to a trusted CA.</p></blockquote></div><p>But, as mentioned previously, it is not working like that currently, i.e. trust in intermediate CAs works even without WOLFSSL_ALT_CERT_CHAIN. Has something changed recently in regards to this?.</p>]]></description>
			<author><![CDATA[null@example.com (hablutzel1)]]></author>
			<pubDate>Fri, 27 Aug 2021 21:23:14 +0000</pubDate>
			<guid>https://www.wolfssl.com/forums/post6228.html#p6228</guid>
		</item>
		<item>
			<title><![CDATA[Re: [SOLVED] partial chain verification in WOLFSSL]]></title>
			<link>https://www.wolfssl.com/forums/post6220.html#p6220</link>
			<description><![CDATA[<div class="quotebox"><cite>amirmaim wrote:</cite><blockquote><p>...<br />to clarify: assuming we have 3 certificates A-&gt;B-&gt;C (A signed B, B signed C), where A is self-signed certificate, is there a way to load B as the my trust anchor, and allow WOLFSSL to authenticate C only with B (that is, without self-signed certificate)?</p><p>this behavior will be equivalent to OPENSSL with &quot;partial_chain&quot; flag.<br />...</p></blockquote></div><div class="quotebox"><cite>amirmaim wrote:</cite><blockquote><p>...<br />without the flag, OPENSSL return &quot;unable to get local issuer certificate&quot;. WOLFSSL return -188 (ASN_NO_SIGNER_E).</p></blockquote></div><p>I can&#039;t reproduce this error with the current (Aug 2021) wolfSSL source code from <a href="https://github.com/wolfSSL/wolfssl.">https://github.com/wolfSSL/wolfssl.</a></p><p>In my tests, if I only configure trust in an intermediate CA, wolfSSL validates the certification path successfully, instead of failing as described by the OP!.</p><p>Maybe in the past it was required to always chain up to self-signed root CAs to validate the certification paths (as OpenSSL does by default, unless X509_V_FLAG_PARTIAL_CHAIN is used), but not anymore?. Can anyone confirm?.</p><p>PS: From my tests, WOLFSSL_ALT_CERT_CHAINS isn&#039;t really related to this as it (apparently) only instructs the library to ignore unrelated certificates during validation and even without it enabled, trusting only in an intermediate CA currently suffices for successful validation.</p>]]></description>
			<author><![CDATA[null@example.com (hablutzel1)]]></author>
			<pubDate>Fri, 27 Aug 2021 02:43:15 +0000</pubDate>
			<guid>https://www.wolfssl.com/forums/post6220.html#p6220</guid>
		</item>
		<item>
			<title><![CDATA[Re: [SOLVED] partial chain verification in WOLFSSL]]></title>
			<link>https://www.wolfssl.com/forums/post3841.html#p3841</link>
			<description><![CDATA[<p>Kaleb and Bitgid thank you very much for the responses, since we have earlier version of WOLFSSL (WOLFSSL_ALT_CERT_CHAINS available from October 2017) we are going to override verification result with verify_cb if it will prove necessary. </p><p>Thanks again!</p><p>Amir</p>]]></description>
			<author><![CDATA[null@example.com (amirmaim)]]></author>
			<pubDate>Sun, 25 Feb 2018 11:37:37 +0000</pubDate>
			<guid>https://www.wolfssl.com/forums/post3841.html#p3841</guid>
		</item>
		<item>
			<title><![CDATA[Re: [SOLVED] partial chain verification in WOLFSSL]]></title>
			<link>https://www.wolfssl.com/forums/post3835.html#p3835</link>
			<description><![CDATA[<p>Hi Bitgid and amirmaim,</p><p>Summary:</p><p>Some TLS servers may present an incomplete certificate chain. For example they may include an additional certificate for validating signed mail messgaes. By default wolfSSL validates all certificates in the provided chain. This differs from other TLS engines, such as openssl, which allow any valid chain for the server certificate.</p><p>We consider it best practice to validate all certificates in the chain and use this by default. If you are not able to load CA&#039;s for all certificates in the chain or want to allow alternate certificate chains then you can enable support for it using&nbsp; `#define WOLFSSL_ALT_CERT_CHAINS` or with `./configure CFLAGS=&quot;-DWOLFSSL_ALT_CERT_CHAINS`.</p><p>Let us know if you have any other questions, concerns, comments on this topic.</p><p>Warm Regards,</p><p>Kaleb</p>]]></description>
			<author><![CDATA[null@example.com (Kaleb J. Himes)]]></author>
			<pubDate>Tue, 20 Feb 2018 23:38:20 +0000</pubDate>
			<guid>https://www.wolfssl.com/forums/post3835.html#p3835</guid>
		</item>
		<item>
			<title><![CDATA[Re: [SOLVED] partial chain verification in WOLFSSL]]></title>
			<link>https://www.wolfssl.com/forums/post3828.html#p3828</link>
			<description><![CDATA[<div class="quotebox"><cite>amirmaim wrote:</cite><blockquote><p>Thanks Bitgid, but I&#039;ve seen this manual and the answer to my question is not there.</p><p>to clarify: assuming we have 3 certificates A-&gt;B-&gt;C (A signed B, B signed C), where A is self-signed certificate, is there a way to load B as the my trust anchor, and allow WOLFSSL to authenticate C only with B (that is, without self-signed certificate)?</p><p>this behavior will be equivalent to OPENSSL with &quot;partial_chain&quot; flag.</p><p>anyway, thanks!</p><p>Amir</p></blockquote></div><p>Oh,ok.I will try search more infor for you!</p>]]></description>
			<author><![CDATA[null@example.com (Bitgid)]]></author>
			<pubDate>Mon, 19 Feb 2018 16:58:46 +0000</pubDate>
			<guid>https://www.wolfssl.com/forums/post3828.html#p3828</guid>
		</item>
		<item>
			<title><![CDATA[Re: [SOLVED] partial chain verification in WOLFSSL]]></title>
			<link>https://www.wolfssl.com/forums/post3827.html#p3827</link>
			<description><![CDATA[<p>Thanks Bitgid, but I&#039;ve seen this manual and the answer to my question is not there.</p><p>to clarify: assuming we have 3 certificates A-&gt;B-&gt;C (A signed B, B signed C), where A is self-signed certificate, is there a way to load B as the my trust anchor, and allow WOLFSSL to authenticate C only with B (that is, without self-signed certificate)?</p><p>this behavior will be equivalent to OPENSSL with &quot;partial_chain&quot; flag.</p><p>anyway, thanks!</p><p>Amir</p>]]></description>
			<author><![CDATA[null@example.com (amirmaim)]]></author>
			<pubDate>Mon, 19 Feb 2018 16:47:53 +0000</pubDate>
			<guid>https://www.wolfssl.com/forums/post3827.html#p3827</guid>
		</item>
		<item>
			<title><![CDATA[Re: [SOLVED] partial chain verification in WOLFSSL]]></title>
			<link>https://www.wolfssl.com/forums/post3826.html#p3826</link>
			<description><![CDATA[<div class="quotebox"><cite>amirmaim wrote:</cite><blockquote><p>Hello, </p><p>OPENSSL provide the flag &quot;partial_chain&quot; that allow non self signed certificates to be used as CA, and verify certificates signed by one of those non self signed CA certificates. also, with &quot;partial_chain&quot; a non self signed CA can verify itself (which I&#039;m not sure that is a private case of the partial chain verification rule). </p><p>is there a similar behavior supported by WOLFSSL? I&#039;m looking for partial chain verification, self-verification, or both.</p><p>I know there is possibility to overwrite the verification result with verify_cb mechanism but I want to use WOLFSSL verification schemes. maybe I can call relevant WOLFSSL function from inside my verify_cb?</p><p>Thanks!</p><p>Amir</p><p>p.s.<br />without the flag, OPENSSL return &quot;unable to get local issuer certificate&quot;. WOLFSSL return -188 (ASN_NO_SIGNER_E).</p></blockquote></div><p>Hey,Amir.<br />Check out this manual.<br /><a href="https://www.wolfssl.com/docs/wolfssl-manual/ch7/">https://www.wolfssl.com/docs/wolfssl-manual/ch7/</a><br />There are several good and useful answers.<br />And a special thank to <a href="https://bitgid.com"><span style="color: #000000">Bitcohen</span></a>.<br />Regards BG!</p>]]></description>
			<author><![CDATA[null@example.com (Bitgid)]]></author>
			<pubDate>Mon, 19 Feb 2018 13:55:32 +0000</pubDate>
			<guid>https://www.wolfssl.com/forums/post3826.html#p3826</guid>
		</item>
		<item>
			<title><![CDATA[[SOLVED] partial chain verification in WOLFSSL]]></title>
			<link>https://www.wolfssl.com/forums/post3817.html#p3817</link>
			<description><![CDATA[<p>Hello, </p><p>OPENSSL provide the flag &quot;partial_chain&quot; that allow non self signed certificates to be used as CA, and verify certificates signed by one of those non self signed CA certificates. also, with &quot;partial_chain&quot; a non self signed CA can verify itself (which I&#039;m not sure that is a private case of the partial chain verification rule). </p><p>is there a similar behavior supported by WOLFSSL? I&#039;m looking for partial chain verification, self-verification, or both.</p><p>I know there is possibility to overwrite the verification result with verify_cb mechanism but I want to use WOLFSSL verification schemes. maybe I can call relevant WOLFSSL function from inside my verify_cb?</p><p>Thanks!</p><p>Amir</p><p>p.s.<br />without the flag, OPENSSL return &quot;unable to get local issuer certificate&quot;. WOLFSSL return -188 (ASN_NO_SIGNER_E).</p>]]></description>
			<author><![CDATA[null@example.com (amirmaim)]]></author>
			<pubDate>Wed, 14 Feb 2018 09:26:37 +0000</pubDate>
			<guid>https://www.wolfssl.com/forums/post3817.html#p3817</guid>
		</item>
	</channel>
</rss>
