diff options
Diffstat (limited to 'bcprov/src/main/java/org/bouncycastle/pqc/jcajce/provider/mceliece/BCMcElieceCCA2PublicKey.java')
-rw-r--r-- | bcprov/src/main/java/org/bouncycastle/pqc/jcajce/provider/mceliece/BCMcElieceCCA2PublicKey.java | 226 |
1 files changed, 0 insertions, 226 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/pqc/jcajce/provider/mceliece/BCMcElieceCCA2PublicKey.java b/bcprov/src/main/java/org/bouncycastle/pqc/jcajce/provider/mceliece/BCMcElieceCCA2PublicKey.java deleted file mode 100644 index f606464..0000000 --- a/bcprov/src/main/java/org/bouncycastle/pqc/jcajce/provider/mceliece/BCMcElieceCCA2PublicKey.java +++ /dev/null @@ -1,226 +0,0 @@ -package org.bouncycastle.pqc.jcajce.provider.mceliece; - - -import java.io.IOException; -import java.security.PublicKey; - -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.ASN1Primitive; -import org.bouncycastle.asn1.DERNull; -import org.bouncycastle.asn1.x509.AlgorithmIdentifier; -import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo; -import org.bouncycastle.crypto.CipherParameters; -import org.bouncycastle.pqc.asn1.McElieceCCA2PublicKey; -import org.bouncycastle.pqc.crypto.mceliece.McElieceCCA2KeyPairGenerator; -import org.bouncycastle.pqc.crypto.mceliece.McElieceCCA2Parameters; -import org.bouncycastle.pqc.crypto.mceliece.McElieceCCA2PublicKeyParameters; -import org.bouncycastle.pqc.jcajce.spec.McElieceCCA2PublicKeySpec; -import org.bouncycastle.pqc.math.linearalgebra.GF2Matrix; - -/** - * This class implements a McEliece CCA2 public key and is usually instantiated - * by the {@link McElieceCCA2KeyPairGenerator} or {@link McElieceCCA2KeyFactorySpi}. - */ -public class BCMcElieceCCA2PublicKey - implements CipherParameters, PublicKey -{ - - /** - * - */ - private static final long serialVersionUID = 1L; - - // the OID of the algorithm - private String oid; - - // the length of the code - private int n; - - // the error correction capability of the code - private int t; - - // the generator matrix - private GF2Matrix g; - - private McElieceCCA2Parameters McElieceCCA2Params; - - /** - * Constructor (used by the {@link McElieceCCA2KeyPairGenerator}). - * - * @param n the length of the code - * @param t the error correction capability of the code - * @param g the generator matrix - */ - public BCMcElieceCCA2PublicKey(String oid, int n, int t, GF2Matrix g) - { - this.oid = oid; - this.n = n; - this.t = t; - this.g = g; - } - - /** - * Constructor (used by the {@link McElieceCCA2KeyFactorySpi}). - * - * @param keySpec a {@link McElieceCCA2PublicKeySpec} - */ - public BCMcElieceCCA2PublicKey(McElieceCCA2PublicKeySpec keySpec) - { - this(keySpec.getOIDString(), keySpec.getN(), keySpec.getT(), keySpec.getMatrixG()); - } - - public BCMcElieceCCA2PublicKey(McElieceCCA2PublicKeyParameters params) - { - this(params.getOIDString(), params.getN(), params.getT(), params.getMatrixG()); - this.McElieceCCA2Params = params.getParameters(); - } - - /** - * Return the name of the algorithm. - * - * @return "McEliece" - */ - public String getAlgorithm() - { - return "McEliece"; - } - - /** - * @return the length of the code - */ - public int getN() - { - return n; - } - - /** - * @return the dimension of the code - */ - public int getK() - { - return g.getNumRows(); - } - - /** - * @return the error correction capability of the code - */ - public int getT() - { - return t; - } - - /** - * @return the generator matrix - */ - public GF2Matrix getG() - { - return g; - } - - /** - * @return a human readable form of the key - */ - public String toString() - { - String result = "McEliecePublicKey:\n"; - result += " length of the code : " + n + "\n"; - result += " error correction capability: " + t + "\n"; - result += " generator matrix : " + g.toString(); - return result; - } - - /** - * Compare this key with another object. - * - * @param other the other object - * @return the result of the comparison - */ - public boolean equals(Object other) - { - if (other == null || !(other instanceof BCMcElieceCCA2PublicKey)) - { - return false; - } - - BCMcElieceCCA2PublicKey otherKey = (BCMcElieceCCA2PublicKey)other; - - return (n == otherKey.n) && (t == otherKey.t) && (g.equals(otherKey.g)); - } - - /** - * @return the hash code of this key - */ - public int hashCode() - { - return n + t + g.hashCode(); - } - - /** - * @return the OID of the algorithm - */ - public String getOIDString() - { - return oid; - } - - /** - * @return the OID to encode in the SubjectPublicKeyInfo structure - */ - protected ASN1ObjectIdentifier getOID() - { - return new ASN1ObjectIdentifier(McElieceCCA2KeyFactorySpi.OID); - } - - /** - * @return the algorithm parameters to encode in the SubjectPublicKeyInfo - * structure - */ - protected ASN1Primitive getAlgParams() - { - return null; // FIXME: needed at all? - } - - /** - * Return the keyData to encode in the SubjectPublicKeyInfo structure. - * <p> - * The ASN.1 definition of the key structure is - * <pre> - * McEliecePublicKey ::= SEQUENCE { - * n Integer -- length of the code - * t Integer -- error correcting capability - * matrixG OctetString -- generator matrix as octet string - * } - * </pre> - * </p> - * @return the keyData to encode in the SubjectPublicKeyInfo structure - */ - public byte[] getEncoded() - { - McElieceCCA2PublicKey key = new McElieceCCA2PublicKey(new ASN1ObjectIdentifier(oid), n, t, g); - AlgorithmIdentifier algorithmIdentifier = new AlgorithmIdentifier(this.getOID(), DERNull.INSTANCE); - - try - { - SubjectPublicKeyInfo subjectPublicKeyInfo = new SubjectPublicKeyInfo(algorithmIdentifier, key); - - return subjectPublicKeyInfo.getEncoded(); - } - catch (IOException e) - { - return null; - } - - } - - public String getFormat() - { - // TODO Auto-generated method stub - return null; - } - - public McElieceCCA2Parameters getMcElieceCCA2Parameters() - { - return McElieceCCA2Params; - } - -} |