summaryrefslogtreecommitdiffstats
path: root/base/util/test/com/netscape/security/util/JSSUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'base/util/test/com/netscape/security/util/JSSUtil.java')
-rw-r--r--base/util/test/com/netscape/security/util/JSSUtil.java73
1 files changed, 73 insertions, 0 deletions
diff --git a/base/util/test/com/netscape/security/util/JSSUtil.java b/base/util/test/com/netscape/security/util/JSSUtil.java
new file mode 100644
index 000000000..bbbabbf14
--- /dev/null
+++ b/base/util/test/com/netscape/security/util/JSSUtil.java
@@ -0,0 +1,73 @@
+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;
+
+public class JSSUtil {
+
+ public static byte[] encode(byte tag, String string) throws Exception {
+ ASN1Value value;
+
+ switch (tag) {
+ case DerValue.tag_BMPString:
+ value = new BMPString(string);
+ break;
+ case DerValue.tag_IA5String:
+ value = new IA5String(string);
+ break;
+ case DerValue.tag_PrintableString:
+ value = new PrintableString(string);
+ break;
+ case DerValue.tag_T61String:
+ value = new TeletexString(string);
+ break;
+ case DerValue.tag_UniversalString:
+ value = new UniversalString(string);
+ break;
+ case DerValue.tag_UTF8String:
+ value = new UTF8String(string);
+ break;
+ default:
+ throw new Exception("Unsupported tag: " + tag);
+ }
+ 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();
+ }
+}