I'm trying to make a simple https client.
This client application uses openssl-0.9.4
on Sun SPARC Solaris (SunOS 5.5.1) machine.
For checking server's common name,I'm trying
to implement as follows:
/**/
int host_rtn=0;
struct hostent host;
char host_real[BUFSIZ];
char CommonName[BUFSIZ];
char *ConnectHost;
X509 *x509_info=NULL;
:
/* Get Host Address and Full Name */
gethostbyname_r(hostname,&host,host_real,sizeof(host_real),&host_rtn);
if(host_rtn!=0){
fprintf(stderr,"gethostbyname\n");
return -1;
}
ConnectHost=host.h_name;
:
/* Get Certification Information */
x509_info=SSL_get_peer_certificate(con);
/* Common Name Check */
strcpy(CommonName,strstr(x509_info->name,"CN=")+3);
strtok_r(CommonName,"/\r\n",&strtok_holder);
if(strcasecmp(ConnectHost,CommonName)!=0){
fprintf(stderr,"HostName differ from CommonName\n");
return -1;
}
But I think it isn't best method.
Is there any function to get server's common name?
Please teach me.
Thanks.
Takenori Yoshimatsu
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]