Class BCMcEliecePrivateKey

    • Method Detail

      • 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