<PackageReference Include="BouncyCastle.Cryptography" Version="2.6.2" />

LowmcConstants

abstract class LowmcConstants
namespace Org.BouncyCastle.Pqc.Crypto.Picnic { internal abstract class LowmcConstants { internal KMatrices _LMatrix; internal KMatrices _KMatrix; internal KMatrices RConstants; internal KMatrices LMatrix_full; internal KMatrices LMatrix_inv; internal KMatrices KMatrix_full; internal KMatrices KMatrix_inv; internal KMatrices RConstants_full; private KMatricesWithPointer GET_MAT(KMatrices m, int r) { KMatricesWithPointer kMatricesWithPointer = new KMatricesWithPointer(m); kMatricesWithPointer.SetMatrixPointer(r * kMatricesWithPointer.GetSize()); return kMatricesWithPointer; } internal KMatricesWithPointer LMatrix(PicnicEngine engine, int round) { switch (engine.stateSizeBits) { case 128: case 256: return GET_MAT(_LMatrix, round); case 129: case 255: return GET_MAT(LMatrix_full, round); case 192: return GET_MAT((engine.numRounds == 4) ? LMatrix_full : _LMatrix, round); default: return null; } } internal KMatricesWithPointer LMatrixInv(PicnicEngine engine, int round) { switch (engine.stateSizeBits) { case 129: case 255: return GET_MAT(LMatrix_inv, round); case 192: if (engine.numRounds != 4) return null; return GET_MAT(LMatrix_inv, round); default: return null; } } internal KMatricesWithPointer KMatrix(PicnicEngine engine, int round) { switch (engine.stateSizeBits) { case 128: case 256: return GET_MAT(_KMatrix, round); case 129: case 255: return GET_MAT(KMatrix_full, round); case 192: return GET_MAT((engine.numRounds == 4) ? KMatrix_full : _KMatrix, round); default: return null; } } internal KMatricesWithPointer KMatrixInv(PicnicEngine engine, int round) { switch (engine.stateSizeBits) { case 129: case 255: return GET_MAT(KMatrix_inv, round); case 192: if (engine.numRounds != 4) return null; return GET_MAT(KMatrix_inv, round); default: return null; } } internal KMatricesWithPointer RConstant(PicnicEngine engine, int round) { switch (engine.stateSizeBits) { case 128: case 256: return GET_MAT(RConstants, round); case 129: case 255: return GET_MAT(RConstants_full, round); case 192: return GET_MAT((engine.numRounds == 4) ? RConstants_full : RConstants, round); default: return null; } } } }