X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/b04fe171f0375ecd5d8a24747ca1dff85720a0ca..6b200bc335dc93c5516ccb52f14bd896d8c7fad7:/SecurityTests/cspxutils/sigtest/sigtest.c diff --git a/SecurityTests/cspxutils/sigtest/sigtest.c b/SecurityTests/cspxutils/sigtest/sigtest.c deleted file mode 100644 index 41e6d705..00000000 --- a/SecurityTests/cspxutils/sigtest/sigtest.c +++ /dev/null @@ -1,486 +0,0 @@ -/* - * Tool to cook up key pair, sign & verify, any which way - * with tons of options. - */ -#include -#include -#include -#include -#include -#include -#include "cspwrap.h" -#include "common.h" -#include - -#define DATA_SIZE_DEF 100 -#define USAGE_DEF "noUsage" -#define LOOPS_DEF 10 -#define FEE_PASSWD_LEN 32 /* private data length in bytes, FEE only */ - -static void usage(char **argv) -{ - printf("usage: %s [options]\n", argv[0]); - printf("Options:\n"); - printf(" a=algorithm\n"); - printf(" f=FEE/MD5 F=FEE/SHA1 e=ECDSA r=RSA/MD5 2=RSA/MD2 \n"); - printf(" s=RSA/SHA1 d=DSA R=rawRSA (No digest) \n"); - printf(" 4=RSA/SHA224 6=RSA/SHA256 3=RSA/SHA384 5=RSA/SHA512;\n"); - printf(" E=ECDSA/ANSI; 7=ECDSA/SHA256; 8=ECDSA/SHA384; 9=ECDSA/512; default=RSA/SHA1\n"); - printf(" d=dataSize (default = %d)\n", DATA_SIZE_DEF); - printf(" k=keySize\n"); - printf(" b (pub is blob)\n"); - printf(" r (priv is blob)\n"); - printf(" B=[1xboOt] (pub key in PKCS1/X509/BSAFE/OpenSSH1/OpenSSH2/Octet form)\n"); - printf(" RSA = {PKCS1,X509,OpenSSH1,OpenSSH2} default = PKCS1\n"); - printf(" DSA = {BSAFE,X509,OpenSSH2} default = X509\n"); - printf(" ECDSA = {X509, Only!} default = X509\n"); - printf(" P=primeType (m=Mersenne, f=FEE, g=general; FEE only)\n"); - printf(" C=curveType (m=Montgomery, w=Weierstrass, a=ANSI; FEE only)\n"); - printf(" l=loops (0=forever)\n"); - printf(" s(ign only)\n"); - printf(" V(erify only)\n"); - printf(" c(ontexts only)\n"); - printf(" S (we generate seed, for FEE only)\n"); - printf(" n(o padding; default is PKCS1)\n"); - printf(" p=pauseInterval (default=0, no pause)\n"); - printf(" D (CSP/DL; default = bare CSP)\n"); - printf(" L (dump key and signature blobs)\n"); - printf(" o (key blobs in OCTET_STRING format)\n"); - printf(" q(uiet)\n"); - printf(" v(erbose))\n"); - exit(1); -} - -/* parse public key format character */ -static CSSM_KEYBLOB_FORMAT parsePubKeyFormat(char c, char **argv) -{ - switch(c) { - case '1': - return CSSM_KEYBLOB_RAW_FORMAT_PKCS1; - case 'x': - return CSSM_KEYBLOB_RAW_FORMAT_X509; - case 'b': - return CSSM_KEYBLOB_RAW_FORMAT_FIPS186; - case 'o': - return CSSM_KEYBLOB_RAW_FORMAT_OPENSSH; - case 'O': - return CSSM_KEYBLOB_RAW_FORMAT_OPENSSH2; - default: - usage(argv); - } - /* not reached */ - return -1; -} - -int main(int argc, char **argv) -{ - int arg; - char *argp; - CSSM_CSP_HANDLE cspHand; - CSSM_CC_HANDLE pubSigHand; - CSSM_CC_HANDLE privSigHand; - CSSM_RETURN crtn; - CSSM_DATA randData = {0, NULL}; - CSSM_KEY privKey; - CSSM_KEY pubKey; - CSSM_DATA sigData = {0, NULL}; - unsigned loop; - int i; - unsigned dataSize = DATA_SIZE_DEF; - unsigned keySize = CSP_KEY_SIZE_DEFAULT; - uint32 sigAlg = CSSM_ALGID_SHA1WithRSA; - uint32 keyGenAlg = CSSM_ALGID_RSA; - unsigned pauseInterval = 0; - unsigned loops = LOOPS_DEF; - CSSM_BOOL quiet = CSSM_FALSE; - CSSM_BOOL pubIsRef = CSSM_TRUE; - CSSM_BOOL privIsRef = CSSM_TRUE; - CSSM_BOOL doSign = CSSM_TRUE; - CSSM_BOOL doVerify = CSSM_TRUE; - CSSM_BOOL contextsOnly = CSSM_FALSE; - CSSM_BOOL noPadding = CSSM_FALSE; - CSSM_BOOL verbose = CSSM_FALSE; - CSSM_BOOL bareCsp = CSSM_TRUE; - CSSM_BOOL genSeed = CSSM_FALSE; - CSSM_BOOL dumpBlobs = CSSM_FALSE; - CSSM_KEYBLOB_FORMAT privKeyFormat = CSSM_KEYBLOB_RAW_FORMAT_NONE; - CSSM_KEYBLOB_FORMAT pubKeyFormat = CSSM_KEYBLOB_RAW_FORMAT_NONE; - uint32 primeType = CSSM_FEE_PRIME_TYPE_DEFAULT; // FEE only - uint32 curveType = CSSM_FEE_CURVE_TYPE_DEFAULT; // FEE only - - for(arg=1; arg