Top Description Inners Fields Constructors Methods
org.bouncycastle.crypto.engines

public Class ISAPEngine

extends AEADBufferBaseEngine
Class Inheritance
Imports
org.bouncycastle.util.Arrays, .Pack

ISAP AEAD v2, https://isap.iaik.tugraz.at/ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/isap-spec-final.pdf

ISAP AEAD v2 with reference to C Reference Impl from: https://github.com/isap-lwc/isap-code-package

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static interface
private abstract class
private class
private class
private abstract class
private class
private class
public static enum

Field Summary

Modifier and TypeField and Description
private int
pack-priv final int
private ISAPEngine.ISAP_AEAD
private byte[]
k

private byte[]
Inherited from org.bouncycastle.crypto.engines.AEADBufferBaseEngine:
AADBufferSizeaadFinishedBlockSizeinitialisedm_aadm_aadPosm_bufm_bufPosm_state

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
protected void
init(byte[] key, byte[] iv)

Implements abstract org.bouncycastle.crypto.engines.AEADBaseEngine.init.

protected void
processBuffer(byte[] input, int inOff, byte[] output, int outOff)

Implements abstract org.bouncycastle.crypto.engines.AEADBufferBaseEngine.processBuffer.

protected void
protected void
protected void
protected void
Inherited from org.bouncycastle.crypto.engines.AEADBufferBaseEngine:
bufferResetcheckAADcheckDatadoFinalgetBlockSizegetOutputSizegetUpdateOutputSizeprocessAADByteprocessAADBytesprocessBytesvalidateAndProcessBuffer

Field Detail

ISAP_rHback to summary
private int ISAP_rH
ISAP_STATE_SZback to summary
pack-priv final int ISAP_STATE_SZ
ISAPAEADback to summary
private ISAPEngine.ISAP_AEAD ISAPAEAD
kback to summary
private byte[] k
npubback to summary
private byte[] npub

Constructor Detail

ISAPEngineback to summary
public ISAPEngine(ISAPEngine.IsapType isapType)

Method Detail

initback to summary
protected void init(byte[] key, byte[] iv) throws IllegalArgumentException

Implements abstract org.bouncycastle.crypto.engines.AEADBaseEngine.init.

Annotations
@Override
processBufferback to summary
protected void processBuffer(byte[] input, int inOff, byte[] output, int outOff)

Implements abstract org.bouncycastle.crypto.engines.AEADBufferBaseEngine.processBuffer.

processBufferAADback to summary
protected void processBufferAAD(byte[] input, int inOff)

Implements abstract org.bouncycastle.crypto.engines.AEADBufferBaseEngine.processBufferAAD.

processFinalAADback to summary
protected void processFinalAAD()

Implements abstract org.bouncycastle.crypto.engines.AEADBufferBaseEngine.processFinalAAD.

processFinalBlockback to summary
protected void processFinalBlock(byte[] output, int outOff)

Implements abstract org.bouncycastle.crypto.engines.AEADBufferBaseEngine.processFinalBlock.

Annotations
@Override
resetback to summary
protected void reset(boolean clearMac)

Overrides org.bouncycastle.crypto.engines.AEADBaseEngine.reset.

org.bouncycastle.crypto.engines back to summary

private Interface ISAPEngine.ISAP_AEAD

Known Direct Implementers
org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_A, org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_K

Method Summary

Modifier and TypeMethod and Description
public void
public void
absorbMacBlock(byte[] input, int inOff)

public void
init()

public void
processEncBlock(byte[] input, int inOff, byte[] output, int outOff)

public void
processEncFinalBlock(byte[] output, int outOff)

public void
processMACFinal(byte[] input, int inOff, int len, byte[] tag)

public void
public void

Method Detail

absorbFinalAADBlockback to summary
public void absorbFinalAADBlock()
absorbMacBlockback to summary
public void absorbMacBlock(byte[] input, int inOff)
initback to summary
public void init()
processEncBlockback to summary
public void processEncBlock(byte[] input, int inOff, byte[] output, int outOff)
processEncFinalBlockback to summary
public void processEncFinalBlock(byte[] output, int outOff)
processMACFinalback to summary
public void processMACFinal(byte[] input, int inOff, int len, byte[] tag)
resetback to summary
public void reset()
swapInternalStateback to summary
public void swapInternalState()
org.bouncycastle.crypto.engines back to summary

