Ejemplo n.º 1
0
int
main()
{
    while(1) {
        command_t cmd = read_command();

        print_command(&cmd);
        printf("Checksum:      %s\n", verify_checksums(&cmd) ? "valid" : "invalid");
        printf("Temperature:   %d C\n", get_temperature(&cmd));
        printf("Power:         %s\n", get_power_state(&cmd) ? "on" : "off");

        switch(get_mode(&cmd)) {
        case 0:
            printf("Mode:          auto\n");
            break;
        case 2:
            printf("Mode:          dry\n");
            break;
        case 3:
            printf("Mode:          cool\n");
            break;
        case 4:
            printf("Mode:          heat\n");
            break;
        case 6:
            printf("Mode:          fan\n");
            break;
        default:
            printf("Mode:          unknown?\n");
            break;
        }

        if(get_fan_strength(&cmd) & 0x8) {
            printf("Fan strength:  auto\n");
        } else {
            printf("Fan strength:  %d/5\n", get_fan_strength(&cmd) - 2);
        }

        printf("Swing mode:    %s\n", get_swing_mode(&cmd) ? "on" : "off");
        printf("Powerful mode: %s\n", get_powerful_mode(&cmd) ? "on" : "off");

        printf("\n");
    }
}
Ejemplo n.º 2
0
int FIPS_module_mode_set(int onoff, const char *auth)
{
    int ret = 0;

    fips_w_lock();
    fips_started = 1;
    fips_set_owning_thread();

    if (onoff) {

        fips_selftest_fail = 0;

        /* Don't go into FIPS mode twice, just so we can do automagic
           seeding */
        if (FIPS_module_mode()) {
            FIPSerr(FIPS_F_FIPS_MODULE_MODE_SET,
                    FIPS_R_FIPS_MODE_ALREADY_SET);
            fips_selftest_fail = 1;
            ret = 0;
            goto end;
        }
# ifdef OPENSSL_IA32_SSE2
        {
            extern unsigned int OPENSSL_ia32cap_P[2];
            if ((OPENSSL_ia32cap_P[0] & (1 << 25 | 1 << 26)) !=
                    (1 << 25 | 1 << 26)) {
                FIPSerr(FIPS_F_FIPS_MODULE_MODE_SET,
                        FIPS_R_UNSUPPORTED_PLATFORM);
                fips_selftest_fail = 1;
                ret = 0;
                goto end;
            }
        }
# endif

        if (!FIPS_selftest()) {
            fips_selftest_fail = 1;
            ret = 0;
            goto end;
        }

        if (!verify_checksums()) {
            FIPSerr(FIPS_F_FIPS_MODULE_MODE_SET,
                    FIPS_R_FINGERPRINT_DOES_NOT_MATCH);
            fips_selftest_fail = 1;
            ret = 0;
            goto end;
        }

        fips_set_mode(onoff);
        ret = 1;
        goto end;
    }
    fips_set_mode(0);
    fips_selftest_fail = 0;
    ret = 1;
end:
    fips_clear_owning_thread();
    fips_w_unlock();
    return ret;
}