Class BCMcElieceCCA2PrivateKey

java.lang.Object
org.bouncycastle.pqc.jcajce.provider.mceliece.BCMcElieceCCA2PrivateKey
All Implemented Interfaces:
Serializable, Key, PrivateKey, Destroyable

public class BCMcElieceCCA2PrivateKey extends Object implements PrivateKey
This class implements a McEliece CCA2 private key and is usually instantiated by the McElieceCCA2KeyPairGenerator or McElieceCCA2KeyFactorySpi.
See Also:
  • Constructor Details

  • Method Details

    • getAlgorithm

      public String getAlgorithm()
      Return the name of the algorithm.
      Specified by:
      getAlgorithm in interface Key
      Returns:
      "McEliece-CCA2"
    • getN

      public int getN()
      Returns:
      the length of the code
    • getK

      public int getK()
      Returns:
      the dimension of the code
    • getT

      public int getT()
      Returns:
      the degree of the Goppa polynomial (error correcting capability)
    • getField

      public GF2mField getField()
      Returns:
      the finite field
    • getGoppaPoly

      public PolynomialGF2mSmallM getGoppaPoly()
      Returns:
      the irreducible Goppa polynomial
    • getP

      public Permutation getP()
      Returns:
      the permutation vector
    • getH

      public GF2Matrix getH()
      Returns:
      the canonical check matrix
    • getQInv

      public PolynomialGF2mSmallM[] getQInv()
      Returns:
      the matrix used to compute square roots in (GF(2^m))^t
    • equals

      public boolean equals(Object other)
      Compare this key with another object.
      Overrides:
      equals in class Object
      Parameters:
      other - the other object
      Returns:
      the result of the comparison
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
      Returns:
      the hash code of this key
    • getEncoded

      public byte[] getEncoded()
      Return the keyData to encode in the SubjectPublicKeyInfo structure.

      The ASN.1 definition of the key structure is

         McEliecePrivateKey ::= SEQUENCE {
           m             INTEGER                  -- extension degree of the field
           k             INTEGER                  -- dimension of the code
           field         OCTET STRING             -- field polynomial
           goppaPoly     OCTET STRING             -- irreducible Goppa polynomial
           p             OCTET STRING             -- permutation vector
           matrixH       OCTET STRING             -- canonical check matrix
           sqRootMatrix  SEQUENCE OF OCTET STRING -- square root matrix
         }
       
      Specified by:
      getEncoded in interface Key
      Returns:
      the keyData to encode in the SubjectPublicKeyInfo structure
    • getFormat

      public String getFormat()
      Specified by:
      getFormat in interface Key