private abstract Class ISAPEngine.ISAPAEAD_A

extends Object
implements ISAP_AEAD
Class Inheritance
All Implemented Interfaces
org.bouncycastle.crypto.engines.ISAPEngine.ISAP_AEAD
Known Direct Subclasses
org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_A_128A, org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_A_128

Field Summary

Modifier and TypeField and Description
protected long
protected long
protected long
protected long[]
protected long
protected long
protected long
protected long
protected long
protected long[]
protected long
protected long
protected long
protected long
protected long
protected long
protected long
protected long
protected long
protected long

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
public void
private int
getLongSize(int x)

public void
public void
isap_rk(long iv64, byte[] y, int ylen)

public void
P12()

protected void
P6()

public void
processEncBlock(byte[] input, int inOff, byte[] output, int outOff)

Implements org.bouncycastle.crypto.engines.ISAPEngine.ISAP_AEAD.processEncBlock.

public void
public void
processMACFinal(byte[] input, int inOff, int len, byte[] tag)

Implements org.bouncycastle.crypto.engines.ISAPEngine.ISAP_AEAD.processMACFinal.

protected abstract void
PX1()

protected abstract void
PX2()

public void
private long
ROTR(long x, long n)

protected void
ROUND(long C)

public void
protected long
U64BIG(long x)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

ISAP_IV1_64back to summary
protected long ISAP_IV1_64
ISAP_IV2_64back to summary
protected long ISAP_IV2_64
ISAP_IV3_64back to summary
protected long ISAP_IV3_64
k64back to summary
protected long[] k64
macx0back to summary
protected long macx0
macx1back to summary
protected long macx1
macx2back to summary
protected long macx2
macx3back to summary
protected long macx3
macx4back to summary
protected long macx4
npub64back to summary
protected long[] npub64
t0back to summary
protected long t0
t1back to summary
protected long t1
t2back to summary
protected long t2
t3back to summary
protected long t3
t4back to summary
protected long t4
x0back to summary
protected long x0
x1back to summary
protected long x1
x2back to summary
protected long x2
x3back to summary
protected long x3
x4back to summary
protected long x4

Constructor Detail

ISAPAEAD_Aback to summary
public ISAPAEAD_A()

Method Detail

absorbFinalAADBlockback to summary
public void absorbFinalAADBlock()

Implements org.bouncycastle.crypto.engines.ISAPEngine.ISAP_AEAD.absorbFinalAADBlock.

absorbMacBlockback to summary
public void absorbMacBlock(byte[] input, int inOff)

Implements org.bouncycastle.crypto.engines.ISAPEngine.ISAP_AEAD.absorbMacBlock.

getLongSizeback to summary
private int getLongSize(int x)
initback to summary
public void init()

Implements org.bouncycastle.crypto.engines.ISAPEngine.ISAP_AEAD.init.

isap_rkback to summary
public void isap_rk(long iv64, byte[] y, int ylen)
P12back to summary
public void P12()
P6back to summary
protected void P6()
processEncBlockback to summary
public void processEncBlock(byte[] input, int inOff, byte[] output, int outOff)

Implements org.bouncycastle.crypto.engines.ISAPEngine.ISAP_AEAD.processEncBlock.

processEncFinalBlockback to summary
public void processEncFinalBlock(byte[] output, int outOff)

Implements org.bouncycastle.crypto.engines.ISAPEngine.ISAP_AEAD.processEncFinalBlock.

processMACFinalback to summary
public void processMACFinal(byte[] input, int inOff, int len, byte[] tag)

Implements org.bouncycastle.crypto.engines.ISAPEngine.ISAP_AEAD.processMACFinal.

PX1back to summary
protected abstract void PX1()
PX2back to summary
protected abstract void PX2()
resetback to summary
public void reset()

Implements org.bouncycastle.crypto.engines.ISAPEngine.ISAP_AEAD.reset.

ROTRback to summary
private long ROTR(long x, long n)
ROUNDback to summary
protected void ROUND(long C)
swapInternalStateback to summary
public void swapInternalState()

Implements org.bouncycastle.crypto.engines.ISAPEngine.ISAP_AEAD.swapInternalState.

