void tcert_RawPackageInfo(char *rawOpt, char *pkgName, char *param3p) { char rawDir[MAX_CERT_PATH]; int rValue; //, nOpts; if (NULL == rawOpt) { printf("ERROR: Raw file option not set\n"); printUsage(rawFileInfoList, RAW_FILE_INFO_LIST_SIZE); return; } switch(rawOpt[0]) { case 'd': { int fType = returnFileType(pkgName); switch(fType) { case CERT_P12_FILE: tcert_DumpPKCS12(pkgName); break; default: printf("Unimplemented type for %s (%d)\n", pkgName, fType); break; } } break; case 'l': // l[ist raw packages] if (CERT_OK == (rValue = CertCfgGetObjectStrValue(CERTCFG_PACKAGE_DIR, rawDir, MAX_CERT_PATH))) { //printf("\tPEM files (.pem):\n"); tcert_ListDirExt(rawDir, "pem", 2); //printf("\tPKCS files (.p12):\n"); tcert_ListDirExt(rawDir, "p12", 2); //printf("\tPKCS files (.pfx):\n"); tcert_ListDirExt(rawDir, "pfx", 2); //printf("\tDER files (.der):\n"); tcert_ListDirExt(rawDir, "der", 2); } else printf("ERROR: Unavailable package dir (errno == %d)\n", rValue); break; default: printUsage(rawFileInfoList, RAW_FILE_INFO_LIST_SIZE); } }
int CMessageFile::Open(const TCHAR* lpszPath, MessageFileType fType) { if (!lpszPath) { return -1; } if (_tfopen_s(&m_File, lpszPath, returnFileType(fType)) != 0) { return -1; } if (m_File == NULL) { return -1; } return 0; }
//int CertPemToX509(const char* pemPath, X509** hCert); void tcert_X509PackageInfo(char *certOpt, char *explodeProp, char *certFile) { // char param1[MAX_CERT_PATH]; //char param2[MAX_CERT_PATH]; if (NULL == certOpt) { printUsage(x509InfoList, X509_INFO_LIST_SIZE); return; } switch (certOpt[0]) { case 'd': // d[atabase of current certificates] tcert_printDatabase(); break; case 'i': // i[nstall] and validate a certificate if (NULL == explodeProp) { printf("ERROR: undefined explode option\n"); printUsage(x509InfoList, X509_INFO_LIST_SIZE); break; } else { int serial = 0; sscanf(explodeProp, "%x", &serial); if (0 != serial) CertAddAuthorizedCert(serial); } break; case 's': // s[erial number] printf("UNIMPLEMENTED\n"); break; case 'v': if (NULL == explodeProp) { printf("ERROR: undefined certificate serial number\n"); printUsage(x509InfoList, X509_INFO_LIST_SIZE); break; } else { int serial = 0; sscanf(explodeProp, "%x", &serial); if (0 != serial) CertValidateCertificate(serial); } break; case 'x': // x[plode] the given certificate if (NULL == explodeProp) { printf("ERROR: undefined explode option\n"); printUsage(x509ExplodePropertyList, X509_EXPLODE_PROPERTY_LIST_SIZE); break; } else if (NULL == certFile) { printf("ERROR: undefined certificate name\n"); break; } else { X509 *cert; int fileType; unsigned int result; int property = CERTX509_UNKNOWN_PROPERTY; char propertyStr[64]; fileType = returnFileType(certFile); switch (fileType) { case CERT_PEM_FILE: result = CertPemToX509(certFile, &cert); break; default: printf("ERROR: Illegal file type for %s (%d)\n", certFile, fileType); result = CERT_UNSUPPORTED_CERT_TYPE; } if (CERT_OK != result) { PRINT_RETURN_CODE(result); break;; } switch(explodeProp[0]) { case 'b': // Begining of certificate period property = CERTX509_START_DATE; break; case 'e': // End of certificate period property = CERTX509_EXPIRATION_DATE; break; case 'i': // issuer property = CERTX509_ISSUER_COMMON_NAME; break; case 'o': // subject Org property = CERTX509_SUBJECT_ORGANIZATION_NAME; break; case 'O': // issuer Org property = CERTX509_ISSUER_ORGANIZATION_NAME; break; case 's': // subject common name property = CERTX509_SUBJECT_COMMON_NAME; break; case 'S': // subject Surname property = CERTX509_SUBJECT_SURNAME; break; case 'u': // subject organization unit property = CERTX509_SUBJECT_ORGANIZATION_UNIT_NAME; break; case 'U': // issuer organization unit property = CERTX509_ISSUER_ORGANIZATION_UNIT_NAME; break; } if (property == CERTX509_UNKNOWN_PROPERTY) { printf("ERROR: Unknown property %s\n", explodeProp); printUsage(x509ExplodePropertyList, X509_EXPLODE_PROPERTY_LIST_SIZE); result = CERT_UNKNOWN_PROPERTY; } else if ((CERTX509_START_DATE == property) || (CERTX509_EXPIRATION_DATE == property)) { result = CertX509ReadTimeProperty(cert, property, propertyStr, 64); } else { result = CertX509ReadStrProperty(cert, property, propertyStr, 64); } if (CERT_OK == result) { printf("%s::%s\n", x509PropertyNameList[property], propertyStr); } else PRINT_RETURN_CODE(result); } break; default: printUsage(x509InfoList, X509_INFO_LIST_SIZE); break; } }