aboutsummaryrefslogtreecommitdiff
path: root/client/wolfssl/wolfcrypt/src/port/atmel/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'client/wolfssl/wolfcrypt/src/port/atmel/README.md')
-rw-r--r--client/wolfssl/wolfcrypt/src/port/atmel/README.md94
1 files changed, 0 insertions, 94 deletions
diff --git a/client/wolfssl/wolfcrypt/src/port/atmel/README.md b/client/wolfssl/wolfcrypt/src/port/atmel/README.md
deleted file mode 100644
index 50352fc..0000000
--- a/client/wolfssl/wolfcrypt/src/port/atmel/README.md
+++ /dev/null
@@ -1,94 +0,0 @@
-# Microchip/Atmel ATECC508A/ATECC608A Support
-
-Support for ATECC508A using these methods:
-* TLS: Using the PK callbacks and reference ATECC508A callbacks. See Coding section below. Requires options `HAVE_PK_CALLBACKS` and `WOLFSSL_ATECC_PKCB or WOLFSSL_ATECC508A`
-* wolfCrypt: Native wc_ecc_* API's using the `./configure CFLAGS="-DWOLFSSL_ATECC508A"` or `#define WOLFSSL_ATECC508A`.
-
-## Dependency
-
-Requires the Microchip CryptoAuthLib. The examples in `wolfcrypt/src/port/atmel/atmel.c` make calls to the `atcatls_*` API's.
-
-
-## Building
-
-### Build Options
-
-* `HAVE_PK_CALLBACKS`: Option for enabling wolfSSL's PK callback support for TLS.
-* `WOLFSSL_ATECC508A`: Enables support for initializing the CryptoAuthLib and setting up the encryption key used for the I2C communication.
-* `WOLFSSL_ATECC_PKCB`: Enables support for the reference PK callbacks without init.
-* `WOLFSSL_ATMEL`: Enables ASF hooks seeding random data using the `atmel_get_random_number` function.
-* `WOLFSSL_ATMEL_TIME`: Enables the built-in `atmel_get_curr_time_and_date` function get getting time from ASF RTC.
-* `ATECC_GET_ENC_KEY`: Macro to define your own function for getting the encryption key.
-* `ATECC_SLOT_I2C_ENC`: Macro for the default encryption key slot. Can also get via the slot callback with `ATMEL_SLOT_ENCKEY`.
-* `ATECC_MAX_SLOT`: Macro for the maximum dynamically allocated slots.
-
-### Build Command Examples
-
-`./configure --enable-pkcallbacks CFLAGS="-DWOLFSSL_ATECC_PKCB"`
-`#define HAVE_PK_CALLBACKS`
-`#define WOLFSSL_ATECC_PKCB`
-
-or
-
-`./configure CFLAGS="-DWOLFSSL_ATECC508A"`
-`#define WOLFSSL_ATECC508A`
-
-
-## Coding
-
-Setup the PK callbacks for TLS using:
-
-```
-/* Setup PK Callbacks for ATECC508A */
-WOLFSSL_CTX* ctx;
-wolfSSL_CTX_SetEccKeyGenCb(ctx, atcatls_create_key_cb);
-wolfSSL_CTX_SetEccVerifyCb(ctx, atcatls_verify_signature_cb);
-wolfSSL_CTX_SetEccSignCb(ctx, atcatls_sign_certificate_cb);
-wolfSSL_CTX_SetEccSharedSecretCb(ctx, atcatls_create_pms_cb);
-```
-
-The reference ATECC508A PK callback functions are located in the `wolfcrypt/src/port/atmel/atmel.c` file.
-
-
-Adding a custom context to the callbacks:
-
-```
-/* Setup PK Callbacks context */
-WOLFSSL* ssl;
-void* myOwnCtx;
-wolfSSL_SetEccKeyGenCtx(ssl, myOwnCtx);
-wolfSSL_SetEccVerifyCtx(ssl, myOwnCtx);
-wolfSSL_SetEccSignCtx(ssl, myOwnCtx);
-wolfSSL_SetEccSharedSecretCtx(ssl, myOwnCtx);
-```
-
-## Benchmarks
-
-Supports ECC SECP256R1 (NIST P-256)
-
-### TLS
-
-TLS Establishment Times:
-
-* Hardware accelerated ATECC508A: 2.342 seconds average
-* Software only: 13.422 seconds average
-
-The TLS connection establishment time is 5.73 times faster with the ATECC508A.
-
-### Cryptographic ECC
-
-Software only implementation (SAMD21 48Mhz Cortex-M0, Fast Math TFM-ASM):
-
-`EC-DHE key generation 3123.000 milliseconds, avg over 5 iterations, 1.601 ops/sec`
-`EC-DHE key agreement 3117.000 milliseconds, avg over 5 iterations, 1.604 ops/sec`
-`EC-DSA sign time 1997.000 milliseconds, avg over 5 iterations, 2.504 ops/sec`
-`EC-DSA verify time 5057.000 milliseconds, avg over 5 iterations, 0.988 ops/sec`
-
-ATECC508A HW accelerated implementation:
-`EC-DHE key generation 144.400 milliseconds, avg over 5 iterations, 34.722 ops/sec`
-`EC-DHE key agreement 134.200 milliseconds, avg over 5 iterations, 37.313 ops/sec`
-`EC-DSA sign time 293.400 milliseconds, avg over 5 iterations, 17.065 ops/sec`
-`EC-DSA verify time 208.400 milliseconds, avg over 5 iterations, 24.038 ops/sec`
-
-
-For details see our [wolfSSL Atmel ATECC508A](https://wolfssl.com/wolfSSL/wolfssl-atmel.html) page.