]> git.saurik.com Git - apple/security.git/blobdiff - OSX/libsecurity_keychain/libDER/Tests/parseCrl.c
Security-58286.31.2.tar.gz
[apple/security.git] / OSX / libsecurity_keychain / libDER / Tests / parseCrl.c
diff --git a/OSX/libsecurity_keychain/libDER/Tests/parseCrl.c b/OSX/libsecurity_keychain/libDER/Tests/parseCrl.c
deleted file mode 100644 (file)
index 4eabc13..0000000
+++ /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 <stdlib.h>
-#include <strings.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <libDER/libDER.h>
-#include <libDER/asn1Types.h>
-#include <libDER/DER_CertCrl.h>
-#include <libDER/DER_Keys.h>
-#include <libDERUtils/fileIo.h>
-#include <libDERUtils/libDERUtils.h>
-#include <libDERUtils/printFields.h>
-
-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;
-}