printcert.cc

00001 #include "wvx509.h"                        
00002 #include "wvfile.h"
00003 #include "wvlog.h"   
00004 #include "wvstrutils.h"
00005 #include "wvcrash.h"
00006 
00007 #include <openssl/pem.h>   
00008 #include <openssl/x509v3.h>
00009 
00010 void print_details(WvX509Mgr *x509)
00011 {
00012     wvcon->print("Subject: %s\n", x509->get_subject());
00013     wvcon->print("Issuer: %s\n", x509->get_issuer());
00014     wvcon->print("Serial: %s\n", x509->get_serial());
00015     time_t t1 = x509->get_notvalid_before();
00016     time_t t2 = x509->get_notvalid_after();
00017     
00018     wvcon->print("Not Valid Before: %s\n", ctime(&t1));
00019     wvcon->print("Not Valid After: %s\n", ctime(&t2));
00020     wvcon->print("Key Usage: %s\n", x509->get_key_usage());
00021     wvcon->print("Ext Key Usage: %s\n", x509->get_ext_key_usage());
00022     wvcon->print("Authority Info Access: \n%s\n", x509->get_aia());
00023     WvStringList urls;
00024     wvcon->print("CA Issuers available from:\n%s\n", x509->get_ca_urls(&urls)->join("\n"));
00025     urls.zap();
00026     wvcon->print("OCSP Responders available from:\n%s\n", x509->get_ocsp(&urls)->join("\n"));
00027     wvcon->print("CRL Distribution Point:\n%s\n", x509->get_crl_dp());
00028     wvcon->print("Certificate Policy: %s\n", x509->get_cp_oid());
00029 }
00030 
00031 
00032 
00033 int main(int argc, char **argv)
00034 {
00035     wvcrash_setup(argv[0]);
00036     
00037     WvDynBuf buffer;
00038     
00039     if (argc < 2)
00040     {
00041         wvcon->print("You must specify a certificate in PEM format\n");
00042         return -1;
00043     }
00044     
00045     WvFile f(argv[1], O_RDONLY);
00046     
00047     while (f.isok())
00048     {
00049         f.read(buffer, 1000);
00050     }
00051     f.close();
00052     
00053     WvX509Mgr x509;
00054     x509.decode(WvX509Mgr::CertPEM, buffer.getstr());
00055     
00056     print_details(&x509);
00057     
00058     
00059     
00060     return 0;
00061 }

Generated on Fri Oct 5 18:20:26 2007 for WvStreams by  doxygen 1.5.3