package org.bouncycastle.jcajce.provider.asymmetric.dsa; import java.io.IOException; import java.math.BigInteger; import java.security.InvalidKeyException; import java.security.PrivateKey; import java.security.PublicKey; import java.security.SecureRandom; import java.security.SignatureException; import java.security.SignatureSpi; import java.security.interfaces.DSAKey; import java.security.spec.AlgorithmParameterSpec; import org.bouncycastle.asn1.ASN1Encoding; import org.bouncycastle.asn1.ASN1Integer; import org.bouncycastle.asn1.ASN1Primitive; import org.bouncycastle.asn1.ASN1Sequence; import org.bouncycastle.asn1.DERSequence; import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo; import org.bouncycastle.asn1.x509.X509ObjectIdentifiers; import org.bouncycastle.crypto.CipherParameters; import org.bouncycastle.crypto.DSA; import org.bouncycastle.crypto.Digest; import org.bouncycastle.crypto.digests.NullDigest; import org.bouncycastle.crypto.digests.SHA1Digest; import org.bouncycastle.crypto.digests.SHA224Digest; import org.bouncycastle.crypto.digests.SHA256Digest; import org.bouncycastle.crypto.digests.SHA384Digest; import org.bouncycastle.crypto.digests.SHA3Digest; import org.bouncycastle.crypto.digests.SHA512Digest; import org.bouncycastle.crypto.params.AsymmetricKeyParameter; import org.bouncycastle.crypto.params.ParametersWithRandom; import org.bouncycastle.crypto.signers.HMacDSAKCalculator; import org.jmrtd.PassportService; /* loaded from: classes6.dex */ public class DSASigner extends SignatureSpi implements PKCSObjectIdentifiers, X509ObjectIdentifiers { private Digest digest; private SecureRandom random; private DSA signer; @Override // java.security.SignatureSpi protected boolean engineVerify(byte[] bArr) throws SignatureException { byte[] bArr2 = new byte[this.digest.getDigestSize()]; this.digest.doFinal(bArr2, 0); try { BigInteger[] derDecode = derDecode(bArr); return this.signer.verifySignature(bArr2, derDecode[0], derDecode[1]); } catch (Exception unused) { throw new SignatureException("error decoding signature bytes."); } } @Override // java.security.SignatureSpi protected void engineUpdate(byte[] bArr, int i, int i2) throws SignatureException { this.digest.update(bArr, i, i2); } @Override // java.security.SignatureSpi protected void engineUpdate(byte b) throws SignatureException { this.digest.update(b); } @Override // java.security.SignatureSpi protected byte[] engineSign() throws SignatureException { byte[] bArr = new byte[this.digest.getDigestSize()]; this.digest.doFinal(bArr, 0); try { BigInteger[] generateSignature = this.signer.generateSignature(bArr); return derEncode(generateSignature[0], generateSignature[1]); } catch (Exception e) { throw new SignatureException(e.toString()); } } @Override // java.security.SignatureSpi protected void engineSetParameter(AlgorithmParameterSpec algorithmParameterSpec) { throw new UnsupportedOperationException("engineSetParameter unsupported"); } @Override // java.security.SignatureSpi protected void engineSetParameter(String str, Object obj) { throw new UnsupportedOperationException("engineSetParameter unsupported"); } @Override // java.security.SignatureSpi protected void engineInitVerify(PublicKey publicKey) throws InvalidKeyException { AsymmetricKeyParameter generatePublicKeyParameter; if (publicKey instanceof DSAKey) { generatePublicKeyParameter = DSAUtil.generatePublicKeyParameter(publicKey); } else { try { generatePublicKeyParameter = DSAUtil.generatePublicKeyParameter(new BCDSAPublicKey(SubjectPublicKeyInfo.getInstance(publicKey.getEncoded()))); } catch (Exception unused) { throw new InvalidKeyException("can't recognise key type in DSA based signer"); } } this.digest.reset(); this.signer.init(false, generatePublicKeyParameter); } @Override // java.security.SignatureSpi protected void engineInitSign(PrivateKey privateKey, SecureRandom secureRandom) throws InvalidKeyException { this.random = secureRandom; engineInitSign(privateKey); } @Override // java.security.SignatureSpi protected void engineInitSign(PrivateKey privateKey) throws InvalidKeyException { CipherParameters generatePrivateKeyParameter = DSAUtil.generatePrivateKeyParameter(privateKey); SecureRandom secureRandom = this.random; if (secureRandom != null) { generatePrivateKeyParameter = new ParametersWithRandom(generatePrivateKeyParameter, secureRandom); } this.digest.reset(); this.signer.init(true, generatePrivateKeyParameter); } @Override // java.security.SignatureSpi protected Object engineGetParameter(String str) { throw new UnsupportedOperationException("engineSetParameter unsupported"); } private byte[] derEncode(BigInteger bigInteger, BigInteger bigInteger2) throws IOException { return new DERSequence(new ASN1Integer[]{new ASN1Integer(bigInteger), new ASN1Integer(bigInteger2)}).getEncoded(ASN1Encoding.DER); } /* loaded from: classes6.dex */ public static class detDSA extends DSASigner { public detDSA() { super(new SHA1Digest(), new org.bouncycastle.crypto.signers.DSASigner(new HMacDSAKCalculator(new SHA1Digest()))); } } /* loaded from: classes6.dex */ public static class detDSA224 extends DSASigner { public detDSA224() { super(new SHA224Digest(), new org.bouncycastle.crypto.signers.DSASigner(new HMacDSAKCalculator(new SHA224Digest()))); } } /* loaded from: classes6.dex */ public static class detDSA256 extends DSASigner { public detDSA256() { super(new SHA256Digest(), new org.bouncycastle.crypto.signers.DSASigner(new HMacDSAKCalculator(new SHA256Digest()))); } } /* loaded from: classes6.dex */ public static class detDSA384 extends DSASigner { public detDSA384() { super(new SHA384Digest(), new org.bouncycastle.crypto.signers.DSASigner(new HMacDSAKCalculator(new SHA384Digest()))); } } /* loaded from: classes6.dex */ public static class detDSA512 extends DSASigner { public detDSA512() { super(new SHA512Digest(), new org.bouncycastle.crypto.signers.DSASigner(new HMacDSAKCalculator(new SHA512Digest()))); } } /* loaded from: classes6.dex */ public static class detDSASha3_224 extends DSASigner { public detDSASha3_224() { super(new SHA3Digest(PassportService.DEFAULT_MAX_BLOCKSIZE), new org.bouncycastle.crypto.signers.DSASigner(new HMacDSAKCalculator(new SHA3Digest(PassportService.DEFAULT_MAX_BLOCKSIZE)))); } } /* loaded from: classes6.dex */ public static class detDSASha3_256 extends DSASigner { public detDSASha3_256() { super(new SHA3Digest(256), new org.bouncycastle.crypto.signers.DSASigner(new HMacDSAKCalculator(new SHA3Digest(256)))); } } /* loaded from: classes6.dex */ public static class detDSASha3_384 extends DSASigner { public detDSASha3_384() { super(new SHA3Digest(384), new org.bouncycastle.crypto.signers.DSASigner(new HMacDSAKCalculator(new SHA3Digest(384)))); } } /* loaded from: classes6.dex */ public static class detDSASha3_512 extends DSASigner { public detDSASha3_512() { super(new SHA3Digest(512), new org.bouncycastle.crypto.signers.DSASigner(new HMacDSAKCalculator(new SHA3Digest(512)))); } } /* loaded from: classes6.dex */ public static class dsa224 extends DSASigner { public dsa224() { super(new SHA224Digest(), new org.bouncycastle.crypto.signers.DSASigner()); } } /* loaded from: classes6.dex */ public static class dsa256 extends DSASigner { public dsa256() { super(new SHA256Digest(), new org.bouncycastle.crypto.signers.DSASigner()); } } /* loaded from: classes6.dex */ public static class dsa384 extends DSASigner { public dsa384() { super(new SHA384Digest(), new org.bouncycastle.crypto.signers.DSASigner()); } } /* loaded from: classes6.dex */ public static class dsa512 extends DSASigner { public dsa512() { super(new SHA512Digest(), new org.bouncycastle.crypto.signers.DSASigner()); } } /* loaded from: classes6.dex */ public static class dsaSha3_224 extends DSASigner { public dsaSha3_224() { super(new SHA3Digest(PassportService.DEFAULT_MAX_BLOCKSIZE), new org.bouncycastle.crypto.signers.DSASigner()); } } /* loaded from: classes6.dex */ public static class dsaSha3_256 extends DSASigner { public dsaSha3_256() { super(new SHA3Digest(256), new org.bouncycastle.crypto.signers.DSASigner()); } } /* loaded from: classes6.dex */ public static class dsaSha3_384 extends DSASigner { public dsaSha3_384() { super(new SHA3Digest(384), new org.bouncycastle.crypto.signers.DSASigner()); } } /* loaded from: classes6.dex */ public static class dsaSha3_512 extends DSASigner { public dsaSha3_512() { super(new SHA3Digest(512), new org.bouncycastle.crypto.signers.DSASigner()); } } /* loaded from: classes6.dex */ public static class noneDSA extends DSASigner { public noneDSA() { super(new NullDigest(), new org.bouncycastle.crypto.signers.DSASigner()); } } /* loaded from: classes6.dex */ public static class stdDSA extends DSASigner { public stdDSA() { super(new SHA1Digest(), new org.bouncycastle.crypto.signers.DSASigner()); } } private BigInteger[] derDecode(byte[] bArr) throws IOException { ASN1Sequence aSN1Sequence = (ASN1Sequence) ASN1Primitive.fromByteArray(bArr); return new BigInteger[]{((ASN1Integer) aSN1Sequence.getObjectAt(0)).getValue(), ((ASN1Integer) aSN1Sequence.getObjectAt(1)).getValue()}; } protected DSASigner(Digest digest, DSA dsa) { this.digest = digest; this.signer = dsa; } }