/* * Copyright (C) 2014 Intel Corporation * All rights reserved. */ package com.intel.mtwilson.tag.model.x509; import com.fasterxml.jackson.annotation.JsonIgnore; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; import org.bouncycastle.asn1.ASN1Encodable; import org.bouncycastle.asn1.ASN1EncodableVector; import org.bouncycastle.asn1.ASN1Sequence; import org.bouncycastle.asn1.DERObject; import org.bouncycastle.asn1.DERSequence; import org.bouncycastle.asn1.DERUTF8String; /** * OID: 2.5.4.789.2 * @author jbuhacoff */ public class UTF8NameValueSequence extends ASN1Encodable { public final static String OID = "2.5.4.789.2"; private DERUTF8String name; private DERSequence values; public UTF8NameValueSequence(String name, String... values) { this.name = new DERUTF8String(name); ASN1EncodableVector v = new ASN1EncodableVector(); for(String value : values) { v.add(new DERUTF8String(value)); } this.values = new DERSequence(v); } public UTF8NameValueSequence(DERUTF8String name, DERSequence values) { this.name = name; this.values = values; } public UTF8NameValueSequence(ASN1Sequence sequence) { this.name = DERUTF8String.getInstance(sequence.getObjectAt(0)); this.values = (DERSequence) DERSequence.getInstance(sequence.getObjectAt(1)).getDERObject(); //new DERSequence(sequence.getObjectAt(1)); } @JsonIgnore public DERUTF8String getNameDER() { return name; } @JsonIgnore public DERSequence getValuesDER() { return values; } public String getName() { return name.getString(); } public List<String> getValues() { ArrayList<String> list = new ArrayList<>(); Enumeration e = values.getObjects(); while(e.hasMoreElements()) { list.add(DERUTF8String.getInstance(e.nextElement()).getString()); } return list; } @Override public DERObject toASN1Object() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(name); v.add(values); return new DERSequence(v); } }