On Thu, Jun 26, 2003, Fernando Moya wrote: > Hi, I am having problems with CHOICE in the following ASN.1 sequence: > > --------------------------------------------------------------------- > DEFINITIONS IMPLICIT TAGS > > Sub_seq200 ::= SEQUENCE > { > sub_field1 Sub_seq100 OPTIONAL, > sub_field2 [0] Sub_seq400 OPTIONAL > } > > Seq1 ::= CHOICE > { > field1 Sub_seq100, > field2 [0] Sub_seq200 > } > > --------------------------------------------------------------------- > > Implemented by: > > typedef struct Sub_seq200_st > { > Sub_seq100 *sub_field1; > Sub_seq200 *sub_field2; > }Sub_seq200; > > typedef struct Seq1_st > { > int type; > union { > char *ptr; > Sub_seq100 *field1; > Sub_seq200 *field2; > }value; > }Seq1; > > ASN1_SEQUENCE(Sub_seq200) = { > ASN1_OPT(Sub_seq200,sub_field1, Sub_seq100), > ASN1_IMP_OPT(Sub_seq200,sub_field2, Sub_seq400,0), > } ASN1_SEQUENCE_END(Sub_seq200) > > IMPLEMENT_ASN1_FUNCTIONS(Sub_seq200) > > ASN1_CHOICE(Seq1) = { > ASN1_SIMPLE(Seq1, value.field1,Sub_seq100), > ASN1_IMP(Seq1, value.field2,Sub_seq200, 0) > } ASN1_CHOICE_END(Seq1) > > IMPLEMENT_ASN1_FUNCTIONS(Seq1) > > Well, Seq1_new, Seq1_free and i2d_Seq1 functions work correctly and DER > output is right, but when I call d2i_Seq1 with DER output from i2d_Seq1, it > returns NULL. I think it could be an incorrect definition of > ASN1_CHOICE(Seq1). > > Does Anybody know what is wrong? >
See what error message you get with ERR_print_errors_fp(srderr); Steve. -- Dr Stephen N. Henson. Core developer of the OpenSSL project: http://www.openssl.org/ Freelance consultant see: http://www.drh-consultancy.demon.co.uk/ Email: [EMAIL PROTECTED], PGP key: via homepage. ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]