CINXE.COM

Benchmarking wolfSSL and wolfCrypt | Documentation – 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>Benchmarking wolfSSL and wolfCrypt | Documentation &#8211; 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 &raquo; Feed" href="https://www.wolfssl.com/feed/" /> <link rel="alternate" type="application/rss+xml" title="wolfSSL &raquo; 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='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&#038;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&#038;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&#038;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&#038;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&#038;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&#038;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&#038;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&#038;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&#038;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/1591" /><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/benchmarks/" /> <link rel='shortlink' href='https://www.wolfssl.com/?p=1591' /> <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%2Fbenchmarks%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%2Fbenchmarks%2F&#038;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> <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="Benchmarking wolfSSL and wolfCrypt | Documentation"/> <meta itemprop="headline" content="Benchmarking wolfSSL and wolfCrypt | Documentation"/> <meta itemprop="description" content="BENCHMARKING WOLFSSL AND WOLFCRYPT Reference benchmarks wolfJSSE vs. SunJSSE SiFive HiFive Unleashed Xilinx ZCU102 Petalinux Renesas RX65N with TSIP (Trusted Secure IP) Renesas AP-RX71M-0A Renesas Synergy DK-S7G2 Espressif ESP32 WROOM Intel x86_64 NXP i.MX6 Apple iP"/> <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="Benchmarking wolfSSL and wolfCrypt | Documentation"/> <meta name="twitter:url" content="https://www.wolfssl.com/docs/benchmarks/"/> <meta name="twitter:description" content="BENCHMARKING WOLFSSL AND WOLFCRYPT Reference benchmarks wolfJSSE vs. SunJSSE SiFive HiFive Unleashed Xilinx ZCU102 Petalinux Renesas RX65N with TSIP (Trusted Secure IP) Renesas AP-RX71M-0A Renesas Synergy DK-S7G2 Espressif ESP32 WROOM Intel x86_64 NXP i.MX6 Apple iP"/> <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-1591 page-child parent-pageid-22 wp-custom-logo 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_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 menu-item-36384"><a href="https://www.wolfssl.com/docs/frequently-asked-questions-faq/">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 current-menu-item menu-item-38698"><a href="https://www.wolfssl.com/docs/benchmarks/" aria-current="page">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-1591" class="post-1591 page type-page status-publish post"> <div class="entry-content"> <div id="pl-1591" class="panel-layout"> <div id="pg-1591-0" class="panel-grid panel-has-style" data-style="{&quot;class&quot;:&quot;separate&quot;,&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div class="separate panel-row-style panel-row-style-for-1591-0"> <div id="pgc-1591-0-0" class="panel-grid-cell" data-weight="1"> <div id="panel-1591-0-0-0" class="so-panel widget widget_sow-editor panel-first-child panel-last-child" data-index="0" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <h1 class="pageTitle" style="text-align: right;"><span id="benchmark_top_of_page">BENCHMARKING WOLFSSL AND WOLFCRYPT</span></h1> </div> </div> </div> </div> </div> </div> <div id="pg-1591-1" class="panel-grid panel-no-style" data-style="{&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div id="pgc-1591-1-0" class="panel-grid-cell" data-weight="0.4"> <div id="panel-1591-1-0-0" class="so-panel widget widget_sow-editor panel-first-child panel-last-child" data-index="1" data-style="{&quot;background_image_attachment&quot;:false,&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <h2 style="text-align: left;">Reference benchmarks</h2> <ol> <li><a href="#wolfjsse_sunjsse">wolfJSSE vs. SunJSSE</a></li> <li><a href="#sifive">SiFive</a></li> <li><a href="#hifive">HiFive Unleashed</a></li> <li><a href="#xilinx">Xilinx ZCU102 Petalinux</a></li> <li><a href="#renesasrx65n">Renesas RX65N with TSIP (Trusted Secure IP)</a></li> <li><a href="#renesasrx71m">Renesas AP-RX71M-0A</a></li> <li><a href="#renesasdks7g2">Renesas Synergy DK-S7G2</a></li> <li><a href="#espressif_esp32_wroom">Espressif ESP32 WROOM</a></li> <li><a href="#Intel_x86_64">Intel x86_64</a></li> <li><a href="#nxp_i.mx6">NXP i.MX6</a></li> <li><a href="#iphone_x">Apple iPhone X</a></li> <li><a href="#microchip_pic32mz">Microchip PIC32MZ</a></li> <li><a href="#stm32">STM32 (STM32F439,&nbsp;STM32F756)</a></li> <li><a href="#stm32f777ni">STM32F777NI</a></li> <li><a href="#apple_iphone_8/8_plus/x">Apple iPhone 8/8 Plus/X (Apple A11 Bionic)</a></li> <li><a href="#intel_sgx">Intel SGX</a></li> <li><a href="#intel_quickassist">Intel QuickAssist</a></li> <li><a href="#hikey_lemaker">ARMv8</a></li> <li><a href="#avx1_avx2">AVX1, AVX2</a></li> <li><a href="#atmel_samd21">Atmel SAMD21</a></li> <li><a href="#stm32f221g-eval">STM32F221G-EVAL</a></li> <li><a href="#texas_instruments_tiva_c_series_tm4c1294xl_connected_launchpad">Texas Instruments &#8211;&nbsp;Tiva C Series TM4C1294XL &#8211; Connected Launchpad</a></li> <li><a href="#freescale_twr-k70f120m">Freescale TWR-K70F120M</a></li> <li><a href="#apple_tv_2">Apple TV 2</a></li> <li><a href="#mbed">mbed</a></li> <li><a href="#relative_cipher_performance">Relative Cipher Performance</a></li> <li><a href="#pq_kyber_linux">Post-Quantum Kyber Benchmarks (Linux)</a></li> <li><a href="#pq_kyber_cortex_m4">Post-Quantum Kyber Benchmarks (ARM Cortex-M4)</a></li> <li><a href="#pq_kyber_macos">Post-Quantum Kyber Benchmarks (MacOS)</a></li> <li><a href=" #raspberry_pi_pico_w">Raspberry Pi Pico-W</a></li> </ol> </div> </div> </div> </div> <div id="pgc-1591-1-1" class="panel-grid-cell" data-weight="0.6"> <div id="panel-1591-1-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="2"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style_12">The wolfSSL embedded SSL/TLS library was written from the ground-up with portability, performance, and memory usage in mind.&nbsp; Here you will find a collection of existing benchmark information for wolfSSL and the wolfCrypt cryptography library as well as information on how to benchmark wolfSSL on your own platform.&nbsp; If you would like additional benchmark data or have any questions about your specific platform, please contact us at <a title="mailto:facts@wolfssl.com?subject=" href="mailto:facts@wolfssl.com?subject=">facts@wolfssl.com</a>.</p> </div> </div> </div> <div id="panel-1591-1-1-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="3"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">wolfCrypt Benchmark Application</h3> <div class="siteorigin-widget-tinymce textwidget"> <div class="siteorigin-widget-tinymce textwidget"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style_12">Many users are curious about how the wolfSSL embedded SSL/TLS library will perform on a specific hardware device or in a specific environment. &nbsp;Because of the wide variety of different platforms and compilers used today in embedded, enterprise, and cloud-based environments, it is hard to give generic performance calculations.</p> <p class="paragraph_style_12">To help wolfSSL users and customers in determining performance for wolfSSL and wolfCrypt, a benchmark application is bundled with wolfSSL. &nbsp;Because the underlying cryptography is a very performance-critical aspect of SSL/TLS, our benchmark application runs performance tests on wolfCrypt’s algorithms.</p> <p class="paragraph_style_12">&nbsp;</p> </div> </div> </div> </div> </div> </div> </div> <div id="pg-1591-2" class="panel-grid panel-no-style" data-style="{&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div id="pgc-1591-2-0" class="panel-grid-cell" data-weight="1"> <div id="panel-1591-2-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="4"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Running the benchmark</h3> <div class="siteorigin-widget-tinymce textwidget"> <div class="siteorigin-widget-tinymce textwidget"> <div class="siteorigin-widget-tinymce textwidget"> <p><!-- <p class="paragraph_style_12">Many users are curious about how the wolfSSL embedded SSL/TLS library will perform on a specific hardware device or in a specific environment.  Because of the wide variety of different platforms and compilers used today in embedded, enterprise, and cloud-based environments, it is hard to give generic performance calculations.</p> <p class="paragraph_style_12">To help wolfSSL users and customers in determining performance for wolfSSL and wolfCrypt, a benchmark application is bundled with wolfSSL.  Because the underlying cryptography is a very performance-critical aspect of SSL/TLS, our benchmark application runs performance tests on wolfCrypt’s algorithms.</p> <p class="paragraph_style_12">The benchmark utility is located in the “<span class="style_5">./wolfcrypt/benchmark</span>” directory of the wolfSSL package.  After <a title="Docs-wolfssl-manual-2-building-wolfssl.html" href="https://www.wolfssl.com/docs/wolfssl-manual/ch2/">building wolfSSL</a> and the associated examples and apps, the benchmark application can be run by issuing the following command from the package directory root:</p> <p class="codepiece">./wolfcrypt/benchmark/benchmark</p> <p class="paragraph_style_12">Typical output will look similar to the output below (showing throughput in MB/s as well as cycles per byte):</p> --></p> <p class="paragraph_style_12">The benchmark utility is located in the “<span class="style_5">./wolfcrypt/benchmark</span>” directory of the wolfSSL package.&nbsp; After <a title="Docs-wolfssl-manual-2-building-wolfssl.html" href="https://www.wolfssl.com/docs/wolfssl-manual/ch2/">building wolfSSL</a> and the associated examples and apps, the benchmark application can be run by issuing the following command from the package directory root:</p> <p class="codepiece">./wolfcrypt/benchmark/benchmark</p> <p class="paragraph_style_12">Typical output will look similar to the output below (showing throughput in MB/s as well as cycles per byte):</p> <pre>wolfCrypt Benchmark (block bytes 1048576, min 1.0 sec each) RNG 100 MB took 1.047 seconds, 95.466 MB/s Cycles per byte = 22.92 AES-128-CBC-enc 200 MB took 1.020 seconds, 196.027 MB/s Cycles per byte = 11.16 AES-128-CBC-dec 215 MB took 1.008 seconds, 213.318 MB/s Cycles per byte = 10.26 AES-192-CBC-enc 175 MB took 1.016 seconds, 172.265 MB/s Cycles per byte = 12.70 AES-192-CBC-dec 180 MB took 1.009 seconds, 178.405 MB/s Cycles per byte = 12.27 AES-256-CBC-enc 150 MB took 1.007 seconds, 148.932 MB/s Cycles per byte = 14.69 AES-256-CBC-dec 160 MB took 1.026 seconds, 155.994 MB/s Cycles per byte = 14.03 AES-128-GCM-enc 60 MB took 1.010 seconds, 59.427 MB/s Cycles per byte = 36.82 AES-128-GCM-dec 65 MB took 1.070 seconds, 60.750 MB/s Cycles per byte = 36.02 AES-192-GCM-enc 60 MB took 1.050 seconds, 57.138 MB/s Cycles per byte = 38.30 AES-192-GCM-dec 60 MB took 1.024 seconds, 58.590 MB/s Cycles per byte = 37.35 AES-256-GCM-enc 55 MB took 1.029 seconds, 53.438 MB/s Cycles per byte = 40.95 AES-256-GCM-dec 60 MB took 1.090 seconds, 55.069 MB/s Cycles per byte = 39.74 CHACHA 360 MB took 1.001 seconds, 359.628 MB/s Cycles per byte = 6.09 CHA-POLY 285 MB took 1.014 seconds, 280.943 MB/s Cycles per byte = 7.79 MD5 450 MB took 1.010 seconds, 445.573 MB/s Cycles per byte = 4.91 POLY1305 1265 MB took 1.000 seconds, 1264.402 MB/s Cycles per byte = 1.73 SHA 475 MB took 1.000 seconds, 474.914 MB/s Cycles per byte = 4.61 SHA-224 210 MB took 1.018 seconds, 206.308 MB/s Cycles per byte = 10.61 SHA-256 210 MB took 1.018 seconds, 206.200 MB/s Cycles per byte = 10.61 SHA-384 280 MB took 1.016 seconds, 275.520 MB/s Cycles per byte = 7.94 SHA-512 275 MB took 1.000 seconds, 274.868 MB/s Cycles per byte = 7.96 SHA3-224 240 MB took 1.006 seconds, 238.506 MB/s Cycles per byte = 9.18 SHA3-256 225 MB took 1.007 seconds, 223.454 MB/s Cycles per byte = 9.79 SHA3-384 175 MB took 1.002 seconds, 174.610 MB/s Cycles per byte = 12.53 SHA3-512 125 MB took 1.031 seconds, 121.254 MB/s Cycles per byte = 18.05 HMAC-MD5 445 MB took 1.001 seconds, 444.651 MB/s Cycles per byte = 4.92 HMAC-SHA 470 MB took 1.009 seconds, 465.749 MB/s Cycles per byte = 4.70 HMAC-SHA224 200 MB took 1.001 seconds, 199.874 MB/s Cycles per byte = 10.95 HMAC-SHA256 205 MB took 1.004 seconds, 204.228 MB/s Cycles per byte = 10.72 HMAC-SHA384 290 MB took 1.009 seconds, 287.401 MB/s Cycles per byte = 7.61 HMAC-SHA512 290 MB took 1.013 seconds, 286.214 MB/s Cycles per byte = 7.65 RSA 2048 public 2800 ops took 1.014 sec, avg 0.362 ms, 2761.995 ops/sec RSA 2048 private 300 ops took 1.308 sec, avg 4.359 ms, 229.402 ops/sec DH 2048 key gen 735 ops took 1.001 sec, avg 1.361 ms, 734.608 ops/sec DH 2048 key agree 800 ops took 1.123 sec, avg 1.404 ms, 712.131 ops/sec ECC 256 key gen 1108 ops took 1.001 sec, avg 0.903 ms, 1107.306 ops/sec ECDHE 256 agree 1200 ops took 1.043 sec, avg 0.869 ms, 1150.329 ops/sec ECDSA 256 sign 1200 ops took 1.078 sec, avg 0.898 ms, 1113.279 ops/sec ECDSA 256 verify 1700 ops took 1.045 sec, avg 0.615 ms, 1627.064 ops/sec </pre> <p class="paragraph_style_15">This application is especially useful for comparing the public key speed before and after changing the math library. You can test the results using the <strong><span class="style_5">normal math </span></strong>library (./configure), the <strong><span class="style_5">fastmath</span></strong> library (./configure &#8211;enable-fastmath), the <strong><span class="style_5">fasthugemath</span></strong> library (./configure &#8211;enable-fasthugemath), and the <strong>sp-math-all</strong> library (./configure &#8211;enable-sp-math-all).</p> <p><strong>Note</strong>: By default the reported units scale based on the value of each benchmark.&nbsp; To force consistent, fixed units for all reported values build the application defining WOLFSSL_BENCHMARK_FIXED_UNITS_XX, where XX is GB, MB, KB, or B (ytes).&nbsp; For example, ./configure CFLAGS=&#8221;-DWOLFSSL_BENCHMARK_FIXED_UNITS_MB&#8221; displays all values in MB.</p> </div> </div> </div> </div> </div> <div id="panel-1591-2-0-1" class="so-panel widget widget_sow-editor" data-index="5"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Memory Usage</h3> <div class="siteorigin-widget-tinymce textwidget"> <div class="siteorigin-widget-tinymce textwidget"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style_12">Footprint sizes (compiled binary size) for wolfSSL range between 20-100kB depending on build options and the compiler being used.&nbsp; Typically on an embedded system with an embedded and optimized compiler, build sizes will be around 60kB.&nbsp; This will include a full-featured TLS 1.2 client and server. &nbsp;For details on build options and ways to further customize wolfSSL, please see <a title="https://www.wolfssl.com/docs/wolfssl-manual/ch2/" href="https://www.wolfssl.com/docs/wolfssl-manual/ch2/">Chapter 2 of the CyaSSL Manual</a>, or the <a title="Docs-wolfssl-tuning-guide.html" href="https://www.wolfssl.com/docs/tuning-guide/">wolfSSL Tuning Guide</a>.</p> <p class="paragraph_style_12">Regarding runtime memory usage, wolfSSL will generally consume between 1-36 kB per SSL/TLS session.&nbsp; The RAM usage per connection will vary depending the size of the input/output buffers being used, public key algorithm, and key size.&nbsp; The I/O buffers in wolfSSL default to 128 bytes and are controlled by the RECORD_SIZE define in ./wolfssl/internal.h.&nbsp; The maximum size is 16 kB per buffer (as specified by the SSL/TLS RFC).&nbsp; As an example, with standard 16kB buffers, the total runtime memory usage of wolfSSL with a single connection would be 3kB (the library) + 16kB (input buffer) + 16kB (output buffer) = around 35kB.</p> <p class="paragraph_style_12">The TLS context (WOLFSSL_CTX) is shared between all TLS connections of either a client or server.&nbsp; The runtime memory usage can vary depending on how many certificates are being loaded and what size the certificate files are.&nbsp; It will also vary depending on the session cache and whether or not storing session certificates is turned on (&#8211;enable-session-certs).&nbsp; If you are concerned with reducing the session cache size, you can define <strong><span class="style_5">SMALL_SESSION_CACHE</span></strong> (reduce the default session cache from 33 session to 6 sessions) and save almost 2.5 kB.&nbsp; You can disable the session cache by defining <strong><span class="style_5">NO_SESSION_CACHE</span></strong>, reducing memory by nearly 3 kB.</p> </div> </div> </div> </div> </div> <div id="panel-1591-2-0-2" class="so-panel widget widget_sow-editor panel-last-child" data-index="6"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Reference Benchmarks</h3> <div class="siteorigin-widget-tinymce textwidget"> <div class="siteorigin-widget-tinymce textwidget"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style_12">As we port wolfSSL to various platforms, we oftentimes conduct benchmarks on these platforms.&nbsp; Below you will find a collection of some of those benchmarks for reference.&nbsp; If you have benchmarked wolfSSL on a specific platform, please send us your benchmark numbers (with specific platform and library configuration) and we’ll add them to the list!</p> <div id="pgc-1591-4-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-4-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="11" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-4-0-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="12" data-style="{&quot;background_image_attachment&quot;:false,&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p><b><span id="wolfjsse_sunjsse">wolfSSL JSSE Provider</span></b>(vs. default SunJSSE) on Mac OSX</p> </div> </div> </div> </div> <div id="pgc-1591-4-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-4-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="13" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-4-1-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="14" data-style="{&quot;background_image_attachment&quot;:false,&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p>The following benchmarks show the performance improvement when using the wolfSSL Java JSSE Provider versus the default SunJSSE provider.</p> <table id="tablepress-34" class="tablepress tablepress-id-34"> <thead> <tr class="row-1 odd"> <th class="column-1">Client and Configuration</th><th class="column-2">Avg. Connection Time</th> </tr> </thead> <tbody class="row-hover"> <tr class="row-2 even"> <td class="column-1">wolfSSL C only (no Java, software)</td><td class="column-2">9.694 ms</td> </tr> <tr class="row-3 odd"> <td class="column-1">wolfSSL C only (no Java, intelasm + sp + sp-asm)</td><td class="column-2">7.302 ms</td> </tr> <tr class="row-4 even"> <td class="column-1">wolfJSSE Client (software only)</td><td class="column-2">10.92 ms</td> </tr> <tr class="row-5 odd"> <td class="column-1">wolfJSSE Client (sp + intelasm)</td><td class="column-2">8.42 ms</td> </tr> <tr class="row-6 even"> <td class="column-1">wolfJSSE Client (TLS 1.3 sp + intelasm)</td><td class="column-2">8.04 ms</td> </tr> <tr class="row-7 odd"> <td class="column-1">SunJSSE Provider client (default on Mac)</td><td class="column-2">13.34 ms</td> </tr> </tbody> </table> <p>More information on using the wolfSSL JSSE Provider can be found in the <a href="https://www.wolfssl.com/docs/wolfssl-jni-jsse-manual/">User Manual</a>.</p> <p>Return to <a href="#benchmark_top_of_page">top of page</a></p> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div id="pg-1591-4" class="panel-grid panel-has-style" data-style="{&quot;class&quot;:&quot;separate&quot;,&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div class="separate panel-row-style panel-row-style-for-1591-4"> <div id="pgc-1591-4-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-4-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="11" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <hr> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-3-0-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="8" data-style="{&quot;background_image_attachment&quot;:false,&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p><strong><span id="sifive">SiFive:</span></strong>SiFive HiFive1 Rev B</p> </div> </div> </div> </div> <div id="pgc-1591-3-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-3-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="9" data-style="{&quot;background_image_attachment&quot;:false,&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-3-1-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="10" data-style="{&quot;background_image_attachment&quot;:false,&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p>The benchmark values were collected with a clock speed of 320MHz. Configuration includes 4608 bytes for the stack and 2048 bytes for the heap.</p> <pre>wolfCrypt Benchmark (block bytes 1024, min 1.0 sec each) RNG 250 KB took 1.098 seconds, 227.714 KB/s AES-128-CBC-enc 50 KB took 1.132 seconds, 44.175 KB/s AES-128-CBC-dec 50 KB took 1.142 seconds, 43.778 KB/s AES-192-CBC-enc 50 KB took 1.250 seconds, 40.007 KB/s AES-192-CBC-dec 50 KB took 1.260 seconds, 39.677 KB/s AES-256-CBC-enc 50 KB took 1.368 seconds, 36.552 KB/s AES-256-CBC-dec 50 KB took 1.378 seconds, 36.279 KB/s AES-128-GCM-enc 25 KB took 1.225 seconds, 20.412 KB/s AES-128-GCM-dec 25 KB took 1.225 seconds, 20.402 KB/s AES-192-GCM-enc 25 KB took 1.290 seconds, 19.373 KB/s AES-192-GCM-dec 25 KB took 1.291 seconds, 19.366 KB/s AES-256-GCM-enc 25 KB took 1.352 seconds, 18.487 KB/s AES-256-GCM-dec 25 KB took 1.353 seconds, 18.478 KB/s CHACHA 1 MB took 1.006 seconds, 1.020 MB/s CHA-POLY 700 KB took 1.032 seconds, 678.045 KB/s POLY1305 2 MB took 1.007 seconds, 2.255 MB/s SHA 2 MB took 1.002 seconds, 1.511 MB/s SHA-256 525 KB took 1.011 seconds, 519.279 KB/s SHA-512 275 KB took 1.017 seconds, 270.477 KB/s HMAC-SHA 1 MB took 1.013 seconds, 1.399 MB/s HMAC-SHA256 525 KB took 1.019 seconds, 515.020 KB/s HMAC-SHA512 275 KB took 1.032 seconds, 266.351 KB/s ECC 256 key gen 2 ops took 1.104 sec, avg 551.834 ms, 1.812 ops/sec ECDHE 256 agree 2 ops took 1.101 sec, avg 550.400 ms, 1.817 ops/sec ECDSA 256 sign 2 ops took 1.173 sec, avg 586.502 ms, 1.705 ops/sec ECDSA 256 verify 2 ops took 2.153 sec, avg 1076.294 ms, 0.929 ops/sec CURVE 25519 key gen 2 ops took 1.629 sec, avg 814.423 ms, 1.228 ops/sec CURVE 25519 agree 2 ops took 1.626 sec, avg 813.156 ms, 1.230 ops/sec ED 25519 key gen 1 ops took 1.436 sec, avg 1436.096 ms, 0.696 ops/sec ED 25519 sign 2 ops took 2.913 sec, avg 1456.421 ms, 0.687 ops/sec ED 25519 verify 2 ops took 5.012 sec, avg 2506.012 ms, 0.399 ops/sec</pre> <p>Return to <a href="#benchmark_top_of_page">top of page</a></p> </div> </div> </div> </div> </div> </div> <div id="pg-1591-4" class="panel-grid panel-has-style" data-style="{&quot;class&quot;:&quot;separate&quot;,&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div class="separate panel-row-style panel-row-style-for-1591-4"> <div id="pgc-1591-4-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-4-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="11" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <p>&nbsp;</p> <h3>Platform:</h3> <p><span id="hifive"><strong>HiFive Unleashed at 1.4GHz</strong></span></p> <h3>Benchmark:</h3> <p>The new asm is like 50 times faster</p> <pre>./configure --enable-riscv-asm &amp;&amp; make root@HiFiveU:~/wolfssl-riscv# ./wolfcrypt/benchmark/benchmark -aes-cbc -aes-gcm------------------------------------------------------------------------------ wolfSSL version 5.7.0 ------------------------------------------------------------------------------ Math: Multi-Precision: Wolf(SP) word-size=64 bits=3072 sp_int.c wolfCrypt Benchmark (block bytes 1048576, min 1.0 sec each) AES-128-CBC-enc 20 MiB took 1.076 seconds, 18.588 MiB/s AES-128-CBC-dec 20 MiB took 1.083 seconds, 18.473 MiB/s AES-192-CBC-enc 20 MiB took 1.245 seconds, 16.062 MiB/s AES-192-CBC-dec 20 MiB took 1.246 seconds, 16.047 MiB/s AES-256-CBC-enc 15 MiB took 1.057 seconds, 14.189 MiB/s AES-256-CBC-dec 15 MiB took 1.055 seconds, 14.212 MiB/s AES-128-GCM-enc 15 MiB took 1.300 seconds, 11.543 MiB/s AES-128-GCM-dec 15 MiB took 1.300 seconds, 11.535 MiB/s AES-192-GCM-enc 15 MiB took 1.425 seconds, 10.526 MiB/s AES-192-GCM-dec 15 MiB took 1.425 seconds, 10.523 MiB/s AES-256-GCM-enc 10 MiB took 1.032 seconds, 9.687 MiB/s AES-256-GCM-dec 10 MiB took 1.032 seconds, 9.691 MiB/s GMAC Table 4-bit 31 MiB took 1.025 seconds, 30.251 MiB/s Benchmark complete </pre> <p>On master</p> <pre>./configure —enable-all &amp;&amp; make root@HiFiveU:~/wolfssl# ./wolfcrypt/benchmark/benchmark -aes-cbc -aes-gcm ------------------------------------------------------------------------------ wolfSSL version 5.7.0 ------------------------------------------------------------------------------ Math: Multi-Precision: Wolf(SP) word-size=64 bits=4096 sp_int.c wolfCrypt Benchmark (block bytes 1048576, min 1.0 sec each) AES-128-CBC-enc 5 MiB took 12.798 seconds, 0.391 MiB/s AES-128-CBC-dec 5 MiB took 12.672 seconds, 0.395 MiB/s AES-192-CBC-enc 5 MiB took 15.301 seconds, 0.327 MiB/s AES-192-CBC-dec 5 MiB took 15.181 seconds, 0.329 MiB/s AES-256-CBC-enc 5 MiB took 17.820 seconds, 0.281 MiB/s AES-256-CBC-dec 5 MiB took 17.669 seconds, 0.283 MiB/s AES-128-GCM-enc 5 MiB took 12.870 seconds, 0.388 MiB/s AES-128-GCM-dec 5 MiB took 12.870 seconds, 0.388 MiB/s AES-192-GCM-enc 5 MiB took 15.375 seconds, 0.325 MiB/s AES-192-GCM-dec 5 MiB took 15.376 seconds, 0.325 MiB/s AES-256-GCM-enc 5 MiB took 17.878 seconds, 0.280 MiB/s AES-256-GCM-dec 5 MiB took 17.896 seconds, 0.279 MiB/s AES-128-GCM-STREAM-enc 5 MiB took 12.878 seconds, 0.388 MiB/s AES-128-GCM-STREAM-dec 5 MiB took 12.878 seconds, 0.388 MiB/s AES-192-GCM-STREAM-enc 5 MiB took 15.379 seconds, 0.325 MiB/s AES-192-GCM-STREAM-dec 5 MiB took 15.385 seconds, 0.325 MiB/s AES-256-GCM-STREAM-enc 5 MiB took 17.881 seconds, 0.280 MiB/s AES-256-GCM-STREAM-dec 5 MiB took 17.888 seconds, 0.280 MiB/s GMAC Table 4-bit 30 MiB took 1.006 seconds, 29.831 MiB/s Benchmark complete </pre> <div class="so-widget-sow-editor so-widget-sow-editor-base">Return to <a href="#benchmark_top_of_page">top of page</a></div> </div> <p>&nbsp;</p> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <hr> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-4-0-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="12" data-style="{&quot;background_image_attachment&quot;:false,&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p><strong><span id="renesasrx65n">Renesas:</span></strong>Renesas RX65N (R5F565NEHDFB)</p> </div> </div> </div> </div> <div id="pgc-1591-4-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-4-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="13" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-4-1-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="14" data-style="{&quot;background_image_attachment&quot;:false,&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p>The following benchmarks show the performance improvement when using hardware cryptography on the <a href="https://www.renesas.com/eu/en/products/microcontrollers-microprocessors/rx/rx600/rx65n-651.html">Renesas RX65N</a> through the <a href="https://www.renesas.com/br/en/products/software-tools/software-os-middleware-driver/security-crypto/trusted-secure-ip-driver.html">Renesas TSIP</a> driver.</p> <pre>With H/W accelerator(with TSIP) wolfCrypt Benchmark (block bytes 1024, min 1.0 sec each) RNG 2 MB took 1.001 seconds, 1.928 MB/s AES-128-CBC-enc 3 MB took 1.005 seconds, 2.818 MB/s AES-128-CBC-dec 3 MB took 1.002 seconds, 2.631 MB/s AES-256-CBC-enc 3 MB took 1.001 seconds, 2.779 MB/s AES-256-CBC-dec 3 MB took 1.002 seconds, 2.680 MB/s AES-128-GCM-enc 3 MB took 1.007 seconds, 2.740 MB/s AES-128-GCM-dec 3 MB took 1.005 seconds, 2.647 MB/s AES-256-GCM-enc 3 MB took 1.002 seconds, 2.679 MB/s AES-256-GCM-dec 3 MB took 1.005 seconds, 2.649 MB/s ARC4 3 MB took 1.001 seconds, 3.440 MB/s RABBIT 4 MB took 1.004 seconds, 3.987 MB/s 3DES 200 KB took 1.053 seconds, 189.988 KB/s MD5 6 MB took 1.004 seconds, 5.790 MB/s SHA 23 MB took 1.001 seconds, 23.104 MB/s SHA-256 26 MB took 1.000 seconds, 25.974 MB/s SHA-512 275 KB took 1.063 seconds, 258.702 KB/s HMAC-MD5 6 MB took 1.003 seconds, 5.722 MB/s HMAC-SHA 22 MB took 1.001 seconds, 22.321 MB/s HMAC-SHA256 25 MB took 1.000 seconds, 24.995 MB/s HMAC-SHA512 275 KB took 1.079 seconds, 254.795 KB/s PBKDF2 672 bytes took 1.005 seconds, 668.790 bytes/s RSA 2048 public 12 ops took 1.015 sec, avg 84.608 ms, 11.819 ops/sec RSA 2048 private 2 ops took 2.388 sec, avg 1194.200 ms, 0.837 ops/sec DH 2048 key gen 4 ops took 1.268 sec, avg 316.900 ms, 3.156 ops/sec DH 2048 agree 4 ops took 1.652 sec, avg 412.950 ms, 2.422 ops/sec ECC 256 key gen 3 ops took 1.061 sec, avg 353.667 ms, 2.828 ops/sec ECDHE 256 agree 4 ops took 1.407 sec, avg 351.725 ms, 2.843 ops/sec ECDSA 256 sign 4 ops took 1.476 sec, avg 369.050 ms, 2.710 ops/sec ECDSA 256 verify 2 ops took 1.451 sec, avg 725.450 ms, 1.378 ops/sec CURVE 25519 key gen 3 ops took 1.412 sec, avg 470.500 ms, 2.125 ops/sec CURVE 25519 agree 4 ops took 1.882 sec, avg 470.475 ms, 2.126 ops/sec ED 25519 key gen 92 ops took 1.001 sec, avg 10.878 ms, 91.926 ops/sec ED 25519 sign 64 ops took 1.007 sec, avg 15.733 ms, 63.561 ops/sec ED 25519 verify 30 ops took 1.027 sec, avg 34.220 ms, 29.223 ops/sec</pre> <pre>S/W only(without TSIP) wolfCrypt Benchmark (block bytes 1024, min 1.0 sec each) RNG 325 KB took 1.003 seconds, 323.899 KB/s AES-128-CBC-enc 675 KB took 1.003 seconds, 672.780 KB/s AES-128-CBC-dec 650 KB took 1.011 seconds, 643.182 KB/s AES-192-CBC-enc 625 KB took 1.022 seconds, 611.426 KB/s AES-192-CBC-dec 600 KB took 1.027 seconds, 584.511 KB/s AES-256-CBC-enc 575 KB took 1.026 seconds, 560.320 KB/s AES-256-CBC-dec 550 KB took 1.027 seconds, 535.749 KB/s AES-128-GCM-enc 275 KB took 1.053 seconds, 261.258 KB/s AES-128-GCM-dec 275 KB took 1.053 seconds, 261.258 KB/s AES-192-GCM-enc 275 KB took 1.094 seconds, 251.348 KB/s AES-192-GCM-dec 275 KB took 1.094 seconds, 251.279 KB/s AES-256-GCM-enc 250 KB took 1.035 seconds, 241.569 KB/s AES-256-GCM-dec 250 KB took 1.033 seconds, 242.084 KB/s ARC4 3 MB took 1.001 seconds, 3.439 MB/s RABBIT 4 MB took 1.000 seconds, 3.906 MB/s 3DES 200 KB took 1.086 seconds, 184.179 KB/s MD5 6 MB took 1.000 seconds, 5.784 MB/s SHA 2 MB took 1.006 seconds, 1.893 MB/s SHA-256 750 KB took 1.023 seconds, 733.138 KB/s SHA-512 275 KB took 1.029 seconds, 267.198 KB/s HMAC-MD5 6 MB took 1.004 seconds, 5.715 MB/s HMAC-SHA 2 MB took 1.002 seconds, 1.877 MB/s HMAC-SHA256 750 KB took 1.032 seconds, 726.956 KB/s HMAC-SHA512 275 KB took 1.045 seconds, 263.133 KB/s PBKDF2 96 bytes took 1.054 seconds, 91.056 bytes/s RSA 2048 public 12 ops took 1.024 sec, avg 85.292 ms, 11.724 ops/sec RSA 2048 private 2 ops took 2.388 sec, avg 1193.750 ms, 0.838 ops/sec DH 2048 key gen 4 ops took 1.265 sec, avg 316.275 ms, 3.162 ops/sec DH 2048 agree 4 ops took 1.644 sec, avg 410.950 ms, 2.433 ops/sec ECC 256 key gen 3 ops took 1.064 sec, avg 354.667 ms, 2.820 ops/sec ECDHE 256 agree 4 ops took 1.435 sec, avg 358.725 ms, 2.788 ops/sec ECDSA 256 sign 4 ops took 1.498 sec, avg 374.425 ms, 2.671 ops/sec ECDSA 256 verify 2 ops took 1.437 sec, avg 718.300 ms, 1.392 ops/sec CURVE 25519 key gen 2 ops took 1.005 sec, avg 502.350 ms, 1.991 ops/sec CURVE 25519 agree 2 ops took 1.004 sec, avg 502.100 ms, 1.992 ops/sec ED 25519 key gen 91 ops took 1.008 sec, avg 11.076 ms, 90.287 ops/sec ED 25519 sign 66 ops took 1.026 sec, avg 15.538 ms, 64.359 ops/sec ED 25519 verify 30 ops took 1.023 sec, avg 34.090 ms, 29.334 ops/sec </pre> </div> </div> </div> </div> <div id="pgc-1591-4-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-4-1-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="14" data-style="{&quot;background_image_attachment&quot;:false,&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <table id="tablepress-30" class="tablepress tablepress-id-30"> <thead> <tr class="row-1 odd"> <th class="column-1">Algorithm</th><th class="column-2">Software Crypto</th><th class="column-3">TSIP Accelerated Crypto</th> </tr> </thead> <tbody class="row-hover"> <tr class="row-2 even"> <td class="column-1">RNG</td><td class="column-2">231.160 KB/s</td><td class="column-3">1.423 MB/s</td> </tr> <tr class="row-3 odd"> <td class="column-1">SHA</td><td class="column-2">1.239 MB/s</td><td class="column-3">22.254 MB/s</td> </tr> <tr class="row-4 even"> <td class="column-1">SHA-256</td><td class="column-2">515.565 KB/s</td><td class="column-3">25.217 MB/s</td> </tr> </tbody> </table> <!-- #tablepress-30 from cache --> <table id="tablepress-31" class="tablepress tablepress-id-31"> <thead> <tr class="row-1 odd"> <th class="column-1">Cipher Suite</th><th class="column-2">Software Crypto (sec)</th><th class="column-3">TSIP Accelerated Crypto (sec)</th> </tr> </thead> <tbody class="row-hover"> <tr class="row-2 even"> <td class="column-1">TLS_RSA_WITH_AES_128_CBC_SHA</td><td class="column-2">0.381</td><td class="column-3">0.028</td> </tr> <tr class="row-3 odd"> <td class="column-1">TLS_RSA_WITH_AES_128_CBC_SHA256</td><td class="column-2">0.383</td><td class="column-3">0.028</td> </tr> <tr class="row-4 even"> <td class="column-1">TLS_RSA_WITH_AES_256_CBC_SHA</td><td class="column-2">0.382</td><td class="column-3">0.030</td> </tr> <tr class="row-5 odd"> <td class="column-1">TLS_RSA_WITH_AES_256_CBC_SHA256</td><td class="column-2">0.385</td><td class="column-3">0.029</td> </tr> </tbody> </table> <!-- #tablepress-31 from cache --> <p>More information on using wolfSSL in combination with Renesas and wolfSSL&#8217;s support for Renesas can be found here: <a href="https://www.wolfssl.com/docs/renesas/">https://www.wolfssl.com/docs/renesas/</a></p> <p>Return to <a href="#benchmark_top_of_page">top of page</a></p> </div> </div> </div> </div> </div> </div> <div id="pg-1591-5" class="panel-grid panel-has-style" data-style="{&quot;class&quot;:&quot;separate&quot;,&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div class="separate panel-row-style panel-row-style-for-1591-5"> <div id="pgc-1591-5-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-5-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="15" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div id="pgc-1591-5-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-5-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="15" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-5-0-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="16" data-style="{&quot;background_image_attachment&quot;:false,&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p><strong><span id="renesasrx71m">Renesas:&nbsp;</span></strong>Renesas RX72N (RTK5RX72N0C00000BJ)</p> </div> </div> </div> </div> <div id="pgc-1591-5-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-5-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="17" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> </div> </div> </div> <pre>With H/W accelerator(with TSIP) wolfCrypt Benchmark (block bytes 1024, min 1.0 sec each) RNG 4 MB took 1.004 seconds, 3.818 MB/s AES-128-CBC-enc 5 MB took 1.001 seconds, 4.852 MB/s AES-128-CBC-dec 5 MB took 1.004 seconds, 4.692 MB/s AES-256-CBC-enc 5 MB took 1.000 seconds, 4.688 MB/s AES-256-CBC-dec 5 MB took 1.002 seconds, 4.534 MB/s AES-128-GCM-enc 4 MB took 1.005 seconds, 4.348 MB/s AES-128-GCM-dec 4 MB took 1.001 seconds, 4.292 MB/s AES-256-GCM-enc 4 MB took 1.004 seconds, 4.257 MB/s AES-256-GCM-dec 4 MB took 1.004 seconds, 4.206 MB/s ARC4 7 MB took 1.001 seconds, 7.120 MB/s RABBIT 9 MB took 1.000 seconds, 9.155 MB/s 3DES 525 KB took 1.035 seconds, 507.050 KB/s MD5 15 MB took 1.001 seconds, 14.998 MB/s SHA 30 MB took 1.001 seconds, 30.084 MB/s SHA-256 35 MB took 1.000 seconds, 34.588 MB/s SHA-512 750 KB took 1.001 seconds, 749.475 KB/s HMAC-MD5 15 MB took 1.000 seconds, 14.844 MB/s HMAC-SHA 29 MB took 1.000 seconds, 29.440 MB/s HMAC-SHA256 34 MB took 1.000 seconds, 33.709 MB/s HMAC-SHA512 750 KB took 1.016 seconds, 738.334 KB/s PBKDF2 1 KB took 1.025 seconds, 1.219 KB/s RSA 2048 public 26 ops took 1.020 sec, avg 39.212 ms, 25.503 ops/sec RSA 2048 private 2 ops took 1.101 sec, avg 550.250 ms, 1.817 ops/sec DH 2048 key gen 7 ops took 1.037 sec, avg 148.114 ms, 6.752 ops/sec DH 2048 agree 6 ops took 1.184 sec, avg 197.250 ms, 5.070 ops/sec ECC 256 key gen 7 ops took 1.069 sec, avg 152.743 ms, 6.547 ops/sec ECDHE 256 agree 8 ops took 1.231 sec, avg 153.825 ms, 6.501 ops/sec ECDSA 256 sign 8 ops took 1.271 sec, avg 158.825 ms, 6.296 ops/sec ECDSA 256 verify 4 ops took 1.242 sec, avg 310.475 ms, 3.221 ops/sec CURVE 25519 key gen 5 ops took 1.055 sec, avg 211.080 ms, 4.738 ops/sec CURVE 25519 agree 6 ops took 1.266 sec, avg 211.050 ms, 4.738 ops/sec ED 25519 key gen 208 ops took 1.004 sec, avg 4.828 ms, 207.109 ops/sec ED 25519 sign 154 ops took 1.001 sec, avg 6.502 ms, 153.800 ops/sec ED 25519 verify 66 ops took 1.016 sec, avg 15.400 ms, 64.935 ops/sec S/W only(without TSIP) wolfCrypt Benchmark (block bytes 1024, min 1.0 sec each) RNG 850 KB took 1.020 seconds, 833.578 KB/s AES-128-CBC-enc 2 MB took 1.006 seconds, 1.626 MB/s AES-128-CBC-dec 2 MB took 1.001 seconds, 1.537 MB/s AES-192-CBC-enc 2 MB took 1.013 seconds, 1.494 MB/s AES-192-CBC-dec 1 MB took 1.003 seconds, 1.412 MB/s AES-256-CBC-enc 1 MB took 1.007 seconds, 1.382 MB/s AES-256-CBC-dec 1 MB took 1.008 seconds, 1.308 MB/s AES-128-GCM-enc 750 KB took 1.001 seconds, 749.026 KB/s AES-128-GCM-dec 750 KB took 1.002 seconds, 748.503 KB/s AES-192-GCM-enc 725 KB took 1.007 seconds, 719.817 KB/s AES-192-GCM-dec 725 KB took 1.008 seconds, 719.317 KB/s AES-256-GCM-enc 700 KB took 1.010 seconds, 693.001 KB/s AES-256-GCM-dec 700 KB took 1.011 seconds, 692.589 KB/s ARC4 7 MB took 1.001 seconds, 7.120 MB/s RABBIT 9 MB took 1.000 seconds, 9.154 MB/s 3DES 525 KB took 1.034 seconds, 507.835 KB/s MD5 15 MB took 1.000 seconds, 14.990 MB/s SHA 6 MB took 1.003 seconds, 5.574 MB/s SHA-256 2 MB took 1.002 seconds, 1.827 MB/s SHA-512 750 KB took 1.009 seconds, 743.089 KB/s HMAC-MD5 15 MB took 1.000 seconds, 14.838 MB/s HMAC-SHA 6 MB took 1.003 seconds, 5.527 MB/s HMAC-SHA256 2 MB took 1.010 seconds, 1.812 MB/s HMAC-SHA512 750 KB took 1.025 seconds, 732.064 KB/s PBKDF2 256 bytes took 1.096 seconds, 233.619 bytes/s RSA 2048 public 26 ops took 1.027 sec, avg 39.488 ms, 25.324 ops/sec RSA 2048 private 2 ops took 1.104 sec, avg 551.800 ms, 1.812 ops/sec DH 2048 key gen 7 ops took 1.037 sec, avg 148.171 ms, 6.749 ops/sec DH 2048 agree 6 ops took 1.188 sec, avg 198.017 ms, 5.050 ops/sec ECC 256 key gen 7 ops took 1.070 sec, avg 152.843 ms, 6.543 ops/sec ECDHE 256 agree 8 ops took 1.228 sec, avg 153.550 ms, 6.513 ops/sec ECDSA 256 sign 8 ops took 1.272 sec, avg 159.025 ms, 6.288 ops/sec ECDSA 256 verify 4 ops took 1.249 sec, avg 312.150 ms, 3.204 ops/sec CURVE 25519 key gen 5 ops took 1.056 sec, avg 211.220 ms, 4.734 ops/sec CURVE 25519 agree 6 ops took 1.267 sec, avg 211.100 ms, 4.737 ops/sec ED 25519 key gen 204 ops took 1.003 sec, avg 4.916 ms, 203.410 ops/sec ED 25519 sign 154 ops took 1.004 sec, avg 6.517 ms, 153.448 ops/sec ED 25519 verify 66 ops took 1.018 sec, avg 15.418 ms, 64.858 ops/sec</pre> <p>More information on using wolfSSL in combination with Renesas and wolfSSL&#8217;s support for Renesas can be found here: <a href="https://www.wolfssl.com/docs/renesas/">https://www.wolfssl.com/docs/renesas/</a></p> <p>Return to <a href="#benchmark_top_of_page">top of page</a></p> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-5-0-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="16" data-style="{&quot;background_image_attachment&quot;:false,&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p><strong><span id="renesasrx71m">Renesas:&nbsp;</span></strong>Renesas RX MPU (R5F571MLDDFC)</p> </div> </div> </div> </div> <div id="pgc-1591-5-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-5-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="17" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-5-1-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="18" data-style="{&quot;background_image_attachment&quot;:false,&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p>These values were collected by running the wolfCrypt benchmark application on an Alpha Project board (AP-RX71M-0A)</p> <pre>wolfCrypt Benchmark (block bytes 1024, min 1.0 sec each) RNG 775 KB took 1.031 seconds, 751.916 KB/s AES-128-CBC-enc 2 MB took 1.006 seconds, 1.505 MB/s AES-128-CBC-dec 1 MB took 1.010 seconds, 1.450 MB/s AES-192-CBC-enc 1 MB took 1.010 seconds, 1.378 MB/s AES-192-CBC-dec 1 MB took 1.011 seconds, 1.328 MB/s AES-256-CBC-enc 1 MB took 1.019 seconds, 1.270 MB/s AES-256-CBC-dec 1 MB took 1.014 seconds, 1.227 MB/s AES-128-GCM-enc 675 KB took 1.025 seconds, 658.858 KB/s AES-128-GCM-dec 675 KB took 1.026 seconds, 658.087 KB/s AES-192-GCM-enc 650 KB took 1.027 seconds, 633.220 KB/s AES-192-GCM-dec 650 KB took 1.028 seconds, 632.603 KB/s AES-256-GCM-enc 625 KB took 1.025 seconds, 609.697 KB/s AES-256-GCM-dec 625 KB took 1.026 seconds, 609.102 KB/s RABBIT 9 MB took 1.001 seconds, 8.534 MB/s 3DES 475 KB took 1.035 seconds, 458.893 KB/s MD5 13 MB took 1.001 seconds, 13.275 MB/s SHA 5 MB took 1.002 seconds, 4.778 MB/s SHA-256 2 MB took 1.006 seconds, 1.650 MB/s SHA-384 675 KB took 1.034 seconds, 653.057 KB/s SHA-512 675 KB took 1.034 seconds, 652.994 KB/s HMAC-MD5 13 MB took 1.001 seconds, 13.142 MB/s HMAC-SHA 5 MB took 1.004 seconds, 4.768 MB/s HMAC-SHA256 2 MB took 1.014 seconds, 1.638 MB/s HMAC-SHA384 650 KB took 1.010 seconds, 643.437 KB/s HMAC-SHA512 650 KB took 1.011 seconds, 643.182 KB/s RSA 2048 public 26 ops took 1.067 sec, avg 41.038 ms, 24.367 ops/sec RSA 2048 private 2 ops took 1.157 sec, avg 578.500 ms, 1.729 ops/sec DH 2048 key gen 6 ops took 1.049 sec, avg 174.883 ms, 5.718 ops/sec DH 2048 agree 6 ops took 1.191 sec, avg 198.433 ms, 5.039 ops/sec ECC 256 key gen 7 ops took 1.162 sec, avg 165.943 ms, 6.026 ops/sec ECDHE 256 agree 8 ops took 1.323 sec, avg 165.325 ms, 6.049 ops/sec ECDSA 256 sign 6 ops took 1.044 sec, avg 174.017 ms, 5.747 ops/sec ECDSA 256 verify 4 ops took 1.281 sec, avg 320.300 ms, 3.122 ops/sec CURVE 25519 key gen 5 ops took 1.137 sec, avg 227.300 ms, 4.399 ops/sec CURVE 25519 agree 6 ops took 1.366 sec, avg 227.583 ms, 4.394 ops/sec ED 25519 key gen 198 ops took 1.003 sec, avg 5.064 ms, 197.467 ops/sec ED 25519 sign 146 ops took 1.005 sec, avg 6.885 ms, 145.245 ops/sec ED 25519 verify 62 ops took 1.001 sec, avg 16.147 ms, 61.932 ops/sec</pre> <p>More information on using wolfSSL in combination with Renesas and wolfSSL&#8217;s support for Renesas can be found here: <a href="https://www.wolfssl.com/docs/renesas/">https://www.wolfssl.com/docs/renesas/</a></p> <p>Return to <a href="#benchmark_top_of_page">top of page</a></p> <div id="pg-1591-5" class="panel-grid panel-has-style" data-style="{&quot;class&quot;:&quot;separate&quot;,&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div class="separate panel-row-style panel-row-style-for-1591-5"> <div id="pgc-1591-5-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-5-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="15" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-5-0-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="16" data-style="{&quot;background_image_attachment&quot;:false,&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p><strong><span id="renesasdks7g2">Renesas:&nbsp;</span></strong>Renesas Synergy<span style="font-weight: 400;">&nbsp;DK-S7G2</span></p> </div> </div> </div> </div> <div id="pgc-1591-5-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-5-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="17" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-5-1-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="18" data-style="{&quot;background_image_attachment&quot;:false,&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p><span style="font-weight: 400;">Benchmarks using Renesas DK-S7G2 board (ThreadX + NetX) and wolfSSL 4.3.0 :</span></p> <p><span style="font-weight: 400;">3X speed up with SHA256 operations, 1.5X speed up with AES, and over 4X speed up of public key operations when SP math was enabled.</span><span style="font-weight: 400;"><br /> </span><span style="font-weight: 400;"><br /> </span><span style="font-weight: 400;">Average TLS client connection times on the board with hardware acceleration and SP math :</span><span style="font-weight: 400;"><br /> </span></p> <p><span style="font-weight: 400;"><img decoding="async" class="alignnone wp-image-36449 size-full" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/image1.png" alt="" width="950" height="294" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/image1.png 950w, https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/image1-300x93.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/image1-768x238.png 768w, https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/image1-650x201.png 650w" sizes="(max-width: 950px) 100vw, 950px" /><br /> </span><span style="font-weight: 400;"><br /> </span><span style="font-weight: 400;">Software only speeds without SP math library:</span></p> <pre>AES-128-CBC-enc 2 MB took 1.010 seconds, 1.910 MB/s SHA-256 4 MB took 1.000 seconds, 3.638 MB/s HMAC-SHA256 4 MB took 1.010 seconds, 3.626 MB/s RSA 2048 public 24 ops took 1.080 sec, avg 45.000 ms, 22.222 ops/sec RSA 2048 private 2 ops took 1.840 sec, avg 920.000 ms, 1.087 ops/sec ECC 256 key gen 3 ops took 1.170 sec, avg 390.000 ms, 2.564 ops/sec ECDHE 256 agree 4 ops took 1.560 sec, avg 390.000 ms, 2.564 ops/sec ECDSA 256 sign 4 ops took 1.570 sec, avg 392.500 ms, 2.548 ops/sec ECDSA 256 verify 2 ops took 1.560 sec, avg 780.000 ms, 1.282 ops/sec</pre> <p><span style="font-weight: 400;">Hardware acceleration on plus use of SP math enabled:</span></p> <pre>AES-128-CBC-enc 3 MB took 1.010 seconds, 2.901 MB/s SHA-256 11 MB took 1.000 seconds, 11.353 MB/s HMAC-SHA256 11 MB took 1.000 seconds, 11.206 MB/s RSA 2048 public 94 ops took 1.010 sec, avg 10.745 ms, 93.069 ops/sec RSA 2048 private 4 ops took 1.530 sec, avg 382.500 ms, 2.614 ops/sec ECC 256 key gen 129 ops took 1.000 sec, avg 7.752 ms, 129.000 ops/sec ECDHE 256 agree 32 ops took 1.040 sec, avg 32.500 ms, 30.769 ops/sec ECDSA 256 sign 90 ops took 1.000 sec, avg 11.111 ms, 90.000 ops/sec ECDSA 256 verify 26 ops took 1.030 sec, avg 39.615 ms, 25.243 ops/sec</pre> <p><span style="font-weight: 400;">Time for Ed25519 and Curve25519:</span></p> <pre>CURVE 25519 key gen 36 ops took 1.020 sec, avg 28.333 ms, 35.294 ops/sec CURVE 25519 agree 36 ops took 1.010 sec, avg 28.056 ms, 35.644 ops/sec ED 25519 key gen 99 ops took 1.000 sec, avg 10.101 ms, 99.000 ops/sec ED 25519 sign 82 ops took 1.000 sec, avg 12.195 ms, 82.000 ops/sec ED 25519 verify 32 ops took 1.010 sec, avg 31.562 ms, 31.683 ops/sec</pre> <p>More information on using wolfSSL in combination with Renesas and wolfSSL&#8217;s support for Renesas can be found here: <a href="https://www.wolfssl.com/docs/renesas/">https://www.wolfssl.com/docs/renesas/</a></p> <p>Return to <a href="#benchmark_top_of_page">top of page</a></p> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div id="pg-1591-6" class="panel-grid panel-has-style" data-style="{&quot;class&quot;:&quot;separate&quot;,&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div class="separate panel-row-style panel-row-style-for-1591-6"> <div id="pgc-1591-6-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-6-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="19" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-6-0-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="20" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"><strong><span id="xilinx">Xilinx ZCU102 Petalinux:</span></strong></div> </div> </div> </div> <div id="pgc-1591-6-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-6-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="21" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-6-1-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="22" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget">RSA evaluation:<br /> <img decoding="async" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2019/06/rsa.png" alt="wolfSSL RSA evaluation">wolfSSL only:<br /> <img decoding="async" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2019/06/wolfssl-only.png" alt="wolfSSL only"><br /> <img decoding="async" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2019/06/wolfssl-only-hash.png" alt="wolfSSL only and hashing">wolfSSL and ARMv8:<br /> <img decoding="async" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2019/06/wolfsslarmv8.png" alt="wolfSSL and ARMv8"></div> <div><img decoding="async" loading="lazy" class="alignnone wp-image-36922 size-full" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2020/09/Screen-Shot-2020-09-16-at-11.32.28-AM.png" alt="" width="1768" height="774" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2020/09/Screen-Shot-2020-09-16-at-11.32.28-AM.png 1768w, https://www.wolfssl.com/wordpress/wp-content/uploads/2020/09/Screen-Shot-2020-09-16-at-11.32.28-AM-300x131.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2020/09/Screen-Shot-2020-09-16-at-11.32.28-AM-768x336.png 768w, https://www.wolfssl.com/wordpress/wp-content/uploads/2020/09/Screen-Shot-2020-09-16-at-11.32.28-AM-1024x448.png 1024w, https://www.wolfssl.com/wordpress/wp-content/uploads/2020/09/Screen-Shot-2020-09-16-at-11.32.28-AM-650x285.png 650w" sizes="(max-width: 1768px) 100vw, 1768px" /></div> <div>&nbsp;</div> <div class="siteorigin-widget-tinymce textwidget">wolfSSL hardware acceleration:<br /> <img decoding="async" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2019/06/wolfsslhardwareAcc.png" alt="wolfSSL hardware acceleration">Return to <a href="#benchmark_top_of_page">top of page</a></div> </div> </div> </div> </div> </div> <div id="pg-1591-7" class="panel-grid panel-has-style" data-style="{&quot;class&quot;:&quot;separate&quot;,&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div class="separate panel-row-style panel-row-style-for-1591-7"> <div id="pgc-1591-7-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-7-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="23" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-7-0-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="24" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"><strong><span id="espressif_esp32_wroom">Espressif ESP32 WROOM:</span></strong></div> </div> </div> </div> <div id="pgc-1591-7-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-7-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="25" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-7-1-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="26" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p>These benchmark values were collected with the fastmath library in use,&nbsp;on an&nbsp;esp32-wroom-32 with CPU speed:240MHz,&nbsp;ESP-IDF version v3.3-beta1-39-g6cb37ecc5(commit hash: 6cb37ecc5), and operating system&nbsp;Ubuntu 18.04.1 LTS (Bionic Beaver).<strong>Software encryption:</strong></p> <pre>AES-128-CBC-enc 1 MB took 1.001 seconds, 1.146 MB/s AES-128-CBC-dec 1 MB took 1.017 seconds, 1.104 MB/s AES-192-CBC-enc 1 MB took 1.018 seconds, 1.055 MB/s AES-192-CBC-dec 1 MB took 1.006 seconds, 1.019 MB/s AES-256-CBC-enc 1000 KB took 1.000 seconds, 1000.000 KB/s AES-256-CBC-dec 975 KB took 1.007 seconds, 968.222 KB/s AES-128-GCM-enc 350 KB took 1.055 seconds, 331.754 KB/s AES-128-GCM-dec 350 KB took 1.054 seconds, 332.068 KB/s AES-192-GCM-enc 325 KB took 1.013 seconds, 320.829 KB/s AES-192-GCM-dec 325 KB took 1.013 seconds, 320.829 KB/s AES-256-GCM-enc 325 KB took 1.041 seconds, 312.200 KB/s AES-256-GCM-dec 325 KB took 1.041 seconds, 312.200 KB/s SHA 6 MB took 1.004 seconds, 5.714 MB/s SHA-256 2 MB took 1.006 seconds, 1.747 MB/s SHA-384 1 MB took 1.011 seconds, 1.159 MB/s SHA-512 1 MB took 1.009 seconds, 1.161 MB/s HMAC-SHA 6 MB took 1.001 seconds, 5.634 MB/s HMAC-SHA256 2 MB took 1.000 seconds, 1.733 MB/s HMAC-SHA384 1 MB took 1.004 seconds, 1.046 MB/s HMAC-SHA512 1 MB took 1.002 seconds, 1.048 MB/s RSA 2048 public 16 ops took 1.056 sec, avg 66.000 ms, 15.152 ops/sec RSA 2048 private 2 ops took 2.488 sec, avg 1244.000 ms, 0.804 ops/sec ECC 256 key gen 4 ops took 1.101 sec, avg 275.250 ms, 3.633 ops/sec ECDHE 256 agree 4 ops took 1.098 sec, avg 274.500 ms, 3.643 ops/sec ECDSA 256 sign 4 ops took 1.111 sec, avg 277.750 ms, 3.600 ops/sec ECDSA 256 verify 2 ops took 1.099 sec, avg 549.500 ms, 1.820 ops/sec</pre> <p><strong>Hardware encryption</strong></p> <pre>AES-128-CBC-enc 6 MB took 1.004 seconds, 5.958 MB/s AES-128-CBC-dec 5 MB took 1.002 seconds, 5.287 MB/s AES-192-CBC-enc 6 MB took 1.004 seconds, 5.958 MB/s AES-192-CBC-dec 5 MB took 1.002 seconds, 5.287 MB/s AES-256-CBC-enc 6 MB took 1.001 seconds, 5.951 MB/s AES-256-CBC-dec 5 MB took 1.004 seconds, 5.277 MB/s AES-128-GCM-enc 375 KB took 1.067 seconds, 351.453 KB/s AES-128-GCM-dec 375 KB took 1.067 seconds, 351.453 KB/s AES-192-GCM-enc 350 KB took 1.010 seconds, 346.535 KB/s AES-192-GCM-dec 350 KB took 1.009 seconds, 346.878 KB/s AES-256-GCM-enc 350 KB took 1.016 seconds, 344.488 KB/s AES-256-GCM-dec 350 KB took 1.016 seconds, 344.488 KB/s SHA 14 MB took 1.000 seconds, 14.062 MB/s SHA-256 15 MB took 1.000 seconds, 15.234 MB/s SHA-384 17 MB took 1.000 seconds, 17.383 MB/s SHA-512 18 MB took 1.001 seconds, 17.512 MB/s HMAC-SHA 14 MB took 1.000 seconds, 13.818 MB/s HMAC-SHA256 15 MB took 1.001 seconds, 14.951 MB/s HMAC-SHA384 17 MB took 1.001 seconds, 16.683 MB/s HMAC-SHA512 17 MB took 1.000 seconds, 16.943 MB/s RSA 2048 public 20 ops took 1.017 sec, avg 50.850 ms, 19.666 ops/sec RSA 2048 private 4 ops took 1.059 sec, avg 264.750 ms, 3.777 ops/sec ECC 256 key gen 4 ops took 1.092 sec, avg 273.000 ms, 3.663 ops/sec ECDHE 256 agree 4 ops took 1.089 sec, avg 272.250 ms, 3.673 ops/sec ECDSA 256 sign 4 ops took 1.101 sec, avg 275.250 ms, 3.633 ops/sec ECDSA 256 verify 2 ops took 1.092 sec, avg 546.000 ms, 1.832 ops/sec</pre> <p>Return to <a href="#benchmark_top_of_page">top of page</a></p> </div> </div> </div> </div> </div> </div> <div id="pg-1591-8" class="panel-grid panel-has-style" data-style="{&quot;class&quot;:&quot;separate&quot;,&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div class="separate panel-row-style panel-row-style-for-1591-8"> <div id="pgc-1591-8-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-8-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="27" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-8-0-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="28" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p><strong><span id="Intel_x86_64">Intel x86_64:</span></strong></p> </div> </div> </div> </div> <div id="pgc-1591-8-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-8-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="29"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-8-1-1" class="so-panel widget widget_sow-editor" data-index="30" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p>Recent releases of&nbsp;<a href="https://www.wolfssl.com/products/wolfssl/">wolfSSL</a>&nbsp;have included new assembly code targeted at the Intel x86_64 platform. Large performance gains have been made, and the first two graphs pertain to performance increases with AES-GCM.In the graphs for these benchmarks, the Y-axis signifies <strong>block size</strong>, while the X-axis signifies <strong>relative speed</strong> to the prior version of wolfSSL.</p> <p>The assembly code for AES-GCM has been rewritten to take best advantage of the AVX1 and AVX2 instructions. The performance of AES-GCM is now as good or better than OpenSSL.</p> <p><img decoding="async" loading="lazy" class="alignnone size-full wp-image-29987" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/AES-128-GCM-Enc-AVX1.png" alt="wolfSSL vs. OpenSSL, wolfSSL v OpenSSL, OpenSSL, v, vs, vs., wolfSSL" width="1018" height="539" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/AES-128-GCM-Enc-AVX1.png 1018w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/AES-128-GCM-Enc-AVX1-300x159.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/AES-128-GCM-Enc-AVX1-768x407.png 768w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/AES-128-GCM-Enc-AVX1-650x344.png 650w" sizes="(max-width: 1018px) 100vw, 1018px" /> <img decoding="async" loading="lazy" class="alignnone size-full wp-image-29988" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/AWS-128-GCM-Enc-AVX2-with-RORX-.png" alt="" width="1018" height="541" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/AWS-128-GCM-Enc-AVX2-with-RORX-.png 1018w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/AWS-128-GCM-Enc-AVX2-with-RORX--300x159.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/AWS-128-GCM-Enc-AVX2-with-RORX--768x408.png 768w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/AWS-128-GCM-Enc-AVX2-with-RORX--650x345.png 650w" sizes="(max-width: 1018px) 100vw, 1018px" /></p> </div> </div> </div> <div id="panel-1591-8-1-2" class="so-panel widget widget_sow-editor" data-index="31"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p>ChaCha20-Poly1305 is a relatively new authenticated encryption algorithm. It was designed as an alternative to AES-GCM. The algorithm is simple and fast on CPUs that do not have hardware acceleration for AES and GCM.</p> <p><img decoding="async" loading="lazy" class="alignnone size-full wp-image-29997" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/chacha_poly1305_avx1.png" alt="" width="1018" height="539" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/chacha_poly1305_avx1.png 1018w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/chacha_poly1305_avx1-300x159.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/chacha_poly1305_avx1-768x407.png 768w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/chacha_poly1305_avx1-650x344.png 650w" sizes="(max-width: 1018px) 100vw, 1018px" /> <img decoding="async" loading="lazy" class="alignnone size-full wp-image-29995" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/chacha_poly1305_avx2.png" alt="" width="1016" height="539" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/chacha_poly1305_avx2.png 1016w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/chacha_poly1305_avx2-300x159.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/chacha_poly1305_avx2-768x407.png 768w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/chacha_poly1305_avx2-650x345.png 650w" sizes="(max-width: 1016px) 100vw, 1016px" /></p> </div> </div> </div> <div id="panel-1591-8-1-3" class="so-panel widget widget_sow-editor" data-index="32"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p>The most commonly used digest algorithms are SHA-256 and SHA-384. With the introduction of AES-GCM in TLS, SHA-256 and SHA-384 are less commonly used for application data authentication. But, they are still used for handshake message authentication, as a one-way function (as required in a pseudo-random number generator) and digital signatures.</p> <p><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-29999" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/sha_256_avx1.png" alt="" width="1018" height="539" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/sha_256_avx1.png 1018w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/sha_256_avx1-300x159.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/sha_256_avx1-768x407.png 768w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/sha_256_avx1-650x344.png 650w" sizes="(max-width: 1018px) 100vw, 1018px" /> <img decoding="async" loading="lazy" class="aligncenter size-large wp-image-30000" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/sha_256_avx2_bmi2-1024x538.png" alt="" width="650" height="342" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/sha_256_avx2_bmi2-1024x538.png 1024w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/sha_256_avx2_bmi2-300x158.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/sha_256_avx2_bmi2-768x404.png 768w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/sha_256_avx2_bmi2-650x342.png 650w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/sha_256_avx2_bmi2.png 1029w" sizes="(max-width: 650px) 100vw, 650px" /> <img decoding="async" loading="lazy" class="aligncenter size-full wp-image-30001" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/sha_512_avx1.png" alt="" width="1018" height="541" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/sha_512_avx1.png 1018w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/sha_512_avx1-300x159.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/sha_512_avx1-768x408.png 768w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/sha_512_avx1-650x345.png 650w" sizes="(max-width: 1018px) 100vw, 1018px" /> <img decoding="async" loading="lazy" class="alignnone wp-image-29863" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/sha_256_avx2_bmi2.png" alt="SHA-512-AVX2-BMI2" width="758" height="440"></p> </div> </div> </div> <div id="panel-1591-8-1-4" class="so-panel widget widget_sow-editor" data-index="33"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p>Curve25519 is set of parameters for a Montgomery elliptic curve and has ~128-bit security. It is used in key exchange and has become popular due to its speed and inclusion in standards. The algorithm is included as part of&nbsp;<a href="https://www.wolfssl.com/tls13">TLS v1.3</a>&nbsp;and&nbsp;<a href="https://csrc.nist.gov/News/2017/Transition-Plans-for-Key-Establishment-Schemes">NIST is considering it as part of SP 800-186</a>. Ed25519 is set of parameters for a Twisted Edwards curve and is mathematically related to Curve25519 and has the same security properties. A new signature scheme has been designed over Twisted Edwards curves that is fast and included as part of TLS v1.3. A&nbsp;<a href="https://tools.ietf.org/html/draft-ietf-curdle-pkix-eddsa-00">draft specification</a>&nbsp;has been written describing digital certificates using EdDSA with Ed25519.</p> <p><img decoding="async" loading="lazy" class="alignnone size-full wp-image-30006" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/curve25519_ed25519_intel_x86_64.png" alt="" width="1016" height="539" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/curve25519_ed25519_intel_x86_64.png 1016w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/curve25519_ed25519_intel_x86_64-300x159.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/curve25519_ed25519_intel_x86_64-768x407.png 768w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/curve25519_ed25519_intel_x86_64-650x345.png 650w" sizes="(max-width: 1016px) 100vw, 1016px" /> <img decoding="async" loading="lazy" class="alignnone size-full wp-image-30005" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/curve25519_ed25519_intel_bmi2_adx.png" alt="" width="1016" height="539" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/curve25519_ed25519_intel_bmi2_adx.png 1016w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/curve25519_ed25519_intel_bmi2_adx-300x159.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/curve25519_ed25519_intel_bmi2_adx-768x407.png 768w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/curve25519_ed25519_intel_bmi2_adx-650x345.png 650w" sizes="(max-width: 1016px) 100vw, 1016px" /></p> </div> </div> </div> <div id="panel-1591-8-1-5" class="so-panel widget widget_sow-editor" data-index="34"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p>RSA is the most commonly used public key algorithm for certificates. When performing a TLS handshake, the server will sign a hash of the messages seen so far and the client will verify the signature of certificates in the certificate chain and verify the hash of messages with the public key in the certificate. Signing and verifying are the most time-consuming operations in a handshake.</p> <p>DH has been the key exchange algorithm of choice in handshakes but is falling out of favor as the Elliptic Curve variants are considerably faster at the same security level. Performing the key exchange is the second most time-consuming operation in a TLS handshake.</p> <p><img decoding="async" loading="lazy" class="alignnone size-full wp-image-30009" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/rsa_dh_x86_64.png" alt="" width="1010" height="539" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/rsa_dh_x86_64.png 1010w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/rsa_dh_x86_64-300x160.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/rsa_dh_x86_64-768x410.png 768w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/rsa_dh_x86_64-650x347.png 650w" sizes="(max-width: 1010px) 100vw, 1010px" /> <img decoding="async" loading="lazy" class="alignnone size-full wp-image-30011" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/rsa_dh_bmi2_adx.png" alt="" width="1010" height="539" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/rsa_dh_bmi2_adx.png 1010w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/rsa_dh_bmi2_adx-300x160.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/rsa_dh_bmi2_adx-768x410.png 768w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/rsa_dh_bmi2_adx-650x347.png 650w" sizes="(max-width: 1010px) 100vw, 1010px" /></p> </div> </div> </div> <div id="panel-1591-8-1-6" class="so-panel widget widget_sow-editor" data-index="35"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p>Elliptic curve cryptography (ECC) is the alternative to finite field (FF) cryptography which has algorithms like RSA, DSA and DH. ECDSA is the elliptic curve variant of RSA and DSA while ECDH is the elliptic curve variant of DH. ECDSA and ECDH can be used anywhere their FF counterparts can be used. ECC requires a pre-defined curve to perform the operations on. The most commonly used curve is P-256 as it has 128-bit strength and is in many standards including TLS,&nbsp;<a href="https://tools.ietf.org/html/rfc5480">for certificates in IETF</a>, and NIST’s FIPS 186-4. Browsers and web servers are preferring ECDH over DH as it is much faster.</p> <p><img decoding="async" loading="lazy" class="alignnone size-full wp-image-30013" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/p256_x86_64.png" alt="" width="1014" height="539" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/p256_x86_64.png 1014w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/p256_x86_64-300x159.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/p256_x86_64-768x408.png 768w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/p256_x86_64-650x346.png 650w" sizes="(max-width: 1014px) 100vw, 1014px" /> <img decoding="async" loading="lazy" class="alignnone size-large wp-image-30012" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/p256_bmi2_adx-1024x536.png" alt="" width="650" height="340" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/p256_bmi2_adx-1024x536.png 1024w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/p256_bmi2_adx-300x157.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/p256_bmi2_adx-768x402.png 768w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/p256_bmi2_adx-650x341.png 650w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/p256_bmi2_adx.png 1025w" sizes="(max-width: 650px) 100vw, 650px" /></p> </div> </div> </div> <div id="panel-1591-8-1-7" class="so-panel widget widget_sow-editor panel-last-child" data-index="36" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p>If you have questions about using the wolfSSL embedded TLS library on your platform, or about performance optimization of the library, contact us at <a href="mailto:support@wolfssl.com">support@wolfssl.com</a>.</p> <p>Return to <a href="#benchmark_top_of_page">top of page</a></p> </div> </div> </div> </div> </div> </div> <div id="pg-1591-9" class="panel-grid panel-has-style" data-style="{&quot;class&quot;:&quot;separate&quot;,&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div class="separate panel-row-style panel-row-style-for-1591-9"> <div id="pgc-1591-9-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-9-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="37"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-9-0-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="38"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p><strong><span id="nxp_i.mx6">NXP i.MX6</span></strong></p> </div> </div> </div> </div> <div id="pgc-1591-9-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-9-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="39"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-9-1-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="40" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p>This benchmark data was collected for Green Hills INTEGRITY OS on an NXP i.MX6, running the wolfSSL benchmark application.</p> <div id="id54" class="style_SkipStroke_1 shape-with-text">&nbsp;<img decoding="async" loading="lazy" class="alignnone wp-image-29808" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/bench-aes-1024x663.png" alt="AES Benchmark data" width="750" height="486" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/bench-aes-1024x663.png 1024w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/bench-aes-300x194.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/bench-aes-768x497.png 768w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/bench-aes-650x421.png 650w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/bench-aes.png 2017w" sizes="(max-width: 750px) 100vw, 750px" /></div> <div><img decoding="async" loading="lazy" class="alignnone wp-image-29806" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/bench-hashing-1.png" alt="Hashing benchmarks" width="650" height="509" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/bench-hashing-1.png 942w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/bench-hashing-1-300x235.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/bench-hashing-1-768x601.png 768w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/bench-hashing-1-650x509.png 650w" sizes="(max-width: 650px) 100vw, 650px" /></div> <div><img decoding="async" loading="lazy" class="alignnone wp-image-29807" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/bench-hashing-2.png" alt="Benchmark hashing" width="650" height="544" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/bench-hashing-2.png 692w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/bench-hashing-2-300x251.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/bench-hashing-2-650x544.png 650w" sizes="(max-width: 650px) 100vw, 650px" /></div> <p>Return to <a href="#benchmark_top_of_page">top of page</a></p> </div> </div> </div> </div> </div> </div> <div id="pg-1591-10" class="panel-grid panel-no-style" data-style="{&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div id="pgc-1591-10-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-10-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="41"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-10-0-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="42" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p><strong><span id="iphone_x">iPhone X:</span></strong></p> </div> </div> </div> </div> <div id="pgc-1591-10-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-10-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="43" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-10-1-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="44" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <div class="text-content graphic_textbox_layout_style_default_External_489_361"> <div class="graphic_textbox_layout_style_default"> <p>Benchmarks were collected using Apple&#8217;s iPhone X, which has their new A11 processor. These benchmarks use ARMv8 crypto extensions and single precision math to demonstrate performance.</p> <p>For symmetric AES and SHA using our ARMv8 crypto assembly speedups we see</p> <p><img decoding="async" loading="lazy" class="alignnone wp-image-29349" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/wolfSSL-ARMv8-Benchmarks.png" alt="iPhone X wolfSSL ARMv8 Benchmarks" width="593" height="392"></p> <table> <tbody> <tr> <th>Algorithm</th> <th>Performance</th> </tr> <tr> <td>AES-128 CBC Encrypt</td> <td>912.347 MB/s (36.58X)</td> </tr> <tr> <td>AES-128 CBC Decrypt</td> <td>6,084.83 MB/s (256.15X)</td> </tr> <tr> <td>AES-128 GCM Encrypt</td> <td>1,242.28 MB/s (193.65X)</td> </tr> <tr> <td>AES-128 GCM Decrypt</td> <td>575.83 MB/s (90.26X)</td> </tr> <tr> <td>SHA-256</td> <td>1,717.28 MB/s (56.11X)</td> </tr> </tbody> </table> <p>This feature is enabled using `./configure &#8211;enable-armasm` or the `WOLFSSL_ARMASM` define.</p> <p>For asymmetric RSA, DH and ECC using our single precision math speedups we see</p> <p><img decoding="async" loading="lazy" class="alignnone wp-image-29349" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2018/03/wolfSSL-Asymmetric-with-Single-Precision-Math-Benchmarks.png" alt="wolfSSL Asymmetric single precision" width="593" height="392"></p> <table> <tbody> <tr> <th>Algorithm</th> <th>Performance</th> </tr> <tr> <td>RSA 2048 public</td> <td>1,211.27 ops/sec (1.50X)</td> </tr> <tr> <td>RSA 2048 private</td> <td>32.59 ops/sec (1.18X)</td> </tr> <tr> <td>DH 2048 key gen</td> <td>77.44 ops/sec (1.24X)</td> </tr> <tr> <td>DH 2048 key agree</td> <td>77.45 ops/sec (1.29X)</td> </tr> <tr> <td>ECC 256 key gen</td> <td>1670.65 ops/sec (8.67X)</td> </tr> <tr> <td>ECDHE 256 agree</td> <td>396.88 ops/sec (2.05X)</td> </tr> <tr> <td>ECDSA 256 sign</td> <td>1,212.33 ops/sec (6.42X)</td> </tr> <tr> <td>ECDSA 256 verify</td> <td>331.02 ops/sec (2.38X)</td> </tr> </tbody> </table> <p>This feature is enabled using `./configure &#8211;enable-sp` or the `WOLFSSL_HAVE_SP_RSA`, `WOLFSSL_HAVE_SP_DH` and `WOLFSSL_HAVE_SP_ECC` defines.</p> <p>For TLS v1.2 we see the following performance benchmarks by cipher suite</p> <table> <tbody> <tr> <th>Algorithm</th> <th>Performance</th> </tr> <tr> <td>DHE-RSA-AES128-SHA256</td> <td>CPS 22.5, Read 388 MB/s, Write 106 MB/s</td> </tr> <tr> <td>ECDHE-RSA-AES128-GCM-SHA256</td> <td>CPS 26.2, Read 598 MB/s RX, Write 125 MB/s</td> </tr> <tr> <td>ECDHE-ECDSA-AES128-GCM-SHA256</td> <td>CPS 83.4, Read 504.8 MB/s, Write 92.2 MB/s</td> </tr> </tbody> </table> <p>Benchmarks done on iPhone X using a single thread and our wolfCrypt and wolfSSL benchmark tools.<br /> `X`= performance increase as compared to our default software based implementation.<br /> `CPS` = Connections per second</p> </div> </div> <p>Reference: <a href="https://www.wolfssl.com/wolfcryptwolfssl-benchmarks-with-iphone-88-plusx-a11/">wolfCrypt/wolfSSL Benchmarks with iPhone 8/8 Plus/X (A11) blog post</a></p> <p>Return to <a href="#benchmark_top_of_page">top of page</a></p> </div> </div> </div> </div> </div> <div id="pg-1591-11" class="panel-grid panel-has-style" data-style="{&quot;class&quot;:&quot;separate&quot;,&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div class="separate panel-row-style panel-row-style-for-1591-11"> <div id="pgc-1591-11-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-11-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="45" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-11-0-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="46" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p><strong><span id="microchip_pic32mz">Microchip PIC32MZ:</span></strong></p> <p class="paragraph_style">PIC32MZ, at 200MHz</p> </div> </div> </div> </div> <div id="pgc-1591-11-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-11-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="47" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-11-1-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="48" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <div class="text-content graphic_textbox_layout_style_default_External_489_361"> <div class="graphic_textbox_layout_style_default"> <p>Benchmarks were collected using PIC32MZ Ethernet Starter Kit, using the wolfCrypt benchmark application and compiled with MPLAB X.</p> <p><img decoding="async" loading="lazy" class="alignnone wp-image-29349" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/pic32_small.png" alt="PIC32MZ Benchmarks" width="593" height="392"></p> <table> <tbody> <tr> <td>&nbsp;</td> <td>Software Crypto</td> <td>Hardware Crypto</td> </tr> <tr> <td>AES-CBC</td> <td>0.26 Mb/s</td> <td>5.78 Mb/s</td> </tr> <tr> <td>AES-CTR</td> <td>0.69 Mb/s</td> <td>5.67 Mb/s</td> </tr> <tr> <td>3DES</td> <td>6.19 Mb/s</td> <td>6.19 Mb/s</td> </tr> <tr> <td>MD5</td> <td>6.22 Mb/s</td> <td>16.84 Mb/s</td> </tr> <tr> <td>SHA-1</td> <td>3.46 Mb/s</td> <td>16.65 Mb/s</td> </tr> <tr> <td>SHA-256</td> <td>1.678 Mb/s</td> <td>15.84 Mb/s</td> </tr> </tbody> </table> </div> </div> <p><strong>Reference:</strong></p> <p><a href="https://www.wolfssl.com/docs/pic32">wolfSSL PIC32 Support</a></p> <div class="text-content graphic_textbox_layout_style_default_External_489_361">&nbsp;</div> <p>Return to <a href="#benchmark_top_of_page">top of page</a></p> </div> </div> </div> </div> </div> </div> <div id="pg-1591-13" class="panel-grid panel-has-style" data-style="{&quot;class&quot;:&quot;separate&quot;,&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div class="separate panel-row-style panel-row-style-for-1591-13"> <div id="pgc-1591-13-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-13-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="53" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-13-0-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="54" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p><strong><span id="stm32">STM32:</span></strong></p> <p class="paragraph_style">STM32F439, at 180MHz<br /> STM32F756, at 216MHz</p> </div> </div> </div> </div> <div id="pgc-1591-13-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-13-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="55" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-13-1-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="56" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <div class="text-content graphic_textbox_layout_style_default_External_489_361"> <div class="graphic_textbox_layout_style_default"> <p>Benchmarks were collected using STMicroelectronics Evaluation Boards, using the wolfCrypt benchmark application and compiled with IAR EWARM (Optimization: High/Size).</p> </div> <p><img decoding="async" loading="lazy" class="alignnone size-full wp-image-29168" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/Slide3.png" alt="STM32 AES-CBC Benchmarks" width="720" height="540" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/Slide3.png 720w, https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/Slide3-300x225.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/Slide3-650x488.png 650w" sizes="(max-width: 720px) 100vw, 720px" /></p> <p><img decoding="async" loading="lazy" class="alignnone size-full wp-image-29169" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/Slide4.png" alt="STM32 AES-GCM Benchmarks" width="720" height="540" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/Slide4.png 720w, https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/Slide4-300x225.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/Slide4-650x488.png 650w" sizes="(max-width: 720px) 100vw, 720px" /></p> <p><img decoding="async" loading="lazy" class="alignnone size-full wp-image-29170" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/Slide5.png" alt="STM32 Message Digest Benchmarks" width="720" height="540" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/Slide5.png 720w, https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/Slide5-300x225.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/Slide5-650x488.png 650w" sizes="(max-width: 720px) 100vw, 720px" /></p> <p><img decoding="async" loading="lazy" class="alignnone size-full wp-image-29171" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/Slide6.png" alt="STM32 AES-CBC Benchmark Chart" width="720" height="540" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/Slide6.png 720w, https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/Slide6-300x225.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/Slide6-650x488.png 650w" sizes="(max-width: 720px) 100vw, 720px" /></p> <p><img decoding="async" loading="lazy" class="alignnone size-full wp-image-29172" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/Slide7.png" alt="STM32 AES-GCM Benchmark Chart" width="720" height="540" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/Slide7.png 720w, https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/Slide7-300x225.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/Slide7-650x488.png 650w" sizes="(max-width: 720px) 100vw, 720px" /></p> <p><img decoding="async" loading="lazy" class="alignnone size-full wp-image-29173" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/Slide8.png" alt="STM32 Message Digest Benchmark Chart" width="720" height="540" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/Slide8.png 720w, https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/Slide8-300x225.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/Slide8-650x488.png 650w" sizes="(max-width: 720px) 100vw, 720px" /></p> </div> <p><strong>Reference:</strong></p> <p><a href="https://www.wolfssl.com/docs/stm32/">wolfSSL STM32 Support</a></p> <div class="text-content graphic_textbox_layout_style_default_External_489_361">&nbsp;</div> <p>Return to <a href="#benchmark_top_of_page">top of page</a></p> </div> </div> </div> </div> </div> </div> <div id="pg-1591-14" class="panel-grid panel-has-style" data-style="{&quot;class&quot;:&quot;separate&quot;,&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div class="separate panel-row-style panel-row-style-for-1591-14"> <div id="pgc-1591-14-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-14-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="57"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-14-0-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="58" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p><strong><span id="stm32f777ni">STM32F777NI:</span></strong></p> <p class="paragraph_style">ARM Cortex M7<br /> 216 MHz</p> <p>Using GCC ARM (arm-none-eabi-gcc) with OpenSTM32 (System Workbench)</p> <p>Bare Metal</p> </div> </div> </div> </div> <div id="pgc-1591-14-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-14-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="59"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-14-1-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="60" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <div class="graphic_textbox_layout_style_default">&nbsp;</div> <p><img decoding="async" loading="lazy" class="alignnone size-full wp-image-29352" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/stm32f7.png" alt="" width="600" height="489" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/stm32f7.png 600w, https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/stm32f7-300x245.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></p> <p><strong>Crypto Benchmarks:</strong></p> <p><strong>wolfSSL Software Crypto, Normal Big Integer Math Library</strong></p> <table> <tbody> <tr> <td>RNG</td> <td>3 MB took 1.000 seconds</td> <td>3.149 MB/s</td> </tr> <tr> <td>AES-Enc</td> <td>6 MB took 1.000 seconds</td> <td>6.494 MB/s</td> </tr> <tr> <td>AES-Dec</td> <td>7 MB took 1.000 seconds</td> <td>6.519 MB/s</td> </tr> <tr> <td>AES-GCM-Enc</td> <td>3 MB took 1.004 seconds</td> <td>553 MB/s</td> </tr> <tr> <td>AES-GCM-Dec</td> <td>3 MB took 1.004 seconds</td> <td>2.553 MB/s</td> </tr> <tr> <td>AES-CTR</td> <td>7 MB took 1.000 seconds</td> <td>6.543 MB/s</td> </tr> <tr> <td>CHACHA</td> <td>16 MB took 1.000 seconds</td> <td>15.723 MB/s</td> </tr> <tr> <td>CHA-POLY</td> <td>10 MB took 1.000 seconds</td> <td>10.474 MB/s</td> </tr> <tr> <td>3DES</td> <td>1 MB took 1.008 seconds</td> <td>1.405 MB/s</td> </tr> <tr> <td>MD5</td> <td>24 MB took 1.000 seconds</td> <td>24.243 MB/s</td> </tr> <tr> <td>POLY1305</td> <td>42 MB took 1.000 seconds</td> <td>41.821 MB/s</td> </tr> <tr> <td>SHA</td> <td>14 MB took 1.000 seconds</td> <td>14.380 MB/s</td> </tr> <tr> <td>SHA-224</td> <td>8 MB took 1.000 seconds</td> <td>8.423 MB/s</td> </tr> <tr> <td>SHA-256</td> <td>8 MB took 1.000 seconds</td> <td>8.423 MB/s</td> </tr> <tr> <td>SHA-384</td> <td>2 MB took 1.000 seconds</td> <td>2.319 MB/s</td> </tr> <tr> <td>SHA-512</td> <td>2 MB took 1.000 seconds</td> <td>2.319 MB/s</td> </tr> </tbody> </table> <p><strong>STM32F7 Hardware Crypto, Normal Big Integer Math Library </strong></p> <table> <tbody> <tr> <td>RNG</td> <td>6 MB took 1.000 seconds</td> <td>6.030 MB/s</td> </tr> <tr> <td>AES-Enc</td> <td>30 MB took 1.000 seconds</td> <td>30.396 MB/s</td> </tr> <tr> <td>AES-Dec</td> <td>30 MB took 1.000 seconds</td> <td>30.371 MB/s</td> </tr> <tr> <td>AES-GCM-Enc</td> <td>42 MB took 1.000 seconds</td> <td>42.261 MB/s</td> </tr> <tr> <td>AES-GCM-Dec</td> <td>33 MB took 1.000 seconds</td> <td>32.861 MB/s</td> </tr> <tr> <td>AES-CTR</td> <td>48 MB took 1.000 seconds</td> <td>47.827 MB/s</td> </tr> <tr> <td>CHACHA</td> <td>16 MB took 1.000 seconds</td> <td>15.747 MB/s</td> </tr> <tr> <td>CHA-POLY</td> <td>11 MB took 1.000 seconds</td> <td>10.522 MB/s</td> </tr> <tr> <td>3DES</td> <td>13 MB took 1.000 seconds</td> <td>12.988 MB/s</td> </tr> <tr> <td>MD5</td> <td>41 MB took 1.000 seconds</td> <td>40.894 MB/s</td> </tr> <tr> <td>POLY1305</td> <td>42 MB took 1.000 seconds</td> <td>41.846 MB/s</td> </tr> <tr> <td>SHA</td> <td>38 MB took 1.004 seconds</td> <td>38.202 MB/s</td> </tr> <tr> <td>SHA-224</td> <td>41 MB took 1.000 seconds</td> <td>41.309 MB/s</td> </tr> <tr> <td>SHA-256</td> <td>39 MB took 1.000 seconds</td> <td>39.111 MB/s</td> </tr> <tr> <td>SHA-384</td> <td>2 MB took 1.004 seconds</td> <td>2.310 MB/s</td> </tr> <tr> <td>SHA-512</td> <td>2 MB took 1.004 seconds</td> <td>2.310 MB/s</td> </tr> </tbody> </table> <p><strong>Reference:</strong></p> <p><a href="https://www.wolfssl.com/wolfssl-stm32f7-support/">wolfSSL and STM32F7</a><br /> <a href="http://www.st.com/en/microcontrollers/stm32f777ni.html">STM32F77NI </a></p> <p>Return to <a href="#benchmark_top_of_page">top of page</a></p> </div> </div> </div> </div> </div> </div> <div id="pg-1591-15" class="panel-grid panel-has-style" data-style="{&quot;class&quot;:&quot;separate&quot;,&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div class="separate panel-row-style panel-row-style-for-1591-15"> <div id="pgc-1591-15-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-15-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="61"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-15-0-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="62"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style"><a href="https://www.apple.com/iphone-x/"><span id="apple_iphone_8/8_plus/x">Apple iPhone 8/8 Plus/X</span></a></p> <p class="paragraph_style"><strong>Apple A11 Bionic</strong><br /> 2.39&nbsp;GHz hexa-core&nbsp;64-bit</p> </div> </div> </div> </div> <div id="pgc-1591-15-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-15-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="63"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-15-1-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="64" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p>Benchmarks on Apple’s new&nbsp;<a href="https://en.wikipedia.org/wiki/Apple_A11">A11 processor</a>&nbsp;in their latest&nbsp;<a href="https://www.apple.com/iphone-8/">iPhone 8 / 8 Plus</a>&nbsp;and&nbsp;<a href="https://www.apple.com/iphone-x/">iPhone X</a>. This processor features six ARMv8 CPU cores (2 high-performance 2.53GHz and 4 high-efficiency 1.42GHz). The benchmarks use wolfSSL’s latest speedups for ARMv8 crypto extensions and single precision math to demonstrate our exceptional performance.For symmetric AES and SHA using our ARMv8 crypto assembly speedups we see:</p> <pre>AES-128 CBC Encrypt: 912.347 MB/s (36.58X) AES-128 CBC Decrypt: 6,084.83 MB/s (256.15X) AES-128 GCM Encrypt: 1,242.28 MB/s (193.65X) AES-128 GCM Decrypt: 575.83 MB/s (90.26X) SHA-256: 1,717.28 MB/s (56.11X) </pre> <p>This feature is enabled using `<strong>./configure –enable-armasm</strong>` or the `<strong>WOLFSSL_ARMASM</strong>` define.</p> <p>For asymmetric RSA, DH and ECC using our single precision math speedups we see:</p> <pre>RSA 2048 public: 1,211.27 ops/sec (1.50X) RSA 2048 private: 32.59 ops/sec (1.18X) DH 2048 key gen: 77.44 ops/sec (1.24X) DH 2048 key agree: 77.45 ops/sec (1.29X) ECC 256 key gen: 1670.65 ops/sec (8.67X) ECDHE 256 agree: 396.88 ops/sec (2.05X) ECDSA 256 sign: 1,212.33 ops/sec (6.42X) ECDSA 256 verify: 331.02 ops/sec (2.38X) </pre> <p>This feature is enabled using `<strong>./configure –enable-sp</strong>` or the `<strong>WOLFSSL_HAVE_SP_RSA</strong>`, `<strong>WOLFSSL_HAVE_SP_DH</strong>` and `<strong>WOLFSSL_HAVE_SP_ECC</strong>` defines.</p> <p>For TLS v1.2 we see the following performance benchmarks by cipher suite:</p> <pre>DHE-RSA-AES128-SHA256: CPS 22.5, Read 388 MB/s, Write 106 MB/s ECDHE-RSA-AES128-GCM-SHA256: CPS 26.2, Read 598 MB/s RX, Write 125 MB/s ECDHE-ECDSA-AES128-GCM-SHA256: CPS 83.4, Read 504.8 MB/s, Write 92.2 MB/s </pre> <p>Benchmarks done on iPhone X using a single thread and our wolfCrypt and wolfSSL benchmark tools.<br /> `X`= performance increase as compared to our default software based implementation.<br /> `CPS` = Connections per second</p> <p>You can download the raw benchmark numbers here:<br /> <a href="https://www.wolfssl.com/files/benchmarks/iOSiPhoneXA11Benchmarks.pdf">https://www.wolfssl.com/files/benchmarks/iOSiPhoneXA11Benchmarks.pdf</a></p> <p class="paragraph_style_2"><strong>Reference</strong><a title="https://software.intel.com/en-us/sgx-sdk" href="https://software.intel.com/en-us/sgx-sdk"><br /> </a><a title="https://www.wolfssl.com/wolfssl-at-idf/" href="https://www.wolfssl.com/wolfcryptwolfssl-benchmarks-with-iphone-88-plusx-a11/">wolfSSL Blog Post</a></p> <p>Return to <a href="#benchmark_top_of_page">top of page</a></p> </div> </div> </div> </div> </div> </div> <div id="pg-1591-16" class="panel-grid panel-has-style" data-style="{&quot;class&quot;:&quot;separate&quot;,&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div class="separate panel-row-style panel-row-style-for-1591-16"> <div id="pgc-1591-16-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-16-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="65"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-16-0-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="66"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style"><a title="https://software.intel.com/en-us/sgx-sdk" href="https://software.intel.com/en-us/sgx-sdk"><span id="intel_sgx">Intel SGX</span></a></p> <p class="paragraph_style"><strong>Intel(R) Core(TM) i5-6300U @ 2.4GHz</strong></p> <p class="paragraph_style"><strong>Intel Compiler</strong></p> </div> </div> </div> </div> <div id="pgc-1591-16-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-16-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="67"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-16-1-1" class="so-panel widget widget_sow-editor" data-index="68"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p><img decoding="async" loading="lazy" class="so-widget-image" title="wolfSSL Benchmark" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/benchmark.jpg" sizes="(max-width: 474px) 100vw, 474px" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/benchmark.jpg 474w, https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/benchmark-300x149.jpg 300w" alt="wolfSSL Benchmark" width="474" height="235"></p> </div> </div> </div> <div id="panel-1591-16-1-2" class="so-panel widget widget_sow-editor panel-last-child" data-index="69" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style_1">Benchmarks of wolfCrypt running in an Intel SGX enclave.&nbsp; These benchmarks show that running wolfCrypt cryptography inside SGX has minimal performance impact on cryptography operation.</p> <p class="paragraph_style_2"><strong>Non-SGX Benchmarks</strong></p> <p class="paragraph_style_1">SHA-256&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.264s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 189.078 MB/s<br /> AES-GCM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.142s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 15.911 MB/s<br /> RSA (2048)&nbsp;&nbsp;&nbsp; Encrypt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.238 ms<br /> RSA (2048)&nbsp;&nbsp;&nbsp; Decrypt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.239 ms</p> <p class="paragraph_style_1"><strong>SGX Benchmarks, Inside the Enclave</strong></p> <p class="paragraph_style_1">SHA-256&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.263s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 190.436 MB/s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="style_5"><strong>-0.38% difference<br /> </strong></span>AES-GCM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.128s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 15.985 MB/s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="style_5"><strong> -0.45% difference<br /> </strong></span>RSA (2048)&nbsp;&nbsp;&nbsp; Encrypt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.245 ms&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="style_5">&nbsp;<strong> 2.94% difference<br /> </strong></span>RSA (2048)&nbsp;&nbsp;&nbsp; Decrypt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.242 ms&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="style_5"><strong> 0.05% difference</strong><br /> </span></p> <p class="paragraph_style_2"><strong>Reference</strong></p> <p class="paragraph_style_2"><a title="https://software.intel.com/en-us/sgx-sdk" href="https://software.intel.com/en-us/sgx-sdk">Intel Software Guard Extensions (SGX) SDK<br /> </a></p> <p>Return to <a href="#benchmark_top_of_page">top of page</a></p> </div> </div> </div> </div> </div> </div> <div id="pg-1591-17" class="panel-grid panel-has-style" data-style="{&quot;class&quot;:&quot;separate&quot;,&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div class="separate panel-row-style panel-row-style-for-1591-17"> <div id="pgc-1591-17-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-17-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="70"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-17-0-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="71"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style"><a title="http://www.intel.com/content/www/us/en/ethernet-products/gigabit-server-adapters/quickassist-adapter-for-servers.html" href="https://www-ssl.intel.com/content/www/us/en/ethernet-products/gigabit-server-adapters/quickassist-adapter-for-servers.html"><span id="intel_quickassist">Intel QuickAssist</span><br /> </a><strong>DH895xCC</strong></p> <p class="paragraph_style"><strong>Intel(R) Core(TM) i7-4790 CPU </strong><strong>3.60GHz</strong></p> <p class="paragraph_style"><strong>12GB RAM</strong></p> </div> </div> </div> </div> <div id="pgc-1591-17-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-17-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="72"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-17-1-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="73" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style_2"><strong>Crypto Benchmarks:</strong></p> <p class="paragraph_style_1">Benchmarks using wolfSSL’s asynchronous benchmark application running multiple threads with CPU affinity in user space:</p> <p class="paragraph_style_1">RSA 2048 public: 209,909 ops/sec<br /> RSA 2048 private: 41,999 ops/sec<br /> DH&nbsp;&nbsp;2048 key gen: 112,491 ops/sec<br /> DH&nbsp;&nbsp;2048 key agree: 95,129 ops/sec<br /> ECDHE 256 agree: 55,117 ops/sec<br /> ECDSA 256 sign: 46,798 ops/sec<br /> ECDSA 256 verify: 28,917 ops/sec<br /> AES-CBC Enc: 2,932 MB/s<br /> AES-CBC Dec: 2,882 MB/s<br /> AES-GCM: 2,903 MB/s<br /> 3DES: 1,511 MB/s<br /> MD5: 2,309 MB/s<br /> SHA: 5,068 MB/s<br /> SHA-224: 2,392 MB/s<br /> SHA-256: 1,275 MB/s<br /> SHA-384:&nbsp;2,020 MB/s<br /> SHA-512:&nbsp;1,908 MB/s</p> <p class="paragraph_style_2"><strong>Reference</strong></p> <p class="paragraph_style_1"><a title="Blog/Entries/2017/1/18_wolfSSL_Asynchronous_Intel_QuickAssist_Support.html" href="https://www.wolfssl.com/wolfssl-asynchronous-intel-quickassist-support/">wolfSSL Blog Post<br /> </a><a title="http://www.intel.com/content/www/us/en/embedded/technology/quickassist/overview.html" href="https://www-ssl.intel.com/content/www/us/en/embedded/technology/quickassist/overview.html">Intel QuickAssist</a></p> <p>Return to <a href="#benchmark_top_of_page">top of page</a></p> </div> </div> </div> </div> </div> </div> <div id="pg-1591-18" class="panel-grid panel-has-style" data-style="{&quot;class&quot;:&quot;separate&quot;,&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div class="separate panel-row-style panel-row-style-for-1591-18"> <div id="pgc-1591-18-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-18-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="74"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-18-0-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="75"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style"><a title="http://www.lemaker.org/product-hikey-specification.html" href="http://www.lemaker.org/product-hikey-specification.html"><span id="hikey_lemaker">HiKey LeMaker (ARMv8)<br /> </span></a>Kirin 620 SoC<br /> ARM® CortexTM-A53 Octa-core 64-bit up to 1.2GHz (ARM v8 instruction set)</p> <p class="paragraph_style_1">8GB eMMC storage<br /> 1GB RAM</p> </div> </div> </div> </div> <div id="pgc-1591-18-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-18-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="76"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-18-1-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="77" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p><img decoding="async" loading="lazy" class="so-widget-image" title="wolfSSL ARMv8 on HiKey LeMaker Board" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/wolfssl_armv8_hikey_lemaker.jpg" sizes="(max-width: 462px) 100vw, 462px" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/wolfssl_armv8_hikey_lemaker.jpg 462w, https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/wolfssl_armv8_hikey_lemaker-300x180.jpg 300w" alt="wolfSSL ARMv8 on HiKey LeMaker Board" width="462" height="277"></p> <p>Below is the complete data from the benchmarks comparing hardware acceleration to normal software crypto:<br /> <table id="tablepress-17" class="tablepress tablepress-id-17"> <thead> <tr class="row-1 odd"> <th class="column-1">Algorithm</th><th class="column-2">Software Cryptography</th><th class="column-3">Hardware Cryptography</th> </tr> </thead> <tbody class="row-hover"> <tr class="row-2 even"> <td class="column-1">RNG</td><td class="column-2">16.761 MB/s</td><td class="column-3">82.599 MB/s</td> </tr> <tr class="row-3 odd"> <td class="column-1">AES-128-CBC-enc</td><td class="column-2">26.491 MB/s</td><td class="column-3">649.179 MB/s</td> </tr> <tr class="row-4 even"> <td class="column-1">AES-128-CBC-dec</td><td class="column-2">26.915 MB/s</td><td class="column-3">607.407 MB/s</td> </tr> <tr class="row-5 odd"> <td class="column-1">AES-192-CBC-enc</td><td class="column-2">22.796 MB/s</td><td class="column-3">566.717 MB/s</td> </tr> <tr class="row-6 even"> <td class="column-1">AES-192-CBC-dec</td><td class="column-2">23.130 MB/s</td><td class="column-3">553.092 MB/s</td> </tr> <tr class="row-7 odd"> <td class="column-1">AES-256-CBC-enc</td><td class="column-2">20.004 MB/s</td><td class="column-3">504.143 MB/s</td> </tr> <tr class="row-8 even"> <td class="column-1">AES-256-CBC-dec</td><td class="column-2">20.207 MB/s</td><td class="column-3">491.374 MB/s</td> </tr> <tr class="row-9 odd"> <td class="column-1">AES-128-GCM-enc</td><td class="column-2">6.224 MB/s</td><td class="column-3">393.407 MB/s</td> </tr> <tr class="row-10 even"> <td class="column-1">AES-128-GCM-dec</td><td class="column-2">6.226 MB/s</td><td class="column-3">182.279 MB/s</td> </tr> <tr class="row-11 odd"> <td class="column-1">AES-192-GCM-enc</td><td class="column-2">5.895 MB/s</td><td class="column-3">361.801 MB/s</td> </tr> <tr class="row-12 even"> <td class="column-1">AES-192-GCM-dec</td><td class="column-2">5.895 MB/s</td><td class="column-3">175.676 MB/s</td> </tr> <tr class="row-13 odd"> <td class="column-1">AES-256-GCM-enc</td><td class="column-2">5.609 MB/s</td><td class="column-3">333.911 MB/s</td> </tr> <tr class="row-14 even"> <td class="column-1">AES-256-GCM-dec</td><td class="column-2">5.610 MB/s</td><td class="column-3">169.085 MB/s</td> </tr> <tr class="row-15 odd"> <td class="column-1">CHACHA</td><td class="column-2">60.510 MB/s</td><td class="column-3">60.017 MB/s</td> </tr> <tr class="row-16 even"> <td class="column-1">CHA-POLY</td><td class="column-2">41.805 MB/s</td><td class="column-3">41.410 MB/s</td> </tr> <tr class="row-17 odd"> <td class="column-1">MD5</td><td class="column-2">156.310 MB/s</td><td class="column-3">154.421 MB/s</td> </tr> <tr class="row-18 even"> <td class="column-1">POLY1305</td><td class="column-2">144.464 MB/s</td><td class="column-3">143.058 MB/s</td> </tr> <tr class="row-19 odd"> <td class="column-1">SHA</td><td class="column-2">89.874 MB/s</td><td class="column-3">89.154 MB/s</td> </tr> <tr class="row-20 even"> <td class="column-1">SHA-256</td><td class="column-2">38.805 MB/s</td><td class="column-3">533.139 MB/s</td> </tr> <tr class="row-21 odd"> <td class="column-1">HMAC-MD5</td><td class="column-2">156.301 MB/s</td><td class="column-3">154.083 MB/s</td> </tr> <tr class="row-22 even"> <td class="column-1">HMAC-SHA</td><td class="column-2">89.859 MB/s</td><td class="column-3">89.045 MB/s</td> </tr> <tr class="row-23 odd"> <td class="column-1">HMAC-SHA256</td><td class="column-2">38.814 MB/s</td><td class="column-3">532.316 MB/s</td> </tr> <tr class="row-24 even"> <td class="column-1">RSA, 2048, public</td><td class="column-2">171.995 Ops/s</td><td class="column-3">171.355 Ops/s</td> </tr> <tr class="row-25 odd"> <td class="column-1">RSA, 2048, private</td><td class="column-2">13.716 Ops/s</td><td class="column-3">13.686 Ops/s</td> </tr> <tr class="row-26 even"> <td class="column-1">DH, 2048, key generation</td><td class="column-2">50.831 Ops/s</td><td class="column-3">50.575 Ops/s</td> </tr> <tr class="row-27 odd"> <td class="column-1">DH, 2048, agree</td><td class="column-2">41.826 Ops/s</td><td class="column-3">41.596 Ops/s</td> </tr> </tbody> </table> </p> <p>Return to <a href="#benchmark_top_of_page">top of page</a></p> </div> </div> </div> </div> </div> </div> <div id="pg-1591-19" class="panel-grid panel-has-style" data-style="{&quot;class&quot;:&quot;separate&quot;,&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div class="separate panel-row-style panel-row-style-for-1591-19"> <div id="pgc-1591-19-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-19-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="78"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-19-0-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="79"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style"><span id="avx1_avx2"><strong>AVX1: 1.8GHz, Intel Core i5<br /> </strong><strong>AVX2: Intel Broadwell</strong></span></p> </div> </div> </div> </div> <div id="pgc-1591-19-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-19-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="80"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-19-1-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="81" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style_2"><strong>Crypto Benchmarks:</strong></p> <ul> <li class="paragraph_style_2">AVX2: &nbsp; &nbsp;SHA-256 &nbsp;50 megs took 0.320 seconds, 156.118 MB/s<br /> Cycles per byte = &nbsp;9.75 &nbsp;= 47%</li> <li class="paragraph_style_2">AVX1: &nbsp; SHA-256 &nbsp;50 megs took 0.272 seconds, 184.068 MB/s<br /> Cycles per byte = 11.89 &nbsp;= 39%</li> <li class="paragraph_style_2">Normal: SHA-256 &nbsp;50 megs took 0.376 seconds, 132.985 MB/s<br /> Cycles per byte = 16.46</li> <li class="paragraph_style_2">AVX2: &nbsp; &nbsp;SHA-384 &nbsp;50 megs took 0.226 seconds, 221.318 MB/s<br /> Cycles per byte = &nbsp;6.88 &nbsp;= 42%</li> <li class="paragraph_style_2">AVX1: &nbsp;&nbsp; SHA-384 &nbsp;50 megs took 0.192 seconds, 260.975 MB/s<br /> Cycles per byte = &nbsp;8.39 &nbsp;= 9%</li> <li class="paragraph_style_2">Normal: SHA-384 &nbsp;50 megs took 0.209 seconds, 239.743 MB/s<br /> Cycles per byte = &nbsp;9.13</li> <li class="paragraph_style_2">AVX2: &nbsp; &nbsp;SHA-512 &nbsp;50 megs took 0.224 seconds, 223.120 MB/s<br /> Cycles per byte = &nbsp;6.82 &nbsp;= 75%</li> <li class="paragraph_style_2">AVX1: &nbsp;&nbsp; SHA-512 &nbsp;50 megs took 0.188 seconds, 266.126 MB/s<br /> Cycles per byte = &nbsp;8.22 &nbsp;= 50%</li> <li class="paragraph_style_2">Normal: SHA-512 &nbsp;50 megs took 0.281 seconds, 177.997 MB/s<br /> Cycles per byte = 12.29</li> </ul> <p class="paragraph_style_2"><strong>Reference</strong></p> <p class="paragraph_style_2"><a title="Blog/Entries/2015/4/16_Intels_Extended_Instructions_Accelerates_Hash_Algorithms.html" href="https://www.wolfssl.com/intels-extended-instructions-accelerates-hash-algorithms/">wolfSSL Blog Post</a></p> <p>Return to <a href="#benchmark_top_of_page">top of page</a></p> </div> </div> </div> </div> </div> </div> <div id="pg-1591-20" class="panel-grid panel-has-style" data-style="{&quot;class&quot;:&quot;separate&quot;,&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div class="separate panel-row-style panel-row-style-for-1591-20"> <div id="pgc-1591-20-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-20-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="82"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-20-0-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="83"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style"><strong><span id="atmel_samd21">Atmel SAMD21<br /> </span></strong>ARM Cortex M0<br /> 48 MHz</p> </div> </div> </div> </div> <div id="pgc-1591-20-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-20-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="84"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-20-1-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="85" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style_2"><strong>TLS Establishment Times:</strong></p> <p class="paragraph_style_1">Hardware accelerated ATECC508A: 2.342 seconds average<br /> Software only: 13.422 seconds average</p> <p class="paragraph_style_1">The TLS connection establishment time is 5.73 times faster with the ATECC508A.</p> <p class="paragraph_style_2"><strong>Software only implementation (SAMD21 48Mhz Cortex-M0, Fast Math TFM-ASM):</strong></p> <p class="paragraph_style_1">ECC 256 key generation 3123.000 milliseconds, avg over 5 iterations<br /> EC-DHE key agreement 3117.000 milliseconds, avg over 5 iterations<br /> EC-DSA sign time 1997.000 milliseconds, avg over 5 iterations<br /> EC-DSA verify time 5057.000 milliseconds, avg over 5 iterations</p> <p class="paragraph_style_2"><strong>ATECC508A HW accelerated implementation:</strong></p> <p class="paragraph_style_1">ECC 256 key generation 144.400 milliseconds, avg over 5 iterations<br /> EC-DHE key agreement 134.200 milliseconds, avg over 5 iterations<br /> EC-DSA sign time 293.400 milliseconds, avg over 5 iterations<br /> EC-DSA verify time 208.400 milliseconds, avg over 5 iterations</p> <p class="paragraph_style_1">For reference the benchmarks for RNG, AES, MD5, SHA and SHA256 are:</p> <p class="paragraph_style_1">RNG 25 kB took 0.784 seconds, 0.031 MB/s (coming from the ATECC508A)<br /> AES 25 kB took 0.177 seconds, 0.138 MB/s<br /> MD5 25 kB took 0.050 seconds, 0.488 MB/s<br /> SHA 25 kB took 0.141 seconds, 0.173 MB/s<br /> SHA-256 25 kB took 0.352 seconds, 0.069 MB/s</p> <p class="paragraph_style_2"><strong>Reference</strong></p> <p class="paragraph_style_2"><a title="http://www.atmel.com/tools/Atmel-HW-TLS.aspx" href="http://www.microchip.com/developmenttools/productdetails.aspx?partno=microchip%20hardware-tls%20platform">Microchip Hardware-TLS Platform<br /> </a><a title="wolfssl-atmel.html" href="https://www.wolfssl.com/docs/atmel/">wolfSSL Microchip ATECC508A Overview and Examples</a></p> <p>Return to <a href="#benchmark_top_of_page">top of page</a></p> </div> </div> </div> </div> </div> </div> <div id="pg-1591-21" class="panel-grid panel-has-style" data-style="{&quot;class&quot;:&quot;separate&quot;,&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div class="separate panel-row-style panel-row-style-for-1591-21"> <div id="pgc-1591-21-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-21-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="86"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-21-0-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="87"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style"><strong><span id="stm32f221g-eval">STM32F221G-EVAL</span><br /> </strong>ARM Cortex M3<br /> 120MHz<br /> 1 MB FLASH<br /> 128 KB SRAM</p> </div> </div> </div> </div> <div id="pgc-1591-21-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-21-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="88"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-21-1-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="89" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style_2"><strong>Crypto Benchmarks:</strong></p> <p class="paragraph_style_2">Software Crypto: wolfCrypt Benchmark, Normal Big Integer Math Library</p> <p class="paragraph_style_1">AES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 kB took 0.822 seconds, &nbsp; 1.22 MB/s<br /> ARC4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 KB took 0.219 seconds, &nbsp; 4.57 MB/s<br /> DES &nbsp; &nbsp; &nbsp;&nbsp; 1024 KB took 1.513 seconds, &nbsp; 0.66 MB/s<br /> 3DES &nbsp; &nbsp;&nbsp; 1024 KB took 3.986 seconds, &nbsp; 0.25 MB/s</p> <p class="paragraph_style_1">MD5 &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 1024 KB took 0.119 seconds, &nbsp; 8.40 MB/s<br /> SHA &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 1024 KB took 0.279 seconds, &nbsp; 3.58 MB/s<br /> SHA-256 &nbsp;&nbsp; 1024 KB took 0.690 seconds, &nbsp; 1.45 MB/s</p> <p class="paragraph_style_1">RSA 2048 encryption took 111.17 milliseconds, avg over 100 iterations<br /> RSA 2048 decryption took 1204.77 milliseconds, avg over 100 iterations<br /> DH &nbsp;2048 key generation &nbsp; 467.90 milliseconds, avg over 100 iterations<br /> DH &nbsp;2048 key agreement &nbsp; 538.94 milliseconds, avg over 100 iterations</p> <p class="paragraph_style_1">STM32F2 Hardware Crypto: wolfCrypt Benchmark, Normal Big Integer Math Library</p> <p class="paragraph_style_1">AES &nbsp; &nbsp; &nbsp; &nbsp;1024 kB took 0.105 seconds, &nbsp; 9.52 MB/s<br /> ARC4 &nbsp; &nbsp;&nbsp; 1024 KB took 0.219 seconds, &nbsp; 4.57 MB/s<br /> DES &nbsp; &nbsp; &nbsp;&nbsp; 1024 KB took 0.125 seconds, &nbsp; 8.00 MB/s<br /> 3DES &nbsp; &nbsp;&nbsp; 1024 KB took 0.141 seconds, &nbsp; 7.09 MB/s</p> <p class="paragraph_style_1">MD5 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1024 KB took 0.045 seconds, &nbsp;22.22 MB/s<br /> SHA &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1024 KB took 0.047 seconds, &nbsp;21.28 MB/s<br /> SHA-256 &nbsp;&nbsp; 1024 KB took 0.690 seconds, &nbsp; 1.45 MB/s</p> <p class="paragraph_style_1">RSA 2048 encryption took 111.09 milliseconds, avg over 100 iterations<br /> RSA 2048 decryption took 1204.88 milliseconds, avg over 100 iterations<br /> DH &nbsp;2048 key generation &nbsp;467.56 milliseconds, avg over 100 iterations<br /> DH &nbsp;2048 key agreement &nbsp; 542.11 milliseconds, avg over 100 iterations</p> <p class="paragraph_style_2"><strong>Reference</strong></p> <p class="paragraph_style_2"><a title="wolfssl-stm32.html" href="https://www.wolfssl.com/docs/stm32/">wolfSSL and STM32</a></p> <p>Return to <a href="#benchmark_top_of_page">top of page</a></p> </div> </div> </div> </div> </div> </div> <div id="pg-1591-22" class="panel-grid panel-has-style" data-style="{&quot;class&quot;:&quot;separate&quot;,&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div class="separate panel-row-style panel-row-style-for-1591-22"> <div id="pgc-1591-22-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-22-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="90"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-22-0-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="91"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style"><strong><span id="texas_instruments_tiva_c_series_tm4c1294xl_connected_launchpad">Texas Instruments</span><br /> </strong><strong>Tiva C Series TM4C1294XL Connected Launchpad</strong></p> <p class="paragraph_style_1">(<a title="http://www.ti.com" href="https://www.ti.com">www.ti.com</a>)<br /> ARM Cortex-M4<br /> 120 MHz<br /> 1 MB FLASH<br /> 256 KB SRAM<br /> 6 KB EEPROM</p> </div> </div> </div> </div> <div id="pgc-1591-22-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-22-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="92"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-22-1-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="93" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style_2"><strong>Crypto Benchmarks:</strong></p> <p class="paragraph_style_1">AES &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;25 kB took 0.038 seconds, &nbsp;&nbsp;0.642 MB/s<br /> Camellia 25 kB took 0.032 seconds, &nbsp;&nbsp;0.763 MB/s<br /> ARC4 &nbsp;&nbsp;&nbsp;&nbsp;25 kB took 0.006 seconds, &nbsp;&nbsp;4.069 MB/s<br /> RABBIT &nbsp;&nbsp;25 kB took 0.005 seconds, &nbsp;&nbsp;4.883 MB/s<br /> CHACHA &nbsp;&nbsp;25 kB took 0.007 seconds, &nbsp;&nbsp;3.488 MB/s<br /> 3DES &nbsp;&nbsp;&nbsp;&nbsp;25 kB took 0.164 seconds, &nbsp;&nbsp;0.149 MB/s</p> <p class="paragraph_style_1">MD5 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;25 kB took 0.003 seconds, &nbsp;&nbsp;8.138 MB/s<br /> POLY1305 25 kB took 0.004 seconds, &nbsp;&nbsp;6.104 MB/s<br /> SHA &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;25 kB took 0.006 seconds, &nbsp;&nbsp;4.069 MB/s<br /> SHA-256 &nbsp;25 kB took 0.014 seconds, &nbsp;&nbsp;1.744 MB/s<br /> SHA-512 &nbsp;25 kB took 0.042 seconds, &nbsp;&nbsp;0.581 MB/s</p> <p class="paragraph_style_1">RSA 2048 encryption took 88.000 milliseconds, avg over 1 iterations<br /> RSA 2048 decryption took 1456.000 milliseconds, avg over 1 iterations<br /> DH &nbsp;2048 key generation &nbsp;661.000 milliseconds, avg over 1 iterations<br /> DH &nbsp;2048 key agreement &nbsp;&nbsp;665.000 milliseconds, avg over 1 iterations</p> <p class="paragraph_style_1">ECC &nbsp;256 key generation &nbsp;130.400 milliseconds, avg over 5 iterations<br /> EC-DHE &nbsp;&nbsp;key agreement &nbsp;&nbsp;118.000 milliseconds, avg over 5 iterations<br /> EC-DSA &nbsp;&nbsp;sign &nbsp;&nbsp;time &nbsp;&nbsp;&nbsp;&nbsp;136.800 milliseconds, avg over 5 iterations<br /> EC-DSA &nbsp;&nbsp;verify time &nbsp;&nbsp;&nbsp;&nbsp;253.800 milliseconds, avg over 5 iterations</p> <p class="paragraph_style_2"><strong>Reference</strong></p> <p class="paragraph_style_1"><a title="wolfssl-ti.html" href="https://www.wolfssl.com/docs/ti/">CyaSSL and TI-RTOS</a></p> <p>Return to <a href="#benchmark_top_of_page">top of page</a></p> </div> </div> </div> </div> </div> </div> <div id="pg-1591-23" class="panel-grid panel-has-style" data-style="{&quot;class&quot;:&quot;separate&quot;,&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div class="separate panel-row-style panel-row-style-for-1591-23"> <div id="pgc-1591-23-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-23-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="94"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-23-0-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="95"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style"><strong><span id="freescale_twr-k70f120m">Freescale TWR-K70F120M</span></strong></p> <p class="paragraph_style">(<a title="http://www.freescale.com" href="https://www.freescale.com">www.freescale.com</a>)<br /> Freescale Kinetis K70<br /> 120 MHz<br /> 2 GB FLASH<br /> 1 GB RAM</p> </div> </div> </div> </div> <div id="pgc-1591-23-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-23-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="96"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-23-1-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="97" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style_2"><strong>Crypto Benchmarks:</strong></p> <p class="paragraph_style_1">AES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5120 kB took 9.059 seconds,&nbsp;&nbsp; 0.55 MB/s<br /> ARC4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5120 kB took 2.190 seconds,&nbsp;&nbsp; 2.28 MB/s<br /> DES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5120 kB took 18.453 seconds,&nbsp;&nbsp; 0.27 MB/s</p> <p class="paragraph_style_1">MD5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5120 kB took 1.396 seconds,&nbsp;&nbsp; 3.58 MB/s<br /> SHA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5120 kB took 3.635 seconds,&nbsp;&nbsp; 1.38 MB/s<br /> SHA-256&nbsp; 5120 kB took 9.145 seconds,&nbsp;&nbsp; 0.55 MB/s</p> <p class="paragraph_style_1">RSA 2048 encryption took&nbsp; 73.99 milliseconds, avg over 100 iterations<br /> RSA 2048 decryption took 1359.09 milliseconds, avg over 100 iterations<br /> DH&nbsp; 2048 key generation&nbsp; 536.75 milliseconds, avg over 100 iterations<br /> DH&nbsp; 2048 key agreement&nbsp;&nbsp; 540.99 milliseconds, avg over 100 iterations</p> <p class="paragraph_style_1"><strong><span class="style">Build Details</span></strong></p> <ul> <li>MQX RTOS, using the fastmath library with TFM_TIMING_RESISTANT</li> <li>FREESCALE_MQX define set in &lt;cyassl_root&gt;/cyassl/ctaocrypt/settings.h</li> <li>CodeWarrior 10.2 IDE and compiler, optimizing for speed</li> </ul> <p class="paragraph_style_2"><strong>Reference</strong></p> <p class="paragraph_style_2">Freescale TWR-K70F120M: <a title="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=TWR-K70F120M" href="https://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=TWR-K70F120M">http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=TWR-K70F120M</a></p> <p>Return to <a href="#benchmark_top_of_page">top of page</a></p> </div> </div> </div> </div> </div> </div> <div id="pg-1591-24" class="panel-grid panel-has-style" data-style="{&quot;class&quot;:&quot;separate&quot;,&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div class="separate panel-row-style panel-row-style-for-1591-24"> <div id="pgc-1591-24-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-24-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="98"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-24-0-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="99" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style"><strong><span id="apple_tv_2">Apple TV 2</span></strong></p> <p class="paragraph_style_1">(<a title="http://www.apple.com" href="https://www.apple.com">www.apple.com</a>)<br /> Apple A4 (ARM Cortex-A8)<br /> 1 GHz<br /> 8 GB FLASH<br /> 256 MB RAM</p> </div> </div> </div> </div> <div id="pgc-1591-24-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-24-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="100"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-24-1-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="101" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style_2"><strong>Crypto Benchmarks:</strong></p> <p class="paragraph_style_1">AES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5 megs took 0.500 seconds,&nbsp;&nbsp; 9.99 MB/s<br /> ARC4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5 megs took 0.174 seconds,&nbsp; 28.66 MB/s<br /> RABBIT&nbsp;&nbsp;&nbsp; 5 megs took 0.126 seconds,&nbsp; 39.56 MB/s<br /> 3DES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5 megs took 2.196 seconds,&nbsp;&nbsp; 2.28 MB/s</p> <p class="paragraph_style_1">MD5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5 megs took 0.163 seconds,&nbsp; 30.73 MB/s<br /> SHA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5 megs took 0.137 seconds,&nbsp; 36.61 MB/s<br /> SHA-256&nbsp; 5 megs took 0.309 seconds,&nbsp; 16.20 MB/s</p> <p class="paragraph_style_1">RSA 1024 encryption took&nbsp;&nbsp; 1.12 milliseconds, avg over 100 iterations<br /> RSA 1024 decryption took&nbsp; 17.81 milliseconds, avg over 100 iterations<br /> DH&nbsp; 1024 key generation&nbsp;&nbsp; 11.90 milliseconds, avg over 100 iterations<br /> DH&nbsp; 1024 key agreement&nbsp;&nbsp;&nbsp; 11.22 milliseconds, avg over 100 iterations</p> <p class="paragraph_style_1"><strong><span class="style">Build Details</span></strong></p> <p class="paragraph_style_1">Complete build, compiled with fastmath (&#8211;enable-fastmath)</p> <p class="paragraph_style_2"><strong>Reference</strong></p> <p class="paragraph_style_1">Blog Post: <a title="Blog/Entries/2011/8/5_Running_CyaSSL_on_the_Apple_TV_2.html" href="https://www.wolfssl.com/running-wolfssl-on-the-apple-tv-2/">Running CyaSSL on the Apple TV 2</a></p> <p>Return to <a href="#benchmark_top_of_page">top of page</a></p> </div> </div> </div> </div> </div> </div> <div id="pg-1591-25" class="panel-grid panel-has-style" data-style="{&quot;class&quot;:&quot;separate&quot;,&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div class="separate panel-row-style panel-row-style-for-1591-25"> <div id="pgc-1591-25-0" class="panel-grid-cell" data-weight="0.25"> <div id="panel-1591-25-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="102" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Platform:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-25-0-1" class="so-panel widget widget_sow-editor" data-index="103" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"><a href="http://mbed.org/" target="_blank" rel="noopener"> <span id="mbed"> <img decoding="async" loading="lazy" class="so-widget-image" title="mbed Logo" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/mbed.png" sizes="(max-width: 85px) 100vw, 85px" alt="mbed Logo" width="85" height="27"><br /> </span></a></div> </div> </div> <div id="panel-1591-25-0-2" class="so-panel widget widget_sow-editor panel-last-child" data-index="104" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style_1">(<a title="http://www.mbed.org" href="https://www.mbed.org">www.mbed.org</a>)<br /> ARM Cortex-M3<br /> 96 MHz<br /> 512 kB FLASH<br /> 32 kB RAM</p> </div> </div> </div> </div> <div id="pgc-1591-25-1" class="panel-grid-cell" data-weight="0.75"> <div id="panel-1591-25-1-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="105" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Benchmark:</h3> <div class="siteorigin-widget-tinymce textwidget">&nbsp;</div> </div> </div> <div id="panel-1591-25-1-1" class="so-panel widget widget_sow-editor panel-last-child" data-index="106" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style_2"><strong>Memory Usage:</strong></p> <p class="paragraph_style_1">RAM Usage:&nbsp; 2.0 kB<br /> Flash Usage*: 64 kB<br /> * This included our test driver code, about 3kB.</p> <p class="paragraph_style_2"><strong>Crypto Benchmarks:</strong></p> <p class="paragraph_style_1">public RSA:&nbsp; 10 milliseconds<br /> private RSA: 165 milliseconds</p> <p class="paragraph_style_1"><strong><span class="style">Build Details</span></strong></p> <p class="paragraph_style_1">&#8211; Complete build, everything but SHA-512, DH, DSA, and HC-128<br /> &#8211; Compiled using mbed cloud compiler</p> <p class="paragraph_style_2"><strong>Reference</strong></p> <p class="paragraph_style_1"><a title="http://mbed.org/users/toddouska/libraries/CyaSSL/lm43pv" href="https://mbed.org/users/toddouska/libraries/CyaSSL/lm43pv">http://mbed.org/users/toddouska/libraries/CyaSSL/lm43pv<br /> </a><a class="style_6" title="http://mbed.org/users/toddouska/programs/cyassl-client/lm394s" href="https://mbed.org/users/toddouska/programs/cyassl-client/lm394s">http://mbed.org/users/toddouska/programs/cyassl-client/lm394s</a></p> <p>Return to <a href="#benchmark_top_of_page">top of page</a></p> </div> </div> </div> </div> </div> </div> <div id="pg-1591-26" class="panel-grid panel-no-style" data-style="{&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div id="pgc-1591-26-0" class="panel-grid-cell" data-weight="1"> <div id="panel-1591-26-0-0" class="so-panel widget widget_sow-editor panel-first-child" data-index="107" data-style="{&quot;id&quot;:&quot;relative_cipher_performance&quot;,&quot;background_display&quot;:&quot;tile&quot;}"> <div id="relative_cipher_performance" class="panel-widget-style panel-widget-style-for-1591-26-0-0"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Relative Cipher Performance</h3> <div class="siteorigin-widget-tinymce textwidget"> <div class="siteorigin-widget-tinymce textwidget"> <div class="siteorigin-widget-tinymce textwidget"> <div id="id30" class="style_SkipStroke_1 shape-with-text"> <div class="text-content graphic_textbox_layout_style_default_External_660_75"> <div class="graphic_textbox_layout_style_default"> <p class="paragraph_style_12">Although the performance of individual ciphers and algorithms will depend on the host platform, the following graph shows relative performance between some of wolfCrypt’s algorithms.&nbsp; These tests were conducted on a Macbook Pro (OS X 10.6.8) running a 2.2 GHz Intel Core i7.</p> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div id="panel-1591-26-0-1" class="so-panel widget widget_sow-editor" data-index="108" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p><img decoding="async" loading="lazy" class="so-widget-image" title="Benchmark Algorithm Comparison" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/algorithm_comparison.png" sizes="(max-width: 719px) 100vw, 719px" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/algorithm_comparison.png 719w, https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/algorithm_comparison-300x201.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/algorithm_comparison-650x435.png 650w, https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/algorithm_comparison-272x182.png 272w" alt="Benchmark Algorithm Comparison" width="719" height="481">Return to <a href="#benchmark_top_of_page">top of page</a></p> </div> </div> </div> <div id="panel-1591-26-0-2" class="so-panel widget widget_sow-editor" data-index="109" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style_12">If you want to use only a subset of ciphers, you can customize which specific cipher suites and/or ciphers wolfSSL uses when making an SSL/TLS connection.&nbsp; For example, to force 128-bit AES, add the following line after the call to wolfSSL_CTX_new (SSL_CTX_new):</p> <p class="codepiece">wolfSSL_CTX_set_cipher_list(ctx, “AES128-SHA”);</p> </div> </div> </div> <div id="panel-1591-26-0-3" class="so-panel widget widget_sow-editor" data-index="110" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base">Return to <a href="#benchmark_top_of_page">top of page</a></div> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <hr> <h3><span id="pq_kyber_linux">Post-Quantum Kyber Benchmarks (Linux)</span></h3> <p class="paragraph_style_2"><strong>Platform:</strong></p> <p>11th Gen Intel® Core™ i7-1185G7 @ 3.00GHz × 8</p> <p class="paragraph_style_2"><strong>Benchmark:</strong></p> <p><img decoding="async" loading="lazy" class="alignnone size-medium wp-image-41794" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2024/03/Linux-Kyber-graph-300x243.png" alt="" width="512" height="414" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2024/03/Linux-Kyber-graph-300x243.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2024/03/Linux-Kyber-graph.png 512w" sizes="(max-width: 512px) 100vw, 512px" /></p> <p><em>Notes:</em></p> <ul> <li style="list-style-type: none;"><em>&#8211; Only 1 core is used</em></li> <li style="list-style-type: none;"><em>&#8211; Conventional algorithms are present for comparison purposes</em></li> <li style="list-style-type: none;"><em><em>&#8211; The wolfSSL configuration used was:<br /> </em></em>&nbsp;&nbsp;&nbsp;</p> <pre style="padding-left: 30px;">./configure --disable-psk --disable-shared --enable-intelasm --enable-aesni --enable-sp --enable-sp-math --enable-sp-asm --enable-kyber=wolfssl,all 'CFLAGS=-Os -DECC_USER_CURVES -DHAVE_ECC256 -DHAVE_ECC384' </pre> </li> </ul> <p>wolfSSL Server Benchmark on TLS13-AES256-GCM-SHA384 with group ECC_SECP384R1:</p> <pre style="padding-left: 30px;">Total : 5505024 bytes Num Conns : 22 Rx Total : 953.534 ms Tx Total : 6.757 ms Rx : 2.753 MB/s Tx : 388.471 MB/s Connect : 55.076 ms Connect Avg : 2.503 ms </pre> <p>wolfSSL Client Benchmark on TLS13-AES256-GCM-SHA384 with group ECC_SECP384R1:</p> <pre style="padding-left: 30px;">Total : 5505024 bytes Num Conns : 22 Rx Total : 956.304 ms Tx Total : 5.627 ms Rx : 2.745 MB/s Tx : 466.488 MB/s Connect : 54.827 ms Connect Avg : 2.492 ms </pre> <p>wolfSSL Server Benchmark on TLS13-AES256-GCM-SHA384 with group ECC_SECP521R1:</p> <pre style="padding-left: 30px;">Total : 5505024 bytes Num Conns : 22 Rx Total : 948.864 ms Tx Total : 6.542 ms Rx : 2.766 MB/s Tx : 401.226 MB/s Connect : 59.490 ms Connect Avg : 2.704 ms </pre> <p>wolfSSL Client Benchmark on TLS13-AES256-GCM-SHA384 with group ECC_SECP521R1:</p> <pre style="padding-left: 30px;">Total : 5505024 bytes Num Conns : 22 Rx Total : 951.101 ms Tx Total : 5.791 ms Rx : 2.760 MB/s Tx : 453.275 MB/s Connect : 59.598 ms Connect Avg : 2.709 ms </pre> <p>wolfSSL Server Benchmark on TLS13-AES256-GCM-SHA384 with group KYBER_LEVEL1:</p> <pre style="padding-left: 30px;">Total : 5505024 bytes Num Conns : 22 Rx Total : 954.452 ms Tx Total : 7.089 ms Rx : 2.750 MB/s Tx : 370.297 MB/s Connect : 47.349 ms Connect Avg : 2.152 ms </pre> <p>wolfSSL Client Benchmark on TLS13-AES256-GCM-SHA384 with group KYBER_LEVEL1:</p> <pre style="padding-left: 30px;">Total : 5505024 bytes Num Conns : 22 Rx Total : 956.931 ms Tx Total : 6.189 ms Rx : 2.743 MB/s Tx : 424.149 MB/s Connect : 46.129 ms Connect Avg : 2.097 ms </pre> <p>wolfSSL Server Benchmark on TLS13-AES256-GCM-SHA384 with group KYBER_LEVEL3:</p> <pre style="padding-left: 30px;">Total : 5767168 bytes Num Conns : 23 Rx Total : 958.702 ms Tx Total : 7.431 ms Rx : 2.868 MB/s Tx : 370.070 MB/s Connect : 48.699 ms Connect Avg : 2.117 ms </pre> <p>wolfSSL Client Benchmark on TLS13-AES256-GCM-SHA384 with group KYBER_LEVEL3:</p> <pre style="padding-left: 30px;">Total : 5767168 bytes Num Conns : 23 Rx Total : 961.281 ms Tx Total : 6.032 ms Rx : 2.861 MB/s Tx : 455.903 MB/s Connect : 47.497 ms Connect Avg : 2.065 ms </pre> <p>wolfSSL Server Benchmark on TLS13-AES256-GCM-SHA384 with group KYBER_LEVEL5:</p> <pre style="padding-left: 30px;">Total : 5767168 bytes Num Conns : 23 Rx Total : 967.680 ms Tx Total : 6.709 ms Rx : 2.842 MB/s Tx : 409.906 MB/s Connect : 51.945 ms Connect Avg : 2.258 ms </pre> <p>wolfSSL Client Benchmark on TLS13-AES256-GCM-SHA384 with group KYBER_LEVEL5:</p> <pre style="padding-left: 30px;">Total : 5767168 bytes Num Conns : 23 Rx Total : 969.719 ms Tx Total : 6.183 ms Rx : 2.836 MB/s Tx : 444.774 MB/s Connect : 49.456 ms Connect Avg : 2.150 ms </pre> <p>wolfSSL Server Benchmark on TLS13-AES256-GCM-SHA384 with group P256_KYBER_LEVEL1:</p> <pre style="padding-left: 30px;">Total : 2883584 bytes Num Conns : 12 Rx Total : 494.597 ms Tx Total : 2.225 ms Rx : 2.780 MB/s Tx : 618.065 MB/s Connect : 540.056 ms Connect Avg : 45.005 ms </pre> <p>wolfSSL Client Benchmark on TLS13-AES256-GCM-SHA384 with group P256_KYBER_LEVEL1:</p> <pre style="padding-left: 30px;">Total : 2883584 bytes Num Conns : 12 Rx Total : 495.337 ms Tx Total : 2.282 ms Rx : 2.776 MB/s Tx : 602.567 MB/s Connect : 538.472 ms Connect Avg : 44.873 ms </pre> <p>wolfSSL Server Benchmark on TLS13-AES256-GCM-SHA384 with group P384_KYBER_LEVEL3:</p> <pre style="padding-left: 30px;">Total : 2883584 bytes Num Conns : 12 Rx Total : 503.707 ms Tx Total : 3.427 ms Rx : 2.730 MB/s Tx : 401.222 MB/s Connect : 526.276 ms Connect Avg : 43.856 ms </pre> <p>wolfSSL Client Benchmark on TLS13-AES256-GCM-SHA384 with group P384_KYBER_LEVEL3:</p> <pre style="padding-left: 30px;">Total : 2883584 bytes Num Conns : 12 Rx Total : 505.002 ms Tx Total : 3.302 ms Rx : 2.723 MB/s Tx : 416.462 MB/s Connect : 523.324 ms Connect Avg : 43.610 ms </pre> <p>wolfSSL Server Benchmark on TLS13-AES256-GCM-SHA384 with group P521_KYBER_LEVEL5:</p> <pre style="padding-left: 30px;">Total : 2883584 bytes Num Conns : 12 Rx Total : 503.258 ms Tx Total : 3.171 ms Rx : 2.732 MB/s Tx : 433.556 MB/s Connect : 537.391 ms Connect Avg : 44.783 ms </pre> <p>wolfSSL Client Benchmark on TLS13-AES256-GCM-SHA384 with group P521_KYBER_LEVEL5:</p> <pre style="padding-left: 30px;">Total : 2883584 bytes Num Conns : 12 Rx Total : 504.367 ms Tx Total : 3.316 ms Rx : 2.726 MB/s Tx : 414.636 MB/s Connect : 532.820 ms Connect Avg : 44.402 ms </pre> <div id="panel-1591-26-0-3" class="so-panel widget widget_sow-editor" data-index="110" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base">Return to <a href="#benchmark_top_of_page">top of page</a></div> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <hr> <h3><span id="pq_kyber_cortex_m4">Post-Quantum Kyber Benchmarks (ARM Cortex-M4)</span></h3> <p class="paragraph_style_2"><strong>Platform:</strong></p> <p>STM NUCLEO-F446ZE</p> <p class="paragraph_style_2"><strong>Benchmark:</strong></p> <p><img decoding="async" loading="lazy" class="alignnone size-medium wp-image-41790" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2024/03/Kyber-ARM-Cortex-M4-graph-300x204.png" alt="" width="487" height="331" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2024/03/Kyber-ARM-Cortex-M4-graph-300x204.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2024/03/Kyber-ARM-Cortex-M4-graph.png 487w" sizes="(max-width: 487px) 100vw, 487px" /></p> <p><em>Notes:</em></p> <ul> <li style="list-style-type: none;"><em>&#8211; The HCLK in the project was set to 168MHz</em></li> <li style="list-style-type: none;"><em>&#8211; Only 1 core used<br /> &#8211; wolfSSL Math Configuration set to “Single Precision ASM Cortex-M3+ Math”<br /> &#8211; Optimization flag: -Ofast<br /> &#8211; Conventional algorithms are present for comparison purposes</em></li> </ul> <pre>RSA 2048 public 82 ops took 1.020 sec, avg 12.439 ms, 80.392 ops/sec RSA 2048 private 4 ops took 1.827 sec, avg 456.750 ms, 2.189 ops/sec DH 2048 key gen 5 ops took 1.181 sec, avg 236.200 ms, 4.234 ops/sec DH 2048 agree 6 ops took 1.419 sec, avg 236.500 ms, 4.228 ops/sec ECC SECP256R1 key gen 118 ops took 1.012 sec, avg 8.576 ms, 116.601 ops/sec ECDHE SECP256R1 agree 56 ops took 1.016 sec, avg 18.143 ms, 55.118 ops/sec KYBER512 128 key gen 232 ops took 1.004 sec, avg 4.328 ms, 231.076 ops/sec KYBER512 128 encap 192 ops took 1.008 sec, avg 5.250 ms, 190.476 ops/sec KYBER512 128 decap 178 ops took 1.004 sec, avg 5.640 ms, 177.291 ops/sec KYBER768 192 key gen 146 ops took 1.008 sec, avg 6.904 ms, 144.841 ops/sec KYBER768 192 encap 118 ops took 1.008 sec, avg 8.542 ms, 117.063 ops/sec KYBER768 192 decap 110 ops took 1.000 sec, avg 9.091 ms, 110.000 ops/sec KYBER1024 256 key gen 92 ops took 1.011 sec, avg 10.989 ms, 90.999 ops/sec KYBER1024 256 encap 76 ops took 1.000 sec, avg 13.158 ms, 76.000 ops/sec KYBER1024 256 decap 72 ops took 1.000 sec, avg 13.889 ms, 72.000 ops/sec</pre> <div id="panel-1591-26-0-3" class="so-panel widget widget_sow-editor" data-index="110" data-style="{&quot;background_display&quot;:&quot;tile&quot;}"> <div class="so-widget-sow-editor so-widget-sow-editor-base">Return to <a href="#benchmark_top_of_page">top of page</a></div> <p>&nbsp;</p> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <hr> <h3><span id="pq_kyber_macos">Post-Quantum Kyber Benchmarks (MacOS)</span></h3> <p class="paragraph_style_2"><strong>Platform:</strong></p> <p>Apple MacBook Pro 18,3 with an Apple M1 Pro, 3.09 GHz processor</p> <p class="paragraph_style_2"><strong>Benchmark:</strong></p> <p><img decoding="async" loading="lazy" class="alignnone size-medium wp-image-41786" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2024/03/Kyber-MacOS-graph-300x200.png" alt="" width="512" height="341" srcset="https://www.wolfssl.com/wordpress/wp-content/uploads/2024/03/Kyber-MacOS-graph-300x200.png 300w, https://www.wolfssl.com/wordpress/wp-content/uploads/2024/03/Kyber-MacOS-graph-272x182.png 272w, https://www.wolfssl.com/wordpress/wp-content/uploads/2024/03/Kyber-MacOS-graph.png 512w" sizes="(max-width: 512px) 100vw, 512px" /></p> <p><em>Notes:</em></p> <ul> <li style="list-style-type: none;"><em>&#8211; Only 1 core is used</em></li> </ul> <pre style="padding-left: 30px;">Math: Multi-Precision: Wolf(SP) no-dyn-stack word-size=64 bits=4096 sp_int.c Single Precision: ecc 256 384 521 rsa/dh 2048 3072 4096 asm sp_arm64.c wolfCrypt Benchmark (block bytes 1048576, min 1.0 sec each) DH 2048 key gen 3997 ops took 1.000 sec, avg 0.250 ms, 3996.812 ops/sec DH 2048 agree 4100 ops took 1.001 sec, avg 0.244 ms, 4097.522 ops/sec KYBER512 128 key gen 96100 ops took 1.001 sec, avg 0.010 ms, 96037.765 ops/sec KYBER512 128 encap 78000 ops took 1.000 sec, avg 0.013 ms, 77970.220 ops/sec KYBER512 128 decap 58900 ops took 1.001 sec, avg 0.017 ms, 58867.158 ops/sec KYBER768 192 key gen 58200 ops took 1.000 sec, avg 0.017 ms, 58192.314 ops/sec KYBER768 192 encap 48700 ops took 1.001 sec, avg 0.021 ms, 48664.334 ops/sec KYBER768 192 decap 38100 ops took 1.001 sec, avg 0.026 ms, 38059.656 ops/sec KYBER1024 256 key gen 37800 ops took 1.003 sec, avg 0.027 ms, 37704.299 ops/sec KYBER1024 256 encap 32600 ops took 1.001 sec, avg 0.031 ms, 32566.427 ops/sec KYBER1024 256 decap 26000 ops took 1.001 sec, avg 0.039 ms, 25967.020 ops/sec ECC [ SECP256R1] 256 key gen 84100 ops took 1.001 sec, avg 0.012 ms, 84013.469 ops/sec ECDHE [ SECP256R1] 256 agree 24400 ops took 1.004 sec, avg 0.041 ms, 24300.995 ops/sec </pre> <div class="so-widget-sow-editor so-widget-sow-editor-base">Return to <a href="#benchmark_top_of_page">top of page</a></div> <p>&nbsp;</p> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <hr> <h3>Platform:</h3> <p><span id="raspberry_pi_pico_w"><strong>Raspberry Pi Pico-W<br /> ARM Cortext M0+, 125MHz</strong></span></p> <h3>Benchmark:</h3> <p><strong>wolfSSL/wolfCrypt v5.6.3</strong></p> <p>Configuration Options</p> <p>&#8211; SP Math:</p> <pre>Enable: WOLFSSL_HAVE_SP_RSA, WOLFSSL_HAVE_SP_DH, WOLFSSL_HAVE_SP_ECC, WOLFSSL_SP_ARM_THUMB_ASM Disable: WOLFSSL_SP_SMALL, WOLFSSL_SP_ASM </pre> <p>&#8211; AES-GCM:</p> <pre>Enable: GCM_TABLE_4BIT Disable: GCM_SMALL </pre> <pre>``` wolfCrypt Benchmark (block bytes 1024, min 1.0 sec each) RNG 475 KiB took 1.048 seconds, 453.220 KiB/s AES-128-CBC-enc 850 KiB took 1.027 seconds, 827.711 KiB/s AES-128-CBC-dec 825 KiB took 1.014 seconds, 813.327 KiB/s AES-192-CBC-enc 725 KiB took 1.002 seconds, 723.594 KiB/s AES-192-CBC-dec 700 KiB took 1.017 seconds, 688.524 KiB/s AES-256-CBC-enc 650 KiB took 1.005 seconds, 647.072 KiB/s AES-256-CBC-dec 625 KiB took 1.023 seconds, 610.908 KiB/s AES-128-GCM-enc 375 KiB took 1.008 seconds, 372.077 KiB/s AES-128-GCM-dec 375 KiB took 1.048 seconds, 357.974 KiB/s AES-192-GCM-enc 350 KiB took 1.031 seconds, 339.515 KiB/s AES-192-GCM-dec 325 KiB took 1.015 seconds, 320.354 KiB/s AES-256-GCM-enc 325 KiB took 1.035 seconds, 313.895 KiB/s AES-256-GCM-dec 325 KiB took 1.083 seconds, 300.044 KiB/s AES-128-GCM-enc-no_AAD 400 KiB took 1.020 seconds, 392.229 KiB/s AES-128-GCM-dec-no_AAD 400 KiB took 1.063 seconds, 376.324 KiB/s AES-192-GCM-enc-no_AAD 375 KiB took 1.053 seconds, 356.052 KiB/s AES-192-GCM-dec-no_AAD 350 KiB took 1.044 seconds, 335.173 KiB/s AES-256-GCM-enc-no_AAD 350 KiB took 1.067 seconds, 327.915 KiB/s AES-256-GCM-dec-no_AAD 325 KiB took 1.038 seconds, 312.985 KiB/s GMAC Table 4-bit 1 MiB took 1.001 seconds, 1.173 MiB/s CHACHA 3 MiB took 1.008 seconds, 2.615 MiB/s CHA-POLY 975 KiB took 1.001 seconds, 974.262 KiB/s POLY1305 2 MiB took 1.006 seconds, 1.625 MiB/s SHA 2 MiB took 1.004 seconds, 2.456 MiB/s SHA-256 1 MiB took 1.000 seconds, 1.025 MiB/s SHA-384 550 KiB took 1.032 seconds, 532.885 KiB/s SHA-512 525 KiB took 1.029 seconds, 510.002 KiB/s SHA-512/224 525 KiB took 1.009 seconds, 520.350 KiB/s SHA-512/256 525 KiB took 1.010 seconds, 519.658 KiB/s SHA3-224 575 KiB took 1.002 seconds, 573.882 KiB/s SHA3-256 550 KiB took 1.016 seconds, 541.124 KiB/s SHA3-384 425 KiB took 1.021 seconds, 416.388 KiB/s SHA3-512 300 KiB took 1.032 seconds, 290.658 KiB/s SHAKE128 675 KiB took 1.015 seconds, 665.093 KiB/s SHAKE256 550 KiB took 1.016 seconds, 541.122 KiB/s HMAC-SHA 2 MiB took 1.005 seconds, 2.429 MiB/s HMAC-SHA256 1 MiB took 1.008 seconds, 1.017 MiB/s HMAC-SHA384 525 KiB took 1.003 seconds, 523.222 KiB/s HMAC-SHA512 500 KiB took 1.008 seconds, 495.957 KiB/s RSA 2048 public 30 ops took 1.000 sec, avg 33.335 ms, 29.998 ops/sec RSA 2048 private 2 ops took 2.555 sec, avg 1277.379 ms, 0.783 ops/sec DH 2048 key gen 2 ops took 1.117 sec, avg 558.654 ms, 1.790 ops/sec DH 2048 agree 2 ops took 1.116 sec, avg 557.958 ms, 1.792 ops/sec ECC [ SECP256R1] 256 key gen 18 ops took 1.012 sec, avg 56.241 ms, 17.781 ops/sec ECDHE [ SECP256R1] 256 agree 10 ops took 1.058 sec, avg 105.786 ms, 9.453 ops/sec ECDSA [ SECP256R1] 256 sign 16 ops took 1.132 sec, avg 70.740 ms, 14.136 ops/sec ECDSA [ SECP256R1] 256 verify 10 ops took 1.171 sec, avg 117.119 ms, 8.538 ops/sec CURVE 25519 key gen 12 ops took 1.020 sec, avg 85.014 ms, 11.763 ops/sec CURVE 25519 agree 12 ops took 1.014 sec, avg 84.486 ms, 11.836 ops/sec ED 25519 key gen 26 ops took 1.011 sec, avg 38.891 ms, 25.713 ops/sec ED 25519 sign 24 ops took 1.041 sec, avg 43.392 ms, 23.046 ops/sec ED 25519 verify 10 ops took 1.062 sec, avg 106.162 ms, 9.420 ops/sec CURVE 448 key gen 4 ops took 1.226 sec, avg 306.396 ms, 3.264 ops/sec CURVE 448 agree 4 ops took 1.219 sec, avg 304.700 ms, 3.282 ops/sec ED 448 key gen 7 ops took 1.105 sec, avg 157.866 ms, 6.334 ops/sec ED 448 sign 8 ops took 1.305 sec, avg 163.081 ms, 6.132 ops/sec ED 448 verify 4 ops took 1.525 sec, avg 381.261 ms, 2.623 ops/sec ``` </pre> <div class="so-widget-sow-editor so-widget-sow-editor-base">Return to <a href="#benchmark_top_of_page">top of page</a></div> </div> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <hr> <h3 class="widget-title">Benchmarking Notes</h3> <div class="siteorigin-widget-tinymce textwidget"> <div class="siteorigin-widget-tinymce textwidget"> <div class="siteorigin-widget-tinymce textwidget"> <ol> <li class="full-width" value="1"> <p class="paragraph_style_18">The processors<strong> <span class="style_5">native register size</span></strong> (32 vs 64-bit) can make a big difference when doing 1000+ bit public key operations.</p> </li> <li class="full-width" value="2"> <p class="paragraph_style_18"><strong><span class="Bullet">f</span><span class="style_5">astmath</span></strong> (&#8211;enable-fastmath) reduces dynamic memory usage and speeds up public key operations.&nbsp; If you are having trouble building on a 32-bit platform with fastmath, disable shared libraries so that PIC isn’t hogging a register (also see notes in the README):</p> <p class="codepiece">./configure &#8211;enable-fastmath &#8211;disable-shared<br /> make clean<br /> make</p> <p class="paragraph_style_21">*NOTE: doing a “make clean” is good practice with wolfSSL when switching configure options</p> </li> <li class="full-width" value="3"> <p class="paragraph_style_18">By default, fastmath tries to use assembly optimizations if possible.&nbsp; If assembly optimizations don’t work, you can still use fastmath without them by adding TFM_NO_ASM to CFLAGS when building wolfSSL:</p> <p class="codepiece">./configure &#8211;enable-fastmath CFLAGS=-DTFM_NO_ASM</p> </li> <li class="full-width" value="4"> <p class="paragraph_style_18">Using fasthugemath can try to push fastmath even more for users who are not running on embedded platforms:</p> <p class="codepiece">./configure &#8211;enable-fasthugemath</p> </li> <li class="full-width" value="5"> <p class="paragraph_style_18">With the default wolfSSL build, we have tried to find a good balance between memory usage and performance.&nbsp; If you are more concerned about one of the two, please see <a title="Docs-wolfssl-manual-2-building-wolfssl.html" href="https://www.wolfssl.com/docs/wolfssl-manual/ch2/">Chapter 2 of the wolfSSL manual</a> for additional wolfSSL configuration options.</p> </li> <li class="full-width" value="6"> <p class="paragraph_style_18"><strong><span class="style_5">Bulk Transfers</span>:&nbsp;</strong> wolfSSL by default uses 128 byte I/O buffers since about 80% of SSL traffic falls within this size and to limit dynamic memory use. &nbsp;It can be configured to use 16K buffers (the maximum SSL size) if bulk transfers are required.</p> </li> </ol> </div> </div> </div> </div> </div> <div id="panel-1591-26-0-4" class="so-panel widget widget_sow-editor panel-last-child" data-index="111"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <h3 class="widget-title">Publications and Flyers</h3> <div class="siteorigin-widget-tinymce textwidget"> <div class="siteorigin-widget-tinymce textwidget"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style_12">Publications in relation to benchmarking our SSL/TLS and crypto libraries:</p> </div> </div> </div> </div> </div> </div> </div> <div id="pg-1591-27" class="panel-grid panel-no-style" data-style="{&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div id="pgc-1591-27-0" class="panel-grid-cell" data-weight="0.2"> <div id="panel-1591-27-0-0" class="so-panel widget widget_sow-editor panel-first-child panel-last-child" data-index="112"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p><a href="https://www.wolfssl.com/documentation/flyers/cyassl_ntru.pdf" target="_blank" rel="noopener"> <img decoding="async" loading="lazy" class="so-widget-image" title="wolfSSL + NTRU" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/cyassl_ntru2.jpg" sizes="(max-width: 93px) 100vw, 93px" alt="wolfSSL + NTRU" width="93" height="120"><br /> </a></p> </div> </div> </div> </div> <div id="pgc-1591-27-1" class="panel-grid-cell" data-weight="0.8"> <div id="panel-1591-27-1-0" class="so-panel widget widget_sow-editor panel-first-child panel-last-child" data-index="113"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style_26"><strong>wolfSSL+NTRU: High-Performance SSL</strong></p> <p class="paragraph_style_27">This flyer details the performance gains that can be seen when using the wolfSSL embedded SSL library with Security Innovation’s NTRU cipher.&nbsp; NTRU is similar to the RSA public key algorithm but can offer anywhere from a 20-200X speed improvement.</p> <p class="paragraph_style_28"><a class="class20" title="https://www.wolfssl.com/documentation/flyers/cyassl_ntru.pdf" href="https://www.wolfssl.com/documentation/flyers/cyassl_ntru.pdf">Download Flyer</a></p> </div> </div> </div> </div> </div> <div id="pg-1591-28" class="panel-grid panel-no-style" data-style="{&quot;background_display&quot;:&quot;tile&quot;,&quot;cell_alignment&quot;:&quot;flex-start&quot;}"> <div id="pgc-1591-28-0" class="panel-grid-cell" data-weight="0.2"> <div id="panel-1591-28-0-0" class="so-panel widget widget_sow-editor panel-first-child panel-last-child" data-index="114"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p><a href="https://www.wolfssl.com/documentation/flyers/cyassl_benchmarks.pdf" target="_blank" rel="noopener"> <img decoding="async" loading="lazy" class="so-widget-image" title="Secured memcached Benchmarks" src="https://www.wolfssl.com/wordpress/wp-content/uploads/2017/08/cyassl_benchmarks2.jpg" sizes="(max-width: 120px) 100vw, 120px" alt="Secured memcached Benchmarks" width="120" height="93"><br /> </a></p> </div> </div> </div> </div> <div id="pgc-1591-28-1" class="panel-grid-cell" data-weight="0.8"> <div id="panel-1591-28-1-0" class="so-panel widget widget_sow-editor panel-first-child panel-last-child" data-index="115"> <div class="so-widget-sow-editor so-widget-sow-editor-base"> <div class="siteorigin-widget-tinymce textwidget"> <p class="paragraph_style_26"><strong>wolfSSL Secure memcached Benchmarks</strong></p> <p class="paragraph_style_27">Because wolfSSL can offer fast encryption and low memory usage it can easily be leveraged onto high-volume servers supporting many thousands of connections. This flyer demonstrates memcached benchmarks using wolfSSL.</p> <p class="paragraph_style_28"><a class="class21" title="https://www.wolfssl.com/documentation/flyers/cyassl_benchmarks.pdf" href="https://www.wolfssl.com/documentation/flyers/cyassl_benchmarks.pdf">Download Flyer</a></p> </div> </div> </div> </div> </div> </div> </div> </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 &#169 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' src='https://www.wolfssl.com/wordpress/wp-content/plugins/tablepress/js/jquery.datatables.min.js?ver=2.0.4' id='tablepress-datatables-js'></script> <script type="text/javascript"> jQuery(function($){ var DT_language={"en_US":{}}; $('#tablepress-30').DataTable({"language":DT_language["en_US"],"stripeClasses":["even","odd"],"ordering":false,"paging":false,"searching":false,"info":false}); $('#tablepress-31').DataTable({"language":DT_language["en_US"],"stripeClasses":["even","odd"],"ordering":false,"paging":false,"searching":false,"info":false}); $('#tablepress-17').DataTable({"language":DT_language["en_US"],"order":[],"orderClasses":false,"stripeClasses":["even","odd"],"pagingType":"simple","lengthMenu":[10,25,30,50,100],"pageLength":30}); }); </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>

Pages: 1 2 3 4 5 6 7 8 9 10