*BIG* verify code reorganisation.
The old code was painfully primitive and couldn't handle distinct certificates using the same subject name. The new code performs several tests on a candidate issuer certificate based on certificate extensions. It also adds several callbacks to X509_VERIFY_CTX so its behaviour can be customised. Unfortunately some hackery was needed to persuade X509_STORE to tolerate this. This should go away when X509_STORE is replaced, sometime... This must have broken something though :-(
This commit is contained in:
@@ -864,6 +864,26 @@ STACK_OF(type) \
|
||||
#define sk_X509_NAME_ENTRY_pop(st) SKM_sk_pop(X509_NAME_ENTRY, (st))
|
||||
#define sk_X509_NAME_ENTRY_sort(st) SKM_sk_sort(X509_NAME_ENTRY, (st))
|
||||
|
||||
#define sk_X509_OBJECT_new(st) SKM_sk_new(X509_OBJECT, (st))
|
||||
#define sk_X509_OBJECT_new_null() SKM_sk_new_null(X509_OBJECT)
|
||||
#define sk_X509_OBJECT_free(st) SKM_sk_free(X509_OBJECT, (st))
|
||||
#define sk_X509_OBJECT_num(st) SKM_sk_num(X509_OBJECT, (st))
|
||||
#define sk_X509_OBJECT_value(st, i) SKM_sk_value(X509_OBJECT, (st), (i))
|
||||
#define sk_X509_OBJECT_set(st, i, val) SKM_sk_set(X509_OBJECT, (st), (i), (val))
|
||||
#define sk_X509_OBJECT_zero(st) SKM_sk_zero(X509_OBJECT, (st))
|
||||
#define sk_X509_OBJECT_push(st, val) SKM_sk_push(X509_OBJECT, (st), (val))
|
||||
#define sk_X509_OBJECT_unshift(st, val) SKM_sk_unshift(X509_OBJECT, (st), (val))
|
||||
#define sk_X509_OBJECT_find(st, val) SKM_sk_find(X509_OBJECT, (st), (val))
|
||||
#define sk_X509_OBJECT_delete(st, i) SKM_sk_delete(X509_OBJECT, (st), (i))
|
||||
#define sk_X509_OBJECT_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_OBJECT, (st), (ptr))
|
||||
#define sk_X509_OBJECT_insert(st, val, i) SKM_sk_insert(X509_OBJECT, (st), (val), (i))
|
||||
#define sk_X509_OBJECT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_OBJECT, (st), (cmp))
|
||||
#define sk_X509_OBJECT_dup(st) SKM_sk_dup(X509_OBJECT, st)
|
||||
#define sk_X509_OBJECT_pop_free(st, free_func) SKM_sk_pop_free(X509_OBJECT, (st), (free_func))
|
||||
#define sk_X509_OBJECT_shift(st) SKM_sk_shift(X509_OBJECT, (st))
|
||||
#define sk_X509_OBJECT_pop(st) SKM_sk_pop(X509_OBJECT, (st))
|
||||
#define sk_X509_OBJECT_sort(st) SKM_sk_sort(X509_OBJECT, (st))
|
||||
|
||||
#define sk_X509_PURPOSE_new(st) SKM_sk_new(X509_PURPOSE, (st))
|
||||
#define sk_X509_PURPOSE_new_null() SKM_sk_new_null(X509_PURPOSE)
|
||||
#define sk_X509_PURPOSE_free(st) SKM_sk_free(X509_PURPOSE, (st))
|
||||
|
||||
Reference in New Issue
Block a user