org.bouncycastle.pqc.jcajce.provider.mceliece
Class BCMcEliecePrivateKey
java.lang.Object
|
+--org.bouncycastle.pqc.jcajce.provider.mceliece.BCMcEliecePrivateKey
- All Implemented Interfaces:
- CipherParameters, java.security.Key, java.security.PrivateKey, java.io.Serializable
- public class BCMcEliecePrivateKey
- extends java.lang.Object
- implements CipherParameters, java.security.PrivateKey
This class implements a McEliece private key and is usually instantiated by
the McElieceKeyPairGenerator
or McElieceKeyFactorySpi
.
- See Also:
- Serialized Form
Fields inherited from interface java.security.PrivateKey |
serialVersionUID |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
BCMcEliecePrivateKey
public BCMcEliecePrivateKey(McEliecePrivateKeyParameters params)
getAlgorithm
public java.lang.String getAlgorithm()
- Return the name of the algorithm.
- Specified by:
getAlgorithm
in interface java.security.Key
- Returns:
- "McEliece"
getN
public int getN()
- Returns:
- the length of the code
getK
public int getK()
- Returns:
- the dimension of the code
getField
public GF2mField getField()
- Returns:
- the finite field
getGoppaPoly
public PolynomialGF2mSmallM getGoppaPoly()
- Returns:
- the irreducible Goppa polynomial
getSInv
public GF2Matrix getSInv()
- Returns:
- the k x k random binary non-singular matrix S
getP1
public Permutation getP1()
- Returns:
- the permutation used to generate the systematic check matrix
getP2
public Permutation getP2()
- Returns:
- the permutation used to compute the public generator matrix
getH
public GF2Matrix getH()
- Returns:
- the canonical check matrix
getQInv
public PolynomialGF2mSmallM[] getQInv()
- Returns:
- the matrix for computing square roots in (GF(2^m))^t
equals
public boolean equals(java.lang.Object other)
- Compare this key with another object.
- Overrides:
equals
in class java.lang.Object
- Parameters:
other
- the other object- Returns:
- the result of the comparison
hashCode
public int hashCode()
- Overrides:
hashCode
in class java.lang.Object
- Returns:
- the hash code of this key
getEncoded
public byte[] getEncoded()
- Return the key data to encode in the SubjectPublicKeyInfo structure.
The ASN.1 definition of the key structure is
McEliecePrivateKey ::= SEQUENCE {
n INTEGER -- length of the code
k INTEGER -- dimension of the code
fieldPoly OCTET STRING -- field polynomial defining GF(2ˆm)
getGoppaPoly() OCTET STRING -- irreducible Goppa polynomial
sInv OCTET STRING -- matrix Sˆ-1
p1 OCTET STRING -- permutation P1
p2 OCTET STRING -- permutation P2
h OCTET STRING -- canonical check matrix
qInv SEQUENCE OF OCTET STRING -- matrix used to compute square roots
}
- Specified by:
getEncoded
in interface java.security.Key
- Returns:
- the key data to encode in the SubjectPublicKeyInfo structure
getFormat
public java.lang.String getFormat()
- Specified by:
getFormat
in interface java.security.Key