Allow match selecting of current certificate.
If pointer comparison for current certificate fails check to see if a match using X509_cmp succeeds for the current certificate: this is useful for cases where the certificate pointer is not available. (cherry picked from commit 6856b288a6e66edd23907b7fa264f42e05ac9fc7)
This commit is contained in:
parent
dc4bdf592f
commit
ff0bdbed85
@ -624,6 +624,8 @@ int ssl_cert_add1_chain_cert(CERT *c, X509 *x)
|
|||||||
int ssl_cert_select_current(CERT *c, X509 *x)
|
int ssl_cert_select_current(CERT *c, X509 *x)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
if (x == NULL)
|
||||||
|
return 0;
|
||||||
for (i = 0; i < SSL_PKEY_NUM; i++)
|
for (i = 0; i < SSL_PKEY_NUM; i++)
|
||||||
{
|
{
|
||||||
if (c->pkeys[i].x509 == x)
|
if (c->pkeys[i].x509 == x)
|
||||||
@ -632,6 +634,15 @@ int ssl_cert_select_current(CERT *c, X509 *x)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < SSL_PKEY_NUM; i++)
|
||||||
|
{
|
||||||
|
if (c->pkeys[i].x509 && !X509_cmp(c->pkeys[i].x509, x))
|
||||||
|
{
|
||||||
|
c->key = &c->pkeys[i];
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user