ESP8266 SSL ÒB µ Y -...

18
ESP8266 SSL ےአಋ Version 1.4 Espressif Systems IOT Team http://bbs.espressif.com/ Copyright © 2016

Transcript of ESP8266 SSL ÒB µ Y -...

ESP8266 SSL Version 1.4

Espressif Systems IOT Team

http://bbs.espressif.com/

Copyright © 2016

" " " Espressif Systems ESP8266 SSL User Manual

URL

“ ”

Wi-Fi Wi-Fi

© 2016

Espressif Systems �/� April 22, 20162 18

" " " Espressif Systems ESP8266 SSL User Manual

1. 4...................................................................................................................

2. ESP8266 SSL server 5............................................................................2.1. 5........................................................................................

3. ESP8266 SSL client 9.............................................................................3.1. 9........................................................................................

4. 10.....................................................................................................4.1. espconn_secure_ca_enable 10........................................................4.2. espconn_secure_ca_disable 11.......................................................4.3. espconn_secure_cert_req_enable 12..............................................4.4. espconn_secure_cert_req_disable 12.............................................4.5. espconn_secure_set_default_certificate 13.....................................4.6. espconn_secure_set_default_private_key 13..................................4.7. espconn_secure_accept 14.............................................................4.8. espconn_secure_delete 15..............................................................4.9. espconn_secure_set_size 15...........................................................4.10. espconn_secure_get_size 16...........................................................4.11. espconn_secure_connect 17...........................................................4.12. espconn_secure_send 17................................................................4.13. espconn_secure_disconnect 18......................................................

Espressif Systems �/� April 22, 20163 18

" " " Espressif Systems ESP8266 SSL User Manual

1.

ESP8266_NONOS_SDK SSL ESP8266 SSL server ESP8266 SSL client

SSL SSL 8KB (espconn_secure_set_size) SSL 22KB

SSL espconn_secure_set_size 3072

SSL

SSL test_cert_and_creat_information TLS_BiDirectVerif_Demo

Espressif Systems �/� April 22, 20164 18

" " " Espressif Systems ESP8266 SSL User Manual

2. ESP8266 SSL server

ESP8266 SSL server SSL cert.h

private_key.h IOT_Demo #define SERVER_SSL_ENABLE SSL server

CA espconn_secure_ca_enable CA

2.1.

(1) “makefile.sh” lubuntu lubuntu Espressif BBS

• http://bbs.espressif.com/viewtopic.php?f=21&t=86

(2)

• “LXTerminal”

Espressif Systems �/� April 22, 20165 18

" " " Espressif Systems ESP8266 SSL User Manual

• ./mount.sh

• espressif

(3)

Espressif Systems �/� April 22, 20166 18

" " " Espressif Systems ESP8266 SSL User Manual

(4) ./makefile.sh , cert.h private_key.h

IOT_Demo

• makefile.sh IP server IP

Espressif Systems �/� April 22, 20167 18

" " " Espressif Systems ESP8266 SSL User Manual

• makefile.sh 1024 512

makefile.sh 1024 512

• ESP8266_NONOS_SDK_V1.4.0

espconn_secure_set_default_certificate espconn_secure_set_default_private_key

• makefile.sh SSL server Espressif Systems CA CA makefile.sh TLS.ca_x509.cer SSL

client 3.1 “make_cacert.py” CA esp_ca_cert.bin Flash

Espressif Systems �/� April 22, 20168 18

" " " Espressif Systems ESP8266 SSL User Manual

3. ESP8266 SSL client

IOT_Demo #define CLIENT_SSL_ENABLE SSL client

ESP8266 SSL client

CA espconn_secure_ca_enable CA

ESP8266 SSL client espconn_secure_cert_req_enable

SSL “TLS_BiDirectVerif_Demo”

3.1.

(1) makefile.sh CA TLS.ca_x509.cer

(2) CA SSL client TLS.x509_1024.cer

(3) SSL client TLS.key_1024

(4) “make_cacert.py” CA TLS.ca_x509.cer

(5) “make_cacert.py” CA esp_ca_cert.bin esp_ca_cert.bin

espconn_secure_ca_enable

(6) TLS.x509_1024.cer certificate.cer

TLS.key_1024 private_key.key_1024

(7) make_cert.py

(8) make_cert.py esp_cert_private_key.bin esp_cert_private_key.bin

espconn_secure_cert_req_enable

Espressif Systems �/� April 22, 20169 18

" " " Espressif Systems ESP8266 SSL User Manual

4.

SSL TCP SDK

SSL

• espconn_secure_XXX

• espconn_regist_XXX espconn_regist_write_finish

• espconn_port

espconn_secure_XXX ESP8266 “2C-ESP8266__SDK__API Guide”

SSL BBS Demo http://bbs.espressif.com/viewtopic.php?f=21&t=389

4.1. espconn_secure_ca_enable

:

SSL CA

• CA

• esp_ca_cert.bin

• SSL

espconn_secure_accept (ESP8266 TCP SSL server)

espconn_secure_connect (ESP8266 TCP SSL client)

: bool espconn_secure_ca_enable (uint8 level, uint32 flash_sector)

:

uint8 level : ESP8266 SSL server/client

0x01 SSL client

Espressif Systems � /� April 22, 201610 18

