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