#include "netsec_des.h" void netsec_des_crypt(int mode, const_DES_cblock *input, DES_cblock *output, char *key) { const_DES_cblock des_key; DES_key_schedule schedule; int des_mode = 0; switch (mode) { case NS_DES_ENCRYPT: des_mode = DES_ENCRYPT; break; case NS_DES_DECRYPT: des_mode = DES_DECRYPT; break; default: fprintf(stderr, "invalid mode parameter!"); exit(1); } DES_string_to_key(key, &des_key); switch(DES_set_key_checked(&des_key, &schedule)) { case -1: perror("Bad parity\n"); exit(1); case -2: perror("Key is weak\n"); exit(1); } DES_ecb_encrypt(input, output, &schedule, des_mode); }