package org.bouncycastle.pqc.crypto.mceliece; import java.security.SecureRandom; import org.bouncycastle.crypto.AsymmetricCipherKeyPair; import org.bouncycastle.crypto.AsymmetricCipherKeyPairGenerator; import org.bouncycastle.crypto.KeyGenerationParameters; import org.bouncycastle.crypto.params.AsymmetricKeyParameter; import org.bouncycastle.pqc.math.linearalgebra.GF2Matrix; import org.bouncycastle.pqc.math.linearalgebra.GF2mField; import org.bouncycastle.pqc.math.linearalgebra.GoppaCode; import org.bouncycastle.pqc.math.linearalgebra.Permutation; import org.bouncycastle.pqc.math.linearalgebra.PolynomialGF2mSmallM; /* loaded from: classes6.dex */ public class McElieceCCA2KeyPairGenerator implements AsymmetricCipherKeyPairGenerator { public static final String OID = "1.3.6.1.4.1.8301.3.1.3.4.2"; private int fieldPoly; private boolean initialized = false; private int m; private McElieceCCA2KeyGenerationParameters mcElieceCCA2Params; private int n; private SecureRandom random; private int t; @Override // org.bouncycastle.crypto.AsymmetricCipherKeyPairGenerator public void init(KeyGenerationParameters keyGenerationParameters) { this.mcElieceCCA2Params = (McElieceCCA2KeyGenerationParameters) keyGenerationParameters; this.random = new SecureRandom(); this.m = this.mcElieceCCA2Params.getParameters().getM(); this.n = this.mcElieceCCA2Params.getParameters().getN(); this.t = this.mcElieceCCA2Params.getParameters().getT(); this.fieldPoly = this.mcElieceCCA2Params.getParameters().getFieldPoly(); this.initialized = true; } @Override // org.bouncycastle.crypto.AsymmetricCipherKeyPairGenerator public AsymmetricCipherKeyPair generateKeyPair() { if (!this.initialized) { initializeDefault(); } GF2mField gF2mField = new GF2mField(this.m, this.fieldPoly); PolynomialGF2mSmallM polynomialGF2mSmallM = new PolynomialGF2mSmallM(gF2mField, this.t, 'I', this.random); GoppaCode.MaMaPe computeSystematicForm = GoppaCode.computeSystematicForm(GoppaCode.createCanonicalCheckMatrix(gF2mField, polynomialGF2mSmallM), this.random); GF2Matrix secondMatrix = computeSystematicForm.getSecondMatrix(); Permutation permutation = computeSystematicForm.getPermutation(); GF2Matrix gF2Matrix = (GF2Matrix) secondMatrix.computeTranspose(); return new AsymmetricCipherKeyPair((AsymmetricKeyParameter) new McElieceCCA2PublicKeyParameters(this.n, this.t, gF2Matrix, this.mcElieceCCA2Params.getParameters().getDigest()), (AsymmetricKeyParameter) new McElieceCCA2PrivateKeyParameters(this.n, gF2Matrix.getNumRows(), gF2mField, polynomialGF2mSmallM, permutation, this.mcElieceCCA2Params.getParameters().getDigest())); } private void initializeDefault() { init(new McElieceCCA2KeyGenerationParameters(new SecureRandom(), new McElieceCCA2Parameters())); } }