All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bouncycastle.oer.its.ieee1609dot2dot1.ButterflyParamsOriginal Maven / Gradle / Ivy

Go to download

The Bouncy Castle Java APIs for ASN.1 extension and utility APIs used to support bcpkix and bctls with the BC FIPS provider. The APIs may also be used with other providers although if being used in a FIPS context it is the responsibility of the user to ensure that any other providers used are FIPS certified and used appropriately.

The newest version!
package org.bouncycastle.oer.its.ieee1609dot2dot1;

import org.bouncycastle.asn1.ASN1Encodable;
import org.bouncycastle.asn1.ASN1Object;
import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.asn1.DERSequence;
import org.bouncycastle.oer.its.ieee1609dot2.basetypes.PublicEncryptionKey;

/**
 * ButterflyParamsOriginal ::= SEQUENCE {
 * signingExpansion     ButterflyExpansion,
 * encryptionKey        PublicEncryptionKey,
 * encryptionExpansion  ButterflyExpansion
 * }
 */
public class ButterflyParamsOriginal
    extends ASN1Object
{
    private final ButterflyExpansion signingExpansion;
    private final PublicEncryptionKey encryptionKey;
    private final ButterflyExpansion encryptionExpansion;

    public ButterflyParamsOriginal(ButterflyExpansion signingExpansion,
                                   PublicEncryptionKey encryptionKey,
                                   ButterflyExpansion encryptionExpansion)
    {
        this.signingExpansion = signingExpansion;
        this.encryptionKey = encryptionKey;
        this.encryptionExpansion = encryptionExpansion;
    }

    private ButterflyParamsOriginal(ASN1Sequence sequence)
    {
        if (sequence.size() != 3)
        {
            throw new IllegalArgumentException("expected sequence size of 3");
        }

        signingExpansion = ButterflyExpansion.getInstance(sequence.getObjectAt(0));
        encryptionKey = PublicEncryptionKey.getInstance(sequence.getObjectAt(1));
        encryptionExpansion = ButterflyExpansion.getInstance(sequence.getObjectAt(2));
    }


    public static ButterflyParamsOriginal getInstance(Object o)
    {
        if (o instanceof ButterflyParamsOriginal)
        {
            return (ButterflyParamsOriginal)o;
        }
        if (o != null)
        {
            return new ButterflyParamsOriginal(ASN1Sequence.getInstance(o));
        }

        return null;
    }

    public static Builder builder()
    {
        return new Builder();
    }

    public ASN1Primitive toASN1Primitive()
    {
        return new DERSequence(
            new ASN1Encodable[]{
                signingExpansion, encryptionKey, encryptionExpansion});
    }

    public ButterflyExpansion getSigningExpansion()
    {
        return signingExpansion;
    }

    public PublicEncryptionKey getEncryptionKey()
    {
        return encryptionKey;
    }

    public ButterflyExpansion getEncryptionExpansion()
    {
        return encryptionExpansion;
    }

    public static class Builder
    {
        private ButterflyExpansion signingExpansion;
        private PublicEncryptionKey encryptionKey;
        private ButterflyExpansion encryptionExpansion;

        public Builder setSigningExpansion(ButterflyExpansion signingExpansion)
        {
            this.signingExpansion = signingExpansion;
            return this;
        }

        public Builder setEncryptionKey(PublicEncryptionKey encryptionKey)
        {
            this.encryptionKey = encryptionKey;
            return this;
        }

        public Builder setEncryptionExpansion(ButterflyExpansion encryptionExpansion)
        {
            this.encryptionExpansion = encryptionExpansion;
            return this;
        }

        public ButterflyParamsOriginal createButterflyParamsOriginal()
        {
            return new ButterflyParamsOriginal(signingExpansion, encryptionKey, encryptionExpansion);
        }

    }


}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy