Lines Matching defs:ctx
54 static int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
57 static int des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
62 # define data(ctx) EVP_C_DATA(DES_EDE_KEY,ctx)
69 static int des_ede_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
75 &data(ctx)->ks1, &data(ctx)->ks2,
76 &data(ctx)->ks3, EVP_CIPHER_CTX_is_encrypting(ctx));
80 static int des_ede_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
84 int num = EVP_CIPHER_CTX_get_num(ctx);
86 &data(ctx)->ks1, &data(ctx)->ks2,
87 &data(ctx)->ks3,
88 (DES_cblock *)ctx->iv,
90 EVP_CIPHER_CTX_set_num(ctx, num);
96 int num = EVP_CIPHER_CTX_get_num(ctx);
98 &data(ctx)->ks1, &data(ctx)->ks2,
99 &data(ctx)->ks3,
100 (DES_cblock *)ctx->iv,
102 EVP_CIPHER_CTX_set_num(ctx, num);
107 static int des_ede_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
110 DES_EDE_KEY *dat = data(ctx);
114 ctx->iv);
121 (DES_cblock *)ctx->iv,
122 EVP_CIPHER_CTX_is_encrypting(ctx));
130 (DES_cblock *)ctx->iv,
131 EVP_CIPHER_CTX_is_encrypting(ctx));
135 static int des_ede_cfb64_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
139 int num = EVP_CIPHER_CTX_get_num(ctx);
141 &data(ctx)->ks1, &data(ctx)->ks2,
142 &data(ctx)->ks3, (DES_cblock *)ctx->iv,
143 &num, EVP_CIPHER_CTX_is_encrypting(ctx));
144 EVP_CIPHER_CTX_set_num(ctx, num);
150 int num = EVP_CIPHER_CTX_get_num(ctx);
152 &data(ctx)->ks1, &data(ctx)->ks2,
153 &data(ctx)->ks3, (DES_cblock *)ctx->iv,
154 &num, EVP_CIPHER_CTX_is_encrypting(ctx));
155 EVP_CIPHER_CTX_set_num(ctx, num);
164 static int des_ede3_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
170 if (!EVP_CIPHER_CTX_test_flags(ctx, EVP_CIPH_FLAG_LENGTH_BITS))
175 &data(ctx)->ks1, &data(ctx)->ks2,
176 &data(ctx)->ks3, (DES_cblock *)ctx->iv,
177 EVP_CIPHER_CTX_is_encrypting(ctx));
185 static int des_ede3_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
190 &data(ctx)->ks1, &data(ctx)->ks2,
191 &data(ctx)->ks3, (DES_cblock *)ctx->iv,
192 EVP_CIPHER_CTX_is_encrypting(ctx));
199 &data(ctx)->ks1, &data(ctx)->ks2,
200 &data(ctx)->ks3, (DES_cblock *)ctx->iv,
201 EVP_CIPHER_CTX_is_encrypting(ctx));
224 static int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
228 DES_EDE_KEY *dat = data(ctx);
233 int mode = EVP_CIPHER_CTX_get_mode(ctx);
251 static int des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
255 DES_EDE_KEY *dat = data(ctx);
260 int mode = EVP_CIPHER_CTX_get_mode(ctx);
278 static int des3_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr)
286 kl = EVP_CIPHER_CTX_get_key_length(ctx);
317 static int des_ede3_unwrap(EVP_CIPHER_CTX *ctx, unsigned char *out,
326 memcpy(ctx->iv, wrap_iv, 8);
328 des_ede_cbc_cipher(ctx, icv, in, 8);
338 des_ede_cbc_cipher(ctx, out, in + 8, inl - 16);
340 des_ede_cbc_cipher(ctx, iv, in + inl - 8, 8);
344 BUF_reverse(ctx->iv, iv, 8);
346 des_ede_cbc_cipher(ctx, out, out, inl - 16);
347 des_ede_cbc_cipher(ctx, icv, icv, 8);
354 OPENSSL_cleanse(ctx->iv, 8);
361 static int des_ede3_wrap(EVP_CIPHER_CTX *ctx, unsigned char *out,
375 if (RAND_bytes(ctx->iv, 8) <= 0)
377 memcpy(out, ctx->iv, 8);
379 des_ede_cbc_cipher(ctx, out + 8, out + 8, inl + 8);
381 memcpy(ctx->iv, wrap_iv, 8);
382 des_ede_cbc_cipher(ctx, out, out, inl + 16);
386 static int des_ede3_wrap_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
402 if (EVP_CIPHER_CTX_is_encrypting(ctx))
403 return des_ede3_wrap(ctx, out, in, inl);
405 return des_ede3_unwrap(ctx, out, in, inl);