summaryrefslogtreecommitdiff
path: root/lib/gnutls_cert.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2001-08-05 20:40:11 +0000
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2001-08-05 20:40:11 +0000
commit8fa8ed88631f45c133308f6db731520830713fb9 (patch)
tree14420c4d1933724c25ed2ef815d7b7d71c2521f2 /lib/gnutls_cert.c
parent93330469787a8b39a6f8c82f65305c7625487806 (diff)
downloadgnutls-8fa8ed88631f45c133308f6db731520830713fb9.tar.gz
several cleanups and updates in the handshake protocol implementation
iolaiiiiiCVS: ----------------------------------------------------------------------
Diffstat (limited to 'lib/gnutls_cert.c')
-rw-r--r--lib/gnutls_cert.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/lib/gnutls_cert.c b/lib/gnutls_cert.c
index 8a66fb4528..81604fa1ac 100644
--- a/lib/gnutls_cert.c
+++ b/lib/gnutls_cert.c
@@ -825,7 +825,7 @@ int _gnutls_cert_supported_kx(gnutls_cert * cert, KXAlgorithm ** alg,
return 0;
}
-/* finds a certificate in the cert list that contains
+/* finds a certificate in the cert lists that contains
* common_name (or subjectAltName) field similar to name
*/
gnutls_cert *_gnutls_find_cert(gnutls_cert ** cert_list,
@@ -835,7 +835,7 @@ gnutls_cert *_gnutls_find_cert(gnutls_cert ** cert_list,
int i;
for (i = 0; i < cert_list_length; i++) {
- if (cert_list[i][0].cert_info.common_name[0] != 0) {
+ if (cert_list[i][0].cert_info.common_name[0] != 0 || cert_list[i][0].subjectAltName[0]!=0) {
if (strcasecmp(cert_list[i][0].cert_info.common_name, name) == 0 || strcasecmp(cert_list[i][0].subjectAltName, name) == 0) {
cert = &cert_list[i][0];
break;
@@ -845,3 +845,23 @@ gnutls_cert *_gnutls_find_cert(gnutls_cert ** cert_list,
return cert;
}
+/* finds the index of a certificate in the cert lists that contains
+ * common_name (or subjectAltName) field similar to name
+ */
+int _gnutls_find_cert_list_index(gnutls_cert ** cert_list,
+ int cert_list_length, char *name)
+{
+ int index = 0;
+ int i;
+
+ for (i = 0; i < cert_list_length; i++) {
+ if (cert_list[i][0].cert_info.common_name[0] != 0 || cert_list[i][0].subjectAltName[0]!=0) {
+ if (strcasecmp(cert_list[i][0].cert_info.common_name, name) == 0 || strcasecmp(cert_list[i][0].subjectAltName, name) == 0) {
+ index = i;
+ break;
+ }
+ }
+ }
+ return index;
+}
+