X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/dd5fb164cf5b32c462296bc65e289e100f74b59a..8a50f688fe9358387648fb83fbfecbefe8d32669:/OSX/libsecurity_keychain/libDER/Tests/parseCrl.c?ds=inline diff --git a/OSX/libsecurity_keychain/libDER/Tests/parseCrl.c b/OSX/libsecurity_keychain/libDER/Tests/parseCrl.c deleted file mode 100644 index 4eabc130..00000000 --- a/OSX/libsecurity_keychain/libDER/Tests/parseCrl.c +++ /dev/null @@ -1,167 +0,0 @@ -/* - * Copyright (c) 2005-2007,2010-2011 Apple Inc. All Rights Reserved. - * - * parseCrl.c - parse a DER-encoded X509 CRL using libDER. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -static void usage(char **argv) -{ - printf("usage: %s crlFile [options]\n", argv[0]); - printf("Options:\n"); - printf(" -v -- verbose \n"); - /* etc. */ - exit(1); -} - -/* - * This is a SEQUENCE OF so we use the low-level DERDecodeSeq* routines to snag one entry - * at a time. - */ -static void printRevokedCerts( - DERItem *revokedCerts, - int verbose) -{ - DERReturn drtn; - DERDecodedInfo currItem; - DERSequence seq; - unsigned certNum; - DERRevokedCert revoked; - - drtn = DERDecodeSeqContentInit(revokedCerts, &seq); - if(drtn) { - DERPerror("DERDecodeSeqContentInit(revokedCerts)", drtn); - return; - } - - for(certNum=0; ; certNum++) { - drtn = DERDecodeSeqNext(&seq, &currItem); - switch(drtn) { - case DR_EndOfSequence: - /* normal termination */ - return; - default: - DERPerror("DERDecodeSeqNext", drtn); - return; - case DR_Success: - doIndent(); - printf("revoked cert %u\n", certNum); - incrIndent(); - drtn = DERParseSequenceContent(&currItem.content, - DERNumRevokedCertItemSpecs, DERRevokedCertItemSpecs, - &revoked, sizeof(revoked)); - if(drtn) { - DERPerror("DERParseSequenceContent(RevokedCert)", drtn); - decrIndent(); - return; - } - printItem("serialNum", IT_Leaf, verbose, ASN1_INTEGER, &revoked.serialNum); - decodePrintItem("revocationDate", IT_Leaf, verbose, &revoked.revocationDate); - printItem("extensions", IT_Branch, verbose, ASN1_CONSTR_SEQUENCE, &revoked.extensions); - decrIndent(); - } - } -} - -int main(int argc, char **argv) -{ - unsigned char *crlData = NULL; - unsigned crlDataLen = 0; - DERSignedCertCrl signedCrl; - DERTBSCrl tbs; - DERReturn drtn; - DERItem item; - int verbose = 0; - extern char *optarg; - int arg; - extern int optind; - - if(argc < 2) { - usage(argv); - } - if(readFile(argv[1], &crlData, &crlDataLen)) { - printf("***Error reading CRL from %s. Aborting.\n", argv[1]); - exit(1); - } - - optind = 2; - while ((arg = getopt(argc, argv, "vh")) != -1) { - switch (arg) { - case 'v': - verbose = 1; - break; - case 'h': - usage(argv); - } - } - if(optind != argc) { - usage(argv); - } - - /* Top level decode of signed CRL into 3 components */ - item.data = crlData; - item.length = crlDataLen; - drtn = DERParseSequence(&item, DERNumSignedCertCrlItemSpecs, DERSignedCertCrlItemSpecs, - &signedCrl, sizeof(signedCrl)); - if(drtn) { - DERPerror("DERParseSequence(SignedCrl)", drtn); - exit(1); - } - printItem("TBSCrl", IT_Branch, verbose, ASN1_CONSTR_SEQUENCE, &signedCrl.tbs); - - incrIndent(); - - /* decode the TBSCrl - it was saved in full DER form */ - drtn = DERParseSequence(&signedCrl.tbs, - DERNumTBSCrlItemSpecs, DERTBSCrlItemSpecs, - &tbs, sizeof(tbs)); - if(drtn) { - DERPerror("DERParseSequenceContent(TBSCrl)", drtn); - exit(1); - } - if(tbs.version.data) { - printItem("version", IT_Leaf, verbose, ASN1_INTEGER, &tbs.version); - } - - printItem("tbsSigAlg", IT_Branch, verbose, ASN1_CONSTR_SEQUENCE, &tbs.tbsSigAlg); - incrIndent(); - printAlgId(&tbs.tbsSigAlg, verbose); - decrIndent(); - - printItem("issuer", IT_Leaf, verbose, ASN1_CONSTR_SEQUENCE, &tbs.issuer); - - decodePrintItem("thisUpdate", IT_Leaf, verbose, &tbs.thisUpdate); - decodePrintItem("nextUpdate", IT_Leaf, verbose, &tbs.nextUpdate); - - if(tbs.revokedCerts.data) { - printItem("version", IT_Leaf, verbose, ASN1_CONSTR_SEQUENCE, &tbs.revokedCerts); - incrIndent(); - printRevokedCerts(&tbs.revokedCerts, verbose); - decrIndent(); - } - - if(tbs.extensions.data) { - printItem("extensions", IT_Leaf, verbose, ASN1_CONSTRUCTED | ASN1_CONTEXT_SPECIFIC | 3, - &tbs.extensions); - } - - printItem("sigAlg", IT_Branch, verbose, ASN1_CONSTR_SEQUENCE, &signedCrl.sigAlg); - incrIndent(); - printAlgId(&signedCrl.sigAlg, verbose); - decrIndent(); - - printItem("sig", IT_Leaf, verbose, ASN1_BIT_STRING, &signedCrl.sig); - - return 0; -}