316317318319320321322323324325326
extra = (extra + associatedText.length) % 16; if (extra != 0) { for (int i = 0; i != 16 - extra; i++) { cMac.update((byte)0x00); } } } //
324325326327328329330331332333334
} // // add the text // cMac.update(data, dataOff, dataLen); return cMac.doFinal(macBlock, 0); } private boolean hasAssociatedText()
123124125126127128129130131132133
// // word aligned data - zero IV // mac.init(key); mac.update(input2, 0, input2.length); out = new byte[4]; mac.doFinal(out, 0);
141142143144145146147148149150151
// mac = new CBCBlockCipherMac(cipher, new PKCS7Padding()); mac.init(key); mac.update(input2, 0, input2.length); out = new byte[4]; mac.doFinal(out, 0);
157158159160161162163164165166167
// // non-word aligned data - zero IV - CBC padding // mac.reset(); mac.update(input1, 0, input1.length); out = new byte[4]; mac.doFinal(out, 0);
173174175176177178179180181182183
// // non-word aligned data - zero IV - CBC padding // mac.init(key); mac.update(input1, 0, input1.length); out = new byte[4]; mac.doFinal(out, 0);
6970717273747576777879
// // standard DAC - zero IV // mac.init(key); mac.update(input1, 0, input1.length); byte[] out = new byte[4]; mac.doFinal(out, 0);
8788899091929394959697
// ParametersWithIV param = new ParametersWithIV(key, ivBytes); mac.init(param); mac.update(input1, 0, input1.length); out = new byte[4]; mac.doFinal(out, 0);
107108109110111112113114115116117
mac = new CFBBlockCipherMac(cipher); mac.init(param); mac.update(input1, 0, input1.length); out = new byte[4]; mac.doFinal(out, 0);
307308309310311312313314315316317
b0[b0.length - count] = (byte)(q & 0xff); q >>>= 8; count++; } cMac.update(b0, 0, b0.length); // // process associated text // if (hasAssociatedText())