Top Fields Constructors Methods
org.bouncycastle.pqc.crypto.hqc

pack-priv Class GF2PolynomialCalculator

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
private final int
private final long
private final int

Constructor Summary

AccessConstructor and Description
pack-priv
GF2PolynomialCalculator(int vec_n_size_64, int param_n, long red_mask)

Method Summary

Modifier and TypeMethod and Description
pack-priv static void
addLongs(long[] res, long[] a, long[] b)

private void
base_mul(long[] c, int cOffset, long a, long b)

private void
karatsuba(long[] o, int oOffset, long[] a, int aOffset, long[] b, int bOffset, int size, long[] stack, int stackOffset)

Karatsuba multiplication of a and b, Implementation inspired from the NTL library.

private void
karatsuba_add1(long[] alh, int alhOffset, long[] blh, int blhOffset, long[] a, int aOffset, long[] b, int bOffset, int size_l, int size_h)

private void
karatsuba_add2(long[] o, int oOffset, long[] tmp1, int tmp1Offset, long[] tmp2, int tmp2Offset, int size_l, int size_h)

protected void
multLongs(long[] res, long[] a, long[] b)

private void
reduce(long[] o, long[] a)

@brief Compute o(x) = a(x) mod \f$ X^n - 1\f$ This function computes the modular reduction of the polynomial a(x)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

PARAM_Nback to summary
private final int PARAM_N
RED_MASKback to summary
private final long RED_MASK
VEC_N_SIZE_64back to summary
private final int VEC_N_SIZE_64

Constructor Detail

GF2PolynomialCalculatorback to summary
pack-priv GF2PolynomialCalculator(int vec_n_size_64, int param_n, long red_mask)

Method Detail

addLongsback to summary
pack-priv static void addLongs(long[] res, long[] a, long[] b)
base_mulback to summary
private void base_mul(long[] c, int cOffset, long a, long b)
karatsubaback to summary
private void karatsuba(long[] o, int oOffset, long[] a, int aOffset, long[] b, int bOffset, int size, long[] stack, int stackOffset)

Karatsuba multiplication of a and b, Implementation inspired from the NTL library. \param[out] o Polynomial \param[in] a Polynomial \param[in] b Polynomial \param[in] size Length of polynomial \param[in] stack Length of polynomial

karatsuba_add1back to summary
private void karatsuba_add1(long[] alh, int alhOffset, long[] blh, int blhOffset, long[] a, int aOffset, long[] b, int bOffset, int size_l, int size_h)
karatsuba_add2back to summary
private void karatsuba_add2(long[] o, int oOffset, long[] tmp1, int tmp1Offset, long[] tmp2, int tmp2Offset, int size_l, int size_h)
multLongsback to summary
protected void multLongs(long[] res, long[] a, long[] b)
reduceback to summary
private void reduce(long[] o, long[] a)

@brief Compute o(x) = a(x) mod \f$ X^n - 1\f$ This function computes the modular reduction of the polynomial a(x)