diff options
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.java | 30 |
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(); + } } |