95
static int des_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
96
const unsigned char *in, unsigned int inl)
95
static int des_cfb64_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
96
const unsigned char *in, unsigned int inl)
98
98
DES_cfb64_encrypt(in, out, (long)inl, ctx->cipher_data,
99
99
(DES_cblock *)ctx->iv, &ctx->num, ctx->encrypt);
103
/* Although we have a CFB-r implementation for DES, it doesn't pack the right
104
way, so wrap it here */
105
static int des_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
106
const unsigned char *in, unsigned int inl)
109
unsigned char c[1],d[1];
111
for(n=0 ; n < inl ; ++n)
113
c[0]=(in[n/8]&(1 << (7-n%8))) ? 0x80 : 0;
114
DES_cfb_encrypt(c,d,1,1,ctx->cipher_data,(DES_cblock *)ctx->iv,
116
out[n/8]=(out[n/8]&~(0x80 >> (n%8)))|((d[0]&0x80) >> (n%8));
121
static int des_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
122
const unsigned char *in, unsigned int inl)
124
DES_cfb_encrypt(in,out,8,inl,ctx->cipher_data,(DES_cblock *)ctx->iv,
103
129
BLOCK_CIPHER_defs(des, DES_key_schedule, NID_des, 8, 8, 8, 64,
104
130
0, des_init_key, NULL,
105
131
EVP_CIPHER_set_asn1_iv,
106
132
EVP_CIPHER_get_asn1_iv,
135
BLOCK_CIPHER_def_cfb(des,DES_key_schedule,NID_des,8,8,1,0,des_init_key,NULL,
136
EVP_CIPHER_set_asn1_iv,
137
EVP_CIPHER_get_asn1_iv,NULL)
139
BLOCK_CIPHER_def_cfb(des,DES_key_schedule,NID_des,8,8,8,0,des_init_key,NULL,
140
EVP_CIPHER_set_asn1_iv,
141
EVP_CIPHER_get_asn1_iv,NULL)
110
143
static int des_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
111
144
const unsigned char *iv, int enc)