Benchmark demonstration program for mbed TLS. The canonical source for this example lives at https://github.com/ARMmbed/mbed-os-example-tls

Mbed TLS Benchmark example on Mbed OS

This application benchmarks the various cryptographic primitives offered by Mbed TLS.

Getting started

Building with Mbed CLI

If you'd like to use Mbed CLI to build this, then you should set up your environment if you have not done so already. For instructions, refer to the main readme. The instructions on this page relate to using the developer.mbed.org Online Compiler

Import the program in to the Online Compiler, select your board from the drop down in the top right hand corner and then compile the application. Once it has built, you can drag and drop the binary onto your device.

Monitoring the application

The output in the terminal window should be similar to this:

terminal output

  SHA-256                  :       1673 Kb/s,         70 cycles/byte
  SHA-512                  :        546 Kb/s,        215 cycles/byte
  AES-CBC-128              :       1428 Kb/s,         82 cycles/byte
  AES-CBC-192              :       1260 Kb/s,         93 cycles/byte
  AES-CBC-256              :       1127 Kb/s,        104 cycles/byte
  AES-GCM-128              :        486 Kb/s,        242 cycles/byte
  AES-GCM-192              :        464 Kb/s,        253 cycles/byte
  AES-GCM-256              :        445 Kb/s,        264 cycles/byte
  AES-CCM-128              :        610 Kb/s,        192 cycles/byte
  AES-CCM-192              :        547 Kb/s,        214 cycles/byte
  AES-CCM-256              :        496 Kb/s,        237 cycles/byte
  CTR_DRBG (NOPR)          :       1139 Kb/s,        102 cycles/byte
  CTR_DRBG (PR)            :        826 Kb/s,        142 cycles/byte
  HMAC_DRBG SHA-256 (NOPR) :        193 Kb/s,        611 cycles/byte
  HMAC_DRBG SHA-256 (PR)   :        170 Kb/s,        695 cycles/byte
  RSA-2048                 :      28 ms/ public
  RSA-2048                 :     953 ms/private
  RSA-4096                 :      93 ms/ public
  RSA-4096                 :    5327 ms/private
  ECDSA-secp384r1          :     451 ms/sign
  ECDSA-secp256r1          :     304 ms/sign
  ECDSA-secp384r1          :     863 ms/verify
  ECDSA-secp256r1          :     594 ms/verify
  ECDHE-secp384r1          :     829 ms/handshake
  ECDHE-secp256r1          :     566 ms/handshake
  ECDHE-Curve25519         :     533 ms/handshake
  ECDH-secp384r1           :     407 ms/handshake
  ECDH-secp256r1           :     281 ms/handshake
  ECDH-Curve25519          :     268 ms/handshake

DONE
Committer:
mbed_official
Date:
Wed Nov 21 09:45:09 2018 +0000
Revision:
82:9f8b9b63571e
Parent:
78:5f419e0f96dd
Child:
83:c40c51a46813
Merge pull request #215 from cmonr/master

