Seems like zorro_InvMixColumns() function should account for offset parameter in the similar fashion as zorro_MixColumn() does.
temp[(short)(j + offset_cpy)] = internBuffer[(short)((i * 4) + j)];
should be:
temp[(short)(j + offset_cpy)] = internBuffer[(short)((i * 4) + j + offset)];
and similarly
internBuffer[(short)((i * 4) + j)] = temp[(short)(j + offset_cpy)];
should be:
internBuffer[(short)((i * 4) + j + offset)] = temp[(short)(j + offset_cpy)];
Otherwise short offset parameter has no meaning and actually may cause erroneous calculation.
Seems like zorro_InvMixColumns() function should account for offset parameter in the similar fashion as zorro_MixColumn() does.
temp[(short)(j + offset_cpy)] = internBuffer[(short)((i * 4) + j)];should be:
temp[(short)(j + offset_cpy)] = internBuffer[(short)((i * 4) + j + offset)];and similarly
internBuffer[(short)((i * 4) + j)] = temp[(short)(j + offset_cpy)];should be:
internBuffer[(short)((i * 4) + j + offset)] = temp[(short)(j + offset_cpy)];Otherwise
short offsetparameter has no meaning and actually may cause erroneous calculation.