Rather than return the tuple of `(ctx, args)` I think it'd be nicer to just return `(ctx, evp_cipher, cipher.key, iv_nonce)` and let the caller write out the arguments.