📄 attributecertificateissuer.java
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space
// Source File Name: AttributeCertificateIssuer.java
package org.bouncycastle.x509;
import java.io.IOException;
import java.math.BigInteger;
import java.security.Principal;
import java.security.cert.*;
import java.util.ArrayList;
import java.util.List;
import javax.security.auth.x500.X500Principal;
import org.bouncycastle.asn1.*;
import org.bouncycastle.asn1.x509.*;
import org.bouncycastle.jce.X509Principal;
import org.bouncycastle.util.Selector;
public class AttributeCertificateIssuer
implements CertSelector, Selector
{
final ASN1Encodable form;
AttributeCertificateIssuer(AttCertIssuer issuer)
{
form = issuer.getIssuer();
}
public AttributeCertificateIssuer(X500Principal principal)
throws IOException
{
this(new X509Principal(principal.getEncoded()));
}
public AttributeCertificateIssuer(X509Principal principal)
{
form = new V2Form(new GeneralNames(new DERSequence(new GeneralName(principal))));
}
private Object[] getNames()
{
GeneralNames name;
if (form instanceof V2Form)
name = ((V2Form)form).getIssuerName();
else
name = (GeneralNames)form;
GeneralName names[] = name.getNames();
List l = new ArrayList(names.length);
for (int i = 0; i != names.length; i++)
{
if (names[i].getTagNo() != 4)
continue;
try
{
l.add(new X500Principal(((ASN1Encodable)names[i].getName()).getEncoded()));
}
catch (IOException e)
{
throw new RuntimeException("badly formed Name object");
}
}
return l.toArray(new Object[l.size()]);
}
public Principal[] getPrincipals()
{
Object p[] = getNames();
List l = new ArrayList();
for (int i = 0; i != p.length; i++)
if (p[i] instanceof Principal)
l.add(p[i]);
return (Principal[])(Principal[])l.toArray(new Principal[l.size()]);
}
private boolean matchesDN(X500Principal subject, GeneralNames targets)
{
GeneralName names[];
int i;
names = targets.getNames();
i = 0;
_L3:
if (i == names.length) goto _L2; else goto _L1
_L1:
GeneralName gn;
gn = names[i];
if (gn.getTagNo() != 4)
continue; /* Loop/switch isn't completed */
if ((new X500Principal(((ASN1Encodable)gn.getName()).getEncoded())).equals(subject))
return true;
continue; /* Loop/switch isn't completed */
IOException e;
e;
i++;
goto _L3
_L2:
return false;
}
public Object clone()
{
return new AttributeCertificateIssuer(AttCertIssuer.getInstance(form));
}
public boolean match(Certificate cert)
{
if (!(cert instanceof X509Certificate))
return false;
X509Certificate x509Cert = (X509Certificate)cert;
if (form instanceof V2Form)
{
V2Form issuer = (V2Form)form;
if (issuer.getBaseCertificateID() != null)
return issuer.getBaseCertificateID().getSerial().getValue().equals(x509Cert.getSerialNumber()) && matchesDN(x509Cert.getIssuerX500Principal(), issuer.getBaseCertificateID().getIssuer());
GeneralNames name = issuer.getIssuerName();
if (matchesDN(x509Cert.getSubjectX500Principal(), name))
return true;
} else
{
GeneralNames name = (GeneralNames)form;
if (matchesDN(x509Cert.getSubjectX500Principal(), name))
return true;
}
return false;
}
public boolean equals(Object obj)
{
if (obj == this)
return true;
if (!(obj instanceof AttributeCertificateIssuer))
{
return false;
} else
{
AttributeCertificateIssuer other = (AttributeCertificateIssuer)obj;
return form.equals(other.form);
}
}
public int hashCode()
{
return form.hashCode();
}
public boolean match(Object obj)
{
if (!(obj instanceof X509Certificate))
return false;
else
return match((Certificate)obj);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -