Thanks guys, you rock! -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Tan Eng Ten Sent: Thursday, 26 May 2005 12:13 PM To: openssl-users@openssl.org Subject: Re: X509 Cert dates
Hi Pj, U could use memory BIO instead - BIO_new(BIO_s_mem()). Data written to the BIO could be accessed by BIO_get_mem_data(). Pj wrote: > Thanks Tan! that worked, I'm wondering if there is a way of reading the > dates directly to a string buffer my code now reads: > > One more question, how do you read the certificate authority from the cert? > > // Read in certificate dates > // there must be a better way of doing this! > char bigBuffer[1024]; > BIO *out; > char * tmpFile = getTempFile(); > out = BIO_new_file(tmpFile, "w+"); > BIO_printf(out, "DateValid.From:"); > ASN1_TIME_print(out, X509_get_notBefore(cert)); > BIO_printf(out, "\r\nDateValid.To:"); > ASN1_TIME_print(out, X509_get_notAfter(cert)); > BIO_printf(out, "\r\n"); > BIO_free(out); > > FILE *fp = NULL; > fp = fopen(tmpFile, "rb"); > if (fp) { > // find file size > fseek(fp,0,SEEK_END); > int l = ftell(fp) + 1; > rewind(fp); > // read entire file > fread(bigBuffer, l, 1, fp); > // null terminate the buffer > *(bigBuffer + l) = '\0'; > fclose(fp); > } > _unlink(tmpFile); > free(tmpFile); > ////////////////////////////////////// > > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Tan Eng Ten > Sent: Thursday, 26 May 2005 10:30 AM > To: openssl-users@openssl.org > Subject: Re: X509 Cert dates > > Hi, > > U could try: > > BIO *bio = BIO_new_fp(stdout, BIO_NOCLOSE); > > ASN1_TIME_print(bio, X509_get_notBefore(cert)); > > BIO_free(bio); > > Tell me if it works. > > Pj wrote: > >>Hi All, >> >> >>How can I print localised, human readable certificate dates into a null >>terminated string buffer? >> >>I wish to present the cert dates to the user as well as the fact that the >>dates are valid or invalid. >> >>Can someone point me to a good source for X509 manipulation? >> >>At the moment my function reads: >> >>void dumpCertificate(X509 *cert, char *fileName) >> >>{ >> char buf[2044]; >> int ret; >> >> X509_NAME *subj = X509_get_subject_name(cert); >> X509_NAME *issuer = X509_get_issuer_name(cert); >> >> FILE *fp; >> unlink(fileName); >> fp = fopen(fileName,"w"); >> if (!fp) return; >> >> >> /* check expiry dates */ >> if (X509_cmp_current_time(X509_get_notBefore(cert)) >= 0) { >> fprintf(fp, "DateValid:false:Certificate date not yet >>valid\n"); >> } >> else if (X509_cmp_current_time(X509_get_notAfter(cert)) <= 0) > > { > >> fprintf(fp, "DateValid:false:Certificate date >>expired\n"); >> } >> else >> fprintf(fp, "DateValid:true\n"); >> >> /* Subject commonName */ >> >> ret = X509_NAME_get_text_by_NID(X509_get_subject_name(cert), >>NID_commonName, buf, 1024); >> fprintf(fp, "Subject.CommonName:%s\n",(ret < 1)?"":buf); >> >> >> /* Subject Organization name */ >> ret = X509_NAME_get_text_by_NID(X509_get_subject_name(cert), >>NID_organizationName, buf, 1024); >> fprintf(fp, "Subject.OrganizationName:%s\n",(ret < 1)?"":buf); >> >> /* Subject Email Address */ >> ret = X509_NAME_get_text_by_NID(X509_get_subject_name(cert), >>NID_pkcs9_emailAddress, buf, 1024); >> fprintf(fp, "Subject.Email:%s\n",(ret < 1)?"":buf); >> >> >> /* Issuer Organization name */ >> ret = X509_NAME_get_text_by_NID(X509_get_issuer_name(cert), >>NID_organizationName, buf, 1024); >> fprintf(fp, "Issuer.OrganizationName:%s\n",(ret < 1)?"":buf); >> >> fclose(fp); >>} >> >>Thanks Heaps! >>Phillip. >> >> >> >> > > ______________________________________________________________________ > OpenSSL Project http://www.openssl.org > User Support Mailing List openssl-users@openssl.org > Automated List Manager [EMAIL PROTECTED] > ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager [EMAIL PROTECTED] -- No virus found in this incoming message. Checked by AVG Anti-Virus. Version: 7.0.322 / Virus Database: 266.11.17 - Release Date: 25/05/2005 -- No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.0.322 / Virus Database: 266.11.17 - Release Date: 25/05/2005 ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager [EMAIL PROTECTED]