revert changes + spelling/comments

This commit is contained in:
Saksik Remy
2021-12-22 15:11:50 +08:00
parent 9091cbde5f
commit c7fc0fac05
3 changed files with 25 additions and 15 deletions

View File

@ -108,16 +108,18 @@ wolfSSL_iotsafe_on(ssl, PRIVKEY_ID, ECDH_KEYPAIR_ID, PEER_PUBKEY_ID, PEER_CERT_I
First, user needs to build wolfSSL with the following options: First, user needs to build wolfSSL with the following options:
``` ```
./configure --enable-tls13 --enable-pkcallbacks --enable-debug --enable-iotsafe --enable-hkdf ./configure CFLAGS="-DWOLFSSL_TRUST_PEER_CERT" --enable-tls13 --enable-pkcallbacks --enable-debug --enable-iotsafe --enable-hkdf
``` ```
Additionally, user can pass `CFLAGS="-DDEBUG_WOLFSSL -DWOLFSSL_DEBUG_TLS -DDEBUG_IOTSAFE"` if more debugging information is to be used. This can clutter the demo stdout more than `--enable-debug` does, but this is very useful to see the overall TLS 1.3 handshaking process with IoT-SAFE. Additionally, user can pass `CFLAGS="-DDEBUG_WOLFSSL -DWOLFSSL_DEBUG_TLS -DDEBUG_IOTSAFE"` if more debugging information is to be used. This can clutter the demo stdout more than `--enable-debug` does, but this is very useful to see the overall TLS 1.3 handshaking process with IoT-SAFE.
Hence, the full wolfSSL build for the demo is: Hence, the full wolfSSL build for the demo is:
``` ```
./configure CFLAGS="-DDEBUG_WOLFSSL -DWOLFSSL_DEBUG_TLS -DDEBUG_IOTSAFE" --enable-tls13 --enable-pkcallbacks --enable-debug --enable-iotsafe ./configure CFLAGS="-DWOLFSSL_TRUST_PEER_CERT -DDEBUG_WOLFSSL -DWOLFSSL_DEBUG_TLS -DDEBUG_IOTSAFE" --enable-tls13 --enable-pkcallbacks --enable-debug --enable-iotsafe
``` ```
`-DWOLFSSL_TRUST_PEER_CERT` is needed for `wolfSSL_CTX_trust_peer_buffer` in `IDE/iotsafe-raspberrypi/client-tls13.c`
### Running ### Running
After building wolfSSL, from this directory, run `make` and a help usage will be shown. After building wolfSSL, from this directory, run `make` and a help usage will be shown.
@ -129,7 +131,7 @@ make all
Run below to enable printing UART IO: Run below to enable printing UART IO:
``` ```
make all ENABLE_DEBUG_UART_IO_EXTRA=on make all ENABLE_DEBUG_UART_IO_EXTRA=on|off
``` ```
Run the built `./main.bin` to print the help usage. Run the built `./main.bin` to print the help usage.

View File

@ -187,7 +187,7 @@ int client_loop(const char *peer_ip, const char *peer_name, const char *peer_por
/* Construct HTTP POST */ /* Construct HTTP POST */
// Header /* Header */
strcat(buff, "POST /iot/device HTTP/1.1\r\n"); strcat(buff, "POST /iot/device HTTP/1.1\r\n");
strcat(buff, "Content-Type: application/json\r\n"); strcat(buff, "Content-Type: application/json\r\n");
strcat(buff, "Content-Length: 1000\r\n"); strcat(buff, "Content-Length: 1000\r\n");
@ -198,10 +198,10 @@ int client_loop(const char *peer_ip, const char *peer_name, const char *peer_por
strcat(buff, peer_port); strcat(buff, peer_port);
strcat(buff, "\r\n"); strcat(buff, "\r\n");
// Delimiter /* Delimiter */
strcat(buff, "\r\n"); strcat(buff, "\r\n");
// Body /* Body */
srand(time(NULL)); srand(time(NULL));
int devid = rand() % 100; int devid = rand() % 100;
char snum[5] = {0}; char snum[5] = {0};
@ -240,7 +240,7 @@ int client_loop(const char *peer_ip, const char *peer_name, const char *peer_por
/* Fill in the server address */ /* Fill in the server address */
printf("Peer port: %s\n", peer_port); printf("Peer port: %s\n", peer_port);
servAddr.sin_family = AF_INET; // Using IPv4 servAddr.sin_family = AF_INET; /* Using IPv4 */
servAddr.sin_port = htons(atoi(peer_port)); servAddr.sin_port = htons(atoi(peer_port));
/* Get the server IPv4 address from the command line call */ /* Get the server IPv4 address from the command line call */

View File

@ -453,7 +453,7 @@ static int iotsafe_readfile(uint8_t *file_id, uint16_t file_id_sz,
return ret; return ret;
} }
filesz_s = search_tlv(resp, ret, 0x20); filesz_s = search_tlv(resp + 4, ret, 0x20);
if ((filesz_s) && (XSTRLEN(filesz_s)) >= 8) { if ((filesz_s) && (XSTRLEN(filesz_s)) >= 8) {
uint8_t fs_msb, fs_lsb; uint8_t fs_msb, fs_lsb;
if (hex_to_bytes(filesz_s + 4, &fs_msb, 1) < 0) if (hex_to_bytes(filesz_s + 4, &fs_msb, 1) < 0)
@ -730,25 +730,32 @@ static int iotsafe_hkdf_extract(byte* prk, const byte* salt, word32 saltLen,
WOLFSSL_MSG("Enter iotsafe_hkdf_extract"); WOLFSSL_MSG("Enter iotsafe_hkdf_extract");
switch (digest) { switch (digest) {
#ifndef NO_SHA256
case WC_SHA256: case WC_SHA256:
hash_algo = (uint16_t)1; hash_algo = (uint16_t)1;
if (ikmLen == 0) { if (ikmLen == 0) {
len = WC_SHA256_DIGEST_SIZE; len = WC_SHA256_DIGEST_SIZE;
} }
break; break;
#endif
#ifdef WOLFSSL_SHA384
case WC_SHA384: case WC_SHA384:
hash_algo = (uint16_t)2; hash_algo = (uint16_t)2;
if (ikmLen == 0) { if (ikmLen == 0) {
len = WC_SHA384_DIGEST_SIZE; len = WC_SHA384_DIGEST_SIZE;
} }
break; break;
#endif
#ifdef WOLFSSL_TLS13_SHA512
case WC_SHA512: case WC_SHA512:
hash_algo = (uint16_t)4; hash_algo = (uint16_t)4;
if (ikmLen == 0) { if (ikmLen == 0) {
len = WC_SHA512_DIGEST_SIZE; len = WC_SHA512_DIGEST_SIZE;
} }
break; break;
#endif
default: default:
return BAD_FUNC_ARG;
break; break;
} }
@ -848,13 +855,14 @@ static int iotsafe_sign_hash(byte *privkey_idx, uint16_t id_size,
ret = expect_csim_response(csim_cmd, (word32)XSTRLEN(csim_cmd), &resp); ret = expect_csim_response(csim_cmd, (word32)XSTRLEN(csim_cmd), &resp);
if (ret >= 0) { if (ret >= 0) {
byte sig_hdr[2]; byte sig_hdr[3];
if (hex_to_bytes(resp, sig_hdr, 2) < 0) { if (hex_to_bytes(resp, sig_hdr, 3) < 0) {
ret = BAD_FUNC_ARG; ret = BAD_FUNC_ARG;
} else if ((sig_hdr[0] == IOTSAFE_TAG_SIGNATURE_FIELD) && } else if ((sig_hdr[0] == IOTSAFE_TAG_SIGNATURE_FIELD) &&
(sig_hdr[1] == 2 * IOTSAFE_ECC_KSIZE)) { (sig_hdr[1] == 0) &&
XSTRNCPY(R, resp + 4, IOTSAFE_ECC_KSIZE * 2); (sig_hdr[2] == 2 * IOTSAFE_ECC_KSIZE)) {
XSTRNCPY(S, resp + 4 + IOTSAFE_ECC_KSIZE * 2, XSTRNCPY(R, resp + 6, IOTSAFE_ECC_KSIZE * 2);
XSTRNCPY(S, resp + 6 + IOTSAFE_ECC_KSIZE * 2,
IOTSAFE_ECC_KSIZE * 2); IOTSAFE_ECC_KSIZE * 2);
ret = wc_ecc_rs_to_sig(R, S, signature, sigLen); ret = wc_ecc_rs_to_sig(R, S, signature, sigLen);
} else { } else {
@ -1045,8 +1053,8 @@ static int wolfIoT_hkdf_extract(byte* prk, const byte* salt, word32 saltLen,
ret = iotsafe_hkdf_extract(prk, salt, saltLen, ikm, ikmLen, digest); ret = iotsafe_hkdf_extract(prk, salt, saltLen, ikm, ikmLen, digest);
} }
else{ else{
#ifdef DEBUG_IOTSAFE #ifdef DEBUG_IOTSAFE
printf("NULL Salt length not supported by IoT Safe Applet, fallback to software implementation\n"); printf("SALT is NULL, not supported by IoT Safe Applet, fallback to software implementation\n");
#endif #endif
ret = wc_Tls13_HKDF_Extract(prk, salt, saltLen, ikm, ikmLen, digest); ret = wc_Tls13_HKDF_Extract(prk, salt, saltLen, ikm, ikmLen, digest);
} }