📄 authoritykeyidentifier.java
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi
// Source File Name: AuthorityKeyIdentifier.java
package jit.asn1.x509;
import java.util.Enumeration;
import jit.asn1.*;
import jit.crypto.Digest;
import jit.crypto.digests.SHA1Digest;
import jit.math.BigInteger;
// Referenced classes of package jit.asn1.x509:
// GeneralNames, SubjectPublicKeyInfo
public class AuthorityKeyIdentifier
implements DEREncodable, DERTags
{
ASN1OctetString keyidentifier;
GeneralNames certissuer;
DERInteger certserno;
public static AuthorityKeyIdentifier getInstance(ASN1TaggedObject obj, boolean explicit)
{
return getInstance(ASN1Sequence.getInstance(obj, explicit));
}
public static AuthorityKeyIdentifier getInstance(Object obj)
{
if(obj instanceof AuthorityKeyIdentifier)
return (AuthorityKeyIdentifier)obj;
if(obj instanceof ASN1Sequence)
return new AuthorityKeyIdentifier((ASN1Sequence)obj);
else
throw new IllegalArgumentException("unknown object in factory");
}
public AuthorityKeyIdentifier(ASN1Sequence seq)
{
keyidentifier = null;
certissuer = null;
certserno = null;
Enumeration e = seq.getObjects();
do
{
if(!e.hasMoreElements())
break;
DERTaggedObject o = (DERTaggedObject)e.nextElement();
switch(o.getTagNo())
{
case 0: // '\0'
keyidentifier = ASN1OctetString.getInstance(o, false);
break;
case 1: // '\001'
certissuer = GeneralNames.getInstance(o, false);
break;
case 2: // '\002'
certserno = DERInteger.getInstance(o, false);
break;
default:
throw new IllegalArgumentException("illegal tag");
}
} while(true);
}
public AuthorityKeyIdentifier(SubjectPublicKeyInfo spki)
{
keyidentifier = null;
certissuer = null;
certserno = null;
Digest digest = new SHA1Digest();
byte resBuf[] = new byte[digest.getDigestSize()];
byte bytes[] = spki.getPublicKeyData().getBytes();
digest.update(bytes, 0, bytes.length);
digest.doFinal(resBuf, 0);
keyidentifier = new DEROctetString(resBuf);
}
public AuthorityKeyIdentifier(SubjectPublicKeyInfo spki, GeneralNames name, BigInteger serialNumber)
{
keyidentifier = null;
certissuer = null;
certserno = null;
Digest digest = new SHA1Digest();
byte resBuf[] = new byte[digest.getDigestSize()];
byte bytes[] = spki.getPublicKeyData().getBytes();
digest.update(bytes, 0, bytes.length);
digest.doFinal(resBuf, 0);
keyidentifier = new DEROctetString(resBuf);
certissuer = name;
certserno = new DERInteger(serialNumber);
}
public byte[] getKeyIdentifier()
{
if(keyidentifier != null)
return keyidentifier.getOctets();
else
return null;
}
public GeneralNames getCertIssuer()
{
if(certissuer == null)
return null;
else
return certissuer;
}
public DERInteger getCertSerialNumber()
{
if(certserno != null)
return certserno;
else
return null;
}
public DERObject getDERObject()
{
ASN1EncodableVector v = new ASN1EncodableVector();
if(keyidentifier != null)
v.add(new DERTaggedObject(false, 0, keyidentifier));
if(certissuer != null)
v.add(new DERTaggedObject(false, 1, certissuer));
if(certserno != null)
v.add(new DERTaggedObject(false, 2, certserno));
return new DERSequence(v);
}
public String toString()
{
return String.valueOf(String.valueOf((new StringBuffer("AuthorityKeyIdentifier: KeyID(")).append(keyidentifier.getOctets()).append(")")));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -