Vadim Fedukovich schrieb: > > On Tue, Jun 11, 2002 at 01:46:40PM +0200, Michael Bell wrote: > > Hi, > > > > I start a simple implementation of othername only for strings in the > > subject alternative name. Actually I have a problem with the resolving > > of the ASN1_TYPE. > > > > OTHERNAME is defined like this in crypto/x509v3/x509v3.h: > > > > typedef struct otherName_st { > > ASN1_OBJECT *type_id; > > ASN1_TYPE *value; > > } OTHERNAME; > > > > The problem is that I must do a typecast to store a special type in > > *value but I must know the type in crypto/asn1/tasn_enc.c where > > ASN1_item_ex_i2d must calculate the length of the sequence. > > > > The code crashs in the loop after /* First work out sequence content > > length */ at the second iteration in the line > > > > seqcontlen += ASN1_template_i2d(pseqval, NULL, seqtt); > > > > Is there a trick to get the type from the structure or must I change > > x509v3.h (ASN1_TYPE --> ASN1_CHOICE) and define the supported > > ASN1-types? > > "Policy" certificate extension generator may be an example to do this. > Naina package: http://www.unity.net/~vf/naina_r1.tgz
Not really. The problem is that value can be every (!!!) ASN1_TYPE. So is there a difference in the resulting ASN1 if I use an ASN1_CHOICE to build the structure? typedef struct otherName_st { ASN1_OBJECT *type_id; ASN1_CHOICE *value; } ASN1_CHOICE(OTHERNAME) = { ... } ASN1_CHOICE_END(OTHERNAME) (including new unions etc.) Is this compatible with ASN1_TYPE *value? Michael -- ------------------------------------------------------------------- Michael Bell Email (private): [EMAIL PROTECTED] Rechenzentrum - Datacenter Email: [EMAIL PROTECTED] Humboldt-University of Berlin Tel.: +49 (0)30-2093 2482 Unter den Linden 6 Fax: +49 (0)30-2093 2959 10099 Berlin Germany http://www.openca.org ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]