org.bouncycastle.pqc.legacy.crypto.rainbow.RainbowPrivateKeyParameters Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bcprov-ext-debug-jdk18on Show documentation
Show all versions of bcprov-ext-debug-jdk18on Show documentation
The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. This jar contains JCE provider and lightweight API for the Bouncy Castle Cryptography APIs for Java 1.8 and later with debug enabled.
The newest version!
package org.bouncycastle.pqc.legacy.crypto.rainbow;
public class RainbowPrivateKeyParameters
extends RainbowKeyParameters
{
/**
* Constructor
*
* @param A1inv the inverse of A1(the matrix part of the affine linear map L1)
* (n-v1 x n-v1 matrix)
* @param b1 translation vector, part of the linear affine map L1
* @param A2inv the inverse of A2(the matrix part of the affine linear map L2)
* (n x n matrix)
* @param b2 translation vector, part of the linear affine map L2
* @param vi the number of Vinegar-variables per layer
* @param layers the polynomials with their coefficients of private map F
*/
public RainbowPrivateKeyParameters(short[][] A1inv, short[] b1,
short[][] A2inv, short[] b2, int[] vi, Layer[] layers)
{
super(true, vi[vi.length - 1] - vi[0]);
this.A1inv = A1inv;
this.b1 = b1;
this.A2inv = A2inv;
this.b2 = b2;
this.vi = vi;
this.layers = layers;
}
/*
* invertible affine linear map L1
*/
// the inverse of A1, (n-v1 x n-v1 matrix)
private short[][] A1inv;
// translation vector of L1
private short[] b1;
/*
* invertible affine linear map L2
*/
// the inverse of A2, (n x n matrix)
private short[][] A2inv;
// translation vector of L2
private short[] b2;
/*
* components of F
*/
// the number of Vinegar-variables per layer.
private int[] vi;
// contains the polynomials with their coefficients of private map F
private Layer[] layers;
/**
* Getter for the translation part of the private quadratic map L1.
*
* @return b1 the translation part of L1
*/
public short[] getB1()
{
return this.b1;
}
/**
* Getter for the inverse matrix of A1.
*
* @return the A1inv inverse
*/
public short[][] getInvA1()
{
return this.A1inv;
}
/**
* Getter for the translation part of the private quadratic map L2.
*
* @return b2 the translation part of L2
*/
public short[] getB2()
{
return this.b2;
}
/**
* Getter for the inverse matrix of A2
*
* @return the A2inv
*/
public short[][] getInvA2()
{
return this.A2inv;
}
/**
* Returns the layers contained in the private key
*
* @return layers
*/
public Layer[] getLayers()
{
return this.layers;
}
/**
* /** Returns the array of vi-s
*
* @return the vi
*/
public int[] getVi()
{
return vi;
}
}