I'm sorry, I have noticed some errors. I will check them.

--
Daniel Diaz Sanchez
Telecommunication Engineer
Researcher / Teaching Assistant
 
Dep. Ing. Telemática
Universidad Carlos III de Madrid
Av. Universidad, 30
28911 Leganés (Madrid/Spain)
Tel: (+34) 91-624-8817, Fax: -8749

Web: www.it.uc3m.es/dds
web: http://www.it.uc3m.es/pervasive
A toolkit for attribute certificates:
http://www.it.uc3m.es/dds/swRelease/pmi/pmi.xml

Mail: dds[at].it.uc3m.es
Skype: dds.it.uc3m.es


-$  -----Mensaje original-----
-$  De: [EMAIL PROTECTED] [mailto:owner-openssl-
-$  [EMAIL PROTECTED] En nombre de Daniel Diaz Sanchez
-$  Enviado el: martes, 17 de octubre de 2006 13:03
-$  Para: [email protected]
-$  Asunto: RE: Compiler error ASN1
-$  
-$  Thanks for your reply,
-$  
-$  I'm in an implicit TAGS environment:
-$  
-$  AttributeCertificateDefinitions {joint-iso-itu-t ds(5) module(1)
-$    attributeCertificateDefinitions(32) 5} DEFINITIONS IMPLICIT TAGS ::=
-$  BEGIN
-$  
-$  What I really want to implement is this extension, but I obtain an error
-$  in
-$  the first asn1 structure, have a look to the implementation
-$  
-$  error C2059: syntax error : '}'
-$  
-$  timeSpecification EXTENSION ::= {
-$    SYNTAX         TimeSpecification
-$    IDENTIFIED BY  id-ce-timeSpecification
-$  }
-$  
-$  TimeSpecification ::= SEQUENCE {
-$    time
-$      CHOICE {absolute
-$                SEQUENCE {startTime  [0]  GeneralizedTime OPTIONAL,
-$                          endTime    [1]  GeneralizedTime OPTIONAL},
-$              periodic  SET OF Period},
-$    notThisTime  BOOLEAN DEFAULT FALSE,
-$    timeZone     TimeZone OPTIONAL
-$  }
-$  
-$  Period ::= SEQUENCE {
-$    timesOfDay  [0]  SET SIZE (1..MAX) OF DayTimeBand OPTIONAL,
-$    days
-$      [1]  CHOICE {intDay  SET OF INTEGER,
-$                   bitDay
-$                     BIT STRING {sunday(0), monday(1), tuesday(2),
-$  wednesday(3),
-$                                 thursday(4), friday(5), saturday(6)},
-$                   dayOf   XDayOf} OPTIONAL,
-$    weeks
-$      [2]  CHOICE {allWeeks  NULL,
-$                   intWeek   SET OF INTEGER,
-$                   bitWeek
-$                     BIT STRING {week1(0), week2(1), week3(2), week4(3),
-$  week5(4)}
-$    } OPTIONAL,
-$    months
-$      [3]  CHOICE {allMonths  NULL,
-$                   intMonth   SET OF INTEGER,
-$                   bitMonth
-$                     BIT STRING {january(0), february(1), march(2),
-$  april(3),
-$                                 may(4), june(5), july(6), august(7),
-$                                 september(8), october(9), november(10),
-$                                 december(11)}} OPTIONAL,
-$    years       [4]  SET OF INTEGER(1000..MAX) OPTIONAL
-$  }
-$  
-$  XDayOf ::= CHOICE {
-$    first   [1]  NamedDay,
-$    second  [2]  NamedDay,
-$    third   [3]  NamedDay,
-$    fourth  [4]  NamedDay,
-$    fifth   [5]  NamedDay
-$  }
-$  
-$  NamedDay ::= CHOICE {
-$    intNamedDays
-$      ENUMERATED {sunday(1), monday(2), tuesday(3), wednesday(4),
-$  thursday(5),
-$                  friday(6), saturday(7)},
-$    bitNamedDays
-$      BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3),
-$  thursday(4),
-$                  friday(5), saturday(6)}
-$  }
-$  
-$  DayTimeBand ::= SEQUENCE {
-$    startDayTime  [0]  DayTime DEFAULT {hour 0},
-$    endDayTime    [1]  DayTime DEFAULT {hour 23, minute 59, second 59}
-$  }
-$  
-$  DayTime ::= SEQUENCE {
-$    hour    [0]  INTEGER(0..23),
-$    minute  [1]  INTEGER(0..59) DEFAULT 0,
-$    second  [2]  INTEGER(0..59) DEFAULT 0
-$  }
-$  
-$  TimeZone ::= INTEGER(-12..12)
-$  
-$  
-$  
-$  My implementation is in the following way, the places where I obtain the
-$  error are marked with C2059
-$  
-$  /* .h */
-$  
-$      typedef struct NAMEDDAY_st
-$      {
-$              int type;
-$              union{
-$                      ASN1_ENUMERATED *intNamedDays;
-$                      ASN1_BIT_STRING *bitNamedDays;
-$              }value;
-$      }NAMEDDAY;
-$  
-$      typedef struct XDAYOF_st
-$      {
-$              int type;
-$              union{
-$                      NAMEDDAY *first;
-$                      NAMEDDAY *second;
-$                      NAMEDDAY *third;
-$                      NAMEDDAY *fourth;
-$                      NAMEDDAY *fifth;
-$              }value;
-$      }XDAYOF;
-$  
-$      typedef struct DAYTIME_st
-$      {
-$              ASN1_INTEGER *hour;
-$              ASN1_INTEGER *minute;
-$              ASN1_INTEGER *second;
-$      }DAYTIME;
-$  
-$      typedef struct DAYTIMEBAND_st
-$      {
-$              DAYTIME *startDayTime;
-$              DAYTIME *endDayTime;
-$      }DAYTIMEBAND;
-$  
-$      typedef struct DAYS_st
-$      {
-$              int type;
-$              union{
-$                      STACK_OF(ASN1_INTEGER) *intDay;
-$                      ASN1_BIT_STRING *bitDay;
-$                      XDAYOF *dayOf;
-$              }value;
-$      }DAYS;
-$  
-$      typedef struct WEEKS_st
-$      {
-$              int type;
-$              union{
-$                      ASN1_NULL *allWeeks;
-$                      STACK_OF(ASN1_INTEGER) *intWeek;
-$                      ASN1_BIT_STRING *bitWeek;
-$              }value;
-$      }WEEKS;
-$  
-$      typedef struct MONTHS_st
-$      {
-$              int type;
-$              union{
-$                      ASN1_NULL *allMonths;
-$                      STACK_OF(ASN1_INTEGER) *intMonth;
-$                      ASN1_BIT_STRING *bitMonth;
-$              }value;
-$      }MONTHS;
-$  
-$      typedef struct TIME_PERIOD_st
-$      {
-$              STACK_OF(DAYTIMEBAND) *timesOfDay;
-$              DAYS *days;
-$              WEEKS *weeks;
-$              MONTHS *months;
-$              STACK_OF(INTEGER) *years;
-$      }TIME_PERIOD;
-$  
-$      typedef struct TIME_ABSOLUTE_st
-$      {
-$              ASN1_GENERALIZEDTIME *startTime;
-$              ASN1_GENERALIZEDTIME *endTime;
-$      }TIME_ABSOLUTE;
-$  
-$      typedef struct TIME_st
-$      {
-$              int type ;
-$              union {
-$                      TIME_ABSOLUTE *absolute;
-$                      TIME_PERIOD *periodic;
-$              }value;
-$      }TIME;
-$      typedef struct TIME_SPECIFICATION_st
-$      {
-$              TIME *time;
-$              ASN1_BOOLEAN notThisTime;
-$              ASN1_INTEGER *timeZone;
-$      }TIME_SPECIFICATION;
-$  
-$  
-$  /* .c */
-$  
-$      ASN1_CHOICE(NAMEDDAY) = {
-$              ASN1_SIMPLE(NAMEDDAY,value.intNamedDays,ASN1_ENUMERATED)
-$  
-$  ASN1_SIMPLE(NAMEDDAY,value.bitNamedDays,ASN1_BIT_STRING)<--C2059
-$      }ASN1_CHOICE_END(NAMEDDAY)<-error C2059/warning C4034 sizeof
-$  returns
-$  0
-$  
-$      // fatal error unable to recover from previous errors
-$  
-$      ASN1_CHOICE(XDAYOF) = {
-$              ASN1_EXP(XDAYOF,value.first,NAMEDDAY,0)
-$              ASN1_EXP(XDAYOF,value.second,NAMEDDAY,1)
-$              ASN1_EXP(XDAYOF,value.third,NAMEDDAY,2)
-$              ASN1_EXP(XDAYOF,value.fourth,NAMEDDAY,3)
-$              ASN1_EXP(XDAYOF,value.fifth,NAMEDDAY,4)
-$      }ASN1_CHOICE_END(XDAYOF)
-$  
-$      ASN1_CHOICE(MONTHS) = {
-$              ASN1_SIMPLE(MONTHS,value.allMonths,ASN1_NULL)
-$              ASN1_SET_OF(MONTHS,value.intMonths,ASN1_INTEGER)
-$              ASN1_SIMPLE(MONTHS,value.bitMonths,ASN1_BIT_STRING)
-$      }ASN1_CHOICE_END(MONTHS)
-$  
-$      ASN1_CHOICE(WEEKS) = {
-$              ASN1_SIMPLE(WEEKS,value.allWeeks,ASN1_NULL)
-$              ASN1_SET_OF(WEEKS,value.intWeek,ASN1_INTEGER)
-$              ASN1_SIMPLE(WEEKS,value.bitWeek,ASN1_BIT_STRING)
-$      }ASN1_CHOICE_END(WEEKS)
-$  
-$      ASN1_CHOICE(DAYS) = {
-$              ASN1_SET_OF(DAYS,value.intDay,ASN1_INTEGER)
-$              ASN1_SIMPLE(DAYS,value.bitDay,ASN1_BIT_STRING)
-$              ASN1_EXP_OPT(DAYS,value.XDayOf,XDAYOF) //XDAYOF is CHOICE
-$      }ASN1_CHOICE_END(DAYS)
-$  
-$      ASN1_SEQUENCE(TIME_PERIOD) = {
-$              ASN1_EXP_OPT(TIME_PERIOD,timesOfDay,DAYTIMEBAND,0) //is
-$  CHOICE
-$              ASN1_EXP_OPT(TIME_PERIOD,days,DAYS,1) //is CHOICE
-$              ASN1_EXP_OPT(TIME_PERIOD,weeks,WEEKS,2) //is CHOICE
-$              ASN1_EXP_OPT(TIME_PERIOD,months,MONTHS,3) //is CHOICE
-$              ASN1_IMP_SET_OF_OPT(TIME_PERIOD,years,ASN1_INTEGER,4)
-$      }ASN1_SEQUENCE_END(TIME_PERIOD)
-$  
-$      ASN1_SEQUENCE(TIME_ABSOLUTE) = {
-$              ASN1_IMP_OPT(TIME_ABSOLUTE,startTime,ASN1_GENERALIZEDTIME,0)
-$              ASN1_IMP_OPT(TIME_ABSOLUTE,endTime,ANS1_GENERALIZEDTIME,1)
-$      }ASN1_SEQUENCE_END(TIME_ABSOLUTE)
-$  
-$      ASN1_CHOICE(TIME) = {
-$              ASN1_SIMPLE(TIME,value.absolute,TIME_ABSOLUTE)
-$              ASN1_SIMPLE(TIME,value.periodic,TIME_PERIOD)
-$      }ASN1_CHOICE_END(TIME)
-$  
-$      ASN1_SEQUENCE(TIME_SPECIFICATION) = {
-$              ASN1_EXP(TIME_SPECIFICATION,time,TIME)
-$              ASN1_SIMPLE(TIME_SPECIFICATION,notThisTime,ASN1_BOOLEAN)
-$              ASN1_OPT(TIME_SPECIFICATION,timeZone,TIMEZONE)
-$      }ASN1_SEQUENCE_END(TIME_SPECIFICATION)
-$  
-$  
-$      IMPLEMENT_ASN1_FUNCTION(TIME_ABSOLUTE)
-$      IMPLEMENT_ASN1_FUNCTION(TIME)
-$      IMPLEMENT_ASN1_FUNCTION(TIME_SPECIFICATION)
-$      IMPLEMENT_ASN1_DUP_FUNCTION(TIME_ABSOLUTE)
-$      IMPLEMENT_ASN1_DUP_FUNCTION(TIME)
-$      IMPLEMENT_ASN1_DUP_FUNCTION(TIME_SPECIFICATION)
-$  
-$  --
-$  Daniel Diaz Sanchez
-$  Telecommunication Engineer
-$  Researcher / Teaching Assistant
-$  
-$  Dep. Ing. Telemática
-$  Universidad Carlos III de Madrid
-$  Av. Universidad, 30
-$  28911 Leganés (Madrid/Spain)
-$  Tel: (+34) 91-624-8817, Fax: -8749
-$  
-$  Web: www.it.uc3m.es/dds
-$  web: http://www.it.uc3m.es/pervasive
-$  A toolkit for attribute certificates:
-$  http://www.it.uc3m.es/dds/swRelease/pmi/pmi.xml
-$  
-$  Mail: dds[at].it.uc3m.es
-$  Skype: dds.it.uc3m.es
-$  
-$  
-$  -$  -----Mensaje original-----
-$  -$  De: [EMAIL PROTECTED] [mailto:owner-openssl-
-$  -$  [EMAIL PROTECTED] En nombre de Peter Sylvester
-$  -$  Enviado el: martes, 17 de octubre de 2006 12:40
-$  -$  Para: [email protected]
-$  -$  Asunto: Re: Compiler error ASN1
-$  -$
-$  -$  Daniel Diaz Sanchez wrote:
-$  -$  > Hello to everybody,
-$  -$  >       I have a problem when implementing a simple structure using
-$  -$  OpenSSL
-$  -$  > Asn1. This is the problem:
-$  -$  >
-$  -$  >       When I try to implement this data structure:
-$  -$  >
-$  -$  >       A ::= SEQUENCE {
-$  -$  >                       b
-$  -$  >                       CHOICE {
-$  -$  >                                       b1 INTEGER,
-$  -$  >                                   b2 INTEGER},
-$  -$  >
-$  -$  The previous is ambiguous. use for example b2 [0] INTEGER
-$  -$  Also, the given syntax does not say whether you are in global
-$  -$  environment of EXPLICIT or IMPLICIT tagging. It seems
-$  -$  that you assume IMPLICIT
-$  -$
-$  -$
-$  -$  >                       a1 BOOLEAN,
-$  -$  >                       a2 INTEGER OPTIONAL,
-$  -$  >                       a3 [0] INTEGER OPTIONAL,
-$  -$  >                       a4 [1] INTEGER
-$  -$  >       }
-$  -$  >
-$  -$  >       I do it in the following way:
-$  -$  >
-$  -$  >       /* .h */
-$  -$  >       typedef struct B_st
-$  -$  >       {
-$  -$  >               int type ;
-$  -$  >               union {
-$  -$  >                       ASN1_INTEGER *b1;
-$  -$  >                       ASN1_INTEGER *b2;
-$  -$  >               }value;
-$  -$  >       }B;
-$  -$  >
-$  -$  >       typedef struct A_st
-$  -$  >       {
-$  -$  >               B *b;
-$  -$  >               ASN1_BOOLEAN *a1;
-$  -$  >               ASN1_INTEGER *a2;
-$  -$  >               ASN1_INTEGER *a3;
-$  -$  >               ASN1_INTEGER *a4;
-$  -$  >       }A;
-$  -$  >
-$  -$  >       DECLARE_ASN1_ITEM(B)
-$  -$  >       DECLARE_ASN1_ITEM(A)
-$  -$  >       DECLARE_ASN1_FUNCTIONS(B)
-$  -$  >       DECLARE_ASN1_FUNCTIONS(A)
-$  -$  >
-$  -$  >       /* .c */
-$  -$  >
-$  -$  >       ASN1_CHOICE(B) = {
-$  -$  >               ASN1_SIMPLE(B,value.b1,ASN1_INTEGER)
-$  -$  >
-$  -$  missing ,
-$  -$  >               ASN1_SIMPLE(B,value.b2,ASN1_INTEGER) //(*1)
-$  -$  >
-$  -$  missing }
-$  -$
-$  -$  ASN1_IMP(A,value.b2,ASN1_INTEGER,0)
-$  -$
-$  -$
-$  -$  >       }ASN1_CHOICE_END(B) //(*2)
-$  -$  >
-$  -$  >       ASN1_SEQUENCE(A) = {
-$  -$  >               ASN1_EXP(A,b,B) //choice
-$  -$  >
-$  -$  ,
-$  -$  >               ASN1_SIMPLE(A,a1,ASN1_BOOLEAN)
-$  -$  >
-$  -$  ,
-$  -$  >               ASN1_OPT(A,a2,ASN1_INTEGER)
-$  -$  >
-$  -$  ,
-$  -$  >               ASN1_IMP_OPT(A,a3,ASN1_INTEGER,0)
-$  -$  >
-$  -$  ,
-$  -$  >               ASN1_IMP(A,a4,ASN1_INTEGER,1)
-$  -$  >       }ASN1_SEQUENCE_END(A)
-$  -$  >
-$  -$  >       IMPLEMENT_ASN1_FUNCTION(A)
-$  -$  >
-$  -$  >       But I obtain (using Visual Studio)
-$  -$  >
-$  -$  >       error C2059: syntax error : '{' at line (*1) and
-$  -$  >       error C2059: syntax error : '{' at line (*2)
-$  -$  >
-$  -$  >       I'm doing it ok or there is something missing?.
-$  -$  >
-$  -$  >       Thanks!,
-$  -$  >
-$  -$  >       Regards,
-$  -$  >
-$  -$  > --
-$  -$  > Daniel Diaz Sanchez
-$  -$  > Telecommunication Engineer
-$  -$  > Researcher / Teaching Assistant
-$  -$  >
-$  -$  > Dep. Ing. Telemática
-$  -$  > Universidad Carlos III de Madrid
-$  -$  > Av. Universidad, 30
-$  -$  > 28911 Leganés (Madrid/Spain)
-$  -$  > Tel: (+34) 91-624-8817, Fax: -8749
-$  -$  >
-$  -$  > Web: www.it.uc3m.es/dds
-$  -$  > web: http://www.it.uc3m.es/pervasive
-$  -$  > A toolkit for attribute certificates:
-$  -$  > http://www.it.uc3m.es/dds/swRelease/pmi/pmi.xml
-$  -$  >
-$  -$  > Mail: dds[at].it.uc3m.es
-$  -$  > Skype: dds.it.uc3m.es
-$  -$  >
-$  -$  >
-$  -$  >
-$  -$  >
-$  ______________________________________________________________________
-$  -$  > OpenSSL Project
-$  http://www.openssl.org
-$  -$  > User Support Mailing List                    openssl-
-$  [EMAIL PROTECTED]
-$  -$  > Automated List Manager
-$  [EMAIL PROTECTED]
-$  -$  >
-$  -$  >
-$  -$  >
-$  -$  >
-$  -$
-$  -$
-$  -$  --
-$  -$  To verify the signature, see http://edelpki.edelweb.fr/
-$  -$  Cela vous permet de charger le certificat de l'autorité;
-$  -$  die Liste mit zurückgerufenen Zertifikaten finden Sie da auch.
-$  
-$  
-$  ______________________________________________________________________
-$  OpenSSL Project                                 http://www.openssl.org
-$  User Support Mailing List                    [email protected]
-$  Automated List Manager                           [EMAIL PROTECTED]

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    [email protected]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to