I try to decrypt data that was originally encrypted with Objective-C in Java.
There are other questions mentioning this but they are really cluttered and many of them a
This is probably not contributing to your problem, but it's wrong anyway:
char * keyPtr[kCCKeySizeAES128+1]; // room for terminator (unused)
That defines an array of kCCKeySizeAES128 + 1 pointers, not kCCKeySizeAES128 + 1 bytes. As it happens, it is OK because the buffer you get is four or eight times larger than you need depending on whether you are compiling for 32 or 64 bit.
EDIT: Another issue:
You potentially have a bunch of issues.
When doing any encryption/decryption you need to ensure:
..and of course the encryption scheme is identical. Confusingly your encryption seems to be using AES128, although the comments discuss using AES256. Not sure what the Java version is using