提交 d78254aa 编写于 作者: D Dr. Stephen Henson

Add SETWRAP modifier to ASN1 generate.

上级 af67804b
...@@ -67,7 +67,8 @@ ...@@ -67,7 +67,8 @@
#define ASN1_GEN_FLAG_BITWRAP (ASN1_GEN_FLAG|4) #define ASN1_GEN_FLAG_BITWRAP (ASN1_GEN_FLAG|4)
#define ASN1_GEN_FLAG_OCTWRAP (ASN1_GEN_FLAG|5) #define ASN1_GEN_FLAG_OCTWRAP (ASN1_GEN_FLAG|5)
#define ASN1_GEN_FLAG_SEQWRAP (ASN1_GEN_FLAG|6) #define ASN1_GEN_FLAG_SEQWRAP (ASN1_GEN_FLAG|6)
#define ASN1_GEN_FLAG_FORMAT (ASN1_GEN_FLAG|7) #define ASN1_GEN_FLAG_SETWRAP (ASN1_GEN_FLAG|7)
#define ASN1_GEN_FLAG_FORMAT (ASN1_GEN_FLAG|8)
#define ASN1_GEN_STR(str,val) {str, sizeof(str) - 1, val} #define ASN1_GEN_STR(str,val) {str, sizeof(str) - 1, val}
...@@ -335,6 +336,11 @@ static int asn1_cb(const char *elem, int len, void *bitstr) ...@@ -335,6 +336,11 @@ static int asn1_cb(const char *elem, int len, void *bitstr)
return -1; return -1;
break; break;
case ASN1_GEN_FLAG_SETWRAP:
if (!append_exp(arg, V_ASN1_SET, V_ASN1_UNIVERSAL, 1, 0, 1))
return -1;
break;
case ASN1_GEN_FLAG_BITWRAP: case ASN1_GEN_FLAG_BITWRAP:
if (!append_exp(arg, V_ASN1_BIT_STRING, V_ASN1_UNIVERSAL, 0, 1, 1)) if (!append_exp(arg, V_ASN1_BIT_STRING, V_ASN1_UNIVERSAL, 0, 1, 1))
return -1; return -1;
...@@ -588,6 +594,8 @@ static int asn1_str2tag(const char *tagstr, int len) ...@@ -588,6 +594,8 @@ static int asn1_str2tag(const char *tagstr, int len)
ASN1_GEN_STR("OCTWRAP", ASN1_GEN_FLAG_OCTWRAP), ASN1_GEN_STR("OCTWRAP", ASN1_GEN_FLAG_OCTWRAP),
/* SEQUENCE wrapper */ /* SEQUENCE wrapper */
ASN1_GEN_STR("SEQWRAP", ASN1_GEN_FLAG_SEQWRAP), ASN1_GEN_STR("SEQWRAP", ASN1_GEN_FLAG_SEQWRAP),
/* SET wrapper */
ASN1_GEN_STR("SETWRAP", ASN1_GEN_FLAG_SEQWRAP),
/* BIT STRING wrapper */ /* BIT STRING wrapper */
ASN1_GEN_STR("BITWRAP", ASN1_GEN_FLAG_BITWRAP), ASN1_GEN_STR("BITWRAP", ASN1_GEN_FLAG_BITWRAP),
ASN1_GEN_STR("FORM", ASN1_GEN_FLAG_FORMAT), ASN1_GEN_STR("FORM", ASN1_GEN_FLAG_FORMAT),
......
...@@ -32,7 +32,7 @@ is: ...@@ -32,7 +32,7 @@ is:
That is zero or more comma separated modifiers followed by a type That is zero or more comma separated modifiers followed by a type
followed by an optional colon and a value. The formats of B<type>, followed by an optional colon and a value. The formats of B<type>,
B<value> and B<modifier> is explained below. B<value> and B<modifier> are explained below.
=head2 SUPPORTED TYPES =head2 SUPPORTED TYPES
...@@ -45,7 +45,7 @@ only the B<ASCII> format is permissible. ...@@ -45,7 +45,7 @@ only the B<ASCII> format is permissible.
This encodes a boolean type. The B<value> string is mandatory and This encodes a boolean type. The B<value> string is mandatory and
should be B<TRUE> or B<FALSE>. Additionally B<TRUE>, B<true>, B<Y>, should be B<TRUE> or B<FALSE>. Additionally B<TRUE>, B<true>, B<Y>,
B<y>, B<YES>, B<yes>, B<FALSE> B<false>, B<N>, B<n>, B<NO> and B<no> B<y>, B<YES>, B<yes>, B<FALSE>, B<false>, B<N>, B<n>, B<NO> and B<no>
are acceptable. are acceptable.
=item B<NULL> =item B<NULL>
...@@ -106,8 +106,9 @@ contents of this structure. The format can be B<ASCII> or B<UTF8>. ...@@ -106,8 +106,9 @@ contents of this structure. The format can be B<ASCII> or B<UTF8>.
Formats the result as an ASN1 B<SEQUENCE> or B<SET> type. B<value> Formats the result as an ASN1 B<SEQUENCE> or B<SET> type. B<value>
should be a section name which will contain the contents. The should be a section name which will contain the contents. The
field names are ignored and the values are in the generated field names in the section are ignored and the values are in the
string format. If B<value> is absent the the content will be empty. generated string format. If B<value> is absent then an empty SEQUENCE
will be encoded.
=back =back
...@@ -135,10 +136,10 @@ the default is CONTEXT SPECIFIC. ...@@ -135,10 +136,10 @@ the default is CONTEXT SPECIFIC.
This is the same as B<EXPLICIT> except IMPLICIT tagging is used This is the same as B<EXPLICIT> except IMPLICIT tagging is used
instead. instead.
=item B<OCTWRAP>, B<SEQWRAP>, B<BITWRAP> =item B<OCTWRAP>, B<SEQWRAP>, B<SETWRAP>, B<BITWRAP>
The following structure is surrounded by an OCTET STRING, a SEQUENCE The following structure is surrounded by an OCTET STRING, a SEQUENCE,
or a BIT STRING respectively. For a BIT STRING the number of unused a SET or a BIT STRING respectively. For a BIT STRING the number of unused
bits is set to zero. bits is set to zero.
=item B<FORMAT> =item B<FORMAT>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册