1package org.bouncycastle.asn1.misc;
2
3import org.bouncycastle.asn1.*;
4
5public class IDEACBCPar
6    extends ASN1Encodable
7{
8    ASN1OctetString  iv;
9
10    public static IDEACBCPar getInstance(
11        Object  o)
12    {
13        if (o instanceof IDEACBCPar)
14        {
15            return (IDEACBCPar)o;
16        }
17        else if (o instanceof ASN1Sequence)
18        {
19            return new IDEACBCPar((ASN1Sequence)o);
20        }
21
22        throw new IllegalArgumentException("unknown object in IDEACBCPar factory");
23    }
24
25    public IDEACBCPar(
26        byte[]  iv)
27    {
28        this.iv = new DEROctetString(iv);
29    }
30
31    public IDEACBCPar(
32        ASN1Sequence  seq)
33    {
34        if (seq.size() == 1)
35        {
36            iv = (ASN1OctetString)seq.getObjectAt(0);
37        }
38        else
39        {
40            iv = null;
41        }
42    }
43
44    public byte[] getIV()
45    {
46        if (iv != null)
47        {
48            return iv.getOctets();
49        }
50        else
51        {
52            return null;
53        }
54    }
55
56    /**
57     * Produce an object suitable for an ASN1OutputStream.
58     * <pre>
59     * IDEA-CBCPar ::= SEQUENCE {
60     *                      iv    OCTET STRING OPTIONAL -- exactly 8 octets
61     *                  }
62     * </pre>
63     */
64    public DERObject toASN1Object()
65    {
66        ASN1EncodableVector  v = new ASN1EncodableVector();
67
68        if (iv != null)
69        {
70            v.add(iv);
71        }
72
73        return new DERSequence(v);
74    }
75}
76