Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
/*
 * 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;
}
Exemplo n.º 3
0
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;
    }
}