# DEMO program with ATECC608A on ESP-WROOM-32SE
## Overview
 Running demo programs with ATECC608A on 32SE by setting *WOLFSSL_ESPWROOM32SE* definition

Including the following examples:

* simple tls_client/tls_server
* crypt benchmark

 The *user_settings.h* file enables some of the hardened settings. 
 
## Requirements
 1. ESP-IDF development framework  
    [https://docs.espressif.com/projects/esp-idf/en/latest/get-started/]

 2. Microchip CryptoAuthentication Library  
    [https://github.com/MicrochipTech/cryptoauthlib]
    
## Setup
 1. wolfSSL under ESP-IDF. Please see [README.md](https://github.com/wolfSSL/wolfssl/blob/master/IDE/Espressif/ESP-IDF/README.md)
 2. CryptoAuthentication Library under ESP-IDF. Please see [README.md](https://github.com/miyazakh/cryptoauthlib_esp_idf/blob/master/README.md)
 
 3. Uncomment out #define WOLFSSL_ESPWROOM32SE in /path/to/wolfssl/wolfssl/wolfcrypt/settings.h
 
    Note : Need to enable WOLFSSL_ESPIDF  
    Note : crypt test will fail if enabled WOLFSSL_ESPWROOM32SE
 
## Configuration
 1. The *user_settings.h* can be found in /path/to/esp-idf/components/wolfssl/include/user_settings.h

## Build examples
 1. See README in each example folder

## Benchmark
w/o atecc608a
```
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.091 sec, avg 272.750 ms, 3.666 ops/sec
ECDSA    256 sign            4 ops took 1.102 sec, avg 275.500 ms, 3.630 ops/sec
ECDSA    256 verify          2 ops took 1.091 sec, avg 545.500 ms, 1.833 ops/sec
```
w/ atecc608a
```
ECC      256 key gen        11 ops took 1.074 sec, avg 97.636 ms, 10.242 ops/sec
ECDHE    256 agree           6 ops took 1.068 sec, avg 178.000 ms, 5.618 ops/sec
ECDSA    256 sign            8 ops took 1.009 sec, avg 126.125 ms, 7.929 ops/sec
ECDSA    256 verify         14 ops took 1.079 sec, avg 77.071 ms, 12.975 ops/sec
```

## Support
 For question please email [support@wolfssl.com]

 Note: This is tested with the following condition:
 
- Model    : ESP32-WROOM-32SE  
- ESP-IDF  : v3.3-beta1-39-g6cb37ecc5(commit hash : 6cb37ecc5)  
- CryptAuthLib: commit hash : c6b176e
- OS       : Ubuntu 18.04.1 LTS (Bionic Beaver)
