1/* 2 * parseCert.cpp - CL-based cert parser. 3 * 4 * See oidParser.h for info on config file. 5 */ 6#include <security_cdsa_utils/cuPrintCert.h> 7#include <security_cdsa_utils/cuFileIo.h> 8#include <stdlib.h> 9#include <stdio.h> 10#include <string.h> 11 12static void usage(char **argv) 13{ 14 printf("Usage: %s certFile [v(erbose) [l(oop)]\n", argv[0]); 15 exit(1); 16} 17 18int main(int argc, char **argv) 19{ 20 unsigned char *rawCert = NULL; 21 unsigned rawCertSize; 22 int rtn; 23 CSSM_BOOL verbose = CSSM_FALSE; 24 int arg; 25 int loop = 0; 26 27 if(argc < 2) { 28 usage(argv); 29 } 30 for(arg=2; arg<argc; arg++) { 31 switch(argv[arg][0]) { 32 case 'v': 33 verbose = CSSM_TRUE; 34 break; 35 case 'l': 36 loop = 1; 37 break; 38 default: 39 usage(argv); 40 } 41 } 42 rtn = readFile(argv[1], &rawCert, &rawCertSize); 43 if(rtn) { 44 printf("Error reading %s; %s\n", argv[1], strerror(rtn)); 45 exit(1); 46 } 47 do { 48 printCert(rawCert, rawCertSize, verbose); 49 if(loop) { 50 printf("Enter q to quit, anything else to continue: "); 51 fflush(stdout); 52 char c = getchar(); 53 if(c == 'q') { 54 break; 55 } 56 } 57 } while(loop); 58 return 0; 59} 60 61