Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

axcrypt2-opencl "Call parameter type does not match function signature!" #5711

Open
solardiz opened this issue Mar 24, 2025 · 0 comments
Open

Comments

@solardiz
Copy link
Member

As seen with ancient Intel OpenCL on "super". I think this is a real bug. I'm not sure which exact kernel and parameter this refers to (it doesn't say, so it'll take a bit of effort to find out), but looking at opencl_axcrypt2_fmt_plug.c I see we allocate mem_salt as buffer of axcrypt2_salt_t, but then we reuse it twice: with crypt_kernel and with final_kernel. While axcrypt2_kernel.cl final_kernel does expect a __constant axcrypt2_salt_t *salt, which is hopefully the same type, we reuse a shared PBKDF2 kernel that expects its own salt type. While that type is made the first field of axcrypt2_salt_t, that may not be good enough per OpenCL spec and for all implementations.

Indeed, these related structs are of different size, so if we're talking an array of them, then wouldn't elements starting with the 2nd be at wrong offsets for one of the kernels? Yet somehow this works on most devices, so I guess their OpenCL runtimes implement buffers by passing individual element offsets or something. But are they required to?

I wonder if this format works with recent Intel OpenCL.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant