Muito obrigado pela vossa ajuda.
Por favor, como faço para transformar isso em pascal?
https://zakird.com/2013/10/13/certificate-parsing-with-openssl
"Misordered Certificate Chains"
STACK_OF(X509) *r_sk = sk_X509_new_null();
sk_X509_push(r_sk, sk_X509_value(st, 0));
for (int i=1; i < sk_X509_num(st); i++) {
X509 *prev = sk_X509_value(r_sk, i-1);
X509 *next = NULL;
for (int j=1; j < sk_X509_num(st); j++) {
X509 *cand = sk_X509_value(st, j);
if (!X509_NAME_cmp(cand->cert_info->subject, prev->cert_info->issuer)
|| j == sk_X509_num(st) - 1) {
next = cand;
break;
}
}
if (next) {
sk_X509_push(r_sk, next);
} else {
sk_X509_free(r_sk);
r_sk = sk_X509_dup(st);
break;
}
}