summaryrefslogtreecommitdiffstats
path: root/pki/base/util/test/com/netscape/security/util/JSSUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'pki/base/util/test/com/netscape/security/util/JSSUtil.java')
-rw-r--r--pki/base/util/test/com/netscape/security/util/JSSUtil.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/pki/base/util/test/com/netscape/security/util/JSSUtil.java b/pki/base/util/test/com/netscape/security/util/JSSUtil.java
index abaab427..fc899d56 100644
--- a/pki/base/util/test/com/netscape/security/util/JSSUtil.java
+++ b/pki/base/util/test/com/netscape/security/util/JSSUtil.java
@@ -2,11 +2,13 @@ package com.netscape.security.util;
import netscape.security.util.DerValue;
+import org.mozilla.jss.asn1.ASN1Template;
import org.mozilla.jss.asn1.ASN1Util;
import org.mozilla.jss.asn1.ASN1Value;
import org.mozilla.jss.asn1.BMPString;
import org.mozilla.jss.asn1.IA5String;
import org.mozilla.jss.asn1.PrintableString;
+import org.mozilla.jss.asn1.Tag;
import org.mozilla.jss.asn1.TeletexString;
import org.mozilla.jss.asn1.UTF8String;
import org.mozilla.jss.asn1.UniversalString;
@@ -40,4 +42,32 @@ public class JSSUtil {
}
return ASN1Util.encode(value);
}
+
+ public static String decode(byte tag, byte[] bytes) throws Exception {
+ ASN1Template template;
+
+ switch (tag) {
+ case DerValue.tag_BMPString:
+ template = new BMPString.Template();
+ break;
+ case DerValue.tag_IA5String:
+ template = new IA5String.Template();
+ break;
+ case DerValue.tag_PrintableString:
+ template = new PrintableString.Template();
+ break;
+ case DerValue.tag_T61String:
+ template = new TeletexString.Template();
+ break;
+ case DerValue.tag_UniversalString:
+ template = new UniversalString.Template();
+ break;
+ case DerValue.tag_UTF8String:
+ template = new UTF8String.Template();
+ break;
+ default:
+ throw new Exception("Unsupported tag: "+tag);
+ }
+ return ASN1Util.decode(new Tag(Tag.UNIVERSAL, tag), template, bytes).toString();
+ }
}