<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[wolfSSL - Embedded SSL Library — wolfSSL with wolfIP]]></title>
	<link rel="self" href="https://www.wolfssl.com/forums/feed-atom-topic2530.xml" />
	<updated>2026-06-12T18:51:17Z</updated>
	<generator>PunBB</generator>
	<id>https://www.wolfssl.com/forums/topic2530-wolfssl-with-wolfip.html</id>
		<entry>
			<title type="html"><![CDATA[Re: wolfSSL with wolfIP]]></title>
			<link rel="alternate" href="https://www.wolfssl.com/forums/post8833.html#p8833" />
			<content type="html"><![CDATA[<p>Hi ah346743!<br />&nbsp; <br />I am one of the developers that work on the wolfIP project. This isn&#039;t a bug, just a wiring step that&#039;s easy to miss.</p><p>The message &quot;Your IO Send callback is null, please set&quot; means wolfSSL doesn&#039;t yet know how to send/receive bytes. On STM32 + wolfIP there are no BSD sockets, so wolfSSL&#039;s built-in I/O is compiled out and you have to point it at wolfIP. Note that wolfSSL_SetIOWriteCtx() only sets the context pointer; it does not install the send callback, which is why it&#039;s still null.</p><p>You don&#039;t need that function at all. wolfIP ships a helper pair that does the whole job:</p><p>```<br />&nbsp; ctx = wolfSSL_CTX_new(wolfTLSv1_3_client_method());<br />&nbsp; wolfSSL_SetIO_wolfIP_CTX(ctx, ipstack);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /* installs send/recv callbacks */</p><p>&nbsp; fd = wolfIP_sock_socket(ipstack, AF_INET, IPSTACK_SOCK_STREAM, 0);<br />&nbsp; wolfIP_sock_connect(ipstack, fd, &amp;remote, sizeof(remote));&nbsp; &nbsp;/* TCP connect first */</p><p>&nbsp; ssl = wolfSSL_new(ctx);<br />&nbsp; wolfSSL_SetIO_wolfIP(ssl, fd);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /* bind this session to the fd */</p><p>&nbsp; ret = wolfSSL_connect(ssl);<br />``` </p><p>Two things I would look out for: </p><p>1. Call wolfSSL_SetIO_wolfIP_CTX before wolfSSL_new. The callback is copied into the session at creation time.<br />2. wolfSSL_connect() won&#039;t finish in one call; it returns WANT_READ/WANT_WRITE until data moves. Keep wolfIP_poll(ipstack, HAL_GetTick()); running in your main loop and call wolfSSL_connect() again until it succeeds.</p><p>A full bare-metal example is here: src/port/stm32h563/tls_client.c</p><p>Could you try that and let me know? Two quick questions I have that may help you: </p><p>- Were you wiring the I/O manually, or calling the wolfSSL_SetIO_wolfIP* helpers?<br />- In CubeMX under Software Packs → Select Components, is the wolfSSL-IO component checked? If you get a linker error on wolfSSL_SetIO_wolfIP_CTX instead of the runtime message, that component isn&#039;t enabled.</p><p>Most of our Cube-pack TLS testing has been on the H5 a full working example lives here that may help you <a href="https://github.com/wolfSSL/wolfssl-examples-stm32/pull/10.">https://github.com/wolfSSL/wolfssl-exam … 2/pull/10.</a> </p><p>Thanks <br />Aidan - wolfSSL</p>]]></content>
			<author>
				<name><![CDATA[aidang]]></name>
				<uri>https://www.wolfssl.com/forums/user8834.html</uri>
			</author>
			<updated>2026-06-12T18:51:17Z</updated>
			<id>https://www.wolfssl.com/forums/post8833.html#p8833</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: wolfSSL with wolfIP]]></title>
			<link rel="alternate" href="https://www.wolfssl.com/forums/post8832.html#p8832" />
			<content type="html"><![CDATA[<p>Hi</p><p>Yes, it&#039;s an STM32CubeIDE project on the Nucleo F429ZI development board. I&#039;ve configured wolfSSL and wolfIP via CubeMX.</p>]]></content>
			<author>
				<name><![CDATA[ah346743]]></name>
				<uri>https://www.wolfssl.com/forums/user8832.html</uri>
			</author>
			<updated>2026-06-12T10:17:42Z</updated>
			<id>https://www.wolfssl.com/forums/post8832.html#p8832</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: wolfSSL with wolfIP]]></title>
			<link rel="alternate" href="https://www.wolfssl.com/forums/post8831.html#p8831" />
			<content type="html"><![CDATA[<p>Hi ah346743, </p><p>To better help you, can you let me know what platform you building on?&nbsp; For example, is this an STM32CubeIDE project? </p><p>Warm regards, Anthony</p>]]></content>
			<author>
				<name><![CDATA[anthony]]></name>
				<uri>https://www.wolfssl.com/forums/user4091.html</uri>
			</author>
			<updated>2026-06-11T13:29:16Z</updated>
			<id>https://www.wolfssl.com/forums/post8831.html#p8831</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[wolfSSL with wolfIP]]></title>
			<link rel="alternate" href="https://www.wolfssl.com/forums/post8830.html#p8830" />
			<content type="html"><![CDATA[<p>I&#039;m experimenting with using wolfSSL and wolfIP. When calling wolfSSL_connect() I get a failure with the log message &quot;Your IO Send callback is null, please set&quot;.</p><p>I can see this is something to do with wolfSSL_SetIOWriteCTX(), but I&#039;m not entirely sure what value to use - I&#039;m a novice with wolfSSL. </p><p>Are there specific values I should set to link the two components together?</p>]]></content>
			<author>
				<name><![CDATA[ah346743]]></name>
				<uri>https://www.wolfssl.com/forums/user8832.html</uri>
			</author>
			<updated>2026-06-11T12:11:55Z</updated>
			<id>https://www.wolfssl.com/forums/post8830.html#p8830</id>
		</entry>
</feed>
