LONGBOW_TEST_CASE(Global, ccnxPortalFactory_GetKeyId) { const char *keystoreName = "ccnxPortalFactory_keystore"; parcSecurity_Init(); bool success = parcPkcs12KeyStore_CreateFile(keystoreName, "keystore_password", "consumer", 1024, 30); assertTrue(success, "parcPkcs12KeyStore_CreateFile('%s', 'keystore_password') failed.", keystoreName); PARCIdentityFile *identityFile = parcIdentityFile_Create(keystoreName, "keystore_password"); PARCIdentity *identity = parcIdentity_Create(identityFile, PARCIdentityFileAsPARCIdentity); CCNxPortalFactory *factory = ccnxPortalFactory_Create(identity); const PARCKeyId *actual = ccnxPortalFactory_GetKeyId(factory); PARCSigner *signer = parcIdentity_CreateSigner(identity); PARCKeyId *expected = parcSigner_CreateKeyId(signer); parcSigner_Release(&signer); assertTrue(parcKeyId_Equals(expected, actual), "KeyIds not equal"); parcKeyId_Release(&expected); ccnxPortalFactory_Release(&factory); parcIdentityFile_Release(&identityFile); parcIdentity_Release(&identity); parcSecurity_Fini(); }
PARCIdentity * getIdentity_FromFile(const char *keystoreFileName, const char *password) { PARCIdentity *result = NULL; PARCIdentityFile *identityFile = parcIdentityFile_Create(keystoreFileName, password); if (identityFile != NULL) { result = parcIdentity_Create(identityFile, PARCIdentityFileAsPARCIdentity); parcIdentityFile_Release(&identityFile); } return result; }
LONGBOW_TEST_CASE(CreateAcquireRelease, ccnxPortalFactory_Create) { const char *keystoreName = "ccnxPortalFactory_keystore"; parcSecurity_Init(); bool success = parcPublicKeySignerPkcs12Store_CreateFile(keystoreName, "keystore_password", "consumer", 1024, 30); assertTrue(success, "parcPublicKeySignerPkcs12Store_CreateFile('%s', 'keystore_password') failed.", keystoreName); PARCIdentityFile *identityFile = parcIdentityFile_Create(keystoreName, "keystore_password"); PARCIdentity *identity = parcIdentity_Create(identityFile, PARCIdentityFileAsPARCIdentity); parcIdentityFile_Release(&identityFile); CCNxPortalFactory *factory = ccnxPortalFactory_Create(identity); parcIdentity_Release(&identity); ccnxPortalFactory_Release(&factory); parcSecurity_Fini(); }
PARCIdentity * createAndGetIdentity(void) { const char *keystoreName = "consumer_keystore"; const char *keystorePassword = "******"; unsigned int keyLength = 1024; unsigned int validityDays = 30; char *subjectName = "consumer"; bool success = parcPkcs12KeyStore_CreateFile(keystoreName, keystorePassword, subjectName, keyLength, validityDays); assertTrue(success, "parcPkcs12KeyStore_CreateFile('%s', '%s', '%s', %d, %d) failed.", keystoreName, keystorePassword, subjectName, keyLength, validityDays); PARCIdentityFile *identityFile = parcIdentityFile_Create(keystoreName, keystorePassword); PARCIdentity *identity = parcIdentity_Create(identityFile, PARCIdentityFileAsPARCIdentity); parcIdentityFile_Release(&identityFile); return identity; }
PARCIdentity * ccnxFileRepoCommon_CreateAndGetIdentity(const char *keystoreName, const char *keystorePassword, const char *subjectName) { parcSecurity_Init(); unsigned int keyLength = 1024; unsigned int validityDays = 30; bool success = parcPkcs12KeyStore_CreateFile(keystoreName, keystorePassword, subjectName, keyLength, validityDays); assertTrue(success, "parcPkcs12KeyStore_CreateFile('%s', '%s', '%s', %d, %d) failed.", keystoreName, keystorePassword, subjectName, keyLength, validityDays); PARCIdentityFile *identityFile = parcIdentityFile_Create(keystoreName, keystorePassword); PARCIdentity *result = parcIdentity_Create(identityFile, PARCIdentityFileAsPARCIdentity); parcIdentityFile_Release(&identityFile); parcSecurity_Fini(); return result; }
LONGBOW_TEST_CASE(Global, ccnxPortalFactory_GetIdentity) { const char *keystoreName = "ccnxPortalFactory_keystore"; parcSecurity_Init(); bool success = parcPkcs12KeyStore_CreateFile(keystoreName, "keystore_password", "consumer", 1024, 30); assertTrue(success, "parcPkcs12KeyStore_CreateFile('%s', 'keystore_password') failed.", keystoreName); PARCIdentityFile *identityFile = parcIdentityFile_Create(keystoreName, "keystore_password"); PARCIdentity *identity = parcIdentity_Create(identityFile, PARCIdentityFileAsPARCIdentity); CCNxPortalFactory *factory = ccnxPortalFactory_Create(identity); const PARCIdentity *actual = ccnxPortalFactory_GetIdentity(factory); assertTrue(identity == actual, "Expected the result to be the same as provided to the constructor"); parcIdentityFile_Release(&identityFile); parcIdentity_Release(&identity); ccnxPortalFactory_Release(&factory); parcSecurity_Fini(); }
LONGBOW_TEST_CASE(CreateAcquireRelease, ccnxPortalFactory_AcquireRelease) { const char *keystoreName = "ccnxPortalFactory_keystore"; parcSecurity_Init(); bool success = parcPkcs12KeyStore_CreateFile(keystoreName, "keystore_password", "consumer", 1024, 30); assertTrue(success, "parcPkcs12KeyStore_CreateFile('%s', 'keystore_password') failed.", keystoreName); PARCIdentityFile *identityFile = parcIdentityFile_Create(keystoreName, "keystore_password"); PARCIdentity *identity = parcIdentity_Create(identityFile, PARCIdentityFileAsPARCIdentity); CCNxPortalFactory *factory = ccnxPortalFactory_Create(identity); parcIdentityFile_Release(&identityFile); parcIdentity_Release(&identity); CCNxPortalFactory *reference = ccnxPortalFactory_Acquire(factory); assertTrue(factory == reference, "Expected Acquire to return its argument."); ccnxPortalFactory_Release(&factory); ccnxPortalFactory_Release(&reference); parcSecurity_Fini(); }
int main(int argc, char *argv[argc]) { char *keystoreFile = NULL; char *keystorePassword = NULL; char *commandString = "/bin/date"; char *listenName = "lci:/Server"; /* options descriptor */ static struct option longopts[] = { { "identity", required_argument, NULL, 'f' }, { "password", required_argument, NULL, 'p' }, { "help", no_argument, NULL, 'h' }, { "version", no_argument, NULL, 'v' }, { NULL, 0, NULL, 0 } }; if (argc < 2) { usage(); exit(1); } int ch; while ((ch = getopt_long(argc, argv, "fphvc:", longopts, NULL)) != -1) { switch (ch) { case 'f': keystoreFile = optarg; break; case 'p': keystorePassword = optarg; break; case 'v': printf("%s\n", ccnxPortalServerAbout_Version()); return 0; case 'h': usage(); return 0; default: usage(); return -1; } } argc -= optind; argv += optind; if (argv[0] == NULL || keystoreFile == NULL || keystorePassword == NULL) { usage(); return -1; } listenName = argv[0]; commandString = argv[1]; argc += 2; PARCIdentityFile *identityFile = parcIdentityFile_Create(keystoreFile, keystorePassword); if (parcIdentityFile_Exists(identityFile) == false) { printf("Inaccessible keystore file '%s'.\n", keystoreFile); exit(1); } PARCIdentity *identity = parcIdentity_Create(identityFile, PARCIdentityFileAsPARCIdentity); parcIdentityFile_Release(&identityFile); CCNxName *name = ccnxName_CreateFromCString(listenName); int result = ccnServe(identity, name, commandString); ccnxName_Release(&name); return result; }
int main(int argc, char *argv[]) { int result; int ch; while ((ch = getopt_long(argc, argv, "a:f:p:hv", longopts, NULL)) != -1) { switch (ch) { case 'f': keystoreFile = optarg; break; case 'p': keystorePassword = optarg; break; case 'a': setenv(FORWARDER_CONNECTION_ENV, optarg, 1); break; case 'v': printf("%s\n", athenactlAbout_Version()); exit(0); case 'h': _usage(); athenactl_Usage(); exit(0); default: _usage(); exit(1); } } argc -= optind; argv += optind; KeystoreParams *keystoreParams; parcSecurity_Init(); if (keystorePassword == NULL) { keystorePassword = ccnxKeystoreUtilities_ReadPassword(); } keystoreParams = ccnxKeystoreUtilities_OpenFile(keystoreFile, keystorePassword); if (keystoreParams == NULL) { printf("Could not open or authenticate keystore\n"); exit(1); } PARCIdentityFile *identityFile = parcIdentityFile_Create(ccnxKeystoreUtilities_GetFileName(keystoreParams), ccnxKeystoreUtilities_GetPassword(keystoreParams)); if (parcIdentityFile_Exists(identityFile) == false) { printf("Inaccessible keystore file '%s'.\n", keystoreFile); exit(1); } PARCIdentity *identity = parcIdentity_Create(identityFile, PARCIdentityFileAsPARCIdentity); parcIdentityFile_Release(&identityFile); result = athenactl_Command(identity, argc, argv); parcIdentity_Release(&identity); keystoreParams_Destroy(&keystoreParams); parcSecurity_Fini(); return (result); }