Add ldap_pvt_tls_get_peer_dn() routine. Returns peer as an LDAP DN.

This commit is contained in:
Kurt Zeilenga 2001-01-18 00:40:58 +00:00
parent 319a75ef39
commit c0a06f25c2
3 changed files with 27 additions and 4 deletions

2
configure vendored
View file

@ -1,6 +1,6 @@
#! /bin/sh
# $OpenLDAP$
# from OpenLDAP: pkg/ldap/configure.in,v 1.346 2001/01/12 03:20:36 kurt Exp
# from OpenLDAP: pkg/ldap/configure.in,v 1.347 2001/01/16 21:18:42 kurt Exp
# Copyright 1998-2000 The OpenLDAP Foundation. All Rights Reserved.
#

View file

@ -174,7 +174,8 @@ LDAP_F (int) ldap_pvt_tls_connect LDAP_P(( struct ldap *ld, Sockbuf *sb, void *c
LDAP_F (int) ldap_pvt_tls_accept LDAP_P(( Sockbuf *sb, void *ctx_arg ));
LDAP_F (void *) ldap_pvt_tls_sb_handle LDAP_P(( Sockbuf *sb ));
LDAP_F (void *) ldap_pvt_tls_get_handle LDAP_P(( struct ldap *ld ));
LDAP_F (const char *) ldap_pvt_tls_get_peer LDAP_P(( void *handle ));
LDAP_F (char *) ldap_pvt_tls_get_peer LDAP_P(( void *handle ));
LDAP_F (char *) ldap_pvt_tls_get_peer_dn LDAP_P(( void *handle ));
LDAP_F (int) ldap_pvt_tls_get_strength LDAP_P(( void *handle ));
LDAP_F (int) ldap_pvt_tls_inplace LDAP_P(( Sockbuf *sb ));
LDAP_F (int) ldap_pvt_tls_start LDAP_P(( struct ldap *ld, Sockbuf *sb, void *ctx_arg ));

View file

@ -679,7 +679,7 @@ ldap_pvt_tls_get_strength( void *s )
}
const char *
char *
ldap_pvt_tls_get_peer( void *s )
{
X509 *x;
@ -697,12 +697,33 @@ ldap_pvt_tls_get_peer( void *s )
return p;
}
char *
ldap_pvt_tls_get_peer_dn( void *s )
{
X509 *x;
X509_NAME *xn;
char buf[2048], *p, *dn;
x = SSL_get_peer_certificate((SSL *)s);
if (!x) return NULL;
xn = X509_get_subject_name(x);
p = X509_NAME_oneline(xn, buf, sizeof(buf));
dn = ldap_dcedn2dn( p );
X509_free(x);
return dn;
}
char *
ldap_pvt_tls_get_peer_hostname( void *s )
{
X509 *x;
X509_NAME *xn;
char buf[2048], *p;
int ret;
x = SSL_get_peer_certificate((SSL *)s);
@ -711,7 +732,8 @@ ldap_pvt_tls_get_peer_hostname( void *s )
xn = X509_get_subject_name(x);
if ( X509_NAME_get_text_by_NID(xn, NID_commonName, buf, sizeof(buf)) == -1 ) {
ret = X509_NAME_get_text_by_NID(xn, NID_commonName, buf, sizeof(buf));
if( ret == -1 ) {
X509_free(x);
return NULL;
}