⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 attributecertificateissuer.java

📁 java 文件下载器。可自定义
💻 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 + -