U64BIGback to summary
protected long U64BIG(long x)
org.bouncycastle.crypto.engines back to summary

private Class ISAPEngine.ISAPAEAD_A_128

extends ISAPAEAD_A
Class Inheritance

Field Summary

Inherited from org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_A:
ISAP_IV1_64ISAP_IV2_64ISAP_IV3_64k64macx0macx1macx2macx3macx4npub64t0t1t2t3t4x0x1x2x3x4

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
protected void
protected void
Inherited from org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_A:
absorbFinalAADBlockabsorbMacBlockinitisap_rkP12P6processEncBlockprocessEncFinalBlockprocessMACFinalresetROUNDswapInternalStateU64BIG

Constructor Detail

ISAPAEAD_A_128back to summary
public ISAPAEAD_A_128()

Method Detail

PX1back to summary
protected void PX1()

Implements abstract org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_A.PX1.

PX2back to summary
protected void PX2()

Implements abstract org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_A.PX2.

org.bouncycastle.crypto.engines back to summary

private Class ISAPEngine.ISAPAEAD_A_128A

extends ISAPAEAD_A
Class Inheritance

Field Summary

Inherited from org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_A:
ISAP_IV1_64ISAP_IV2_64ISAP_IV3_64k64macx0macx1macx2macx3macx4npub64t0t1t2t3t4x0x1x2x3x4

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
protected void
protected void
Inherited from org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_A:
absorbFinalAADBlockabsorbMacBlockinitisap_rkP12P6processEncBlockprocessEncFinalBlockprocessMACFinalresetROUNDswapInternalStateU64BIG

Constructor Detail

ISAPAEAD_A_128Aback to summary
public ISAPAEAD_A_128A()

Method Detail

PX1back to summary
protected void PX1()

Implements abstract org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_A.PX1.

PX2back to summary
protected void PX2()

Implements abstract org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_A.PX2.

org.bouncycastle.crypto.engines back to summary

private abstract Class ISAPEngine.ISAPAEAD_K

extends Object
implements ISAP_AEAD
Class Inheritance
All Implemented Interfaces
org.bouncycastle.crypto.engines.ISAPEngine.ISAP_AEAD
Known Direct Subclasses
org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_K_128A, org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_K_128

Field Summary

Modifier and TypeField and Description
protected short[]
C

protected short[]
E

protected short[]
protected short[]
protected short[]
pack-priv final int
protected short[]
protected short[]
private final int[]
protected short[]
protected short[]
protected short[]
protected short[]

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
public void
private void
byteToShort(byte[] input, short[] output, int outLen)

private void
byteToShortXor(byte[] input, int inOff, short[] output, int outLen)

public void
public void
isap_rk(short[] iv16, byte[] y, int ylen, short[] out16, int outlen, short[] C)

protected abstract void
PermuteRoundsBX(short[] SX, short[] E, short[] C)

protected abstract void
PermuteRoundsHX(short[] SX, short[] E, short[] C)

protected abstract void
PermuteRoundsKX(short[] SX, short[] E, short[] C)

protected void
prepareThetaX(short[] SX, short[] C)

public void
processEncBlock(byte[] input, int inOff, byte[] output, int outOff)

Implements org.bouncycastle.crypto.engines.ISAPEngine.ISAP_AEAD.processEncBlock.

public void
public void
processMACFinal(byte[] input, int inOff, int len, byte[] tag)

Implements org.bouncycastle.crypto.engines.ISAPEngine.ISAP_AEAD.processMACFinal.

public void
private short
ROL16(short a, int offset)

protected void
rounds12X(short[] SX, short[] E, short[] C)

protected void
rounds_12_18(short[] SX, short[] E, short[] C)

protected void
rounds_4_18(short[] SX, short[] E, short[] C)

protected void
rounds_8_18(short[] SX, short[] E, short[] C)

private void
shortToByte(short[] input, byte[] output)

public void
protected void
thetaRhoPiChiIota(short[] A, short[] E, short[] C)

protected void
thetaRhoPiChiIotaPrepareTheta(int i, short[] A, short[] E, short[] C)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

