]> git.saurik.com Git - apple/security.git/blobdiff - SecurityTests/clxutils/p12/p12.cpp
Security-57740.51.3.tar.gz
[apple/security.git] / SecurityTests / clxutils / p12 / p12.cpp
diff --git a/SecurityTests/clxutils/p12/p12.cpp b/SecurityTests/clxutils/p12/p12.cpp
deleted file mode 100644 (file)
index b877251..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * multipurpose pkcs12 tool. 
- */
-#include <security_cdsa_utils/cuFileIo.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <CoreFoundation/CoreFoundation.h>
-#include "p12.h"
-#include <security_cdsa_utils/cuCdsaUtils.h>
-
-static void usage(char **argv)
-{
-       printf("Usage:\n");
-       printf("  %s p infile [options]    parse\n", argv[0]);
-       printf("  %s d infile [options]    decode\n", argv[0]);
-       printf("  %s e infile [options]    decode-->encode\n", argv[0]);
-       printf("  %s i infile keychain     import to keychain\n", argv[0]);
-       printf("  %s x outfile keychain    export from keychain\n", argv[0]);
-       
-       printf("Options:\n");
-       printf("   p=password\n");
-       printf("   z=keychainPassword\n");
-       printf("   P (use secure passphrase)\n");
-       printf("   k=keychain\n");
-       printf("   l=loops\n");
-       printf("   n(o prompt; export only)\n");
-       printf("   v(erbose)\n");
-       /* others here */
-       exit(1);
-}
-
-typedef enum {
-       PR_Parse,
-       PR_Decode,
-       PR_Reencode,
-       PR_Import,
-       PR_Export
-} P12op;
-
-int main(int argc, char **argv)
-{      
-       char *inFile;
-       P12op op;
-       int minArgs = 1;
-       CFStringRef pwd = NULL;
-       bool verbose = false;
-       unsigned loops = 1;
-       char *kcName = NULL;
-       bool noPrompt = false;
-       char *kcPwd = NULL;
-       bool usePassKey = false;
-       
-       if(argc < 2) {
-               usage(argv);
-       }
-       switch(argv[1][0]) {
-               case 'p':
-                       op = PR_Parse;
-                       minArgs = 3;
-                       break;
-               case 'd':
-                       op = PR_Decode;
-                       minArgs = 3;
-                       break;
-               case 'e':
-                       op = PR_Reencode;
-                       minArgs = 3;
-                       break;
-               case 'i':
-                       op = PR_Import;
-                       minArgs = 4;
-                       break;
-               case 'x':
-                       op = PR_Export;
-                       minArgs = 4;
-                       break;
-               default:
-                       usage(argv);
-       }
-       if(argc < minArgs) {
-               usage(argv);
-       }
-       for(int arg=minArgs; arg<argc; arg++) {
-               char *argp = argv[arg];
-               switch(argp[0]) {
-                       case 'p':
-                               pwd = CFStringCreateWithCString(NULL, &argp[2],
-                                       kCFStringEncodingASCII);
-                               break;
-                       case 'k':
-                               kcName = &argp[2];
-                               break;
-                       case 'P':
-                               usePassKey = true;
-                               break;
-                       case 'v':
-                               verbose = true;
-                               break;
-                       case 'n':
-                               noPrompt = true;
-                               break;
-                       case 'l':
-                               loops = atoi(&argp[2]);
-                               break;
-                       case 'z':
-                               kcPwd = &argp[2];
-                               break;
-                       default:
-                               usage(argv);
-
-               }
-       }
-       
-       /* import/export - ready to go right now */
-       switch(op) {
-               case PR_Import:
-                       return p12Import(argv[2], argv[3], pwd, usePassKey, kcPwd);
-               case PR_Export:
-                       return p12Export(argv[2], argv[3], pwd, usePassKey, kcPwd, noPrompt);
-               default:
-                       break;
-       }
-       
-       /* all other ops: read infile */
-       inFile = argv[2];       
-       CSSM_DATA rawBlob;
-       unsigned len;
-       if(readFile(inFile, &rawBlob.Data, &len)) {
-               printf("***Error reading %s. Aborting.\n", inFile);
-               exit(1);
-       }
-       rawBlob.Length = len;
-       
-       CSSM_CSP_HANDLE cspHand = cuCspStartup(CSSM_TRUE);
-       int rtn = 0;
-       switch(op) {
-               case PR_Decode:
-                       rtn = p12Decode(rawBlob, cspHand, pwd, usePassKey, verbose, loops);
-                       break;
-               case PR_Reencode:
-                       rtn = p12Reencode(rawBlob, cspHand, pwd, verbose, loops);
-                       break;
-               case PR_Parse:
-                       rtn = p12ParseTop(rawBlob, cspHand, pwd, verbose);
-                       break;
-               default:
-                       /* NOT REACHED */
-                       printf("GAK!\n");
-                       rtn = -1;
-                       break;
-       }
-       return rtn;
-}