diff options
Diffstat (limited to 'bcprov/src/main/java/org/bouncycastle/its/asn1/GroupLinkageValue.java')
-rw-r--r-- | bcprov/src/main/java/org/bouncycastle/its/asn1/GroupLinkageValue.java | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/its/asn1/GroupLinkageValue.java b/bcprov/src/main/java/org/bouncycastle/its/asn1/GroupLinkageValue.java new file mode 100644 index 00000000..0abbe758 --- /dev/null +++ b/bcprov/src/main/java/org/bouncycastle/its/asn1/GroupLinkageValue.java @@ -0,0 +1,67 @@ +package org.bouncycastle.its.asn1; + +import org.bouncycastle.asn1.ASN1EncodableVector; +import org.bouncycastle.asn1.ASN1Object; +import org.bouncycastle.asn1.ASN1OctetString; +import org.bouncycastle.asn1.ASN1Primitive; +import org.bouncycastle.asn1.ASN1Sequence; +import org.bouncycastle.asn1.DEROctetString; +import org.bouncycastle.asn1.DERSequence; + +/** + * <pre> + * GroupLinkageValue ::= SEQUENCE { + * jValue OCTET STRING (SIZE(4)) + * value OCTET STRING (SIZE(9)) + * } + * </pre> + */ +public class GroupLinkageValue + extends ASN1Object +{ + private byte[] jValue; + private byte[] value; + + private GroupLinkageValue(ASN1Sequence seq) + { + if (seq.size() != 2) + { + throw new IllegalArgumentException("sequence not length 2"); + } + + jValue = Utils.octetStringFixed(ASN1OctetString.getInstance(seq.getObjectAt(0)).getOctets(), 4); + value = Utils.octetStringFixed(ASN1OctetString.getInstance(seq.getObjectAt(1)).getOctets(), 9); + } + + public static GroupLinkageValue getInstance(Object src) + { + if (src instanceof GroupLinkageValue) + { + return (GroupLinkageValue)src; + } + else if (src != null) + { + return new GroupLinkageValue(ASN1Sequence.getInstance(src)); + } + + return null; + } + + public byte[] getJValue() + { + return jValue; + } + + public byte[] getValue() + { + return value; + } + + public ASN1Primitive toASN1Primitive() + { + ASN1EncodableVector avec = new ASN1EncodableVector(); + avec.add(new DEROctetString(jValue)); + avec.add(new DEROctetString(value)); + return new DERSequence(avec); + } +} |