what-the-bank/sources/org/bouncycastle/x509/AttributeCertificateIssuer....

130 lines
4.7 KiB
Java
Raw Normal View History

2024-07-27 18:17:47 +07:00
package org.bouncycastle.x509;
import java.io.IOException;
import java.security.Principal;
import java.security.cert.CertSelector;
import java.security.cert.Certificate;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import javax.security.auth.x500.X500Principal;
import org.bouncycastle.asn1.ASN1Encodable;
import org.bouncycastle.asn1.DERSequence;
import org.bouncycastle.asn1.x509.AttCertIssuer;
import org.bouncycastle.asn1.x509.GeneralName;
import org.bouncycastle.asn1.x509.GeneralNames;
import org.bouncycastle.asn1.x509.V2Form;
import org.bouncycastle.jce.X509Principal;
import org.bouncycastle.util.Selector;
/* loaded from: classes6.dex */
public class AttributeCertificateIssuer implements CertSelector, Selector {
final ASN1Encodable form;
@Override // java.security.cert.CertSelector
public boolean match(Certificate certificate) {
if (!(certificate instanceof X509Certificate)) {
return false;
}
X509Certificate x509Certificate = (X509Certificate) certificate;
ASN1Encodable aSN1Encodable = this.form;
if (aSN1Encodable instanceof V2Form) {
V2Form v2Form = (V2Form) aSN1Encodable;
if (v2Form.getBaseCertificateID() != null) {
return v2Form.getBaseCertificateID().getSerial().getValue().equals(x509Certificate.getSerialNumber()) && matchesDN(x509Certificate.getIssuerX500Principal(), v2Form.getBaseCertificateID().getIssuer());
}
if (matchesDN(x509Certificate.getSubjectX500Principal(), v2Form.getIssuerName())) {
return true;
}
} else {
if (matchesDN(x509Certificate.getSubjectX500Principal(), (GeneralNames) aSN1Encodable)) {
return true;
}
}
return false;
}
@Override // org.bouncycastle.util.Selector
public boolean match(Object obj) {
if (obj instanceof X509Certificate) {
return match((Certificate) obj);
}
return false;
}
public int hashCode() {
return this.form.hashCode();
}
public Principal[] getPrincipals() {
Object[] names = getNames();
ArrayList arrayList = new ArrayList();
for (int i = 0; i != names.length; i++) {
Object obj = names[i];
if (obj instanceof Principal) {
arrayList.add(obj);
}
}
return (Principal[]) arrayList.toArray(new Principal[arrayList.size()]);
}
public boolean equals(Object obj) {
if (obj == this) {
return true;
}
if (obj instanceof AttributeCertificateIssuer) {
return this.form.equals(((AttributeCertificateIssuer) obj).form);
}
return false;
}
@Override // java.security.cert.CertSelector, org.bouncycastle.util.Selector
public Object clone() {
return new AttributeCertificateIssuer(AttCertIssuer.getInstance(this.form));
}
private boolean matchesDN(X500Principal x500Principal, GeneralNames generalNames) {
GeneralName[] names = generalNames.getNames();
for (int i = 0; i != names.length; i++) {
GeneralName generalName = names[i];
if (generalName.getTagNo() == 4) {
try {
if (new X500Principal(generalName.getName().toASN1Primitive().getEncoded()).equals(x500Principal)) {
return true;
}
} catch (IOException unused) {
continue;
}
}
}
return false;
}
private Object[] getNames() {
ASN1Encodable aSN1Encodable = this.form;
GeneralName[] names = (aSN1Encodable instanceof V2Form ? ((V2Form) aSN1Encodable).getIssuerName() : (GeneralNames) aSN1Encodable).getNames();
ArrayList arrayList = new ArrayList(names.length);
for (int i = 0; i != names.length; i++) {
if (names[i].getTagNo() == 4) {
try {
arrayList.add(new X500Principal(names[i].getName().toASN1Primitive().getEncoded()));
} catch (IOException unused) {
throw new RuntimeException("badly formed Name object");
}
}
}
return arrayList.toArray(new Object[arrayList.size()]);
}
public AttributeCertificateIssuer(X509Principal x509Principal) {
this.form = new V2Form(GeneralNames.getInstance(new DERSequence(new GeneralName(x509Principal))));
}
public AttributeCertificateIssuer(AttCertIssuer attCertIssuer) {
this.form = attCertIssuer.getIssuer();
}
public AttributeCertificateIssuer(X500Principal x500Principal) throws IOException {
this(new X509Principal(x500Principal.getEncoded()));
}
}