Updating mbed-os to mbed-os-5.10.4
The failing tests are tracked as known issues
.
Commit copied from https://github.com/ARMmbed/mbed-os-example-tls

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 78:5f419e0f96dd 1 /*
mbed_official 78:5f419e0f96dd 2 * Copyright (C) 2018, Arm Limited, All Rights Reserved
mbed_official 78:5f419e0f96dd 3 * SPDX-License-Identifier: Apache-2.0
mbed_official 78:5f419e0f96dd 4 *
mbed_official 78:5f419e0f96dd 5 * Licensed under the Apache License, Version 2.0 (the "License"); you may
mbed_official 78:5f419e0f96dd 6 * not use this file except in compliance with the License.
mbed_official 78:5f419e0f96dd 7 * You may obtain a copy of the License at
mbed_official 78:5f419e0f96dd 8 *
mbed_official 78:5f419e0f96dd 9 * http://www.apache.org/licenses/LICENSE-2.0
mbed_official 78:5f419e0f96dd 10 *
mbed_official 78:5f419e0f96dd 11 * Unless required by applicable law or agreed to in writing, software
mbed_official 78:5f419e0f96dd 12 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
mbed_official 78:5f419e0f96dd 13 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mbed_official 78:5f419e0f96dd 14 * See the License for the specific language governing permissions and
mbed_official 78:5f419e0f96dd 15 * limitations under the License.
mbed_official 78:5f419e0f96dd 16 *
mbed_official 78:5f419e0f96dd 17 * This file is part of Mbed TLS (https://tls.mbed.org)
mbed_official 78:5f419e0f96dd 18 */
mbed_official 78:5f419e0f96dd 19
mbed_official 78:5f419e0f96dd 20 #if !defined(MBEDTLS_MD4_C)
mbed_official 78:5f419e0f96dd 21 #define MBEDTLS_MD4_C
mbed_official 78:5f419e0f96dd 22 #endif
mbed_official 78:5f419e0f96dd 23
mbed_official 78:5f419e0f96dd 24 #if !defined(MBEDTLS_MD5_C)
mbed_official 78:5f419e0f96dd 25 #define MBEDTLS_MD5_C
mbed_official 78:5f419e0f96dd 26 #endif
mbed_official 78:5f419e0f96dd 27
mbed_official 78:5f419e0f96dd 28 #if !defined(MBEDTLS_RIPEMD160_C)
mbed_official 78:5f419e0f96dd 29 #define MBEDTLS_RIPEMD160_C
mbed_official 78:5f419e0f96dd 30 #endif
mbed_official 78:5f419e0f96dd 31
mbed_official 78:5f419e0f96dd 32 #if !defined(MBEDTLS_SHA1_C)
mbed_official 78:5f419e0f96dd 33 #define MBEDTLS_SHA1_C
mbed_official 78:5f419e0f96dd 34 #endif
mbed_official 78:5f419e0f96dd 35
mbed_official 78:5f419e0f96dd 36 #if !defined(MBEDTLS_SHA256_C)
mbed_official 78:5f419e0f96dd 37 #define MBEDTLS_SHA256_C
mbed_official 78:5f419e0f96dd 38 #endif
mbed_official 78:5f419e0f96dd 39
mbed_official 78:5f419e0f96dd 40 #if !defined(MBEDTLS_SHA512_C)
mbed_official 78:5f419e0f96dd 41 #define MBEDTLS_SHA512_C
mbed_official 78:5f419e0f96dd 42 #endif
mbed_official 78:5f419e0f96dd 43
mbed_official 78:5f419e0f96dd 44 #if !defined(MBEDTLS_ARC4_C)
mbed_official 78:5f419e0f96dd 45 #define MBEDTLS_ARC4_C
mbed_official 78:5f419e0f96dd 46 #endif
mbed_official 78:5f419e0f96dd 47
mbed_official 78:5f419e0f96dd 48 #if !defined(MBEDTLS_DES_C)
mbed_official 78:5f419e0f96dd 49 #define MBEDTLS_DES_C
mbed_official 78:5f419e0f96dd 50 #endif
mbed_official 78:5f419e0f96dd 51
mbed_official 78:5f419e0f96dd 52 #if !defined(MBEDTLS_CMAC_C)
mbed_official 78:5f419e0f96dd 53 #define MBEDTLS_CMAC_C
mbed_official 78:5f419e0f96dd 54 #endif
mbed_official 78:5f419e0f96dd 55
mbed_official 78:5f419e0f96dd 56 #if !defined(MBEDTLS_CIPHER_MODE_CBC)
mbed_official 78:5f419e0f96dd 57 #define MBEDTLS_CIPHER_MODE_CBC
mbed_official 78:5f419e0f96dd 58 #endif
mbed_official 78:5f419e0f96dd 59
mbed_official 78:5f419e0f96dd 60 #if !defined(MBEDTLS_CIPHER_MODE_CTR)
mbed_official 78:5f419e0f96dd 61 #define MBEDTLS_CIPHER_MODE_CTR
mbed_official 78:5f419e0f96dd 62 #endif
mbed_official 78:5f419e0f96dd 63
mbed_official 78:5f419e0f96dd 64 #if !defined(MBEDTLS_GCM_C)
mbed_official 78:5f419e0f96dd 65 #define MBEDTLS_GCM_C
mbed_official 78:5f419e0f96dd 66 #endif
mbed_official 78:5f419e0f96dd 67
mbed_official 78:5f419e0f96dd 68 #if !defined(MBEDTLS_CCM_C)
mbed_official 78:5f419e0f96dd 69 #define MBEDTLS_CCM_C
mbed_official 78:5f419e0f96dd 70 #endif
mbed_official 78:5f419e0f96dd 71
mbed_official 78:5f419e0f96dd 72 #if !defined(MBEDTLS_CAMELLIA_C)
mbed_official 78:5f419e0f96dd 73 #define MBEDTLS_CAMELLIA_C
mbed_official 78:5f419e0f96dd 74 #endif
mbed_official 78:5f419e0f96dd 75
mbed_official 78:5f419e0f96dd 76 #if !defined(MBEDTLS_BLOWFISH_C)
mbed_official 78:5f419e0f96dd 77 #define MBEDTLS_BLOWFISH_C
mbed_official 78:5f419e0f96dd 78 #endif
mbed_official 78:5f419e0f96dd 79
mbed_official 78:5f419e0f96dd 80 #if !defined(MBEDTLS_CTR_DRBG_C)
mbed_official 78:5f419e0f96dd 81 #define MBEDTLS_CTR_DRBG_C
mbed_official 78:5f419e0f96dd 82 #endif
mbed_official 78:5f419e0f96dd 83
mbed_official 78:5f419e0f96dd 84 #if !defined(MBEDTLS_HMAC_DRBG_C)
mbed_official 78:5f419e0f96dd 85 #define MBEDTLS_HMAC_DRBG_C
mbed_official 78:5f419e0f96dd 86 #endif
mbed_official 78:5f419e0f96dd 87
mbed_official 78:5f419e0f96dd 88 #if !defined(MBEDTLS_RSA_C)
mbed_official 78:5f419e0f96dd 89 #define MBEDTLS_RSA_C
mbed_official 78:5f419e0f96dd 90 #endif
mbed_official 78:5f419e0f96dd 91
mbed_official 78:5f419e0f96dd 92 #if !defined(MBEDTLS_DHM_C)
mbed_official 78:5f419e0f96dd 93 #define MBEDTLS_DHM_C
mbed_official 78:5f419e0f96dd 94 #endif
mbed_official 78:5f419e0f96dd 95
mbed_official 78:5f419e0f96dd 96 #if !defined(MBEDTLS_ECDSA_C)
mbed_official 78:5f419e0f96dd 97 #define MBEDTLS_ECDSA_C
mbed_official 78:5f419e0f96dd 98 #endif
mbed_official 78:5f419e0f96dd 99
mbed_official 78:5f419e0f96dd 100 #if !defined(MBEDTLS_ECDH_C)
mbed_official 78:5f419e0f96dd 101 #define MBEDTLS_ECDH_C
mbed_official 78:5f419e0f96dd 102 #endif