@@ -221,6 +221,26 @@ mrb_tls_config_clear_keys(mrb_state* mrb, mrb_value self)
221221 return self ;
222222}
223223
224+ static mrb_value
225+ mrb_tls_config_noverify (mrb_state * mrb , mrb_value self )
226+ {
227+ char * mode ;
228+
229+ mrb_get_args (mrb , "z" , & mode );
230+
231+ if (strcmp (mode , "cert" ) == 0 ) {
232+ tls_config_insecure_noverifycert ((tls_config_t * )DATA_PTR (self ));
233+ } else if (strcmp (mode , "name" ) == 0 ) {
234+ tls_config_insecure_noverifyname ((tls_config_t * )DATA_PTR (self ));
235+ } else if (strcmp (mode , "time" ) == 0 ) {
236+ tls_config_insecure_noverifytime ((tls_config_t * )DATA_PTR (self ));
237+ } else {
238+ mrb_raise (mrb , E_ARGUMENT_ERROR , "unknown noverify mode" );
239+ }
240+
241+ return self ;
242+ }
243+
224244static mrb_value
225245mrb_tls_load_file (mrb_state * mrb , mrb_value self )
226246{
@@ -612,6 +632,7 @@ mrb_mruby_tls_gem_init(mrb_state* mrb)
612632 mrb_define_method (mrb , tls_conf_c , "protocols=" , mrb_tls_config_set_protocols , MRB_ARGS_REQ (1 ));
613633 mrb_define_method (mrb , tls_conf_c , "verify_depth=" , mrb_tls_config_set_verify_depth , MRB_ARGS_REQ (1 ));
614634 mrb_define_method (mrb , tls_conf_c , "clear_keys" , mrb_tls_config_clear_keys , MRB_ARGS_NONE ());
635+ mrb_define_method (mrb , tls_conf_c , "noverify" , mrb_tls_config_noverify , MRB_ARGS_REQ (1 ));
615636
616637 tls_ctx_c = mrb_define_class_under (mrb , tls_mod , "Context" , mrb -> object_class );
617638 MRB_SET_INSTANCE_TT (tls_ctx_c , MRB_TT_DATA );
0 commit comments