diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2001-12-05 13:41:46 +0000 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2001-12-05 13:41:46 +0000 |
commit | 3566f540c2ea57ef3fced95b06f6ba52f4f24ab8 (patch) | |
tree | d47fb1e64c4060ff98543f33fa82d048ba533e7d /src/serv.c | |
parent | 091cea8dbd1e5fbd940d4c863b68d5eb5ff7cab3 (diff) | |
download | gnutls-3566f540c2ea57ef3fced95b06f6ba52f4f24ab8.tar.gz |
optimized certificate handling API
Diffstat (limited to 'src/serv.c')
-rw-r--r-- | src/serv.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/serv.c b/src/serv.c index 6d9122d992..4f068738af 100644 --- a/src/serv.c +++ b/src/serv.c @@ -104,13 +104,13 @@ GNUTLS_STATE initialize_state() void print_info(GNUTLS_STATE state) { const char *tmp; + const gnutls_datum * cert_list; unsigned char sesid[32]; int sesid_size, i; gnutls_DN dn; CredType cred; CertificateStatus status; - char dnsname[512]; - int dnsname_size; + int cert_list_size = 0; /* print session_id specific data */ gnutls_get_current_session_id( state, sesid, &sesid_size); @@ -141,7 +141,9 @@ void print_info(GNUTLS_STATE state) break; case GNUTLS_X509PKI: - status = gnutls_x509pki_client_get_peer_certificate_status( state); + cert_list = gnutls_x509pki_server_get_peer_certificate_list( state, &cert_list_size); + status = gnutls_x509pki_server_get_peer_certificate_status( state); + switch( status) { case GNUTLS_CERT_NOT_TRUSTED: printf("- Peer's X509 Certificate was NOT verified\n"); @@ -164,16 +166,16 @@ void print_info(GNUTLS_STATE state) printf("\n- Ephemeral DH using prime of %d bits\n", gnutls_x509pki_server_get_dh_bits( state)); } - - if (status!=GNUTLS_CERT_NONE && status!=GNUTLS_CERT_INVALID) { + + if (cert_list_size > 0) { printf(" - Certificate info:\n"); - printf(" - Certificate version: #%d\n", gnutls_x509pki_client_get_peer_certificate_version(state)); + printf(" - Certificate version: #%d\n", gnutls_x509pki_server_extract_certificate_version( &cert_list[0])); - if ( gnutls_x509pki_client_get_peer_dn( state, &dn) >= 0) { + if ( gnutls_x509pki_server_extract_dn( &cert_list[0], &dn) >= 0) { PRINT_DN( dn); } - if (gnutls_x509pki_client_get_issuer_dn( state, &dn) >= 0) { + if (gnutls_x509pki_server_extract_dn( &cert_list[0], &dn) >= 0) { printf(" - Certificate Issuer's info:\n"); PRINT_DN( dn); } |