static int trust_1oid(X509_TRUST *trust, X509 *x, int flags) { if (x->aux) return obj_trust(trust->arg1, x, flags); return X509_TRUST_UNTRUSTED; }
static int trust_1oidany(X509_TRUST *trust, X509 *x, int flags) { if(x->aux && (x->aux->trust || x->aux->reject)) return obj_trust(trust->arg1, x, flags); /* we don't have any trust settings: for compatibility * we return trusted if it is self signed */ return trust_compat(trust, x, flags); }
int X509_check_trust(X509 *x, int id, int flags) { X509_TRUST *pt; int idx; if(id == -1) return 1; /* We get this as a default value */ if (id == 0) { int rv; rv = obj_trust(NID_anyExtendedKeyUsage, x, 0); if (rv != X509_TRUST_UNTRUSTED) return rv; return trust_compat(NULL, x, 0); } idx = X509_TRUST_get_by_id(id); if(idx == -1) return default_trust(id, x, flags); pt = X509_TRUST_get0(idx); return pt->check_trust(pt, x, flags); }