Search in sources :

Example 1 with KeyParameter

use of org.openecard.bouncycastle.crypto.params.KeyParameter in project open-ecard by ecsec.

the class AuthenticationToken method generateToken.

/**
 * Generate an authentication token.
 *
 * @param keyMac Key for message authentication
 * @param key Key
 * @throws GeneralSecurityException
 */
public void generateToken(byte[] keyMac, byte[] key) throws GeneralSecurityException {
    byte[] tmp = new byte[16];
    byte[] macData = getMACObject(key);
    CMac cMAC = new CMac(new AESEngine());
    cMAC.init(new KeyParameter(keyMac));
    cMAC.update(macData, 0, macData.length);
    cMAC.doFinal(tmp, 0);
    System.arraycopy(tmp, 0, token, 0, 8);
}
Also used : AESEngine(org.openecard.bouncycastle.crypto.engines.AESEngine) CMac(org.openecard.bouncycastle.crypto.macs.CMac) KeyParameter(org.openecard.bouncycastle.crypto.params.KeyParameter)

Example 2 with KeyParameter

use of org.openecard.bouncycastle.crypto.params.KeyParameter in project open-ecard by ecsec.

the class SecureMessaging method getCMAC.

/**
 * Gets the CMAC.
 *
 * @param smssc Secure Messaging Send Sequence Counter
 * @return CMAC
 */
private CMac getCMAC(byte[] smssc) {
    CMac cmac = new CMac(new AESFastEngine());
    cmac.init(new KeyParameter(keyMAC));
    cmac.update(smssc, 0, smssc.length);
    return cmac;
}
Also used : CMac(org.openecard.bouncycastle.crypto.macs.CMac) KeyParameter(org.openecard.bouncycastle.crypto.params.KeyParameter) AESFastEngine(org.openecard.bouncycastle.crypto.engines.AESFastEngine)

Aggregations

CMac (org.openecard.bouncycastle.crypto.macs.CMac)2 KeyParameter (org.openecard.bouncycastle.crypto.params.KeyParameter)2 AESEngine (org.openecard.bouncycastle.crypto.engines.AESEngine)1 AESFastEngine (org.openecard.bouncycastle.crypto.engines.AESFastEngine)1