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]

-- 
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]

Reply via email to