int main(int argc, char **argv) { SECStatus rv = SECFailure; PRBool good_result = PR_FALSE; if (argc != 2) return Usage(); rv = RNG_RNGInit(); if (rv != SECSuccess) { SECU_PrintPRandOSError(""); return -1; } rv = BL_Init(); if (rv != SECSuccess) { SECU_PrintPRandOSError(""); return -1; } RNG_SystemInfoForRNG(); good_result = BLAPI_SHVerifyFile(argv[1]); printf("%s\n", (good_result ? "SUCCESS" : "FAILURE")); return (good_result) ? SECSuccess : SECFailure; }
/* * This function is called at dll load time, the code tha makes this * happen is platform specific on defined above. */ static void sftk_startup_tests(void) { SECStatus rv; const char *libraryName = SOFTOKEN_LIB_NAME; PORT_Assert(!sftk_self_tests_ran); PORT_Assert(!sftk_self_tests_success); sftk_self_tests_ran = PR_TRUE; sftk_self_tests_success = PR_FALSE; /* just in case */ /* need to initiallize the oid library before the RSA tests */ rv = SECOID_Init(); if (rv != SECSuccess) { return; } /* make sure freebl is initialized, or our RSA check * may fail. This is normally done at freebl load time, but it's * possible we may have shut freebl down without unloading it. */ rv = BL_Init(); if (rv != SECSuccess) { return; } rv = RNG_RNGInit(); if (rv != SECSuccess) { return; } /* check the RSA combined functions in softoken */ rv = sftk_fips_RSA_PowerUpSelfTest(); if (rv != SECSuccess) { return; } if (!BLAPI_SHVerify(libraryName, (PRFuncPtr)&sftk_fips_RSA_PowerUpSelfTest)) { /* something is wrong with the library, fail without enabling * the token */ return; } sftk_self_tests_success = PR_TRUE; }
void EventDispatch(void) { switch(system_info) { case SYS_EVENT_ERR_IDLE: { // Do Nothing } break; case SYS_EVENT_ERR_READY: { system_info = SYS_EVENT_ERR_IDLE; FATSetStatusFileName("READY"); } break; case SYS_EVENT_ERR_SUCCESS: { system_info = 0; FATSetStatusFileName("SUCCESS"); ResetUSB(); } break; case SYS_EVENT_ERR_UNKOWN: { system_info = 0; FATSetStatusFileName("UNKOWN"); ResetUSB(); } break; case SYS_EVENT_ERR_LARGE: { system_info = 0; FATSetStatusFileName("LARGE"); ResetUSB(); } break; case SYS_EVENT_ERR_FLASH: { system_info = 0; FATSetStatusFileName("FLASH"); ResetUSB(); } break; case SYS_EVENT_ERR_APP: { system_info = 0; FATSetStatusFileName("ERRAPP"); ResetUSB(); } break; case SYS_EVENT_ERR_NOAPP: { system_info = 0; FATSetStatusFileName("NOAPP"); ResetUSB(); } break; case SYS_EVENT_RUN_APP: { system_info = 0; FATSetStatusFileName("APPRUN"); usb_port_set(0); delay_ms(500); // Jump To App system_info = BL_Init(); } break; default: { system_info = SYS_EVENT_ERR_READY; FATSetStatusFileName("READY"); // Reset USB usb_port_set(0); delay_ms(500); usb_port_set(1); USB_Interrupts_Config(); Set_USBClock(); USB_Init(); } break; } }