#include #include struct ssl_policy_enforcer { }; struct ssl_policy_enforcer* ssl_policy_enforcer_create(void) { return NULL; } enum ssl_stream_action ssl_policy_enforce(struct ssl_stream *upstream, void* u_para) { UNUSED struct ssl_policy_enforcer* enforcer=(struct ssl_policy_enforcer*)u_para; UNUSED int ret=0; int pinning_staus=0, is_ev=0; ret=ssl_stream_get_integer_opt(upstream, SSL_STREAM_OPT_PINNING_STATUS, &pinning_staus); assert(ret==1); ret=ssl_stream_get_integer_opt(upstream, SSL_STREAM_OPT_IS_EV_CERT, &is_ev); assert(ret==1); if(pinning_staus>0||is_ev) { return SSL_ACTION_PASSTHROUGH; } else { return SSL_ACTION_INTERCEPT; } }