@@ -92,24 +92,6 @@ STATIC mp_obj_t ssl_socket_make_new(mp_obj_ssl_context_t *ssl_context, mp_obj_t
92
92
/******************************************************************************/
93
93
// Helper functions.
94
94
95
- STATIC mp_obj_t read_file (mp_obj_t self_in ) {
96
- // file = open(args[0], "rb")
97
- mp_obj_t f_args [2 ] = {
98
- self_in ,
99
- MP_OBJ_NEW_QSTR (MP_QSTR_rb ),
100
- };
101
- mp_obj_t file = mp_vfs_open (2 , & f_args [0 ], (mp_map_t * )& mp_const_empty_map );
102
-
103
- // data = file.read()
104
- mp_obj_t dest [2 ];
105
- mp_load_method (file , MP_QSTR_read , dest );
106
- mp_obj_t data = mp_call_method_n_kw (0 , 0 , dest );
107
-
108
- // file.close()
109
- mp_stream_close (file );
110
- return data ;
111
- }
112
-
113
95
#ifdef MBEDTLS_DEBUG_C
114
96
STATIC void mbedtls_debug (void * ctx , int level , const char * file , int line , const char * str ) {
115
97
(void )ctx ;
@@ -258,9 +240,7 @@ STATIC mp_obj_t ssl_context_make_new(const mp_obj_type_t *type_in, size_t n_args
258
240
}
259
241
260
242
if (endpoint == MBEDTLS_SSL_IS_CLIENT ) {
261
- // The CPython default is MBEDTLS_SSL_VERIFY_REQUIRED, but to maintain
262
- // backwards compatibility we use MBEDTLS_SSL_VERIFY_NONE for now.
263
- self -> authmode = MBEDTLS_SSL_VERIFY_NONE ;
243
+ self -> authmode = MBEDTLS_SSL_VERIFY_REQUIRED ;
264
244
} else {
265
245
self -> authmode = MBEDTLS_SSL_VERIFY_NONE ;
266
246
}
@@ -398,25 +378,9 @@ STATIC void ssl_context_load_key(mp_obj_ssl_context_t *self, mp_obj_t key_obj, m
398
378
}
399
379
400
380
// SSLContext.load_cert_chain(certfile, keyfile)
401
- STATIC mp_obj_t ssl_context_load_cert_chain (mp_obj_t self_in , mp_obj_t certfile , mp_obj_t keyfile ) {
381
+ STATIC mp_obj_t ssl_context_load_cert_chain (mp_obj_t self_in , mp_obj_t cert , mp_obj_t pkey ) {
402
382
mp_obj_ssl_context_t * self = MP_OBJ_TO_PTR (self_in );
403
- mp_obj_t pkey ;
404
- mp_obj_t cert ;
405
- if (certfile != mp_const_none ) {
406
- // check if key is a string/path
407
- if (!(mp_obj_is_type (keyfile , & mp_type_bytes ))) {
408
- pkey = read_file (keyfile );
409
- } else {
410
- pkey = keyfile ;
411
- }
412
- // check if cert is a string/path
413
- if (!(mp_obj_is_type (certfile , & mp_type_bytes ))) {
414
- cert = read_file (certfile );
415
- } else {
416
- cert = certfile ;
417
- }
418
- ssl_context_load_key (self , pkey , cert );
419
- }
383
+ ssl_context_load_key (self , pkey , cert );
420
384
return mp_const_none ;
421
385
}
422
386
STATIC MP_DEFINE_CONST_FUN_OBJ_3 (ssl_context_load_cert_chain_obj , ssl_context_load_cert_chain );
@@ -433,25 +397,20 @@ STATIC void ssl_context_load_cadata(mp_obj_ssl_context_t *self, mp_obj_t cadata_
433
397
mbedtls_ssl_conf_ca_chain (& self -> conf , & self -> cacert , NULL );
434
398
}
435
399
436
- // SSLContext.load_verify_locations(cafile=None, *, cadata=None)
400
+ // SSLContext.load_verify_locations(*, cadata=None)
437
401
STATIC mp_obj_t ssl_context_load_verify_locations (size_t n_args , const mp_obj_t * pos_args ,
438
402
mp_map_t * kw_args ) {
439
403
440
404
static const mp_arg_t allowed_args [] = {
441
- { MP_QSTR_cafile , MP_ARG_OBJ , {.u_rom_obj = MP_ROM_NONE } },
442
405
{ MP_QSTR_cadata , MP_ARG_KW_ONLY | MP_ARG_OBJ , {.u_rom_obj = MP_ROM_NONE } },
443
406
};
444
407
445
408
mp_obj_ssl_context_t * self = MP_OBJ_TO_PTR (pos_args [0 ]);
446
409
mp_arg_val_t args [MP_ARRAY_SIZE (allowed_args )];
447
410
mp_arg_parse_all (n_args - 1 , pos_args + 1 , kw_args , MP_ARRAY_SIZE (allowed_args ), allowed_args , args );
448
- // cafile
449
- if (args [0 ].u_obj != mp_const_none ) {
450
- ssl_context_load_cadata (self , read_file (args [0 ].u_obj ));
451
- }
452
411
// cadata
453
- if (args [1 ].u_obj != mp_const_none ) {
454
- ssl_context_load_cadata (self , args [1 ].u_obj );
412
+ if (args [0 ].u_obj != mp_const_none ) {
413
+ ssl_context_load_cadata (self , args [0 ].u_obj );
455
414
}
456
415
return mp_const_none ;
457
416
}
@@ -810,65 +769,8 @@ STATIC MP_DEFINE_CONST_OBJ_TYPE(
810
769
/******************************************************************************/
811
770
// ssl module.
812
771
813
- STATIC mp_obj_t mod_ssl_wrap_socket (size_t n_args , const mp_obj_t * pos_args , mp_map_t * kw_args ) {
814
- enum {
815
- ARG_key ,
816
- ARG_cert ,
817
- ARG_server_side ,
818
- ARG_server_hostname ,
819
- ARG_cert_reqs ,
820
- ARG_cadata ,
821
- ARG_do_handshake ,
822
- ARG_cert_callback ,
823
- };
824
- static const mp_arg_t allowed_args [] = {
825
- { MP_QSTR_key , MP_ARG_KW_ONLY | MP_ARG_OBJ , {.u_rom_obj = MP_ROM_NONE } },
826
- { MP_QSTR_cert , MP_ARG_KW_ONLY | MP_ARG_OBJ , {.u_rom_obj = MP_ROM_NONE } },
827
- { MP_QSTR_server_side , MP_ARG_KW_ONLY | MP_ARG_BOOL , {.u_bool = false} },
828
- { MP_QSTR_server_hostname , MP_ARG_KW_ONLY | MP_ARG_OBJ , {.u_rom_obj = MP_ROM_NONE } },
829
- { MP_QSTR_cert_reqs , MP_ARG_KW_ONLY | MP_ARG_INT , {.u_int = MBEDTLS_SSL_VERIFY_NONE }},
830
- { MP_QSTR_cadata , MP_ARG_KW_ONLY | MP_ARG_OBJ , {.u_rom_obj = MP_ROM_NONE } },
831
- { MP_QSTR_do_handshake , MP_ARG_KW_ONLY | MP_ARG_BOOL , {.u_bool = true} },
832
- { MP_QSTR_cert_callback , MP_ARG_KW_ONLY | MP_ARG_OBJ , {.u_rom_obj = MP_ROM_NONE } },
833
- };
834
-
835
- // Parse arguments.
836
- mp_obj_t sock = pos_args [0 ];
837
- mp_arg_val_t args [MP_ARRAY_SIZE (allowed_args )];
838
- mp_arg_parse_all (n_args - 1 , pos_args + 1 , kw_args , MP_ARRAY_SIZE (allowed_args ), allowed_args , args );
839
-
840
- // Create SSLContext.
841
- mp_int_t protocol = args [ARG_server_side ].u_bool ? MBEDTLS_SSL_IS_SERVER : MBEDTLS_SSL_IS_CLIENT ;
842
- mp_obj_t ssl_context_args [1 ] = { MP_OBJ_NEW_SMALL_INT (protocol ) };
843
- mp_obj_ssl_context_t * ssl_context = MP_OBJ_TO_PTR (ssl_context_make_new (& ssl_context_type , 1 , 0 , ssl_context_args ));
844
-
845
- // Load key and cert if given.
846
- if (args [ARG_key ].u_obj != mp_const_none ) {
847
- ssl_context_load_key (ssl_context , args [ARG_key ].u_obj , args [ARG_cert ].u_obj );
848
- }
849
-
850
- // Set the verify_mode.
851
- mp_obj_t dest [2 ] = { MP_OBJ_SENTINEL , MP_OBJ_NEW_SMALL_INT (args [ARG_cert_reqs ].u_int ) };
852
- ssl_context_attr (MP_OBJ_FROM_PTR (ssl_context ), MP_QSTR_verify_mode , dest );
853
- mp_obj_t dest2 [2 ] = { MP_OBJ_SENTINEL , args [ARG_cert_callback ].u_obj };
854
- ssl_context_attr (MP_OBJ_FROM_PTR (ssl_context ), MP_QSTR_cert_callback , dest2 );
855
-
856
- // Load cadata if given.
857
- if (args [ARG_cadata ].u_obj != mp_const_none ) {
858
- ssl_context_load_cadata (ssl_context , args [ARG_cadata ].u_obj );
859
- }
860
-
861
- // Create and return the new SSLSocket object.
862
- return ssl_socket_make_new (ssl_context , sock , args [ARG_server_side ].u_bool ,
863
- args [ARG_do_handshake ].u_bool , args [ARG_server_hostname ].u_obj );
864
- }
865
- STATIC MP_DEFINE_CONST_FUN_OBJ_KW (mod_ssl_wrap_socket_obj , 1 , mod_ssl_wrap_socket );
866
-
867
- STATIC const mp_rom_map_elem_t mp_module_ssl_globals_table [] = {
868
- { MP_ROM_QSTR (MP_QSTR___name__ ), MP_ROM_QSTR (MP_QSTR_ssl ) },
869
-
870
- // Functions.
871
- { MP_ROM_QSTR (MP_QSTR_wrap_socket ), MP_ROM_PTR (& mod_ssl_wrap_socket_obj ) },
772
+ STATIC const mp_rom_map_elem_t mp_module_tls_globals_table [] = {
773
+ { MP_ROM_QSTR (MP_QSTR___name__ ), MP_ROM_QSTR (MP_QSTR_tls ) },
872
774
873
775
// Classes.
874
776
{ MP_ROM_QSTR (MP_QSTR_SSLContext ), MP_ROM_PTR (& ssl_context_type ) },
@@ -881,13 +783,13 @@ STATIC const mp_rom_map_elem_t mp_module_ssl_globals_table[] = {
881
783
{ MP_ROM_QSTR (MP_QSTR_CERT_OPTIONAL ), MP_ROM_INT (MBEDTLS_SSL_VERIFY_OPTIONAL ) },
882
784
{ MP_ROM_QSTR (MP_QSTR_CERT_REQUIRED ), MP_ROM_INT (MBEDTLS_SSL_VERIFY_REQUIRED ) },
883
785
};
884
- STATIC MP_DEFINE_CONST_DICT (mp_module_ssl_globals , mp_module_ssl_globals_table );
786
+ STATIC MP_DEFINE_CONST_DICT (mp_module_tls_globals , mp_module_tls_globals_table );
885
787
886
- const mp_obj_module_t mp_module_ssl = {
788
+ const mp_obj_module_t mp_module_tls = {
887
789
.base = { & mp_type_module },
888
- .globals = (mp_obj_dict_t * )& mp_module_ssl_globals ,
790
+ .globals = (mp_obj_dict_t * )& mp_module_tls_globals ,
889
791
};
890
792
891
- MP_REGISTER_EXTENSIBLE_MODULE ( MP_QSTR_ssl , mp_module_ssl );
793
+ MP_REGISTER_MODULE ( MP_QSTR_tls , mp_module_tls );
892
794
893
795
#endif // MICROPY_PY_SSL && MICROPY_SSL_MBEDTLS
0 commit comments