CINXE.COM
Frequently Asked Questions (FAQ) – wolfSSL
<!DOCTYPE html> <html lang="en-US" prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#"> <head> <meta charset="UTF-8"> <meta name="keywords" content="iot tls"> <link rel="profile" href="http://gmpg.org/xfn/11"> <link rel="pingback" href="https://www.wolfssl.com/wordpress/xmlrpc.php"> <meta name="viewport" content="width=device-width, initial-scale=1"><title>Frequently Asked Questions (FAQ) – wolfSSL</title> <meta name='robots' content='max-image-preview:large' /> <link rel='dns-prefetch' href='//fonts.googleapis.com' /> <link rel="alternate" type="application/rss+xml" title="wolfSSL » Feed" href="https://www.wolfssl.com/feed/" /> <link rel="alternate" type="application/rss+xml" title="wolfSSL » Comments Feed" href="https://www.wolfssl.com/comments/feed/" /> <!-- This site uses the Google Analytics by ExactMetrics plugin v7.12.1 - Using Analytics tracking - https://www.exactmetrics.com/ --> <script src="//www.googletagmanager.com/gtag/js?id=UA-64826966-1" data-cfasync="false" data-wpfc-render="false" type="text/javascript" async></script> <script data-cfasync="false" data-wpfc-render="false" type="text/javascript"> var em_version = '7.12.1'; var em_track_user = true; var em_no_track_reason = ''; var disableStrs = [ 'ga-disable-G-19EKT1MGL2', 'ga-disable-UA-64826966-1', ]; /* Function to detect opted out users */ function __gtagTrackerIsOptedOut() { for (var index = 0; index < disableStrs.length; index++) { if (document.cookie.indexOf(disableStrs[index] + '=true') > -1) { return true; } } return false; } /* Disable tracking if the opt-out cookie exists. */ if (__gtagTrackerIsOptedOut()) { for (var index = 0; index < disableStrs.length; index++) { window[disableStrs[index]] = true; } } /* Opt-out function */ function __gtagTrackerOptout() { for (var index = 0; index < disableStrs.length; index++) { document.cookie = disableStrs[index] + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/'; window[disableStrs[index]] = true; } } if ('undefined' === typeof gaOptout) { function gaOptout() { __gtagTrackerOptout(); } } window.dataLayer = window.dataLayer || []; window.ExactMetricsDualTracker = { helpers: {}, trackers: {}, }; if (em_track_user) { function __gtagDataLayer() { dataLayer.push(arguments); } function __gtagTracker(type, name, parameters) { if (!parameters) { parameters = {}; } if (parameters.send_to) { __gtagDataLayer.apply(null, arguments); return; } if (type === 'event') { parameters.send_to = exactmetrics_frontend.v4_id; var hookName = name; if (typeof parameters['event_category'] !== 'undefined') { hookName = parameters['event_category'] + ':' + name; } if (typeof ExactMetricsDualTracker.trackers[hookName] !== 'undefined') { ExactMetricsDualTracker.trackers[hookName](parameters); } else { __gtagDataLayer('event', name, parameters); } parameters.send_to = exactmetrics_frontend.ua; __gtagDataLayer(type, name, parameters); } else { __gtagDataLayer.apply(null, arguments); } } __gtagTracker('js', new Date()); __gtagTracker('set', { 'developer_id.dNDMyYj': true, }); __gtagTracker('config', 'G-19EKT1MGL2', {"forceSSL":"true"} ); __gtagTracker('config', 'UA-64826966-1', {"forceSSL":"true"} ); window.gtag = __gtagTracker; (function () { /* https://developers.google.com/analytics/devguides/collection/analyticsjs/ */ /* ga and __gaTracker compatibility shim. */ var noopfn = function () { return null; }; var newtracker = function () { return new Tracker(); }; var Tracker = function () { return null; }; var p = Tracker.prototype; p.get = noopfn; p.set = noopfn; p.send = function () { var args = Array.prototype.slice.call(arguments); args.unshift('send'); __gaTracker.apply(null, args); }; var __gaTracker = function () { var len = arguments.length; if (len === 0) { return; } var f = arguments[len - 1]; if (typeof f !== 'object' || f === null || typeof f.hitCallback !== 'function') { if ('send' === arguments[0]) { var hitConverted, hitObject = false, action; if ('event' === arguments[1]) { if ('undefined' !== typeof arguments[3]) { hitObject = { 'eventAction': arguments[3], 'eventCategory': arguments[2], 'eventLabel': arguments[4], 'value': arguments[5] ? arguments[5] : 1, } } } if ('pageview' === arguments[1]) { if ('undefined' !== typeof arguments[2]) { hitObject = { 'eventAction': 'page_view', 'page_path': arguments[2], } } } if (typeof arguments[2] === 'object') { hitObject = arguments[2]; } if (typeof arguments[5] === 'object') { Object.assign(hitObject, arguments[5]); } if ('undefined' !== typeof arguments[1].hitType) { hitObject = arguments[1]; if ('pageview' === hitObject.hitType) { hitObject.eventAction = 'page_view'; } } if (hitObject) { action = 'timing' === arguments[1].hitType ? 'timing_complete' : hitObject.eventAction; hitConverted = mapArgs(hitObject); __gtagTracker('event', action, hitConverted); } } return; } function mapArgs(args) { var arg, hit = {}; var gaMap = { 'eventCategory': 'event_category', 'eventAction': 'event_action', 'eventLabel': 'event_label', 'eventValue': 'event_value', 'nonInteraction': 'non_interaction', 'timingCategory': 'event_category', 'timingVar': 'name', 'timingValue': 'value', 'timingLabel': 'event_label', 'page': 'page_path', 'location': 'page_location', 'title': 'page_title', }; for (arg in args) { if (!(!args.hasOwnProperty(arg) || !gaMap.hasOwnProperty(arg))) { hit[gaMap[arg]] = args[arg]; } else { hit[arg] = args[arg]; } } return hit; } try { f.hitCallback(); } catch (ex) { } }; __gaTracker.create = newtracker; __gaTracker.getByName = newtracker; __gaTracker.getAll = function () { return []; }; __gaTracker.remove = noopfn; __gaTracker.loaded = true; window['__gaTracker'] = __gaTracker; })(); } else { console.log(""); (function () { function __gtagTracker() { return null; } window['__gtagTracker'] = __gtagTracker; window['gtag'] = __gtagTracker; })(); } </script> <!-- / Google Analytics by ExactMetrics --> <script type="text/javascript"> window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/14.0.0\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/14.0.0\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/www.wolfssl.com\/wordpress\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.1.1"}}; /*! This file is auto-generated */ !function(e,a,t){var n,r,o,i=a.createElement("canvas"),p=i.getContext&&i.getContext("2d");function s(e,t){var a=String.fromCharCode,e=(p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,e),0,0),i.toDataURL());return p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,t),0,0),e===i.toDataURL()}function c(e){var t=a.createElement("script");t.src=e,t.defer=t.type="text/javascript",a.getElementsByTagName("head")[0].appendChild(t)}for(o=Array("flag","emoji"),t.supports={everything:!0,everythingExceptFlag:!0},r=0;r<o.length;r++)t.supports[o[r]]=function(e){if(p&&p.fillText)switch(p.textBaseline="top",p.font="600 32px Arial",e){case"flag":return s([127987,65039,8205,9895,65039],[127987,65039,8203,9895,65039])?!1:!s([55356,56826,55356,56819],[55356,56826,8203,55356,56819])&&!s([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]);case"emoji":return!s([129777,127995,8205,129778,127999],[129777,127995,8203,129778,127999])}return!1}(o[r]),t.supports.everything=t.supports.everything&&t.supports[o[r]],"flag"!==o[r]&&(t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&t.supports[o[r]]);t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&!t.supports.flag,t.DOMReady=!1,t.readyCallback=function(){t.DOMReady=!0},t.supports.everything||(n=function(){t.readyCallback()},a.addEventListener?(a.addEventListener("DOMContentLoaded",n,!1),e.addEventListener("load",n,!1)):(e.attachEvent("onload",n),a.attachEvent("onreadystatechange",function(){"complete"===a.readyState&&t.readyCallback()})),(e=t.source||{}).concatemoji?c(e.concatemoji):e.wpemoji&&e.twemoji&&(c(e.twemoji),c(e.wpemoji)))}(window,document,window._wpemojiSettings); </script> <style type="text/css"> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='wp-block-library-css' href='https://www.wolfssl.com/wordpress/wp-includes/css/dist/block-library/style.min.css?ver=6.1.1' type='text/css' media='all' /> <link rel='stylesheet' id='classic-theme-styles-css' href='https://www.wolfssl.com/wordpress/wp-includes/css/classic-themes.min.css?ver=1' type='text/css' media='all' /> <style id='global-styles-inline-css' type='text/css'> body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--duotone--dark-grayscale: url('#wp-duotone-dark-grayscale');--wp--preset--duotone--grayscale: url('#wp-duotone-grayscale');--wp--preset--duotone--purple-yellow: url('#wp-duotone-purple-yellow');--wp--preset--duotone--blue-red: url('#wp-duotone-blue-red');--wp--preset--duotone--midnight: url('#wp-duotone-midnight');--wp--preset--duotone--magenta-yellow: url('#wp-duotone-magenta-yellow');--wp--preset--duotone--purple-green: url('#wp-duotone-purple-green');--wp--preset--duotone--blue-orange: url('#wp-duotone-blue-orange');--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;}:where(.is-layout-flex){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} .wp-block-navigation a:where(:not(.wp-element-button)){color: inherit;} :where(.wp-block-columns.is-layout-flex){gap: 2em;} .wp-block-pullquote{font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='tfba_socialfeed_style-css' href='https://www.wolfssl.com/wordpress/wp-content/plugins/arrow-twitter-feed/includes/../css/jquery.socialfeed.css?ver=1.0.0' type='text/css' media='all' /> <link rel='stylesheet' id='siteorigin-panels-front-css' href='https://www.wolfssl.com/wordpress/wp-content/plugins/siteorigin-panels/css/front-flex.min.css?ver=2.20.4' type='text/css' media='all' /> <link rel='stylesheet' id='smls-fontawesome-style-css' href='https://www.wolfssl.com/wordpress/wp-content/plugins/smart-logo-showcase-lite/css/font-awesome.min.css?ver=1.1.2' type='text/css' media='all' /> <link rel='stylesheet' id='smls-google-fonts-sans-css' href='https://fonts.googleapis.com/css?family=Open+Sans%3A400%2C300%2C600%2C700%2C800&ver=6.1.1' type='text/css' media='all' /> <link rel='stylesheet' id='smls-google-fonts-roboto-css' href='https://fonts.googleapis.com/css?family=Roboto%3A400%2C300italic%2C400italic%2C500%2C500italic%2C700%2C700italic%2C900italic%2C900&ver=6.1.1' type='text/css' media='all' /> <link rel='stylesheet' id='smls-google-fonts-lato-css' href='https://fonts.googleapis.com/css?family=Lato%3A400%2C300italic%2C400italic%2C700%2C700italic%2C900italic%2C900&ver=6.1.1' type='text/css' media='all' /> <link rel='stylesheet' id='smls-google-fonts-montserrat-css' href='https://fonts.googleapis.com/css?family=Montserrat%3A400%2C700&ver=6.1.1' type='text/css' media='all' /> <link rel='stylesheet' id='smls-google-fonts-merriweather-css' href='https://fonts.googleapis.com/css?family=Merriweather+Sans%3A300%2C400%2C700%2C800+Sans%3A300%2C400%2C700&ver=6.1.1' type='text/css' media='all' /> <link rel='stylesheet' id='smls-google-fonts-droid-css' href='https://fonts.googleapis.com/css?family=Droid+Sans%3A400%2C700&ver=6.1.1' type='text/css' media='all' /> <link rel='stylesheet' id='smls-google-fonts-oxygen-css' href='https://fonts.googleapis.com/css?family=Oxygen%3A300%2C400%2C700&ver=6.1.1' type='text/css' media='all' /> <link rel='stylesheet' id='smls-google-fonts-raleway-css' href='https://fonts.googleapis.com/css?family=Raleway%3A100%2C200%2C300%2C400%2C500%2C600%2C700%2C800%2C900&ver=6.1.1' type='text/css' media='all' /> <link rel='stylesheet' id='smls-owl-style-css' href='https://www.wolfssl.com/wordpress/wp-content/plugins/smart-logo-showcase-lite/css/owl.carousel.css?ver=1.1.2' type='text/css' media='all' /> <link rel='stylesheet' id='smls-tooltip-style-css' href='https://www.wolfssl.com/wordpress/wp-content/plugins/smart-logo-showcase-lite/css/tooltipster.bundle.css?ver=1.1.2' type='text/css' media='all' /> <link rel='stylesheet' id='smls-frontend-style-css' href='https://www.wolfssl.com/wordpress/wp-content/plugins/smart-logo-showcase-lite/css/smls-frontend-style.css?ver=1.1.2' type='text/css' media='all' /> <link rel='stylesheet' id='smls-responsive-style-css' href='https://www.wolfssl.com/wordpress/wp-content/plugins/smart-logo-showcase-lite/css/smls-responsive.css?ver=1.1.2' type='text/css' media='all' /> <link rel='stylesheet' id='siteorigin-north-style-css' href='https://www.wolfssl.com/wordpress/wp-content/themes/siteorigin-north/style.min.css?ver=1.3.15' type='text/css' media='all' /> <link rel='stylesheet' id='siteorigin-north-icons-css' href='https://www.wolfssl.com/wordpress/wp-content/themes/siteorigin-north/css/north-icons.min.css?ver=1.3.15' type='text/css' media='all' /> <link rel='stylesheet' id='siteorigin-north-flexslider-css' href='https://www.wolfssl.com/wordpress/wp-content/themes/siteorigin-north/css/flexslider.min.css?ver=6.1.1' type='text/css' media='all' /> <link rel='stylesheet' id='siteorigin-google-web-fonts-css' href='//fonts.googleapis.com/css?family=Droid+Sans%3A400%2C700%7CMontserrat%3A400%7CDroid+Serif%3A400&ver=6.1.1' type='text/css' media='all' /> <link rel='stylesheet' id='newsletter-css' href='https://www.wolfssl.com/wordpress/wp-content/plugins/newsletter/style.css?ver=7.6.1' type='text/css' media='all' /> <link rel='stylesheet' id='tablepress-default-css' href='https://www.wolfssl.com/wordpress/wp-content/plugins/tablepress/css/build/default.css?ver=2.0.4' type='text/css' media='all' /> <script type='text/javascript' src='https://www.wolfssl.com/wordpress/wp-content/plugins/google-analytics-dashboard-for-wp/assets/js/frontend-gtag.min.js?ver=7.12.1' id='exactmetrics-frontend-script-js'></script> <script data-cfasync="false" data-wpfc-render="false" type="text/javascript" id='exactmetrics-frontend-script-js-extra'>/* <![CDATA[ */ var exactmetrics_frontend = {"js_events_tracking":"true","download_extensions":"zip,mp3,mpeg,pdf,docx,pptx,xlsx,rar","inbound_paths":"[{\"path\":\"\\\/go\\\/\",\"label\":\"affiliate\"},{\"path\":\"\\\/recommend\\\/\",\"label\":\"affiliate\"}]","home_url":"https:\/\/www.wolfssl.com","hash_tracking":"false","ua":"UA-64826966-1","v4_id":"G-19EKT1MGL2"};/* ]]> */ </script> <script type='text/javascript' src='https://www.wolfssl.com/wordpress/wp-includes/js/jquery/jquery.min.js?ver=3.6.1' id='jquery-core-js'></script> <script type='text/javascript' src='https://www.wolfssl.com/wordpress/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.3.2' id='jquery-migrate-js'></script> <script type='text/javascript' src='https://www.wolfssl.com/wordpress/wp-content/plugins/arrow-twitter-feed/includes/../bower_components/codebird-js/codebird.js?ver=6.1.1' id='tfba_codebird-js'></script> <script type='text/javascript' src='https://www.wolfssl.com/wordpress/wp-content/plugins/arrow-twitter-feed/includes/../bower_components/doT/doT.min.js?ver=6.1.1' id='tfba_doT-js'></script> <script type='text/javascript' src='https://www.wolfssl.com/wordpress/wp-content/plugins/arrow-twitter-feed/includes/../bower_components/moment/min/moment.min.js?ver=6.1.1' id='tfba_moment-js'></script> <script type='text/javascript' src='https://www.wolfssl.com/wordpress/wp-content/plugins/arrow-twitter-feed/includes/../js/jquery.socialfeed.js?ver=6.1.1' id='tfba_socialfeed-js'></script> <script type='text/javascript' src='https://www.wolfssl.com/wordpress/wp-content/plugins/smart-logo-showcase-lite/js/owl.carousel.js?ver=1.1.2' id='smls-owl-script-js'></script> <script type='text/javascript' src='https://www.wolfssl.com/wordpress/wp-content/plugins/smart-logo-showcase-lite/js/tooltipster.bundle.js?ver=1.1.2' id='smls-tooltip-script-js'></script> <script type='text/javascript' src='https://www.wolfssl.com/wordpress/wp-content/plugins/smart-logo-showcase-lite/js/smls-frontend-script.js?ver=1.1.2' id='smls-frontend-script-js'></script> <script type='text/javascript' src='https://www.wolfssl.com/wordpress/wp-content/themes/siteorigin-north/js/iframeResizer.min.js?ver=6.1.1' id='iFrameResize-js'></script> <link rel="https://api.w.org/" href="https://www.wolfssl.com/wp-json/" /><link rel="alternate" type="application/json" href="https://www.wolfssl.com/wp-json/wp/v2/pages/29469" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.wolfssl.com/wordpress/xmlrpc.php?rsd" /> <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="https://www.wolfssl.com/wordpress/wp-includes/wlwmanifest.xml" /> <meta name="generator" content="WordPress 6.1.1" /> <link rel="canonical" href="https://www.wolfssl.com/docs/frequently-asked-questions-faq/" /> <link rel='shortlink' href='https://www.wolfssl.com/?p=29469' /> <link rel="alternate" type="application/json+oembed" href="https://www.wolfssl.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.wolfssl.com%2Fdocs%2Ffrequently-asked-questions-faq%2F" /> <link rel="alternate" type="text/xml+oembed" href="https://www.wolfssl.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.wolfssl.com%2Fdocs%2Ffrequently-asked-questions-faq%2F&format=xml" /> <script> (function($){ "use strict"; var $searchArea = $('.top-search-menu'); $searchArea.click(function(){ $(this).addClass('input-expanded'); }); $(document).mouseup(function (e){ var container = $(".top-search-menu"); if (!$searchArea.is(e.target) && $searchArea.has(e.target).length === 0){ $searchArea.removeClass('input-expanded'); } }); })(jQuery); </script> <style type="text/css" id="siteorigin-north-settings-custom" data-siteorigin-settings="true"> .content-area { margin: 0 -0% 0 0; } .site-main { margin: 0 0% 0 0; } .site-content .widget-area { width: 0%; } .layout-sidebar-left .content-area { margin: 0 0 0 -0%; } .layout-sidebar-left .site-main { margin: 0 0 0 0%; } .layout-sidebar-left .site-content .widget-area { width: 0%; } @media screen and (max-width: 600px) { body.responsive .main-navigation #mobile-menu-button { display: inline-block; } body.responsive .main-navigation ul { display: none; } body.responsive .main-navigation .north-search-icon { display: none; } .main-navigation #mobile-menu-button { display: none; } .main-navigation ul { display: inline-block; } .main-navigation .north-search-icon { display: inline-block; } } @media screen and (min-width: 601px) { body.responsive #mobile-navigation { display: none !important; } } </style> <style type="text/css" media="all" id="siteorigin-panels-layouts-head">/* Layout 29469 */ #pgc-29469-0-0 , #pgc-29469-1-0 , #pgc-29469-2-0 , #pgc-29469-3-0 , #pgc-29469-4-0 , #pgc-29469-5-0 , #pgc-29469-6-0 , #pgc-29469-7-0 , #pgc-29469-8-0 , #pgc-29469-9-0 , #pgc-29469-10-0 , #pgc-29469-11-0 , #pgc-29469-12-0 , #pgc-29469-13-0 , #pgc-29469-14-0 , #pgc-29469-15-0 { width:100%;width:calc(100% - ( 0 * 30px ) ) } #pg-29469-0 , #pg-29469-1 , #pg-29469-2 , #pg-29469-3 , #pg-29469-4 , #pg-29469-5 , #pg-29469-6 , #pg-29469-7 , #pg-29469-8 , #pg-29469-9 , #pg-29469-10 , #pg-29469-11 , #pg-29469-12 , #pg-29469-13 , #pg-29469-14 , #pl-29469 .so-panel { margin-bottom:30px } #pl-29469 .so-panel:last-of-type { margin-bottom:0px } #pg-29469-1.panel-has-style > .panel-row-style, #pg-29469-1.panel-no-style , #pg-29469-3.panel-has-style > .panel-row-style, #pg-29469-3.panel-no-style , #pg-29469-4.panel-has-style > .panel-row-style, #pg-29469-4.panel-no-style , #pg-29469-5.panel-has-style > .panel-row-style, #pg-29469-5.panel-no-style , #pg-29469-6.panel-has-style > .panel-row-style, #pg-29469-6.panel-no-style { -webkit-align-items:flex-start;align-items:flex-start } @media (max-width:780px){ #pg-29469-0.panel-no-style, #pg-29469-0.panel-has-style > .panel-row-style, #pg-29469-0 , #pg-29469-1.panel-no-style, #pg-29469-1.panel-has-style > .panel-row-style, #pg-29469-1 , #pg-29469-2.panel-no-style, #pg-29469-2.panel-has-style > .panel-row-style, #pg-29469-2 , #pg-29469-3.panel-no-style, #pg-29469-3.panel-has-style > .panel-row-style, #pg-29469-3 , #pg-29469-4.panel-no-style, #pg-29469-4.panel-has-style > .panel-row-style, #pg-29469-4 , #pg-29469-5.panel-no-style, #pg-29469-5.panel-has-style > .panel-row-style, #pg-29469-5 , #pg-29469-6.panel-no-style, #pg-29469-6.panel-has-style > .panel-row-style, #pg-29469-6 , #pg-29469-7.panel-no-style, #pg-29469-7.panel-has-style > .panel-row-style, #pg-29469-7 , #pg-29469-8.panel-no-style, #pg-29469-8.panel-has-style > .panel-row-style, #pg-29469-8 , #pg-29469-9.panel-no-style, #pg-29469-9.panel-has-style > .panel-row-style, #pg-29469-9 , #pg-29469-10.panel-no-style, #pg-29469-10.panel-has-style > .panel-row-style, #pg-29469-10 , #pg-29469-11.panel-no-style, #pg-29469-11.panel-has-style > .panel-row-style, #pg-29469-11 , #pg-29469-12.panel-no-style, #pg-29469-12.panel-has-style > .panel-row-style, #pg-29469-12 , #pg-29469-13.panel-no-style, #pg-29469-13.panel-has-style > .panel-row-style, #pg-29469-13 , #pg-29469-14.panel-no-style, #pg-29469-14.panel-has-style > .panel-row-style, #pg-29469-14 , #pg-29469-15.panel-no-style, #pg-29469-15.panel-has-style > .panel-row-style, #pg-29469-15 { -webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column } #pg-29469-0 > .panel-grid-cell , #pg-29469-0 > .panel-row-style > .panel-grid-cell , #pg-29469-1 > .panel-grid-cell , #pg-29469-1 > .panel-row-style > .panel-grid-cell , #pg-29469-2 > .panel-grid-cell , #pg-29469-2 > .panel-row-style > .panel-grid-cell , #pg-29469-3 > .panel-grid-cell , #pg-29469-3 > .panel-row-style > .panel-grid-cell , #pg-29469-4 > .panel-grid-cell , #pg-29469-4 > .panel-row-style > .panel-grid-cell , #pg-29469-5 > .panel-grid-cell , #pg-29469-5 > .panel-row-style > .panel-grid-cell , #pg-29469-6 > .panel-grid-cell , #pg-29469-6 > .panel-row-style > .panel-grid-cell , #pg-29469-7 > .panel-grid-cell , #pg-29469-7 > .panel-row-style > .panel-grid-cell , #pg-29469-8 > .panel-grid-cell , #pg-29469-8 > .panel-row-style > .panel-grid-cell , #pg-29469-9 > .panel-grid-cell , #pg-29469-9 > .panel-row-style > .panel-grid-cell , #pg-29469-10 > .panel-grid-cell , #pg-29469-10 > .panel-row-style > .panel-grid-cell , #pg-29469-11 > .panel-grid-cell , #pg-29469-11 > .panel-row-style > .panel-grid-cell , #pg-29469-12 > .panel-grid-cell , #pg-29469-12 > .panel-row-style > .panel-grid-cell , #pg-29469-13 > .panel-grid-cell , #pg-29469-13 > .panel-row-style > .panel-grid-cell , #pg-29469-14 > .panel-grid-cell , #pg-29469-14 > .panel-row-style > .panel-grid-cell , #pg-29469-15 > .panel-grid-cell , #pg-29469-15 > .panel-row-style > .panel-grid-cell { width:100%;margin-right:0 } #pl-29469 .panel-grid-cell { padding:0 } #pl-29469 .panel-grid .panel-grid-cell-empty { display:none } #pl-29469 .panel-grid .panel-grid-cell-mobile-last { margin-bottom:0px } } </style><link rel="icon" href="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/07/cropped-wolf-square-32x32.png" sizes="32x32" /> <link rel="icon" href="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/07/cropped-wolf-square-192x192.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/07/cropped-wolf-square-180x180.png" /> <meta name="msapplication-TileImage" content="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/07/cropped-wolf-square-270x270.png" /> <!-- START - Open Graph and Twitter Card Tags 3.3.0 --> <!-- Facebook Open Graph --> <meta property="article:publisher" content="https://www.facebook.com/wolfssl/"/> <meta property="fb:app_id" content="308652656395809"/> <!-- Google+ / Schema.org --> <meta itemprop="name" content="Frequently Asked Questions (FAQ)"/> <meta itemprop="headline" content="Frequently Asked Questions (FAQ)"/> <meta itemprop="description" content="This page lists some of the most common issues and questions that are received by our wolfSSL security experts, along with their responses. This FAQ is useful for solving general questions that pertain to building/implementing wolfSSL. If this page does not provide an answer to your question, pleas"/> <meta itemprop="author" content="wolfSSL"/> <!--<meta itemprop="publisher" content="wolfSSL"/>--> <!-- To solve: The attribute publisher.itemtype has an invalid value --> <!-- Twitter Cards --> <meta name="twitter:title" content="Frequently Asked Questions (FAQ)"/> <meta name="twitter:url" content="https://www.wolfssl.com/docs/frequently-asked-questions-faq/"/> <meta name="twitter:description" content="This page lists some of the most common issues and questions that are received by our wolfSSL security experts, along with their responses. This FAQ is useful for solving general questions that pertain to building/implementing wolfSSL. If this page does not provide an answer to your question, pleas"/> <meta name="twitter:card" content="summary_large_image"/> <!-- SEO --> <!-- Misc. tags --> <!-- is_singular --> <!-- END - Open Graph and Twitter Card Tags 3.3.0 --> </head> <body class="page-template-default page page-id-29469 page-child parent-pageid-22 wp-custom-logo siteorigin-panels siteorigin-panels-before-js group-blog no-js css3-animations no-touch responsive page-layout-default page-layout-menu-default sticky-menu no-topbar wc-columns-3"> <div id="page" class="hfeed site"> <a class="skip-link screen-reader-text" href="#content">Skip to content</a> <header id="masthead" class="site-header layout-defaultsticky-menu" role="banner" > <div class="container"> <div id="extraHeaderInfo"> <!--<a href="https://www.wolfssl.jp/wolfsite/" target="_blank"><img src="/wordpress/wp-content/uploads/2017/11/japan-site.png" alt="wolfSSL Japan"></a>--> <div class="push"></div> <ul id="supportNav"> <li><br/>Questions? <a href="https://www.wolfssl.com/contact/">Contact Us</a></li> <!--<li>Questions? <a href="tel:425-245-8247">+1 (425) 245-8247</a></li> <li><a href="tel:425-245-8247">+1(425)245-8247</a></li>--> <li><a href="https://www.wolfssl.com/products/support-and-maintenance/">Support Forums</a></li> <li><a href="https://www.wolfssl.jp" target="_blank"><img src="/wordpress/wp-content/uploads/2017/11/japan-site.png" alt="wolfSSL Japan"></a></li> </ul> </div> <div class="container-inner"> <div class="site-branding"> <a href="https://www.wolfssl.com/" rel="home"> <span class="screen-reader-text">Home</span><img width="300" height="233" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2021/11/wolf-thanksgiving.png" class="attachment-full size-full" alt="" decoding="async" loading="lazy" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2021/11/wolf-thanksgiving.png 1x,https://www.wolfssl.com/wordpress/wp-content/uploads/2021/11/wolf-thanksgiving.png 2x" /></a> </div><!-- .site-branding --> <nav id="site-navigation" class="main-navigation" role="navigation"> <a href="#menu" id="mobile-menu-button"> <svg version="1.1" class="svg-icon-menu" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve"> <path class="line-1" d="M3,5h18c0.3,0,0.5,0.1,0.7,0.3C21.9,5.5,22,5.7,22,6s-0.1,0.5-0.3,0.7C21.5,6.9,21.3,7,21,7H3 C2.7,7,2.5,6.9,2.3,6.7C2.1,6.5,2,6.3,2,6s0.1-0.5,0.3-0.7C2.5,5.1,2.7,5,3,5z"/> <path class="line-2" d="M3,11h18c0.3,0,0.5,0.1,0.7,0.3S22,11.7,22,12s-0.1,0.5-0.3,0.7S21.3,13,21,13H3c-0.3,0-0.5-0.1-0.7-0.3 C2.1,12.5,2,12.3,2,12s0.1-0.5,0.3-0.7C2.5,11.1,2.7,11,3,11z"/> <path class="line-3" d="M3,17h18c0.3,0,0.5,0.1,0.7,0.3S22,17.7,22,18s-0.1,0.5-0.3,0.7S21.3,19,21,19H3c-0.3,0-0.5-0.1-0.7-0.3 C2.1,18.5,2,18.3,2,18s0.1-0.5,0.3-0.7C2.5,17.1,2.7,17,3,17z"/> </svg> Menu <span class="screen-reader-text">Menu</span> </a> <div class="menu-navigation-container"><ul id="primary-menu" class="menu"><li id="menu-item-86" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-86"><a href="https://www.wolfssl.com/">Home</a></li> <li id="menu-item-66" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-66"><a href="https://www.wolfssl.com/about/">About</a> <ul class="sub-menu"> <li id="menu-item-68" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-68"><a href="https://www.wolfssl.com/contact/">Contact Us</a></li> <li id="menu-item-38072" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-38072"><a href="https://www.wolfssl.com/about/wolfssl-software-development-process-quality-assurance/">wolfSSL Software Development Process and Quality Assurance</a></li> </ul> </li> <li id="menu-item-65" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-65"><a href="https://www.wolfssl.com/products/">Products</a> <ul class="sub-menu"> <li id="menu-item-42283" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-42283"><a href="https://www.wolfssl.com/products/wolfhsm/">wolfHSM</a></li> <li id="menu-item-31384" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-31384"><a href="https://www.wolfssl.com/products/wolfssl/">wolfSSL / wolfCrypt</a></li> <li id="menu-item-31386" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-31386"><a href="https://www.wolfssl.com/license/fips/">wolfCrypt FIPS 140-2/3</a></li> <li id="menu-item-37202" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-37202"><a href="https://www.wolfssl.com/wolfssl-support-178-dal/">DO-178</a></li> <li id="menu-item-31387" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-31387"><a href="https://www.wolfssl.com/products/wolftpm/">wolfTPM</a></li> <li id="menu-item-31388" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-31388"><a href="https://www.wolfssl.com/products/wolfmqtt/">wolfMQTT</a></li> <li id="menu-item-31389" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-31389"><a href="https://www.wolfssl.com/products/wolfssh/">wolfSSH</a></li> <li id="menu-item-33537" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-33537"><a href="https://www.wolfssl.com/products/wolfboot/">wolfBoot</a></li> <li id="menu-item-37772" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-37772"><a href="https://www.wolfssl.com/products/wolfsentry/">wolfSentry IDPS</a></li> <li id="menu-item-34705" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-34705"><a href="https://www.wolfssl.com/products/curl/">curl / tinycurl</a></li> <li id="menu-item-31390" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-31390"><a href="https://www.wolfssl.com/products/wolfssl-jni-jsse/">wolfSSL JNI and JSSE Provider</a></li> <li id="menu-item-31391" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-31391"><a href="https://www.wolfssl.com/products/wolfcrypt-jni-jce/">wolfCrypt JNI and JCE Provider</a></li> <li id="menu-item-38343" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-38343"><a href="https://www.wolfssl.com/products/wolfclu/">wolfCLU</a></li> </ul> </li> <li id="menu-item-28820" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-28820"><a href="/download">Download</a></li> <li id="menu-item-63" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-63"><a href="https://www.wolfssl.com/license/">License</a> <ul class="sub-menu"> <li id="menu-item-36382" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-36382"><a href="https://www.wolfssl.com/products/support-and-maintenance/">Support and Maintenance</a></li> <li id="menu-item-36383" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-36383"><a href="https://www.wolfssl.com/docs/consulting/">Consulting Services</a></li> <li id="menu-item-37201" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-37201"><a href="https://www.wolfssl.com/license/fips/">FIPS 140-2 and FIPS 140-3</a></li> <li id="menu-item-37200" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-37200"><a href="https://www.wolfssl.com/wolfssl-support-178-dal/">DO-178</a></li> </ul> </li> <li id="menu-item-62" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-62"><a href="https://www.wolfssl.com/blog/">Blog</a></li> <li id="menu-item-60" class="menu-item menu-item-type-post_type menu-item-object-page current-page-ancestor current-menu-ancestor current-menu-parent current-page-parent current_page_parent current_page_ancestor menu-item-has-children menu-item-60"><a href="https://www.wolfssl.com/docs/">Docs</a> <ul class="sub-menu"> <li id="menu-item-36384" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-29469 current_page_item menu-item-36384"><a href="https://www.wolfssl.com/docs/frequently-asked-questions-faq/" aria-current="page">FAQ</a></li> <li id="menu-item-38697" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-38697"><a href="https://www.wolfssl.com/documentation/manuals/wolfssl/index.html">wolfSSL Manual</a></li> <li id="menu-item-40552" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-40552"><a href="https://www.youtube.com/wolfssl">YouTube Videos</a></li> <li id="menu-item-38698" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-38698"><a href="https://www.wolfssl.com/docs/benchmarks/">Benchmarks</a></li> <li id="menu-item-35828" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-35828"><a href="https://www.wolfssl.com/docs/case-studies/">Case Studies</a></li> <li id="menu-item-39479" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-39479"><a href="https://www.wolfssl.com/docs/wolfssl-white-papers/">White Papers</a></li> <li id="menu-item-40554" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-40554"><a href="https://www.wolfssl.com/docs/security-vulnerabilities/">Vulnerability Info</a></li> </ul> </li> <li id="menu-item-59" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-59"><a href="https://www.wolfssl.com/community/">Community</a> <ul class="sub-menu"> <li id="menu-item-35479" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-35479"><a href="https://www.wolfssl.com/events/">Events / Webinars</a></li> <li id="menu-item-35477" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-35477"><a href="https://www.wolfssl.com/forums/">Forums</a></li> </ul> </li> <li id="menu-item-35954" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-35954"><a href="https://www.wolfssl.com/community/partner-network/">Partners</a></li> <li class="top-search-menu"><form method="get" action="https://www.wolfssl.com" role="search"> <label for='s' class='screen-reader-text'>Search for:</label> <input type="search" name="s" placeholder="Search" value="" /> <button type="submit"> <i class="north-icon-search"><label class="screen-reader-text">Search</label></i> </button> </form> </li></ul></div> </nav><!-- #site-navigation --> </div><!-- .container-inner --> </div><!-- .container --> </header><!-- #masthead --> <div id="content" class="site-content"> <div class="container"> <div id="primary" class="content-area"> <main id="main" class="site-main" role="main"> <article id="post-29469" class="post-29469 page type-page status-publish post"> <header class="entry-header"> <h1 class="entry-title">Frequently Asked Questions (FAQ)</h1> </header><!-- .entry-header --> <div class="entry-content"> <div id="pl-29469" class="panel-layout" ><div id="pg-29469-0" class="panel-grid panel-no-style" ><div id="pgc-29469-0-0" class="panel-grid-cell" ><div id="panel-29469-0-0-0" class="so-panel widget widget_sow-editor panel-first-child panel-last-child" data-index="0" ><div class="so-widget-sow-editor so-widget-sow-editor-base" > <div class="siteorigin-widget-tinymce textwidget"> <p> </p> <div id="pagetop"> <p>This page lists some of the most common issues and questions that are received by our wolfSSL security experts, along with their responses. This FAQ is useful for solving general questions that pertain to building/implementing wolfSSL.</p> <p>If this page does not provide an answer to your question, please feel free to check the <a href="https://www.wolfssl.com/docs/wolfssl-manual/">wolfSSL Manual</a>, or contact us at <a href="mailto:support@wolfssl.com">support@wolfssl.com</a>.</p> <p>To navigate this page, follow the links in the Table of Contents to quickly reach a question, or scroll to the location of the desired question. To return to this point, use either browser's "back" button, scroll back to the top, or follow the link that returns the browser to the top of the page.</p> </div> </div> </div></div></div></div><div id="pg-29469-1" class="panel-grid panel-no-style" ><div id="pgc-29469-1-0" class="panel-grid-cell" ><div id="panel-29469-1-0-0" class="so-panel widget widget_sow-editor panel-first-child panel-last-child" data-index="1" ><div class="so-widget-sow-editor so-widget-sow-editor-base" ><h3 class="widget-title">Table of Contents</h3> <div class="siteorigin-widget-tinymce textwidget"> <div class="siteorigin-widget-tinymce textwidget"> <div class="siteorigin-widget-tinymce textwidget"> <ol> <li><a href="#How_do_I_manage_the_build_configuration_for_wolfSSL?">How do I manage the build configuration for wolfSSL?</a></li> <li><a href="#How_do_I_find_the_correct_CA_certificate_to_load_into_a_client_for_authenticating_a_SSL/TLS_server? ">How do I find the correct CA certificate to load into a client for authenticating a SSL/TLS server?</a></li> <li><a href="#How_do_I_put_my_certificate_into_a_buffer?">How do I put my certificate into a buffer?</a></li> <li><a href="#How_much_Flash/Ram_does_wolfSSL_use?">How much Flash/RAM does wolfSSL use?</a></li> <li><a href="#Is_it_possible_to_use_no_dynamic_memory_with_wolfSSL_and/or_wolfCrypt?">Is it possible to use no dynamic memory with wolfSSL and/or wolfCrypt?</a></li> <li><a href="#How_do_I_build_wolfSSL_on..._(*NIX,_Windows,_Embedded_device)?">How do I build wolfSSL on… (*NIX, Windows, Embedded device)?</a></li> <li><a href="#How_do_I_pull_wolfSSL_into_my_IDE_project?_What_files_and_headers_do_I_need?">How do I pull wolfSSL into my IDE project? What files and headers do I need?</a></li> <li><a href="#Do_you_have_benchmarks_for_my_specific_platform?">Do you have benchmarks for my specific platform?</a></li> <li><a href="#Why_are_there_no_common_cipher_suites_found_between_my_client/server_when_connecting?">Why are there no common cipher suites found between my client/server when connecting?</a></li> <li><a href="#Can_I_use_a_smaller_maximum_I/O_record_size_than_16kB?">Can I use a smaller maximum I/O record size than 16kB?</a></li> <li><a href="#How_do_I_extract_a_public_key_from_a_X.509_certificate?">How do I extract a public key from a X.509 certificate?</a></li> <li><a href="#Do_you_have_examples_of_using_SSL/TLS_or_cryptography?">Do you have examples of using SSL/TLS or cryptography?</a></li> <li><a href="#Why_won't_my_application_connect_to_a_server,_I_have_enabled_required_ciphers_and_protocol_version...?">Why won’t my application connect to a server, I have enabled required ciphers and protocol version…?</a></li> <li><a href="#How_do_I_sign_a_certificate?">How do I sign a certificate?</a></li> </ol> </div> </div> </div> </div></div></div></div><div id="pg-29469-2" class="panel-grid panel-no-style" ><div id="pgc-29469-2-0" class="panel-grid-cell" ><div id="panel-29469-2-0-0" class="so-panel widget widget_sow-editor panel-first-child panel-last-child" data-index="2" ><div class="so-widget-sow-editor so-widget-sow-editor-base" > <div class="siteorigin-widget-tinymce textwidget"> <p> </p> <h3 style="text-align: left;"><span id="How_do_I_manage_the_build_configuration_for_wolfSSL?">1. How do I manage the build configuration for wolfSSL?</span></h3> <h6><span style="font-weight: 400;">Category: Configuration</span></h6> <p><span style="font-weight: 400;">The MOST common issue we see is a mis-configuration between APP and Library. If you compile the wolfSSL library independant of your application you MUST include the same configure options in the application as were used in the library.</span></p> <p><span style="font-weight: 400;">If building with “./configure” the build system will generate the file <wolf-root>/wolfssl/options.h with all the settings needed for your application. Simply add the lines:</span></p> <pre><code>#include <wolfssl/options.h> #include <wolfssl/wolfcrypt/settings.h> #include <wolfssl/ssl.h> /* other wolf headers below */</code></pre> <p><span style="font-weight: 400;">If building the wolfSSL sources directly the options.h will not contain any generated configuration. In that case our recommended option is to define the preprocessor macro “WOLFSSL_USER_SETTINGS” in your project and create your own “user_settings.h” file. Make sure the file is somewhere in your include path. You can use the same include pattern above, but exclude the options.h.</span></p> <p><span style="font-weight: 400;">Here are some example “user_settings.h” you can use for reference:</span></p> <ul> <li>Windows: /IDE/WIN/user_settings.h</li> <li>GCC ARM: /IDE/GCC-ARM/Header/user_settings.h</li> <li>NXP ARM: /IDE/ROWLEY-CROSSWORKS-ARM/user_settings.h</li> <li>Xcode: /IDE/XCODE/user_settings.h</li> </ul> <p><a href="#pagetop">Return to top of page</a></p> </div> </div></div></div></div><div id="pg-29469-3" class="panel-grid panel-no-style" ><div id="pgc-29469-3-0" class="panel-grid-cell" ><div id="panel-29469-3-0-0" class="so-panel widget widget_sow-editor panel-first-child panel-last-child" data-index="3" ><div class="so-widget-sow-editor so-widget-sow-editor-base" > <div class="siteorigin-widget-tinymce textwidget"> <p> </p> <h3 style="text-align: left;"><span id="How_do_I_find_the_correct_CA_certificate_to_load_into_a_client_for_authenticating_a_SSL/TLS_server?">2. How do I find the correct CA certificate to load into a client for authenticating a SSL/TLS server?</span></h3> <h6><span style="font-weight: 400;">Category: Certificates</span></h6> <p><span style="font-weight: 400;">How to find and load the correct CA (root) certificate into a client application or device can be tricky at first. First, users need to understand how wolfSSL verifies certificate chains. </span><a href="https://wolfssl.com/wolfSSL/Docs-wolfssl-manual-7-keys-and-certificates.html"><span style="font-weight: 400;">Section 7.3</span></a><span style="font-weight: 400;"> of the </span><a href="https://wolfssl.com/wolfSSL/Docs-wolfssl-manual-toc.html"><span style="font-weight: 400;">wolfSSL Manual</span></a><span style="font-weight: 400;"> explains wolfSSL’s certificate validation process:</span></p> <p><span style="font-weight: 400;">wolfSSL requires that only the top or “</span><b>root</b><span style="font-weight: 400;">” certificate in a chain to be loaded as a trusted certificate in order to verify a certificate chain SO LONG as the server sends the complete chain. This means that if you have a certificate chain (</span><b>A</b><span style="font-weight: 400;"> -> </span><b>B</b><span style="font-weight: 400;"> -> </span><b>C</b><span style="font-weight: 400;">), where C is signed by B, and B is signed by A, wolfSSL only requires that </span><b>certificate A</b><span style="font-weight: 400;"> be loaded as a trusted certificate in order to verify the entire chain (A->B->C) assuming that the server sends both (B -> C) in the handshake.</span></p> <p><span style="font-weight: 400;">Let’s look at a simple example. If a server certificate chain looks like this:</span></p> <p><span style="font-weight: 400;">A</span></p> <p><span style="font-weight: 400;">| ---- > B</span></p> <p><span style="font-weight: 400;"> | ---- > C</span></p> <p><span style="font-weight: 400;">The wolfSSL client should already have at least </span><b>root cert “A”</b><span style="font-weight: 400;"> loaded as a trusted root (wolfSSL_CTX_load_verify_[ locations | buffer]). When the client receives the server cert chain (B -> C), it uses the verify certificate (A) to verify B, and if B has not been previously loaded into wolfSSL as a trusted root, B gets stored in wolfSSL's internal cert chain. If B is verified successfully, then it can be used to verify C.</span></p> <p><span style="font-weight: 400;">Following this model, as long as root cert "A" has been loaded as a trusted root into the wolfSSL client, the server certificate chain will still be able to be verified if the server sends (A->B->C), or (B->C). If the server ONLY sends (C), and not the intermediate certificate, the chain will not be able to be verified unless the wolfSSL client has already loaded both A and B as a trusted roots. You may call wolfSSL_CTX_load_verify_[ locations | buffer] as many times as is necessary to load all of your trusted roots, wolfSSL will keep appending them into the trust store.</span></p> <p><span style="font-weight: 400;">Examples:</span></p> <pre>// Load a PEM formatted file: wolfSSL_CTX_load_verify_locations(ctx, fileName, NULL); // Load a DER formatted file: wolfSSL_CTX_der_load_verify_locations(ctx, fileName, WOLFSSL_FILETYPE_ASN1); // Load a DER formatted buffer: wolfSSL_CTX_load_verify_buffer(ctx, buf, bufLength, WOLFSSL_FILETYPE_ASN1) // Load ALL PEM files in a directory wolfSSL_CTX_load_verify_locations(ctx, NULL, directoryName);</pre> <p><a href="#pagetop">Return to top of page</a></p> </div> </div></div></div></div><div id="pg-29469-4" class="panel-grid panel-no-style" ><div id="pgc-29469-4-0" class="panel-grid-cell" ><div id="panel-29469-4-0-0" class="so-panel widget widget_sow-editor panel-first-child panel-last-child" data-index="4" ><div class="so-widget-sow-editor so-widget-sow-editor-base" > <div class="siteorigin-widget-tinymce textwidget"> <h3 style="text-align: left;"><span id="How_do_I_put_my_certificate_into_a_buffer?">3. How do I put my certificate into a buffer?</span></h3> <h6><span style="font-weight: 400;">Category: Certificates</span></h6> <p><span style="font-weight: 400;">To generate a certificate buffer you will find a perl script <wolfssl-root>/gencertbuf.pl (short for generate certificate buffers)</span></p> <ol> <li><span style="font-weight: 400;">You would want to acquire your own certificate and place it in a location that suites your needs. (We keep our test ones in <wolfssl-root>/certs/ directory, feel free to also place your valid ones there also).</span></li> <li><span style="font-weight: 400;">Modify the above mentioned perl script and add your new certificate(s) to the appropriate @fileList (1024 for 1024 bit RSA certs, 256 for ECC 256-bit certs... etc)</span></li> <li><span style="font-weight: 400;"> Re-run that script to re-generate the header file <wolfssl-root>/wolfssl/certs_test.h</span></li> </ol> <p><span style="font-weight: 400;">You have to run this file manually IE: </span><span style="font-weight: 400;"><mark style="background-color: black; color: white;">perl gencertbuf.pl</mark></span><span style="font-weight: 400;"> OR </span><span style="font-weight: 400;"><mark style="background-color: black; color: white;">./gencertbuf.pl</mark></span></p> <p><a href="#pagetop">Return to top of page</a></p> </div> </div></div></div></div><div id="pg-29469-5" class="panel-grid panel-no-style" ><div id="pgc-29469-5-0" class="panel-grid-cell" ><div id="panel-29469-5-0-0" class="so-panel widget widget_sow-editor panel-first-child panel-last-child" data-index="5" ><div class="so-widget-sow-editor so-widget-sow-editor-base" > <div class="siteorigin-widget-tinymce textwidget"> <p> </p> <h3 style="text-align: left;"><span id="How_much_Flash/Ram_does_wolfSSL_use?">4. How much Flash/RAM does wolfSSL use?</span></h3> <h6><span style="font-weight: 400;">Category: Memory Usage</span></h6> <p><span style="font-weight: 400;">wolfSSL memory usage depends on how the library is configured when it is compiled and what features you plan on using. Many options exist to control the amount of memory the library uses.<span class="style">please </span><a title="Contact.html" href="https://www.wolfssl.com/contact/">contact us</a><span class="style"> for the wolfSSL Resource Use document.</span></span></p> <p><span style="font-weight: 400;">The primary factors in peak resource usage are key size and the math library used. Fast math and a larger key size increases resource utilization.</span></p> <p><a href="#pagetop">Return to top of page</a></p> </div> </div></div></div></div><div id="pg-29469-6" class="panel-grid panel-no-style" ><div id="pgc-29469-6-0" class="panel-grid-cell" ><div id="panel-29469-6-0-0" class="so-panel widget widget_sow-editor panel-first-child panel-last-child" data-index="6" ><div class="so-widget-sow-editor so-widget-sow-editor-base" > <div class="siteorigin-widget-tinymce textwidget"> <p> </p> <h3 style="text-align: left;"><span id="Is_it_possible_to_use_no_dynamic_memory_with_wolfSSL_and/or_wolfCrypt?">5. Is it possible to use no dynamic memory with wolfSSL and/or wolfCrypt?</span></h3> <h6><span style="font-weight: 400;">Category: Memory Usage</span></h6> <p><span style="font-weight: 400;">wolfSSL provides two mutually exclusive options to control the usage of dynamic memory. You can configure wolfSSL with </span><span class="codepiece">--enable-staticmemory</span><span style="font-weight: 400;"> or by defining the WOLFSSL_STATIC_MEMORY macro. However, this feature is limited to basic TLS connections and currently is not supported in wolfCrypt. You can also define the macro </span><span class="codepiece">XMALLOC_USER</span><span style="font-weight: 400;"> to have wolfSSL use your own malloc function.</span></p> <p><a href="#pagetop">Return to top of page</a></p> </div> </div></div></div></div><div id="pg-29469-7" class="panel-grid panel-no-style" ><div id="pgc-29469-7-0" class="panel-grid-cell" ><div id="panel-29469-7-0-0" class="so-panel widget widget_sow-editor panel-first-child panel-last-child" data-index="7" ><div class="so-widget-sow-editor so-widget-sow-editor-base" > <div class="siteorigin-widget-tinymce textwidget"> <h3 style="text-align: left;"><span id="How_do_I_build_wolfSSL_on..._(*NIX,_Windows,_Embedded_device)?">6. How do I build wolfSSL on… (*NIX, Windows, Embedded device)?</span></h3> <h6><span style="font-weight: 400;">Category: Operating Systems</span></h6> <p><span style="font-weight: 400;">Please see section 2 of the wolfSSL Manual located </span><a href="https://www.wolfssl.com/wolfSSL/Docs-wolfssl-manual-2-building-wolfssl.html"><span style="font-weight: 400;">HERE</span></a><span style="font-weight: 400;"> which covers building wolfSSL</span></p> <p><a href="#pagetop">Return to top of page</a></p> </div> </div></div></div></div><div id="pg-29469-8" class="panel-grid panel-no-style" ><div id="pgc-29469-8-0" class="panel-grid-cell" ><div id="panel-29469-8-0-0" class="so-panel widget widget_sow-editor panel-first-child panel-last-child" data-index="8" ><div class="so-widget-sow-editor so-widget-sow-editor-base" > <div class="siteorigin-widget-tinymce textwidget"> <p> </p> <h3 style="text-align: left;"><span id="How_do_I_pull_wolfSSL_into_my_IDE_project?_What_files_and_headers_do_I_need?">7. How do I pull wolfSSL into my IDE project? What files and headers do I need?</span></h3> <h6><span style="font-weight: 400;">Category: IDE / Compilers</span></h6> <p><span style="font-weight: 400;">wolfSSL provides the necessary project files for many popular IDEs. You can find instructions for these IDEs in the /IDE/ directory of the wolfSSL source.</span></p> <p><span style="font-weight: 400;">src/*.c<br /></span><span style="font-weight: 400;">wolfcrypt/src/*.c<br /></span><span style="font-weight: 400;">wolfssl/*.h<br /></span><span style="font-weight: 400;">wolfssl/wolfcrypt/*.h<br /></span><span style="font-weight: 400;">Include path wolfssl root.</span></p> <p><span style="font-weight: 400;">Further documentation on building wolfSSL on various platforms can be found in </span><a href="https://www.wolfssl.com/wolfSSL/Docs-wolfssl-manual-2-building-wolfssl.html"><span style="font-weight: 400;">Section 2.4 wolfSSL Manual</span></a><span style="font-weight: 400;">.</span></p> <p><a href="#pagetop">Return to top of page</a></p> </div> </div></div></div></div><div id="pg-29469-9" class="panel-grid panel-no-style" ><div id="pgc-29469-9-0" class="panel-grid-cell" ><div id="panel-29469-9-0-0" class="so-panel widget widget_sow-editor panel-first-child panel-last-child" data-index="9" ><div class="so-widget-sow-editor so-widget-sow-editor-base" > <div class="siteorigin-widget-tinymce textwidget"> <h3 style="text-align: left;"><span id="Do_you_have_benchmarks_for_my_specific_platform?">8. Do you have benchmarks for my specific platform?</span></h3> <h6><span style="font-weight: 400;">Category: Benchmarks</span></h6> <p><span style="font-weight: 400;">wolfSSL provides a benchmark application that can be compiled for any platform wolfSSL supports. The benchmark application will run benchmarks on enabled algorithms. The application source is located in wolfcrypt/benchmark/benchmark.c. For *nix platforms, the benchmark can be ran using ./wolfcrypt/benchmark/benchmark. The benchmark is compiled by default.</span></p> <p><span style="font-weight: 400;">If benchmarking on an embedded platform, define <code>BENCH_EMBEDDED</code></span></p> <p><span style="font-weight: 400;">For more details regarding benchmarking wolfSSL, please reference the </span><a href="https://www.wolfssl.com/wolfSSL/benchmarks-wolfssl.html"><span style="font-weight: 400;">wolfSSL and wolfCrypt Benchmarks webpage</span></a><span style="font-weight: 400;">.</span></p> <p><a href="#pagetop">Return to top of page</a></p> </div> </div></div></div></div><div id="pg-29469-10" class="panel-grid panel-no-style" ><div id="pgc-29469-10-0" class="panel-grid-cell" ><div id="panel-29469-10-0-0" class="so-panel widget widget_sow-editor panel-first-child panel-last-child" data-index="10" ><div class="so-widget-sow-editor so-widget-sow-editor-base" > <div class="siteorigin-widget-tinymce textwidget"> <h3 style="text-align: left;"><span id="Why_are_there_no_common_cipher_suites_found_between_my_client/server_when_connecting?">9. Why are there no common cipher suites found between my client/server when connecting?</span></h3> <h6><span style="font-weight: 400;">Category: Connection Details</span></h6> <p><span style="font-weight: 400;">Ensure that wolfSSL was configured and built with common cipher suites on both the client and server. You can add additional cipher suites with configure options. You can view configure options on *nix systems with </span><span style="font-weight: 400;"><code>./configure --help</code></span></p> <p><span style="font-weight: 400;">To view default cipher suite on *nix system use this command from <wolfssl-root> directory:</span></p> <p><span style="font-weight: 400;"><mark style="background-color: black; color: white;">./examples/client/client -e</mark></span></p> <p><span style="font-weight: 400;">To view default cipher suites on windows system use this command from the directory where client.exe is located:</span></p> <p><span style="font-weight: 400;"><mark style="background-color: black; color: white;">./client.exe -e</mark></span></p> <pre><code>nmap --script ssl-enum-ciphers -p 443 www.google.com</code></pre> <p><a href="#pagetop">Return to top of page</a></p> </div> </div></div></div></div><div id="pg-29469-11" class="panel-grid panel-no-style" ><div id="pgc-29469-11-0" class="panel-grid-cell" ><div id="panel-29469-11-0-0" class="so-panel widget widget_sow-editor panel-first-child panel-last-child" data-index="11" ><div class="so-widget-sow-editor so-widget-sow-editor-base" > <div class="siteorigin-widget-tinymce textwidget"> <h3 style="text-align: left;"><span id="Can_I_use_a_smaller_maximum_I/O_record_size_than_16kB?">10. Can I use a smaller maximum I/O record size than 16kB?</span></h3> <h6><span style="font-weight: 400;">Category: Connection Details</span></h6> <p><span style="font-weight: 400;">TLS specifies a fixed maximum record length of 2^14 bytes (~16kB). wolfSSL provides two options to use a smaller maximum record size. The first option is to configure wolfSSL with <code>--enable-maxfragment</code>. This requires the client to make an additional call when connecting to a server. The client needs to use either </span><b>wolfSSL_CTX_UseMaxFragment</b><span style="font-weight: 400;"> or </span><b>wolfSSL_UseMaxFragment</b><span style="font-weight: 400;">. The client should use the CTX method if they plan on making multiple connections to the same server.</span></p> <p><span style="font-weight: 400;">The other option is to define </span><b>MAX_RECORD_SIZE</b><span style="font-weight: 400;">. In order to use this, however, both the client and server needs to have the option set. If the client is connecting to servers outside of your control, this is not an option to use.</span></p> <p><a href="#pagetop">Return to top of page</a></p> </div> </div></div></div></div><div id="pg-29469-12" class="panel-grid panel-no-style" ><div id="pgc-29469-12-0" class="panel-grid-cell" ><div id="panel-29469-12-0-0" class="so-panel widget widget_sow-editor panel-first-child panel-last-child" data-index="12" ><div class="so-widget-sow-editor so-widget-sow-editor-base" > <div class="siteorigin-widget-tinymce textwidget"> <h3 style="text-align: left;"><span id="How_do_I_extract_a_public_key_from_a_X.509_certificate?">11. How do I extract a public key from a X.509 certificate?</span></h3> <h6><span style="font-weight: 400;">Category: Certificates</span></h6> <p><span style="font-weight: 400;">wolfSSL provides this functionality in its public API. You can call <code>wolfssl_x509_get_pubkey()</code> to return a WOLFSSL_EVP_PKEY pointer. WOLFSSL_EVP_PKEY is a struct with several data members related to the key. You can access the key directly from this pointer. The declaration of the struct can be found in <code><wolfssl/ssl.h></code>.</span></p> <p><a href="#pagetop">Return to top of page</a></p> </div> </div></div></div></div><div id="pg-29469-13" class="panel-grid panel-no-style" ><div id="pgc-29469-13-0" class="panel-grid-cell" ><div id="panel-29469-13-0-0" class="so-panel widget widget_sow-editor panel-first-child panel-last-child" data-index="13" ><div class="so-widget-sow-editor so-widget-sow-editor-base" > <div class="siteorigin-widget-tinymce textwidget"> <h3 style="text-align: left;"><span id="Do_you_have_examples_of_using_SSL/TLS_or_cryptography?">12. Do you have examples of using SSL/TLS or cryptography?</span></h3> <h6><span style="font-weight: 400;">Category: Examples</span></h6> <p><span style="font-weight: 400;">wolfSSL maintains several examples for using the library on the official wolfSSL GitHub repository. You can download the examples by cloning the repository at </span><a href="https://github.com/wolfSSL/wolfssl-examples"><span style="font-weight: 400;">https://github.com/wolfSSL/wolfssl-examples</span></a><span style="font-weight: 400;">.</span></p> <p><span style="font-weight: 400;">Some of the more heavily trafficed directories are:<br /> </span><a href="https://github.com/wolfSSL/wolfssl-examples/tree/master/tls"><span style="font-weight: 400;">https://github.com/wolfSSL/wolfssl-examples/tree/master/tls</span></a><br /> <a href="https://github.com/wolfSSL/wolfssl-examples/tree/master/tls"><span style="font-weight: 400;">https://github.com/wolfSSL/wolfssl-examples/tree/master/dtls</span></a><br /> <a href="https://github.com/wolfSSL/wolfssl-examples/tree/master/certgen"><span style="font-weight: 400;">https://github.com/wolfSSL/wolfssl-examples/tree/master/certgen</span></a></p> <p><span style="font-weight: 400;">There are currently examples of using algorithms (3DES, AES, and Camellia), examples of using TLS client and server, wolfSSL CertManager, and signatures and verification.</span></p> <p>For users looking for a command line utility for wolfSSL, see the wolfCLU repository (<a href="https://github.com/wolfSSL/wolfCLU">https://github.com/wolfSSL/wolfCLU</a>).</p> <p><a href="#pagetop">Return to top of page</a></p> </div> </div></div></div></div><div id="pg-29469-14" class="panel-grid panel-no-style" ><div id="pgc-29469-14-0" class="panel-grid-cell" ><div id="panel-29469-14-0-0" class="so-panel widget widget_sow-editor panel-first-child panel-last-child" data-index="14" ><div class="so-widget-sow-editor so-widget-sow-editor-base" > <div class="siteorigin-widget-tinymce textwidget"> <h3 style="text-align: left;"><span id="Why_won't_my_application_connect_to_a_server,_I_have_enabled_required_ciphers_and_protocol_version...?">13. Why won’t my application connect to a server, I have enabled required ciphers and protocol version…?</span></h3> <h6><span style="font-weight: 400;">Category: Extensions</span></h6> <p><span style="font-weight: 400;">Some servers require specific TLS extensions and specific ECC curves to be enabled or they will ignore any connection attempt outright regardless of supported ciphers and protocol version. If you are building wolfSSL without the configure script (Makefile project, IDE project, etc), please make sure you have defined <code>HAVE_TLS_EXTENSIONS</code> and <code>HAVE_SUPPORTED_CURVES</code></span></p> <p><a href="#pagetop">Return to top of page</a></p> </div> </div></div></div></div><div id="pg-29469-15" class="panel-grid panel-no-style" ><div id="pgc-29469-15-0" class="panel-grid-cell" ><div id="panel-29469-15-0-0" class="so-panel widget widget_sow-editor panel-first-child panel-last-child" data-index="15" ><div class="so-widget-sow-editor so-widget-sow-editor-base" > <div class="siteorigin-widget-tinymce textwidget"> <p> </p> <h3 style="text-align: left;"><span id="How_do_I_sign_a_certificate?">14. How do I sign a certificate?</span></h3> <h6><span style="font-weight: 400;">Category: Certificates</span></h6> <p><span style="font-weight: 400;">Signing certificates is a key feature of many secure protocols. wolfSSL provides API that are capable of performing this action and make the process simple and painless. The key API that implement this functionality are listed below:</p> <ul style="font-family: Courier New;"> <li><a href="http://wolfssl.com/doxygen/structCert.html">Cert struct</a></li> <li><a href="https://wolfssl.com/doxygen/group__ASN.html#gac5c8a4f3fbfd4ff5918324c57052e6fb">wc_MakeCertReq</a></li> <li><a href="https://wolfssl.com/doxygen/group__ASN.html#ga6c102f0ae570ffe42223e4cb9e3d1f7d">wc_SignCert</a></li> </ul> <p>wolfSSL also maintains an example repository that shows these API in action, and provides the context in which to use them. This is shown in the CSR example application, which is located within <code>wolfssl-examples/certgen/</code>. To build and run the example, it requires wolfSSL to be built and installed as well (with certain options). wolfSSL can be downloaded from the <a href="https://www.wolfssl.com/download">download page</a>, or from a git-clone command, while the examples can be downloaded from a git-clone of the examples repository (<a href="https://github.com/wolfSSL/wolfssl-examples">https://github.com/wolfSSL/wolfssl-examples</a>).</p> <p>An example of cloning and then building wolfSSL with the examples is shown below:</p> <pre># Download, build, and install wolfSSL git clone https://github.com/wolfSSL/wolfssl #(if not downloaded from the download page) cd wolfssl ./autogen.sh ./configure --enable-certgen --enable-certreq make sudo make install cd .. # Download and build the CSR example git clone https://github.com/wolfSSL/wolfssl-examples cd wolfssl-examples/certgen/ make ./csr_example -----BEGIN EC PRIVATE KEY----- MHcCAQEEIOkUjkguP0GTizna+13jooJu55sbQBsAqqkMZqjQeO55oAoGCCqGSM49 AwEHoUQDQgAEWYTvqyt3e3nLkIWqBhjmZcxLu8XcLN+mUW+g4dO5qdGxnKEYxaz1 3/K3dXlU75e3MlCIjC5gTiEuPbs3N+eIzw== -----END EC PRIVATE KEY----- -----BEGIN CERTIFICATE REQUEST----- MIIBTDCB8wIBAjCBkDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAk9SMREwDwYDVQQH DAhQb3J0bGFuZDEQMA4GA1UECgwHd29sZlNTTDEUMBIGA1UECwwLRGV2ZWxvcG1l bnQxGDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5m b0B3b2xmc3NsLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABFmE76srd3t5 y5CFqgYY5mXMS7vF3CzfplFvoOHTuanRsZyhGMWs9d/yt3V5VO+XtzJQiIwuYE4h Lj27NzfniM+gADAKBggqhkjOPQQDAgNIADBFAiEAy8GSm89MAU69hKfp6rwaR3Eg IjaBzRZ4VxRl22LQ+IcCIEiP9OLVIemAfZz2D26g/3oIF2ETjjwAhh8UpZSiJmdh -----END CERTIFICATE REQUEST----- </pre> <p></span></p> <p><a href="#pagetop">Return to top of page</a></p> </div> </div></div></div></div></div> </div><!-- .entry-content --> </article><!-- #post-## --> </main><!-- #main --> </div><!-- #primary --> <div id="secondary" class="widget-area" role="complementary" aria-label="Main Sidebar"> </div><!-- #secondary --> </div><!-- .container --> </div><!-- #content --> <footer id="colophon" class="site-footer unconstrained-footer" role="contentinfo"> <div class="container"> </div><!-- .container --> <div class="site-info"> <div class="container"> <div class="banner"> <a href="https://www.wolfssl.com/frequently-asked-questions-faq/"> <h1>wolfSSL FAQ</h1> </a> </div> <div class="banner"> <a href="https://www.wolfssl.com/products/curl/"> <h1>wolfSSL curl</h1> </a> </div> <a href="https://www.wolfssl.com/docs/tls13/"> <img id="tls13Banner" src="/wordpress/wp-content/uploads/2018/08/TLS13-now-avail.png"> </a> <div class="banner"> <a href="https://www.wolfssl.com/events/"><h1>Upcoming Events</h1></a> </div> <div id="lastBanner"> <a href="https://www.wolfssl.com/community/partner-network/"><h1>wolfSSL Partners</h1></a> </div> <div id="footerProducts"> <!--<a href="https://www.wolfssl.com/curl-up-2022-wolfssl/"> <img src="https://www.wolfssl.com/wordpress/wp-content/uploads/2022/07/curl_up_2022_virtual_1200.png" style="width:1200px"> </a>--> <!-- footer box row BEGIN --> <div class="footerBox"> <a href="/products/wolfssl/"> <h2>wolfSSL SSL/TLS Library</h2> <p>The wolfSSL lightweight TLS library supports TLS 1.3 and DTLS 1.3 on both client and server sides, features progressive algorithm support, is optimized for footprint and runtime memory use, and more!</p> <a/> </div> <div class="footerBox"> <a href="/products/wolfcrypt/"> <h2>wolfCrypt Crypto Engine</h2> <p>The wolfCrypt Crypto engine is a lightweight, embeddable, and easy-to-configure crypto library with a strong focus on portability, modularity, security, and feature set. FIPS 140-3 and MISRA available.</p> </a> </div> <div class="footerBox"> <a href="/docs/case-studies/"> <h2>Case Studies</h2> <p>Through use in games, databases, sensors, VoIP application, and more there is over 1 Billion copies of wolfSSL products in production environments today. Click to view all wolfSSL case studies.</p> </a> </div> <div id="rightFooterBox" class="footerBox"> <a href="/license/fips/"> <h2>wolfCrypt FIPS Module</h2> <p>The Cryptographic Module Validation Program (CMVP) has issued FIPS 140-3 Certificate #4718 for the wolfCrypt Module developed by wolfSSL Inc, the world's first SP800-140Br1 validated certificate. Click to read more.</p> </a> </div> <!-- footer box row END --> <div id="footer"><div id="innerFooter"> <div class="lowNav"> <p class="footText">Product Information</p> <ul class="lowNavList"> <a href="/products/wolfssl/"><li>wolfSSL TLS Library</li></a> <a href="/products/wolfcrypt/"><li>wolfCrypt Crypto Engine</li></a> <a href="/license/fips/"><li>wolfCrypt FIPS</li></a> <a href="/products/wolftpm/"><li>wolfTPM Portable TPM 2.0 Library</li></a> <a href="/products/wolfmqtt/"><li>wolfMQTT Client Library</li></a> <a href="/products/wolfssh/"><li>wolfSSH SSH Library</li></a> <a href="/products/wolfboot/"><li>wolfBoot Secure Bootloader</li></a> <a href="/products/curl/"><li>cURL</li></a> <a href="/products/wolfssl-jni/"><li>wolfSSL JNI</li></a> <a href="/products/wolfcrypt-jni-jce/"><li>wolfCrypt JNI and JCE Provider</li></a> <a href="/license/"><li>License Information</li></a> </ul> </div> <div class="lowNav"> <p class="footText">Documentation</p> <ul class="lowNavList"> <a href="/documentation/manuals/wolfssl/"><li>wolfSSL Manual</li></a> <a href="/docs/wolfssl-manual/ch17/"><li>wolfSSL API Reference</li></a> <a href="/doxygen/index.html"><li>Doxygen API Reference</li></a> <a href="/docs/wolfssl-manual/ch2/"><li>Building wolfSSL</li></a> <a href="/docs/wolfssl-manual/ch11/"><li>SSL Tutorial</li></a> <a href="/docs/case-studies/"><li>Case Studies</li></a> <a href="/docs/"><li>Additional Documentation</li></a> </ul> </div> <div id="lowCenter"> <p class="footText" id="center">Copyright © 2024 wolfSSL Inc.<br>All rights reserved.</p> <div id="socialIcons"> <!--<a href="https://twitter.com/wolfssl" target="_blank"><img src="/wordpress/wp-content/uploads/2018/06/twitter-icon.png" alt="Twitter"/></a>--> <a href="https://twitter.com/wolfssl" target="_blank"><img src="/wordpress/wp-content/uploads/2023/08/x.png" alt="X"/></a> <a href="https://www.facebook.com/wolfssl" target="_blank"><img src="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/06/facebook-icon.png" alt="Facebook"/></a> <a href="https://www.github.com/wolfssl" target="_blank"><img src="/wordpress/wp-content/uploads/2018/06/github-icon.png" alt="Github"/></a> <a href="https://www.linkedin.com/company/wolfssl/" target="_blank"><img src="/wordpress/wp-content/uploads/2020/12/linkedin_50_50.png" alt="Linkedin"/></a> <a href="https://www.flickr.com/photos/54654493@N05/" target="_blank"><img src="/wordpress/wp-content/uploads/2018/06/flickr-icon.png" alt="Flickr"/></a> </div> <div id="madeInUsa"><img src="/wordpress/wp-content/uploads/2020/12/madeInUsa_100px.png" alt="Made in the USA"></div> </div> <div class="lowNav"> <p class="footText">Help and Support</p> <ul class="lowNavList"> <a href="https://www.wolfssl.com/frequently-asked-questions-faq/"><li>FAQ Page</li></a> <a href="https://www.wolfssl.com/products/support-and-maintenance/"><li>Support Forum</li></a> <a href="/support-blog/"><li>Support Blog</li></a> <a href="/products/support-and-maintenance/"><li>Support and Maintenance</li></a> <a href="/docs/consulting/"><li>Consulting Services</li></a> <a href="/docs/security-vulnerabilities/"><li>Vulnerability Info</li></a> <a href="/contact/"><li>Contact Us</li></a> <a href="/community/partner-network/"><li>Partners</li></a> </ul> </div> <div class="lowNav" id="lastLowNav"> <p class="footText">Reference</p> <ul class="lowNavList"> <a href="/docs/wolfssl-manual/appendix-b/"><li>Algorithm/Protocol Reference</li></a> <a href="/docs/media/"><li>Presentations</li></a> <a href="/events/"><li>Upcoming Events</li></a> <a href="/directory/"><li>Site Directory</li></a> </ul> </div> </div></div> <!--<div class="push"></div><div id="conferences">--> <!-- Distributech --> <!-- <a href="https://www.wolfssl.com/events/"><img class="conf" src="/wordpress/wp-content/uploads/2020/02/rsaconference_2020_medium.jpg" alt="Upcoming wolfSSL Event"></a>--> <!--</div>--> </div><!-- .site-info --> </footer><!-- #colophon --> </div><!-- #page --> <script> (function($){ "use strict"; var $searchArea = $('.top-search-menu'); $searchArea.click(function(){ $(this).addClass('input-expanded'); }); $(document).mouseup(function (e){ var container = $(".top-search-menu"); if (!$searchArea.is(e.target) && $searchArea.has(e.target).length === 0){ $searchArea.removeClass('input-expanded'); } }); })(jQuery); </script><link rel='stylesheet' id='so-css-siteorigin-north-css' href='https://www.wolfssl.com/wordpress/wp-content/uploads/so-css/so-css-siteorigin-north.css?ver=1693437314' type='text/css' media='all' /> <script type='text/javascript' src='https://www.wolfssl.com/wordpress/wp-content/themes/siteorigin-north/js/jquery.flexslider.min.js?ver=2.6.3' id='jquery-flexslider-js'></script> <script type='text/javascript' src='https://www.wolfssl.com/wordpress/wp-content/themes/siteorigin-north/js/jquery.transit.min.js?ver=0.9.12' id='jquery-transit-js'></script> <script type='text/javascript' id='siteorigin-north-script-js-extra'> /* <![CDATA[ */ var siteoriginNorth = {"smoothScroll":"1"}; /* ]]> */ </script> <script type='text/javascript' src='https://www.wolfssl.com/wordpress/wp-content/themes/siteorigin-north/js/north.min.js?ver=1.3.15' id='siteorigin-north-script-js'></script> <script type='text/javascript' src='https://www.wolfssl.com/wordpress/wp-content/themes/siteorigin-north/js/skip-link-focus-fix.min.js?ver=1.3.15' id='siteorigin-north-skip-link-js'></script> <script type='text/javascript' src='https://www.wolfssl.com/wordpress/wp-content/themes/siteorigin-north/js/jquery.fitvids.min.js?ver=1.1' id='jquery-fitvids-js'></script> <script type="text/javascript">document.body.className = document.body.className.replace("siteorigin-panels-before-js","");</script> <!-- WooCommerce Quick View --> <div id="quick-view-container"> <div id="product-quick-view" class="quick-view"></div> </div> <!-- Highlight parent page link when on child page --> <script type="text/javascript"> jQuery("li.current-page-ancestor").addClass('current-menu-item'); </script> </body> </html>