des
ret = des(&des_ctx, &data[0], V); EG(ret, err);
ret = des(&des_ctx, &data[0], W); EG(ret, err);
if(des_set_key(&(ctx->des[0]), k1, DES_ENCRYPTION)){
if(des_set_key(&(ctx->des[1]), k2, DES_DECRYPTION)){
if(des_set_key(&(ctx->des[2]), k1, DES_ENCRYPTION)){
if(des_set_key(&(ctx->des[2]), k3, DES_ENCRYPTION)){
if(des_set_key(&(ctx->des[0]), k1, DES_DECRYPTION)){
if(des_set_key(&(ctx->des[1]), k2, DES_ENCRYPTION)){
if(des_set_key(&(ctx->des[2]), k1, DES_DECRYPTION)){
if(des_set_key(&(ctx->des[2]), k3, DES_DECRYPTION)){
if(des_core(&(ctx->des[0]), input, output)){
if(des_core(&(ctx->des[1]), output, tmp)){
if(des_core(&(ctx->des[2]), tmp, output)){
if(des_core(&(ctx->des[2]), input, output)){
if(des_core(&(ctx->des[1]), output, tmp)){
if(des_core(&(ctx->des[0]), tmp, output)){
des_context des[3];
ATTRIBUTE_WARN_UNUSED_RET int des(const des_context *ctx, const u8 input[8], u8 output[8]);
BLOCK_CIPHER_defs(des, EVP_DES_KEY, NID_des, 8, 8, 8, 64,
BLOCK_CIPHER_def_cfb(des, EVP_DES_KEY, NID_des, 8, 8, 1,
BLOCK_CIPHER_def_cfb(des, EVP_DES_KEY, NID_des, 8, 8, 8,
CIPHER_DEFAULT_GETTABLE_CTX_PARAMS_START(des)
CIPHER_DEFAULT_GETTABLE_CTX_PARAMS_END(des)
IMPLEMENT_des_cipher(des, ecb, ECB, DES_FLAGS, 64, 64, 0, block);
IMPLEMENT_des_cipher(des, cbc, CBC, DES_FLAGS, 64, 64, 64, block);
IMPLEMENT_des_cipher(des, ofb64, OFB, DES_FLAGS, 64, 8, 64, stream);
IMPLEMENT_des_cipher(des, cfb64, CFB, DES_FLAGS, 64, 8, 64, stream);
IMPLEMENT_des_cipher(des, cfb1, CFB, DES_FLAGS, 64, 8, 64, stream);
IMPLEMENT_des_cipher(des, cfb8, CFB, DES_FLAGS, 64, 8, 64, stream);
} des;
#define osti_memcpy(des, src, n) memcpy((void *)des, (void *)src, (size_t)n)
#define osti_strcat(des, src) strcat((char *)des, (char *)src)
#define osti_strcpy(des, src) strcpy((char *)des, (char *)src)
#define osti_strncpy(des, src, n) strncpy((char *)des, (char *)src, (size_t)n)
#define osMemCpy(des, src, n) memcpy((void *)des, (void *)src, (size_t)n)