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"); } }
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; }