package org.spongycastle.asn1.misc; import org.spongycastle.asn1.ASN1EncodableVector; import org.spongycastle.asn1.ASN1Integer; import org.spongycastle.asn1.ASN1Object; import org.spongycastle.asn1.ASN1OctetString; import org.spongycastle.asn1.ASN1Primitive; import org.spongycastle.asn1.ASN1Sequence; import org.spongycastle.asn1.DEROctetString; import org.spongycastle.asn1.DERSequence; public class CAST5CBCParameters extends ASN1Object { ASN1Integer keyLength; ASN1OctetString iv; public static CAST5CBCParameters getInstance( Object o) { if (o instanceof CAST5CBCParameters) { return (CAST5CBCParameters)o; } else if (o != null) { return new CAST5CBCParameters(ASN1Sequence.getInstance(o)); } return null; } public CAST5CBCParameters( byte[] iv, int keyLength) { this.iv = new DEROctetString(iv); this.keyLength = new ASN1Integer(keyLength); } public CAST5CBCParameters( ASN1Sequence seq) { iv = (ASN1OctetString)seq.getObjectAt(0); keyLength = (ASN1Integer)seq.getObjectAt(1); } public byte[] getIV() { return iv.getOctets(); } public int getKeyLength() { return keyLength.getValue().intValue(); } /** * Produce an object suitable for an ASN1OutputStream. * <pre> * cast5CBCParameters ::= SEQUENCE { * iv OCTET STRING DEFAULT 0, * -- Initialization vector * keyLength INTEGER * -- Key length, in bits * } * </pre> */ public ASN1Primitive toASN1Primitive() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(iv); v.add(keyLength); return new DERSequence(v); } }