Cback to summary
protected short[] C
Eback to summary
protected short[] E
ISAP_IV1_16back to summary
protected short[] ISAP_IV1_16
ISAP_IV2_16back to summary
protected short[] ISAP_IV2_16
ISAP_IV3_16back to summary
protected short[] ISAP_IV3_16
ISAP_STATE_SZ_CRYPTO_NPUBBYTESback to summary
pack-priv final int ISAP_STATE_SZ_CRYPTO_NPUBBYTES
iv16back to summary
protected short[] iv16
k16back to summary
protected short[] k16
KeccakF400RoundConstantsback to summary
private final int[] KeccakF400RoundConstants
macCback to summary
protected short[] macC
macEback to summary
protected short[] macE
macSXback to summary
protected short[] macSX
SXback to summary
protected short[] SX

Constructor Detail

ISAPAEAD_Kback to summary
public ISAPAEAD_K()

Method Detail

absorbFinalAADBlockback to summary
public void absorbFinalAADBlock()

Implements org.bouncycastle.crypto.engines.ISAPEngine.ISAP_AEAD.absorbFinalAADBlock.

absorbMacBlockback to summary
public void absorbMacBlock(byte[] input, int inOff)

Implements org.bouncycastle.crypto.engines.ISAPEngine.ISAP_AEAD.absorbMacBlock.

byteToShortback to summary
private void byteToShort(byte[] input, short[] output, int outLen)
byteToShortXorback to summary
private void byteToShortXor(byte[] input, int inOff, short[] output, int outLen)
initback to summary
public void init()

Implements org.bouncycastle.crypto.engines.ISAPEngine.ISAP_AEAD.init.

isap_rkback to summary
public void isap_rk(short[] iv16, byte[] y, int ylen, short[] out16, int outlen, short[] C)
PermuteRoundsBXback to summary
protected abstract void PermuteRoundsBX(short[] SX, short[] E, short[] C)
PermuteRoundsHXback to summary
protected abstract void PermuteRoundsHX(short[] SX, short[] E, short[] C)
PermuteRoundsKXback to summary
protected abstract void PermuteRoundsKX(short[] SX, short[] E, short[] C)
prepareThetaXback to summary
protected void prepareThetaX(short[] SX, short[] C)
processEncBlockback to summary
public void processEncBlock(byte[] input, int inOff, byte[] output, int outOff)

Implements org.bouncycastle.crypto.engines.ISAPEngine.ISAP_AEAD.processEncBlock.

processEncFinalBlockback to summary
public void processEncFinalBlock(byte[] output, int outOff)

Implements org.bouncycastle.crypto.engines.ISAPEngine.ISAP_AEAD.processEncFinalBlock.

processMACFinalback to summary
public void processMACFinal(byte[] input, int inOff, int len, byte[] tag)

Implements org.bouncycastle.crypto.engines.ISAPEngine.ISAP_AEAD.processMACFinal.

resetback to summary
public void reset()

Implements org.bouncycastle.crypto.engines.ISAPEngine.ISAP_AEAD.reset.

ROL16back to summary
private short ROL16(short a, int offset)
rounds12Xback to summary
protected void rounds12X(short[] SX, short[] E, short[] C)
rounds_12_18back to summary
protected void rounds_12_18(short[] SX, short[] E, short[] C)
rounds_4_18back to summary
protected void rounds_4_18(short[] SX, short[] E, short[] C)
rounds_8_18back to summary
protected void rounds_8_18(short[] SX, short[] E, short[] C)
shortToByteback to summary
private void shortToByte(short[] input, byte[] output)
swapInternalStateback to summary
public void swapInternalState()

Implements org.bouncycastle.crypto.engines.ISAPEngine.ISAP_AEAD.swapInternalState.

thetaRhoPiChiIotaback to summary
protected void thetaRhoPiChiIota(short[] A, short[] E, short[] C)
thetaRhoPiChiIotaPrepareThetaback to summary
protected void thetaRhoPiChiIotaPrepareTheta(int i, short[] A, short[] E, short[] C)
org.bouncycastle.crypto.engines back to summary

private Class ISAPEngine.ISAPAEAD_K_128

extends ISAPAEAD_K
Class Inheritance

Field Summary

Inherited from org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_K:
CEISAP_IV1_16ISAP_IV2_16ISAP_IV3_16ISAP_STATE_SZ_CRYPTO_NPUBBYTESiv16k16macCmacEmacSXSX

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
protected void
PermuteRoundsBX(short[] SX, short[] E, short[] C)

