<p dir="auto">New module: add wolfSSL as alternate TLS stack.</p>


<h4 dir="auto">Pre-Submission Checklist</h4>



<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Commit message has the format required by CONTRIBUTING guide</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Commits are split per component (core, individual modules, libs, utils, ...)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Each component has a single commit (if not, squash them into one commit)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> No commits to README files for modules (changes must be done to docbook files<br>
in <code class="notranslate">doc/</code> subfolder, the README file is autogenerated)</li>
</ul>
<h4 dir="auto">Type Of Change</h4>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Small bug fix (non-breaking change which fixes an issue)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> New feature (non-breaking change which adds new functionality)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Breaking change (fix or feature that would change existing functionality)</li>
</ul>
<h4 dir="auto">Checklist:</h4>

<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> PR should be backported to stable branches</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Tested changes locally</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Related to issue #XXXX (replace XXXX with an open issue number)</li>
</ul>
<h4 dir="auto">Description</h4>
<p dir="auto">This a new module: an alternate TLS implementation based on wolfSSL. The current tls module based on OpenSSL has many multi-process workarounds and can be quite fragile.</p>
<p dir="auto">This is the initial code dump which is a copy of <code class="notranslate">tls/</code> and edited to compile with wolfSSL by using the OpenSSL compatibility layer. The <code class="notranslate">doc/</code> directory has not been changed.</p>
<p dir="auto">The proposal is to get it into the code base as soon as possible so as to sync up with any ongoing changes in the <code class="notranslate">tls/</code> module. Any shared features can be extracted out into a common module: like certificate and configuration.</p>
<p dir="auto">In the short-term the steps are:</p>
<ul dir="auto">
<li>testing</li>
<li>use native wolfSSL APIs (remove OpenSSL compatibility layer)</li>
<li>remove OpenSSL multi-process  hacks in this module</li>
</ul>
<p dir="auto">This module is inspired by the <code class="notranslate">tls_wolfssl</code> module in the sister SIP project.</p>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/kamailio/kamailio/pull/3144'>https://github.com/kamailio/kamailio/pull/3144</a></p>

<h4>Commit Summary</h4>
<ul>
  <li><a href="https://github.com/kamailio/kamailio/pull/3144/commits/f3565fba05f079f406da76d9495f96a88e1d9974" class="commit-link">f3565fb</a>  tls_wolfssl: new module TLS stack based on wolfSSL</li>
</ul>

