subjectkeyidentifier.java

来自「进行与数字证书相关开发必须的java源码」· Java 代码 · 共 68 行

JAVA
68
字号
// 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:   SubjectKeyIdentifier.java

package jit.asn1.x509;

import jit.asn1.*;
import jit.crypto.Digest;
import jit.crypto.digests.SHA1Digest;

// Referenced classes of package jit.asn1.x509:
//            SubjectPublicKeyInfo

public class SubjectKeyIdentifier
    implements DEREncodable
{

    private byte keyidentifier[];

    public static SubjectKeyIdentifier getInstance(ASN1TaggedObject obj, boolean explicit)
    {
        return getInstance(ASN1OctetString.getInstance(obj, explicit));
    }

    public static SubjectKeyIdentifier getInstance(Object obj)
    {
        if(obj == null || (obj instanceof SubjectKeyIdentifier))
            return (SubjectKeyIdentifier)obj;
        if(obj instanceof SubjectPublicKeyInfo)
            return new SubjectKeyIdentifier((SubjectPublicKeyInfo)obj);
        if(obj instanceof ASN1OctetString)
            return new SubjectKeyIdentifier((ASN1OctetString)obj);
        else
            throw new IllegalArgumentException("Invalid SubjectKeyIdentifier: ".concat(String.valueOf(String.valueOf(obj.getClass().getName()))));
    }

    public SubjectKeyIdentifier(byte keyid[])
    {
        keyidentifier = keyid;
    }

    public SubjectKeyIdentifier(ASN1OctetString keyid)
    {
        keyidentifier = keyid.getOctets();
    }

    public SubjectKeyIdentifier(SubjectPublicKeyInfo spki)
    {
        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 = resBuf;
    }

    public byte[] getKeyIdentifier()
    {
        return keyidentifier;
    }

    public DERObject getDERObject()
    {
        return new DEROctetString(keyidentifier);
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?