David Garske
4ee625e68e
Additional cleanups and fixes for TLS server/client examples.
2019-02-12 15:41:17 -08:00
David Garske
aaafa78624
Enhancement to the TLS clients to support better throughput benchmarking. Improved the read elapsed time for more accurate RX benchmarking. Added a simple non-TPM TLS example that integrates with the wolfTPM environment.
2019-02-12 13:37:55 -08:00
David Garske
d21ba091b4
Cleanup to combine benchmark time code and allow override using `WOLFSSL_USER_CURRTIME`. Benchmark modes can be disabled using `NO_TPM_BENCH`. Fix a few minor warnings.
2019-02-12 10:29:22 -08:00
David Garske
6d836b91ad
Fix to make sure the Crypto callback is unregistered on cleanup.
2019-02-12 09:21:37 -08:00
David Garske
0c86a92ac1
Improved error handling to ensure TPM handles are cleared. Added build option to test TLS client without mutual auth.
2019-02-07 13:14:48 -08:00
David Garske
586219164c
Fixes for TPM HMAC with CryptoCb.
2019-02-05 17:47:58 -08:00
David Garske
697b655efe
Fixes for TPM ECC verify using different hash algorithms and key sizes.
2019-02-01 13:27:52 -08:00
David Garske
a5d286c737
Fixes for various compiler warnings. Fixes for supporting new CryptoCb. Added way to implement own socket functions for TLS examples. Added TLS error codes.
2019-02-01 13:27:52 -08:00
David Garske
e057bc0a35
Cleanup to ensure `TpmCryptoDevCtx tpmCtx` is memset. Added support for handling new cryptocb update.
2019-02-01 13:27:52 -08:00
David Garske
29f773b6bb
Added benchmark CPS and KB/sec.
2019-02-01 13:27:52 -08:00
David Garske
0889c842b1
Fixed TLS client send size and signed mismatch warning. Fixed TLS server read size printf. Removed wolf init/cleanup as they are done in TPM2_Init/TPM2_Cleanup. Updated README.md.
2019-02-01 13:27:15 -08:00
David Garske
1d73ad9498
Added benchmark support for wolfTPM TLS client/server examples. Enabled with `TLS_BENCH_MODE` build macro. Refactor of the common TLS code into tls_common.h.
2019-02-01 13:26:55 -08:00
David Garske
bf67b3fd68
TLS client / server example improvements and cleanups. Adds support for using wolfSSL client/server examples with mutual auth certificate validation. Added new dummy key as to not conflict with wolfSSL test keys.
2019-02-01 13:26:55 -08:00
David Garske
d28e63c72f
Added TPM2 wrappers for symmetric AES encrypt and decrypt. Moved common test parameters into examples/tpm_test.h.
2018-12-28 12:15:58 -08:00
David Garske
037c3a2d59
Added ECDH support for ephemeral key generation and shared secret. Adds new wrapper API's `wolfTPM2_ECDHGenKey` and `wolfTPM2_ECDHGenZ`. Added crypto dev (TLS client/server) support for ECDH using TPM. Added ECDH tests in native and wrapper. Added experimental support for the 2-phase ephemeral key support with new wrapper API's `wolfTPM2_ECDHEGenKey` and `wolfTPM2_ECDHEGenZ`.
2018-11-16 13:27:22 -08:00
David Garske
f36cd4e349
Fixes for TLS server and client using RSA and ECC. Fixes for ECC sign cryptodev callback. Added an optional crypto dev callback for checking the key to determine if "fake" key is used. Added ability to use ECC permenant key for TLS examples using `USE_TLS_ECC`.
2018-11-14 09:51:06 -08:00
David Garske
380168c71d
Fix for crypto dev RSA sign verify, so it uses the TPM private key for the verification (instead of trying to load the public key).
2018-11-13 16:14:26 -08:00
David Garske
d8b2ea6309
Added TLS server example for wolfTPM. Added `examples/README.md`.
2018-11-13 15:45:39 -08:00
David Garske
6fe075911a
* Added advanced IO callback support (enabled using `--enable-advio` or `#define WOLFTPM_ADV_IO`).
...
* Added ST33 TPM 2.0 support (`--enable-st33` or `#define WOLFTPM_ST33`). Only SPI version is tested and verified.
* Experimental TIS I2C support (`--enable-i2c` or `#define WOLFTPM_I2C`).
* Cleanup of the IO callback examples.
* Added support for Atmel ASF SPI.
2018-08-22 16:40:33 -07:00
David Garske
d8174d4ef7
Added build option to disable wolfCrypt dependency using `./configure --disable-wolfcrypt` or `#define WOLFTPM2_NO_WOLFCRYPT`. Moved types and configuration/port specific items into new `tpm2_types.h`. Removed execute bit on serveral files.
2018-08-12 15:25:35 -07:00
David Garske
1f92254215
Fix for some TPM hardware, which does not support RSA validating using an exponent value less than 7. Can skip check using build option `WOLFTPM_NO_SOFTWARE_RSA`. Fix for the `wolfSSL_Connect` return code check in TLS client example.
2018-07-20 14:43:30 -07:00
David Garske
8d74a1b5ad
Fix to handle a TLS connect failure in the example. Fix to return better erorr code for timeout talking to HW.
2018-07-19 12:17:47 -07:00
David Garske
6ae32daa52
Fix TLS client example to properly shutdown before closing socket. Added additional logging and fixed comment about certreq.sh script. Improved the cert signing script to not prompt. Also supports option `./certs/certreq.sh clean` to do a clean sign. Added way to do a TPM clean/reset using `TPM2_Wrapper_SetReset`.
2018-07-18 16:29:15 -07:00
David Garske
0aad134b4b
Minor fix for warning when building without debug enabled.
2018-07-18 16:28:50 -07:00
David Garske
d489452d53
Updates to TPM based TLS Client example. Added CSR generation of an ECC Certificate. Added scripts to help with making certificates from the CSR. TLS still has some outstanding work for ECDHE.
2018-07-18 16:28:50 -07:00
David Garske
f1e82ac0e4
Added PKCS7, CSR and TLS Client examples using the TPM. Added builtin wrapper support for `WOLF_CRYPT_DEV`, which enables wolfCrypt PK type callbacks for RSA and ECC. Moved some of the example configuration into `./examples/tpm_io.h`. TLS Client example is not complete.
2018-07-18 16:28:50 -07:00