Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
e461fee
Merge pull request #550 from STDK/develop_rel_1_5_12
stdk-scm Apr 8, 2021
2d1626b
apps:esp32: update sdkconfig according to iot-core kconfig changes
Kwang-Hui Apr 21, 2021
aeb8a56
apps:esp8266: update sdkconfig according to iot-core kconfig changes
Kwang-Hui Apr 21, 2021
e8da9df
Sync-up with iot-core 1.6.0
stdk-scm Apr 28, 2021
5ce5978
Merge remote-tracking branch 'internal/develop_rel_1_6_0' into develop
stdk-scm Apr 28, 2021
9fe2ea1
Merge pull request #556 from STDK/develop_rel_1_6_0
stdk-scm Apr 28, 2021
51da100
Merge pull request #89 from SmartThingsCommunity/develop_rel_1_6_0
stdk-scm Apr 28, 2021
4549133
rtl: add CONFIG_STDK_CORE_EASYSETUP_DISCOVER_SSID to example
Kwang-Hui May 10, 2021
11f8728
Sync-up with iot-core 1.6.1
stdk-scm May 18, 2021
d630c65
Merge remote-tracking branch 'internal/develop_rel_1_6_1' into develop
stdk-scm May 18, 2021
0666490
Merge pull request #564 from STDK/develop_rel_1_6_1
YongsulOh May 18, 2021
3d3b760
Merge pull request #90 from SmartThingsCommunity/develop_rel_1_6_1
stdk-scm May 18, 2021
5de8c74
gettig_started: add device identity entiries details
Kwang-Hui May 24, 2021
2ed0ade
fixed code to use mbedtls_pk_parse_public_key api (#569)
seokhee06 May 28, 2021
c252d67
Add necessary makefile user configs for rtl apps.
hongye-samsung May 31, 2021
73fb1ad
Sync-up with iot-core 1.6.2
stdk-scm Jun 2, 2021
ce0e2f0
Merge remote-tracking branch 'internal/develop_rel_1_6_2' into develop
stdk-scm Jun 2, 2021
d230f35
Merge pull request #91 from SmartThingsCommunity/develop_rel_1_6_2
stdk-scm Jun 2, 2021
2316f5c
Merge branch 'develop'
stdk-scm Jun 8, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions apps/esp32/light_example/sdkconfig
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,9 @@ CONFIG_HEAP_TRACING_OFF=y
# CONFIG_HEAP_TRACING_TOHOST is not set
# CONFIG_HEAP_TRACING is not set
CONFIG_STDK_IOT_CORE=y
CONFIG_STDK_IOT_CORE_EASYSETUP_DISCOVERY_SSID=y
CONFIG_STDK_IOT_CORE_EASYSETUP_HTTP=y
CONFIG_STDK_IOT_CORE_EASYSETUP_HTTP_USE_SOCKET_API=y
# CONFIG_STDK_IOT_CORE_EASYSETUP_X509 is not set
# CONFIG_STDK_IOT_CORE_EASYSETUP_LOG_SUPPORT_NO_USE_LOGFILE is not set
CONFIG_STDK_IOT_CORE_LOG_LEVEL_ERROR=y
Expand Down
75 changes: 48 additions & 27 deletions apps/esp32/ota_demo/main/ota_util.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
#include "mbedtls/rsa.h"
#include "mbedtls/pk.h"
#include "mbedtls/ssl.h"
#include "mbedtls/error.h"

#include <stdio.h>
#include <stdlib.h>
Expand Down Expand Up @@ -279,44 +280,64 @@ static int _crypto_sha256(const unsigned char *src, size_t src_len, unsigned cha

static int _pk_verify(const unsigned char *sig, const unsigned char *hash)
{
int ret;
int ret;

mbedtls_pk_context pk;
mbedtls_pk_context pk;

unsigned char *public_key = (unsigned char *) public_key_start;
unsigned int public_key_len = public_key_end - public_key_start;
unsigned char *public_key = (unsigned char *) public_key_start;
unsigned int public_key_len = public_key_end - public_key_start;
unsigned char *public_key_buffer = NULL;

mbedtls_pk_init( &pk );
public_key_buffer = (unsigned char *)malloc(public_key_len + 1);
if (!public_key_buffer) {
printf("Couldn't allocate memory \n");
return -1;
}

ret = mbedtls_pk_parse_public_key( &pk, (const unsigned char *)public_key, public_key_len );
if (ret != 0) {
printf("Parse error: 0x%04X\n", ret);
goto clean_up;
}
memcpy(public_key_buffer, public_key, public_key_len);
public_key_buffer[public_key_len] = '\0';

if (!mbedtls_pk_can_do( &pk, MBEDTLS_PK_RSA))
{
printf("Failed! Key is not an RSA key\n");
ret = MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH;
goto clean_up;
}
mbedtls_pk_init( &pk );

ret = mbedtls_rsa_check_pubkey(mbedtls_pk_rsa(pk));
if (ret != 0) {
printf("Check pubkey failed: 0x%04X\n", ret);
goto clean_up;
}
ret = mbedtls_pk_parse_public_key( &pk, (const unsigned char *)public_key_buffer, public_key_len + 1 );
if (ret != 0) {
char error_buf[100];
mbedtls_strerror( ret, error_buf, 100);
printf( "parse error -0x%04x - %s \n", -ret, error_buf );
goto clean_up;
}

if ((ret = mbedtls_pk_verify(&pk, MBEDTLS_MD_SHA256, hash, OTA_CRYPTO_SHA256_LEN, sig, OTA_SIGNATURE_SIZE)) != 0 ) {
printf("Invalid firmware : 0x%04X\n", ret);
goto clean_up;
}
if (!mbedtls_pk_can_do( &pk, MBEDTLS_PK_RSA))
{
printf("Failed! Key is not an RSA key\n");
ret = MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH;
goto clean_up;
}

ret = mbedtls_rsa_check_pubkey(mbedtls_pk_rsa(pk));
if (ret != 0) {
char error_buf[100];
mbedtls_strerror( ret, error_buf, 100);
printf( "parse error -0x%04x - %s \n", -ret, error_buf );
goto clean_up;
}

if ((ret = mbedtls_pk_verify(&pk, MBEDTLS_MD_SHA256, hash, OTA_CRYPTO_SHA256_LEN, sig, OTA_SIGNATURE_SIZE)) != 0 ) {
char error_buf[100];
mbedtls_strerror( ret, error_buf, 100);
printf( "parse error -0x%04x - %s \n", -ret, error_buf );
goto clean_up;
}

clean_up:

mbedtls_pk_free( &pk );
if (public_key_buffer) {
free(public_key_buffer);
}

return ret;
mbedtls_pk_free( &pk );

return ret;
}

static bool _check_firmware_validation(const unsigned char *sha256, unsigned char *sig_data, unsigned int sig_len)
Expand Down
1 change: 1 addition & 0 deletions apps/esp32/ota_demo/sdkconfig
Original file line number Diff line number Diff line change
Expand Up @@ -339,6 +339,7 @@ CONFIG_HEAP_TRACING_OFF=y
# CONFIG_HEAP_TRACING_TOHOST is not set
# CONFIG_HEAP_TRACING is not set
CONFIG_STDK_IOT_CORE=y
CONFIG_STDK_IOT_CORE_EASYSETUP_DISCOVERY_SSID=y
CONFIG_STDK_IOT_CORE_EASYSETUP_HTTP=y
CONFIG_STDK_IOT_CORE_EASYSETUP_HTTP_USE_SOCKET_API=y
# CONFIG_STDK_IOT_CORE_EASYSETUP_X509 is not set
Expand Down
2 changes: 2 additions & 0 deletions apps/esp32/switch_example/sdkconfig
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,9 @@ CONFIG_HEAP_TRACING_OFF=y
# CONFIG_HEAP_TRACING_TOHOST is not set
# CONFIG_HEAP_TRACING is not set
CONFIG_STDK_IOT_CORE=y
CONFIG_STDK_IOT_CORE_EASYSETUP_DISCOVERY_SSID=y
CONFIG_STDK_IOT_CORE_EASYSETUP_HTTP=y
CONFIG_STDK_IOT_CORE_EASYSETUP_HTTP_USE_SOCKET_API=y
# CONFIG_STDK_IOT_CORE_EASYSETUP_X509 is not set
# CONFIG_STDK_IOT_CORE_EASYSETUP_LOG_SUPPORT_NO_USE_LOGFILE is not set
CONFIG_STDK_IOT_CORE_LOG_LEVEL_ERROR=y
Expand Down
1 change: 1 addition & 0 deletions apps/esp8266/light_example/sdkconfig
Original file line number Diff line number Diff line change
Expand Up @@ -354,6 +354,7 @@ CONFIG_OPENSSL_ASSERT_DO_NOTHING=y
# CONFIG_ENABLE_PTHREAD is not set
# CONFIG_USING_SPIFFS is not set
CONFIG_STDK_IOT_CORE=y
CONFIG_STDK_IOT_CORE_EASYSETUP_DISCOVERY_SSID=y
CONFIG_STDK_IOT_CORE_EASYSETUP_HTTP=y
CONFIG_STDK_IOT_CORE_EASYSETUP_HTTP_USE_SOCKET_API=y
# CONFIG_STDK_IOT_CORE_EASYSETUP_X509 is not set
Expand Down
1 change: 1 addition & 0 deletions apps/esp8266/switch_example/sdkconfig
Original file line number Diff line number Diff line change
Expand Up @@ -354,6 +354,7 @@ CONFIG_OPENSSL_ASSERT_DO_NOTHING=y
# CONFIG_ENABLE_PTHREAD is not set
# CONFIG_USING_SPIFFS is not set
CONFIG_STDK_IOT_CORE=y
CONFIG_STDK_IOT_CORE_EASYSETUP_DISCOVERY_SSID=y
CONFIG_STDK_IOT_CORE_EASYSETUP_HTTP=y
CONFIG_STDK_IOT_CORE_EASYSETUP_HTTP_USE_SOCKET_API=y
# CONFIG_STDK_IOT_CORE_EASYSETUP_X509 is not set
Expand Down
1 change: 1 addition & 0 deletions apps/rtl8195/light_example/sdkconfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#define _SDKCONFIG_H_

#define CONFIG_STDK_IOT_CORE_EASYSETUP_HTTP_USE_SOCKET_API
#define CONFIG_STDK_IOT_CORE_EASYSETUP_DISCOVERY_SSID
#define CONFIG_MBEDTLS_XTEA_C 1
#define CONFIG_MBEDTLS_KEY_EXCHANGE_RSA 1
#define CONFIG_MBEDTLS_AES_C 1
Expand Down
3 changes: 2 additions & 1 deletion apps/rtl8195/light_example/usr_config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@

CONFIG_STDK_IOT_CORE_SECURITY_BACKEND_SOFTWARE=y
CONFIG_STDK_IOT_CORE_SECURITY_BACKEND_HARDWARE=

CONFIG_STDK_IOT_CORE_EASYSETUP_HTTP_USE_SOCKET_API=y
CONFIG_STDK_IOT_CORE_EASYSETUP_DISCOVERY_SSID=y

1 change: 1 addition & 0 deletions apps/rtl8195/switch_example/sdkconfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#define _SDKCONFIG_H_

#define CONFIG_STDK_IOT_CORE_EASYSETUP_HTTP_USE_SOCKET_API
#define CONFIG_STDK_IOT_CORE_EASYSETUP_DISCOVERY_SSID
#define CONFIG_MBEDTLS_XTEA_C 1
#define CONFIG_MBEDTLS_KEY_EXCHANGE_RSA 1
#define CONFIG_MBEDTLS_AES_C 1
Expand Down
3 changes: 2 additions & 1 deletion apps/rtl8195/switch_example/usr_config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@

CONFIG_STDK_IOT_CORE_SECURITY_BACKEND_SOFTWARE=y
CONFIG_STDK_IOT_CORE_SECURITY_BACKEND_HARDWARE=

CONFIG_STDK_IOT_CORE_EASYSETUP_HTTP_USE_SOCKET_API=y
CONFIG_STDK_IOT_CORE_EASYSETUP_DISCOVERY_SSID=y

1 change: 1 addition & 0 deletions apps/rtl8720c/light_example/sdkconfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#define _SDKCONFIG_H_

#define CONFIG_STDK_IOT_CORE_EASYSETUP_HTTP_USE_SOCKET_API
#define CONFIG_STDK_IOT_CORE_EASYSETUP_DISCOVERY_SSID
#define CONFIG_MBEDTLS_XTEA_C 1
#define CONFIG_MBEDTLS_KEY_EXCHANGE_RSA 1
#define CONFIG_MBEDTLS_AES_C 1
Expand Down
3 changes: 2 additions & 1 deletion apps/rtl8720c/light_example/usr_config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@

CONFIG_STDK_IOT_CORE_SECURITY_BACKEND_SOFTWARE=y
CONFIG_STDK_IOT_CORE_SECURITY_BACKEND_HARDWARE=

CONFIG_STDK_IOT_CORE_EASYSETUP_HTTP_USE_SOCKET_API=y
CONFIG_STDK_IOT_CORE_EASYSETUP_DISCOVERY_SSID=y

1 change: 1 addition & 0 deletions apps/rtl8720c/switch_example/sdkconfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#define _SDKCONFIG_H_

#define CONFIG_STDK_IOT_CORE_EASYSETUP_HTTP_USE_SOCKET_API
#define CONFIG_STDK_IOT_CORE_EASYSETUP_DISCOVERY_SSID
#define CONFIG_MBEDTLS_XTEA_C 1
#define CONFIG_MBEDTLS_KEY_EXCHANGE_RSA 1
#define CONFIG_MBEDTLS_AES_C 1
Expand Down
3 changes: 2 additions & 1 deletion apps/rtl8720c/switch_example/usr_config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@

CONFIG_STDK_IOT_CORE_SECURITY_BACKEND_SOFTWARE=y
CONFIG_STDK_IOT_CORE_SECURITY_BACKEND_HARDWARE=

CONFIG_STDK_IOT_CORE_EASYSETUP_HTTP_USE_SOCKET_API=y
CONFIG_STDK_IOT_CORE_EASYSETUP_DISCOVERY_SSID=y

1 change: 1 addition & 0 deletions apps/rtl8721c/light_example/sdkconfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#define _SDKCONFIG_H_

#define CONFIG_STDK_IOT_CORE_EASYSETUP_HTTP_USE_SOCKET_API
#define CONFIG_STDK_IOT_CORE_EASYSETUP_DISCOVERY_SSID
#define CONFIG_MBEDTLS_XTEA_C 1
#define CONFIG_MBEDTLS_KEY_EXCHANGE_RSA 1
#define CONFIG_MBEDTLS_AES_C 1
Expand Down
3 changes: 2 additions & 1 deletion apps/rtl8721c/light_example/usr_config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@

CONFIG_STDK_IOT_CORE_SECURITY_BACKEND_SOFTWARE=y
CONFIG_STDK_IOT_CORE_SECURITY_BACKEND_HARDWARE=

CONFIG_STDK_IOT_CORE_EASYSETUP_HTTP_USE_SOCKET_API=y
CONFIG_STDK_IOT_CORE_EASYSETUP_DISCOVERY_SSID=y

1 change: 1 addition & 0 deletions apps/rtl8721c/switch_example/sdkconfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#define _SDKCONFIG_H_

#define CONFIG_STDK_IOT_CORE_EASYSETUP_HTTP_USE_SOCKET_API
#define CONFIG_STDK_IOT_CORE_EASYSETUP_DISCOVERY_SSID
#define CONFIG_MBEDTLS_XTEA_C 1
#define CONFIG_MBEDTLS_KEY_EXCHANGE_RSA 1
#define CONFIG_MBEDTLS_AES_C 1
Expand Down
3 changes: 2 additions & 1 deletion apps/rtl8721c/switch_example/usr_config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@

CONFIG_STDK_IOT_CORE_SECURITY_BACKEND_SOFTWARE=y
CONFIG_STDK_IOT_CORE_SECURITY_BACKEND_HARDWARE=

CONFIG_STDK_IOT_CORE_EASYSETUP_HTTP_USE_SOCKET_API=y
CONFIG_STDK_IOT_CORE_EASYSETUP_DISCOVERY_SSID=y

10 changes: 5 additions & 5 deletions doc/getting_started.md
Original file line number Diff line number Diff line change
Expand Up @@ -340,11 +340,11 @@ Your IoT device needs two pieces of information when connecting to the SmartThin
The mapping between `iot_nvd_t` and real storage path name can be found at `iot_bsp_nv_data_XXX.c` for [each bsp's porting layer](https://github.com/SmartThingsCommunity/st-device-sdk-c/tree/master/src/port/bsp).
[stdk-keygen.py](https://github.com/SmartThingsCommunity/st-device-sdk-c/tree/master/tools/keygen#commercial) also supports batch creation by reading csv formatted series of device serial number.

| Data Path | Description | Examples |
| :------------ | :---------------------------- | :----------------------- |
| PublicKey | Client (= Device) Public key | device.pubkey.b64 |
| PrivateKey | Client (= Device) Private key | device.seckey.b64 |
| SerialNum | Device Serial Number | SN12345678F |
| Data Path | Description | Detail | Examples |
| :------------ | :---------------------------- | :---------------------------------- | :----------------------- |
| PublicKey | Client (= Device) Public key | base64 encoded ED25519 Public Key | device.pubkey.b64 |
| PrivateKey | Client (= Device) Private key | base64 encoded ED25519 Privated Key | device.seckey.b64 |
| SerialNum | Device Serial Number | alphanumberic string (8~30) | SN12345678F |

> **Note :**
>
Expand Down
2 changes: 1 addition & 1 deletion iot-core
Submodule iot-core updated 44 files
+35 −0 CHANGELOG.md
+11 −2 Makefile
+7 −0 src/Kconfig
+5 −0 src/component.cmake
+10 −2 src/component.mk
+8 −1 src/easysetup/CMakeLists.txt
+116 −0 src/easysetup/discovery/ssid/iot_easysetup_discovery_ssid.c
+0 −1 src/easysetup/http/easysetup_http.h
+164 −356 src/easysetup/http/tcp/iot_easysetup_d2d_tcp.c
+2 −4 src/easysetup/http/tcp/iot_easysetup_httpd.c
+0 −79 src/easysetup/http/tls/iot_easysetup_d2d_tls.c
+34 −5 src/easysetup/iot_easysetup_st_mqtt.c
+1 −0 src/include/bsp/iot_bsp_fs.h
+11 −19 src/include/http/iot_easysetup_http.h
+3 −3 src/include/iot_dump_log.h
+14 −3 src/include/iot_easysetup.h
+4 −0 src/include/iot_internal.h
+3 −0 src/include/iot_main.h
+11 −0 src/include/iot_mqtt.h
+3 −0 src/include/iot_net.h
+10 −0 src/include/st_dev.h
+3 −3 src/include/st_dev_version.h
+46 −7 src/iot_api.c
+0 −36 src/iot_capability.c
+132 −7 src/iot_main.c
+1 −1 src/iot_nv_data.c
+63 −0 src/iot_serialize.c
+23 −0 src/mqtt/client/iot_mqtt_client.c
+4 −0 src/port/http/socket/CMakeLists.txt
+46 −0 src/port/http/socket/iot_easysetup_http_impl.h
+2 −3 src/port/http/socket/iot_easysetup_http_socket.c
+47 −0 src/port/net/mbedtls/iot_net_mbedtls.c
+2 −0 src/port/net/openssl/iot_net_openssl.c
+5 −2 src/port/os/freertos/iot_os_util_freertos.c
+17 −7 src/port/os/posix/iot_os_util_posix.c
+80 −6 src/security/backend/software/iot_security_be_software.c
+1 −0 stdkconfig
+2 −0 stdkconfig.cmake
+140 −6 test/TC_FUNC_iot_api.c
+61 −8 test/TC_FUNC_iot_easysetup_d2d.c
+2 −1 test/TC_UTIL_easysetup_common.c
+4 −0 test/TCs.h
+4 −0 test/TEST_main.c
+1 −0 tools/keygen/README.md