/* Triple DES Iv Set, sometimes added later */ int CRYPT_TDES_IvSet(CRYPT_TDES_CTX* tdes, const unsigned char* iv) { if (tdes == NULL || iv == NULL) return BAD_FUNC_ARG; return wc_Des3_SetIV((Des3*)tdes, iv); }
int wc_Des3_SetKey(Des3* des, const byte* key, const byte* iv, int dir) { int ret; #ifdef HAVE_CAVIUM if (des->magic == WOLFSSL_3DES_CAVIUM_MAGIC) return wc_Des3_CaviumSetKey(des, key, iv); #endif ret = DesSetKey(key + (dir == DES_ENCRYPTION ? 0:16), dir, des->key[0]); if (ret != 0) return ret; ret = DesSetKey(key + 8, Reverse(dir), des->key[1]); if (ret != 0) return ret; ret = DesSetKey(key + (dir == DES_DECRYPTION ? 0:16), dir, des->key[2]); if (ret != 0) return ret; return wc_Des3_SetIV(des, iv); }