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

📄 holder.java

📁 kmlnjlkj nlkjlkjkljl okopokipoipo oipipipo i
💻 JAVA
字号:
package org.bouncycastle.asn1.x509;import org.bouncycastle.asn1.ASN1Encodable;import org.bouncycastle.asn1.ASN1EncodableVector;import org.bouncycastle.asn1.ASN1Sequence;import org.bouncycastle.asn1.ASN1TaggedObject;import org.bouncycastle.asn1.DERObject;import org.bouncycastle.asn1.DERSequence;import org.bouncycastle.asn1.DERTaggedObject;/** * The Holder object. * <p> * For an v2 attribute certificate this is: *  * <pre> *            Holder ::= SEQUENCE { *                  baseCertificateID   [0] IssuerSerial OPTIONAL, *                           -- the issuer and serial number of *                           -- the holder's Public Key Certificate *                  entityName          [1] GeneralNames OPTIONAL, *                           -- the name of the claimant or role *                  objectDigestInfo    [2] ObjectDigestInfo OPTIONAL *                           -- used to directly authenticate the holder, *                           -- for example, an executable *            } * </pre> *  * <p> * For an v1 attribute certificate this is: *  * <pre> *         subject CHOICE { *          baseCertificateID [0] IssuerSerial, *          -- associated with a Public Key Certificate *          subjectName [1] GeneralNames }, *          -- associated with a name * </pre> */public class Holder    extends ASN1Encodable{    IssuerSerial baseCertificateID;    GeneralNames entityName;    ObjectDigestInfo objectDigestInfo;    private int version = 1;    public static Holder getInstance(Object obj)    {        if (obj instanceof Holder)        {            return (Holder)obj;        }        else if (obj instanceof ASN1Sequence)        {            return new Holder((ASN1Sequence)obj);        }        else if (obj instanceof ASN1TaggedObject)        {            return new Holder((ASN1TaggedObject)obj);        }        throw new IllegalArgumentException("unknown object in factory: " + obj.getClass().getName());    }    /**     * Constructor for a holder for an v1 attribute certificate.     *      * @param tagObj The ASN.1 tagged holder object.     */    public Holder(ASN1TaggedObject tagObj)    {        switch (tagObj.getTagNo())        {        case 0:            baseCertificateID = IssuerSerial.getInstance(tagObj, false);            break;        case 1:            entityName = GeneralNames.getInstance(tagObj, false);            break;        default:            throw new IllegalArgumentException("unknown tag in Holder");        }        version = 0;    }    /**     * Constructor for a holder for an v2 attribute certificate. *     *      * @param seq The ASN.1 sequence.     */    public Holder(ASN1Sequence seq)    {        if (seq.size() > 3)        {            throw new IllegalArgumentException("Bad sequence size: "                + seq.size());        }        for (int i = 0; i != seq.size(); i++)        {            ASN1TaggedObject tObj = ASN1TaggedObject.getInstance(seq                .getObjectAt(i));            switch (tObj.getTagNo())            {            case 0:                baseCertificateID = IssuerSerial.getInstance(tObj, false);                break;            case 1:                entityName = GeneralNames.getInstance(tObj, false);                break;            case 2:                objectDigestInfo = ObjectDigestInfo.getInstance(tObj, false);                break;            default:                throw new IllegalArgumentException("unknown tag in Holder");            }        }        version = 1;    }    public Holder(IssuerSerial baseCertificateID)    {        this.baseCertificateID = baseCertificateID;    }    /**     * Constructs a holder from a IssuerSerial.     * @param baseCertificateID The IssuerSerial.     * @param version The version of the attribute certificate.      */    public Holder(IssuerSerial baseCertificateID, int version)    {        this.baseCertificateID = baseCertificateID;        this.version = version;    }        /**     * Returns 1 for v2 attribute certificates or 0 for v1 attribute     * certificates.      * @return The version of the attribute certificate.     */    public int getVersion()    {        return version;    }    /**     * Constructs a holder with an entityName for v2 attribute certificates or     * with a subjectName for v1 attribute certificates.     *      * @param entityName The entity or subject name.     */    public Holder(GeneralNames entityName)    {        this.entityName = entityName;    }    /**     * Constructs a holder with an entityName for v2 attribute certificates or     * with a subjectName for v1 attribute certificates.     *      * @param entityName The entity or subject name.     * @param version The version of the attribute certificate.      */    public Holder(GeneralNames entityName, int version)    {        this.entityName = entityName;        this.version = version;    }        /**     * Constructs a holder from an object digest info.     *      * @param objectDigestInfo The object digest info object.     */    public Holder(ObjectDigestInfo objectDigestInfo)    {        this.objectDigestInfo = objectDigestInfo;    }    public IssuerSerial getBaseCertificateID()    {        return baseCertificateID;    }    /**     * Returns the entityName for an v2 attribute certificate or the subjectName     * for an v1 attribute certificate.     *      * @return The entityname or subjectname.     */    public GeneralNames getEntityName()    {        return entityName;    }    public ObjectDigestInfo getObjectDigestInfo()    {        return objectDigestInfo;    }    public DERObject toASN1Object()    {        if (version == 1)        {            ASN1EncodableVector v = new ASN1EncodableVector();            if (baseCertificateID != null)            {                v.add(new DERTaggedObject(false, 0, baseCertificateID));            }            if (entityName != null)            {                v.add(new DERTaggedObject(false, 1, entityName));            }            if (objectDigestInfo != null)            {                v.add(new DERTaggedObject(false, 2, objectDigestInfo));            }            return new DERSequence(v);        }        else        {            if (entityName != null)            {                return new DERTaggedObject(false, 1, entityName);            }            else            {                return new DERTaggedObject(false, 0, baseCertificateID);            }        }    }}

⌨️ 快捷键说明

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