> /* Most significant octet of plaintextData corresponds to data[0] */ > swap_buf(r, data, 16); > > - aes_encrypt(&ctx, data, data); + aes_encrypt_new(&aes, data, data);
One thing you might want to consider, which reduces the churn in the series. You can use _Generic() to do type-based dispatch on the first pointer. Something like this: void aes_encrypt(const struct crypto_aes_ctx *ctx, u8 *out, const u8 *in); void aes_encrypt_new(aes_encrypt_arg key, u8 out[at_least AES_BLOCK_SIZE], const u8 in[at_least AES_BLOCK_SIZE]); #define aes_encrypt(ctx, out, in) \ _Generic(ctx, \ const struct crypto_aes_ctx *: aes_encrypt(ctx, out, in), \ aes_encrypt_arg: aes_encrypt_new(ctx, out, in)) i.e. it keeps the _new()-ism in a single header, without needing to change the drivers a second time. ~Andrew
