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]

Reply via email to