Implements abstract org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_K.PermuteRoundsBX.

protected void
PermuteRoundsHX(short[] SX, short[] E, short[] C)

Implements abstract org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_K.PermuteRoundsHX.

protected void
PermuteRoundsKX(short[] SX, short[] E, short[] C)

Implements abstract org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_K.PermuteRoundsKX.

Inherited from org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_K:
absorbFinalAADBlockabsorbMacBlockinitisap_rkprepareThetaXprocessEncBlockprocessEncFinalBlockprocessMACFinalresetrounds12Xrounds_12_18rounds_4_18rounds_8_18swapInternalStatethetaRhoPiChiIotathetaRhoPiChiIotaPrepareTheta

Constructor Detail

ISAPAEAD_K_128back to summary
public ISAPAEAD_K_128()

Method Detail

PermuteRoundsBXback to summary
protected void PermuteRoundsBX(short[] SX, short[] E, short[] C)

Implements abstract org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_K.PermuteRoundsBX.

PermuteRoundsHXback to summary
protected void PermuteRoundsHX(short[] SX, short[] E, short[] C)

Implements abstract org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_K.PermuteRoundsHX.

PermuteRoundsKXback to summary
protected void PermuteRoundsKX(short[] SX, short[] E, short[] C)

Implements abstract org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_K.PermuteRoundsKX.

org.bouncycastle.crypto.engines back to summary

private Class ISAPEngine.ISAPAEAD_K_128A

extends ISAPAEAD_K
Class Inheritance

Field Summary

Inherited from org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_K:
CEISAP_IV1_16ISAP_IV2_16ISAP_IV3_16ISAP_STATE_SZ_CRYPTO_NPUBBYTESiv16k16macCmacEmacSXSX

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
protected void
PermuteRoundsBX(short[] SX, short[] E, short[] C)

Implements abstract org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_K.PermuteRoundsBX.

protected void
PermuteRoundsHX(short[] SX, short[] E, short[] C)

Implements abstract org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_K.PermuteRoundsHX.

protected void
PermuteRoundsKX(short[] SX, short[] E, short[] C)

Implements abstract org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_K.PermuteRoundsKX.

Inherited from org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_K:
absorbFinalAADBlockabsorbMacBlockinitisap_rkprepareThetaXprocessEncBlockprocessEncFinalBlockprocessMACFinalresetrounds12Xrounds_12_18rounds_4_18rounds_8_18swapInternalStatethetaRhoPiChiIotathetaRhoPiChiIotaPrepareTheta

Constructor Detail

ISAPAEAD_K_128Aback to summary
public ISAPAEAD_K_128A()

Method Detail

PermuteRoundsBXback to summary
protected void PermuteRoundsBX(short[] SX, short[] E, short[] C)

Implements abstract org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_K.PermuteRoundsBX.

PermuteRoundsHXback to summary
protected void PermuteRoundsHX(short[] SX, short[] E, short[] C)

Implements abstract org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_K.PermuteRoundsHX.

PermuteRoundsKXback to summary
protected void PermuteRoundsKX(short[] SX, short[] E, short[] C)

Implements abstract org.bouncycastle.crypto.engines.ISAPEngine.ISAPAEAD_K.PermuteRoundsKX.

org.bouncycastle.crypto.engines back to summary

public final Enum ISAPEngine.IsapType

extends Enum<ISAPEngine.IsapType>
Class Inheritance

Field Summary

Modifier and TypeField and Description
public static final ISAPEngine.IsapType
public static final ISAPEngine.IsapType
public static final ISAPEngine.IsapType
public static final ISAPEngine.IsapType

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static ISAPEngine.IsapType
public static ISAPEngine.IsapType[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

ISAP_A_128back to summary
public static final ISAPEngine.IsapType ISAP_A_128
ISAP_A_128Aback to summary
public static final ISAPEngine.IsapType ISAP_A_128A
ISAP_K_128back to summary
public static final ISAPEngine.IsapType ISAP_K_128
ISAP_K_128Aback to summary
public static final ISAPEngine.IsapType ISAP_K_128A

Constructor Detail

IsapTypeback to summary
private IsapType()

Method Detail

valueOfback to summary
public static ISAPEngine.IsapType valueOf(String name)
valuesback to summary
public static ISAPEngine.IsapType[] values()