X509_PURPOSE_MAX
int id = X509_PURPOSE_MAX + 1;
if (purpose >= X509_PURPOSE_MIN && purpose <= X509_PURPOSE_MAX)
return TEST_int_gt((id = X509_PURPOSE_get_unused_id(libctx)), X509_PURPOSE_MAX)
&& TEST_int_eq(X509_PURPOSE_add(ARGS(X509_PURPOSE_MAX, SN)), 0)