projects
/
oweals
/
openssl.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
0f529cb
)
Submitted by: Peter Sylvester <Peter.Sylvester@edelweb.fr>
author
Dr. Stephen Henson
<steve@openssl.org>
Tue, 10 Feb 2009 12:13:08 +0000
(12:13 +0000)
committer
Dr. Stephen Henson
<steve@openssl.org>
Tue, 10 Feb 2009 12:13:08 +0000
(12:13 +0000)
Reviewed by: steve
If tagging is universal and SET or SEQUENCE set constructed bit.
crypto/asn1/asn1_gen.c
patch
|
blob
|
history
diff --git
a/crypto/asn1/asn1_gen.c
b/crypto/asn1/asn1_gen.c
index 04395d22816fd919de915a44ef413951e6e77904..ec18cbff4f90383ccee24b03b216241b7383fa9e 100644
(file)
--- a/
crypto/asn1/asn1_gen.c
+++ b/
crypto/asn1/asn1_gen.c
@@
-245,8
+245,14
@@
ASN1_TYPE *ASN1_generate_v3(char *str, X509V3_CTX *cnf)
/* If IMPLICIT, output tag */
if (asn1_tags.imp_tag != -1)
+ {
+ if (asn1_tags.imp_class == V_ASN1_UNIVERSAL
+ && (asn1_tags.imp_tag == V_ASN1_SEQUENCE
+ || asn1_tags.imp_tag == V_ASN1_SET) )
+ hdr_constructed = V_ASN1_CONSTRUCTED;
ASN1_put_object(&p, hdr_constructed, hdr_len,
asn1_tags.imp_tag, asn1_tags.imp_class);
+ }
/* Copy across original encoding */
memcpy(p, cpy_start, cpy_len);