5a Esp8266 Sdk Ssl User Manual Cn V1.4
User Manual:
Open the PDF directly: View PDF
.
Page Count: 18

!
!
!
ESP8266 SSL
Version 1.4
Espressif Systems IOT Team
http://bbs.espressif.com/
Copyright © 2016

!
" " !"
Espressif Systems
ESP8266 SSL User Manual
URL
“”
Wi-FiWi-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.binesp_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
• C A
• 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
• C A
: !
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
• E S P 8 2 6 6 _ N O N O S _ S D K \ e x a m p l e s \ I o T _ D e m o
• 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
• E S P 8 2 6 6 _ N O N O S _ S D K \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)
• 2KBytesSSL
‣ 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