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: [email protected]
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: [email protected]
> 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 [email protected]
> Automated List Manager [EMAIL PROTECTED]
>
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List [email protected]
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 [email protected]
Automated List Manager [EMAIL PROTECTED]