<h4 style="display: inline-block">File Changes </h4> <p style="display: inline-block">(<a href="https://github.com/kamailio/kamailio/pull/3144/files">49 files</a>)</p>
<ul>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-4e0d4becb5656de51bb49188a13daa88002a734f866ea3b330054c9ba54526c2">src/modules/tls_wolfssl/Makefile</a>
    (81)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-2c13729819fb8a1b31d5d16a67f57486b2aa6178ed34613d6815fc8735783910">src/modules/tls_wolfssl/README</a>
    (1713)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-a6c1aaea46cdc2936a5db89f799c195eab1a848907ea2c62dae47b324f216a2e">src/modules/tls_wolfssl/TODO.md</a>
    (7)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-ce9920cabb74ad19f2ccd3a1bdda52b368aaad789b02612e40719772d7315059">src/modules/tls_wolfssl/doc/Makefile</a>
    (4)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-2f0d4700a22fc0c94f60dd99c62e740202bfac13ab1c1c86f694571d42f0843d">src/modules/tls_wolfssl/doc/certs_howto.xml</a>
    (154)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-963e7797c4d134dd9cf9263c418930fd792dd2c2e16f8246c8945d6cfdc29809">src/modules/tls_wolfssl/doc/functions.xml</a>
    (63)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-a8d4df92d3fd9d60266fed8d620d35b64fa12a0a1872f229bfe04582b7b5d095">src/modules/tls_wolfssl/doc/history.xml</a>
    (38)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-89fe47cc466f617a20672f2509ee6f58625643f8824380bbe2905b57e2232974">src/modules/tls_wolfssl/doc/hsm_howto.xml</a>
    (64)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-19d63cd83e69c6aa49848f9fb49ec5a8aa910ae44e726904c26cfa1e062e86e7">src/modules/tls_wolfssl/doc/params.xml</a>
    (1410)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-c85425cbbd5f36c0c16ca3da545ee0f6b3a646c34d3899285bfe2f5c9205e381">src/modules/tls_wolfssl/doc/rpc.xml</a>
    (69)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-49d74c12935d56aeaaa6456572b10bc6cd97ca86c47a66661db8a2fe6b077805">src/modules/tls_wolfssl/doc/tls.xml</a>
    (367)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-b8bff73c98927f33799dcf6d0dbd3c05e8e2cc9bc05730724adfd61b131ee2e4">src/modules/tls_wolfssl/fixed_c_zlib.h</a>
    (258)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-59ce41affc8aef5a32d627c2ee0fd8877abacd238931168b01c4e86ffb1f2c41">src/modules/tls_wolfssl/sbufq.h</a>
    (283)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-7463b5614375e5318545f790e8f198351cec707e9fd8a8d9fbf7f86dde9b1ae0">src/modules/tls_wolfssl/tls.cfg</a>
    (106)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-a22af9649e995768a22910157ec09d9a5b590680d18350da5754f86a9ed561fe">src/modules/tls_wolfssl/tls_bio.c</a>
    (314)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-96e06d26aeb3c0484978ca6c7a4eb8ebde51d3839cfb8236b04f35710f65fe78">src/modules/tls_wolfssl/tls_bio.h</a>
    (69)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-d0e35c19d9ea259c037a898f8af937e8809715745513b33a3b79ae63fc7cdd85">src/modules/tls_wolfssl/tls_cert.sh</a>
    (201)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-3b58a046433233ea61034537b85c40f2a28932093c91b20dd4af7bab79ba147a">src/modules/tls_wolfssl/tls_cfg.c</a>
    (289)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-0b70b25accb0a45c50a342bd39063a046d169ee05645de4892fd24c38904c12a">src/modules/tls_wolfssl/tls_cfg.h</a>
    (111)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-ac323c45c9076447607db24cb5a057f57bd3c800966463fb321e7e9c1c42a543">src/modules/tls_wolfssl/tls_config.c</a>
    (536)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-df8e61b4dbb9269364e149e20353043eb2f7b5bcab8bbb2d0876c71e560ffaec">src/modules/tls_wolfssl/tls_config.h</a>
    (53)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-b6961cb15f511c6eb0188a6094ce37713f0a7a4598e293ac41ea8039e5646717">src/modules/tls_wolfssl/tls_ct_q.h</a>
    (133)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-f54ffe2f7f9bfef6d55efc107c63d60cf4fedf4960758e14288c0a7b6ae982b9">src/modules/tls_wolfssl/tls_ct_wrq.c</a>
    (205)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-06e0a5aa831bc4ac8d1920a03a0da6e9a9f8417290c37a2124fbab26cc469446">src/modules/tls_wolfssl/tls_ct_wrq.h</a>
    (98)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-b61b5aba33075cf5755c487e56db5b183d2a42e0db97a90167d25ebb8c5809fd">src/modules/tls_wolfssl/tls_domain.c</a>
    (1585)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-4f9e968b4ae5f391b9ad697ea0c8fd6a3582a21ac1fa5f4d55b625c8d2e0ef29">src/modules/tls_wolfssl/tls_domain.h</a>
    (238)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-f5750c51ce4b575c56f090c4c30dcc57fc6ac6231bc2e770a0af26dfba0dddb4">src/modules/tls_wolfssl/tls_dump_vf.c</a>
    (150)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-f61f2eb659797ad8f607758d870b747bcd01f1c343c2a9f6e63a829c2349416f">src/modules/tls_wolfssl/tls_dump_vf.h</a>
    (41)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-42f338f42e1ff9e3337d20f9929b08fbe4e5e4c4970ebdca25bb01ff311154e8">src/modules/tls_wolfssl/tls_init.c</a>
    (589)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-7423835e408ca5b2f772f75cefdf6c0a10ae54f53ffc0dde7502bf1e56bc729f">src/modules/tls_wolfssl/tls_init.h</a>
    (85)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-a6d80b6e65e5c8f94d3cee50a546db7962995eb46358068d0458678129f13bbf">src/modules/tls_wolfssl/tls_locking.c</a>
    (59)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-97d597ca010578bc83b17538ed8c3a287f6ba1c05619f99bdc810c4ae7754043">src/modules/tls_wolfssl/tls_locking.h</a>
    (34)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-d25dd8630a1ebc5be1ca9cc5da5b50298dcb742491461dc45c7b65af007d5969">src/modules/tls_wolfssl/tls_map.c</a>
    (195)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-02dd68f3c38b0251136f5c56fb1f08625747b0d44051c523335dfaa07b09f5db">src/modules/tls_wolfssl/tls_map.h</a>
    (77)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-34b8271738f2728a41b69aad88ce8ab627900318bea62800db25604a1feec547">src/modules/tls_wolfssl/tls_mod.c</a>
    (733)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-23700f1466c7e9781b6cb28e778eeb1990722023e52e529ef32b5dfbbd566a33">src/modules/tls_wolfssl/tls_mod.h</a>
    (45)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-442ec549fafa89719fdc5afd727723ddf29de2d219109d2782bf197ca72c161e">src/modules/tls_wolfssl/tls_rand.c</a>
    (375)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-a95cf4167d5cd1e9374f3074416fea13df788c1c1a842c0743328f65ac258edf">src/modules/tls_wolfssl/tls_rand.h</a>
    (32)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-bff03f0374a766548b66374c089e9b5a7d0af3426b08c64e13432aade9d28ac4">src/modules/tls_wolfssl/tls_rpc.c</a>
    (263)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-a3b54d1dbcf828673bb61161bc885c492b863ae1a59de82452a257e72a92b930">src/modules/tls_wolfssl/tls_rpc.h</a>
    (33)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-f783bfe0de97b54b3d70a2ab548c0bc151f860cebb0d8926f81529248bcfff97">src/modules/tls_wolfssl/tls_select.c</a>
    (1707)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-a7dc29ef4859c9628c1d63654eca9af995a2ef6f95fcf34f7852ec6e9a8b1987">src/modules/tls_wolfssl/tls_select.h</a>
    (52)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-928e42816828bb8d336bb3817717ff619457967e9bbe22dae78c9ae17beceadd">src/modules/tls_wolfssl/tls_server.c</a>
    (1557)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-1aed4a68a85ce63aa83951a2be2ac2750756cd4909f204c0116ca32183dac44a">src/modules/tls_wolfssl/tls_server.h</a>
    (101)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-784ebaf3acc3f8342a7f35ad2c4da890da3141f17eaa3c2dd615d6c284a1bdd4">src/modules/tls_wolfssl/tls_util.c</a>
    (99)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-b6c43dd208505eb33f6af946d8f7f54918de0989692120eada670603208ee3c7">src/modules/tls_wolfssl/tls_util.h</a>
    (87)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-042910abd67633281c4f5bffdbdf84c80cf93345cdd8d50eefc9e28aba82064d">src/modules/tls_wolfssl/tls_verify.c</a>
    (135)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-e2bbeb66d68d6bbf41916ffd822bac1c0167db9231192a145303a724de7a6124">src/modules/tls_wolfssl/tls_verify.h</a>
    (42)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/3144/files#diff-c67228de7ab9e1b20d1fa548928bd42c238d63b560c838731f15a61640cd8f33">src/modules/tls_wolfssl/todo.txt</a>
    (4)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/kamailio/kamailio/pull/3144.patch'>https://github.com/kamailio/kamailio/pull/3144.patch</a></li>
  <li><a href='https://github.com/kamailio/kamailio/pull/3144.diff'>https://github.com/kamailio/kamailio/pull/3144.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />Reply to this email directly, <a href="https://github.com/kamailio/kamailio/pull/3144">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABO7UZPI4MHFDSMYHFAV3LLVPATWDANCNFSM5YWRP3SA">unsubscribe</a>.<br />You are receiving this because you are subscribed to this thread.<img src="https://github.com/notifications/beacon/ABO7UZPC3E6I355I32ZMRB3VPATWDA5CNFSM5YWRP3SKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4S5XZ75A.gif" height="1" width="1" alt="" /><span style="color: transparent; font-size: 0; display: none; visibility: hidden; overflow: hidden; opacity: 0; width: 0; height: 0; max-width: 0; max-height: 0; mso-hide: all">Message ID: <span><kamailio/kamailio/pull/3144</span><span>@</span><span>github</span><span>.</span><span>com></span></span></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/kamailio/kamailio/pull/3144",
"url": "https://github.com/kamailio/kamailio/pull/3144",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>