From e422e68bf552fffd8f615cd673578110d0197eed Mon Sep 17 00:00:00 2001
From: Lev Walkin <vlm@lionet.info>
Date: Wed, 25 Aug 2004 01:58:59 +0000
Subject: [PATCH] separated known multiplier (X.691) strings

---
 libasn1parser/asn1p_expr.h     | 21 ++++++++++++---------
 libasn1parser/asn1p_expr_str.h | 14 +++++++-------
 2 files changed, 19 insertions(+), 16 deletions(-)

diff --git a/libasn1parser/asn1p_expr.h b/libasn1parser/asn1p_expr.h
index e00e740c..fd143506 100644
--- a/libasn1parser/asn1p_expr.h
+++ b/libasn1parser/asn1p_expr.h
@@ -53,6 +53,7 @@ typedef enum asn1p_expr_type {
 	ASN_CONSTR_SEQUENCE_OF,		/* SEQUENCE OF */
 	ASN_CONSTR_SET_OF,		/* SET OF */
 	ASN_CONSTR_ANY,			/* ANY (deprecated) */
+
 	/*
 	 * ASN.1 Basic types
 	 */
@@ -75,20 +76,22 @@ typedef enum asn1p_expr_type {
 	/*
 	 * ASN.1 String types
 	 */
-#define	ASN_STRING_MASK		0x40	/* Every string type */
-	ASN_STRING_BMPString	= ASN_STRING_MASK,
+#define	ASN_STRING_KM_MASK	0x40	/* Known multiplier */
+#define	ASN_STRING_NKM_MASK	0x80	/* Not a known multiplier */
+#define	ASN_STRING_MASK		0xC0	/* Every restricted string type */
+	ASN_STRING_IA5String	= ASN_STRING_KM_MASK,
+	ASN_STRING_PrintableString,
+	ASN_STRING_VisibleString,
+	ASN_STRING_ISO646String,	/* aka VisibleString */
+	ASN_STRING_NumericString,
+	ASN_STRING_UniversalString,
+	ASN_STRING_BMPString,
+	ASN_STRING_UTF8String	= ASN_STRING_NKM_MASK,
 	ASN_STRING_GeneralString,
 	ASN_STRING_GraphicString,
-	ASN_STRING_IA5String,
-	ASN_STRING_ISO646String,
-	ASN_STRING_NumericString,
-	ASN_STRING_PrintableString,
 	ASN_STRING_TeletexString,
 	ASN_STRING_T61String,
-	ASN_STRING_UniversalString,
-	ASN_STRING_UTF8String,
 	ASN_STRING_VideotexString,
-	ASN_STRING_VisibleString,
 	ASN_STRING_ObjectDescriptor,
 	ASN_EXPR_TYPE_MAX
 } asn1p_expr_type_e;
diff --git a/libasn1parser/asn1p_expr_str.h b/libasn1parser/asn1p_expr_str.h
index 93567f88..59899f5a 100644
--- a/libasn1parser/asn1p_expr_str.h
+++ b/libasn1parser/asn1p_expr_str.h
@@ -26,19 +26,19 @@ static char *asn1p_expr_type2str[] __attribute__ ((unused)) = {
 	[ ASN_BASIC_CHARACTER_STRING ]	 = "CHARACTER STRING",
 	[ ASN_BASIC_UTCTime ]	 = "UTCTime",
 	[ ASN_BASIC_GeneralizedTime ]	 = "GeneralizedTime",
-	[ ASN_STRING_BMPString ]	 = "BMPString",
-	[ ASN_STRING_GeneralString ]	 = "GeneralString",
-	[ ASN_STRING_GraphicString ]	 = "GraphicString",
 	[ ASN_STRING_IA5String ]	 = "IA5String",
+	[ ASN_STRING_PrintableString ]	 = "PrintableString",
+	[ ASN_STRING_VisibleString ]	 = "VisibleString",
 	[ ASN_STRING_ISO646String ]	 = "ISO646String",
 	[ ASN_STRING_NumericString ]	 = "NumericString",
-	[ ASN_STRING_PrintableString ]	 = "PrintableString",
-	[ ASN_STRING_TeletexString ]	 = "TeletexString",
-	[ ASN_STRING_T61String ]	 = "T61String",
 	[ ASN_STRING_UniversalString ]	 = "UniversalString",
+	[ ASN_STRING_BMPString ]	 = "BMPString",
 	[ ASN_STRING_UTF8String ]	 = "UTF8String",
+	[ ASN_STRING_GeneralString ]	 = "GeneralString",
+	[ ASN_STRING_GraphicString ]	 = "GraphicString",
+	[ ASN_STRING_TeletexString ]	 = "TeletexString",
+	[ ASN_STRING_T61String ]	 = "T61String",
 	[ ASN_STRING_VideotexString ]	 = "VideotexString",
-	[ ASN_STRING_VisibleString ]	 = "VisibleString",
 	[ ASN_STRING_ObjectDescriptor ]	 = "ObjectDescriptor",
 };
 
-- 
GitLab