" " " Espressif Systems ESP8266 SSL User Manual

0x02 SSL server

0x03 SSL client SSL server

uint32 flash_sector : CA (esp_ca_cert.bin) Flash

0x3B Flash 0x3B000

:

true :

false :

4.2. espconn_secure_ca_disable

:

SSL CA

• CA

: bool espconn_secure_ca_disable (uint8 level)

:

uint8 level : ESP8266 SSL server/client

0x01 SSL client

0x02 SSL server

0x03 SSL client SSL server

:

true :

false :

Espressif Systems � /� April 22, 201611 18

" " " Espressif Systems ESP8266 SSL User Manual

4.3. espconn_secure_cert_req_enable

:

ESP8266 SSL client

• espconn_secure_connect

: bool espconn_secure_cert_req_enable (uint8 level, uint32 flash_sector)

:

uint8 level : 0x01 ESP8266 SSL client

uint32 flash_sector : (esp_cert_private_key.bin) Flash

0x3A Flash 0x3A000

:

true :

false :

4.4. espconn_secure_cert_req_disable

:

ESP8266 SSL client

: bool espconn_secure_ca_disable (uint8 level)

Espressif Systems � /� April 22, 201612 18

" " " Espressif Systems ESP8266 SSL User Manual

:

uint8 level : 0x01 ESP8266 SSL client

:

true :

false :

4.5. espconn_secure_set_default_certificate

:

ESP8266 SSL server

• ESP8266_NONOS_SDK\examples\IoT_Demo

• espconn_secure_accept

: bool espconn_secure_set_default_certificate (const uint8_t* certificate, uint16_t length)

:

const uint8_t* certificate :

uint16_t length :

:

true :

false :

4.6. espconn_secure_set_default_private_key

:

ESP8266 SSL server

Espressif Systems � /� April 22, 201613 18

" " " Espressif Systems ESP8266 SSL User Manual

• ESP8266_NONOS_SDK\examples\IoT_Demo

• espconn_secure_accept

: bool espconn_secure_set_default_private_key (const uint8_t* key, uint16_t length)

:

const uint8_t* key :

uint16_t length :

:

true :

false :

4.7. espconn_secure_accept

:

SSL TCP server SSL

• SSL server SSL

client

• SSL espconn_secure_set_size

ESP8266 SSL espconn_reconnect_callback

• SSL server espconn_secure_set_default_certificate

espconn_secure_set_default_private_key

: sint8 espconn_secure_accept(struct espconn *espconn)

:

struct espconn *espconn :

Espressif Systems � /� April 22, 201614 18

" " " Espressif Systems ESP8266 SSL User Manual

: 0 : Non-0 : ESPCONN_ARG - espconn TCP

ESPCONN_MEM -

ESPCONN_ISCONN -

4.8. espconn_secure_delete

:

ESP8266 SSL server

: sint8 espconn_secure_delete(struct espconn *espconn)

:

struct espconn *espconn :

:

0 :

Non-0 :

ESPCONN_ARG - espconn

ESPCONN_INPROGRESS - espconn SSL

espconn_secure_disconnect

4.9. espconn_secure_set_size

:

(SSL)

• 2KBytes SSL

‣ espconn_secure_accept (ESP8266 TCP SSL server)

Espressif Systems � /� April 22, 201615 18

" " " Espressif Systems ESP8266 SSL User Manual

‣ espconn_secure_connect (ESP8266 TCP SSL client)

: bool espconn_secure_set_size (uint8 level, uint16 size)

: uint8 level : ESP8266 SSL server/client

0x01 SSL client

0x02 SSL server

0x03 SSL client SSL server

uint16 size : 1 ~ 8192

2048

:

true :

false :

4.10. espconn_secure_get_size

:

(SSL)

: sint16 espconn_secure_get_size (uint8 level)

: uint8 level : ESP8266 SSL server/client

0x01 SSL client

0x02 SSL server

0x03 SSL client SSL server

:

(SSL)

Espressif Systems � /� April 22, 201616 18

" " " Espressif Systems ESP8266 SSL User Manual

4.11. espconn_secure_connect

:

(SSL) TCP SSL server (ESP8266 TCP SSL client)

• ESP8266 SSL client

espconn_secure_disconnect SSL

• SSL espconn_secure_set_size

ESP8266 SSL espconn_reconnect_callback

: sint8 espconn_secure_connect (struct espconn *espconn)

:

struct espconn *espconn :

:

0 :

Non-0 :

ESPCONN_ARG - espconn TCP

ESPCONN_MEM -

ESPCONN_ISCONN -

4.12. espconn_secure_send

:

(SSL)

espconn_sent_callback

Espressif Systems � /� April 22, 201617 18

" " " Espressif Systems ESP8266 SSL User Manual

: sint8 espconn_secure_send ( struct espconn *espconn, uint8 *psent, uint16 length)

:

struct espconn *espconn :

uint8 *psent :

uint16 length :

:

0 :

Non-0 : ESPCONN_ARG - espconn TCP

4.13. espconn_secure_disconnect

:

TCP (SSL)

: sint8 espconn_secure_disconnect(struct espconn *espconn)

:

struct espconn *espconn :

:

0 :

Non-0 : ESPCONN_ARG - espconn TCP

Espressif Systems � /� April 22, 201618 18