Missing declarations, no assembler in PEDANTIC.
[openssl.git] / crypto / asn1 / asn1_mac.h
index 653f5fe1c948ef599fc7c8d4702699855672b6e9..87bd0e9e1d81358b0631615269882ee4c88bb1a3 100644 (file)
@@ -70,14 +70,14 @@ extern "C" {
 #endif 
 
 #define ASN1_MAC_H_err(f,r,line) \
-       ERR_PUT_error(ASN1_MAC_ERR_LIB,(f),(r),ERR_file_name,(line))
+       ERR_PUT_error(ASN1_MAC_ERR_LIB,(f),(r),__FILE__,(line))
 
 #define M_ASN1_D2I_vars(a,type,func) \
-       ASN1_CTX c; \
+       ASN1_const_CTX c; \
        type ret=NULL; \
        \
-       c.pp=pp; \
-       c.q= *pp; \
+       c.pp=(const unsigned char **)pp; \
+       c.q= *(const unsigned char **)pp; \
        c.error=ERR_R_NESTED_ASN1_ERROR; \
        if ((a == NULL) || ((*a) == NULL)) \
                { if ((ret=(type)func()) == NULL) \
@@ -85,13 +85,13 @@ extern "C" {
        else    ret=(*a);
 
 #define M_ASN1_D2I_Init() \
-       c.p= *pp; \
+       c.p= *(const unsigned char **)pp; \
        c.max=(length == 0)?0:(c.p+length);
 
 #define M_ASN1_D2I_Finish_2(a) \
-       if (!asn1_Finish(&c)) \
+       if (!asn1_const_Finish(&c)) \
                { c.line=__LINE__; goto err; } \
-       *pp=c.p; \
+       *(const unsigned char **)pp=c.p; \
        if (a != NULL) (*a)=ret; \
        return(ret);
 
@@ -99,7 +99,7 @@ extern "C" {
        M_ASN1_D2I_Finish_2(a); \
 err:\
        ASN1_MAC_H_err((e),c.error,c.line); \
-       asn1_add_error(*pp,(int)(c.q- *pp)); \
+       asn1_add_error(*(const unsigned char **)pp,(int)(c.q- *pp)); \
        if ((ret != NULL) && ((a == NULL) || (*a != ret))) func(ret); \
        return(NULL)
 
@@ -123,15 +123,22 @@ err:\
 
 #define M_ASN1_D2I_end_sequence() \
        (((c.inf&1) == 0)?(c.slen <= 0): \
-               (c.eos=ASN1_check_infinite_end(&c.p,c.slen)))
+               (c.eos=ASN1_const_check_infinite_end(&c.p,c.slen)))
 
 /* Don't use this with d2i_ASN1_BOOLEAN() */
-#define M_ASN1_D2I_get(b,func) \
+#define M_ASN1_D2I_get(b, func) \
        c.q=c.p; \
        if (func(&(b),&c.p,c.slen) == NULL) \
                {c.line=__LINE__; goto err; } \
        c.slen-=(c.p-c.q);
 
+/* Don't use this with d2i_ASN1_BOOLEAN() */
+#define M_ASN1_D2I_get_x(type,b,func) \
+       c.q=c.p; \
+       if (((D2I_OF(type))func)(&(b),&c.p,c.slen) == NULL) \
+               {c.line=__LINE__; goto err; } \
+       c.slen-=(c.p-c.q);
+
 /* use this instead () */
 #define M_ASN1_D2I_get_int(b,func) \
        c.q=c.p; \
@@ -146,6 +153,13 @@ err:\
                M_ASN1_D2I_get(b,func); \
                }
 
+#define M_ASN1_D2I_get_int_opt(b,func,type) \
+       if ((c.slen != 0) && ((M_ASN1_next & (~V_ASN1_CONSTRUCTED)) \
+               == (V_ASN1_UNIVERSAL|(type)))) \
+               { \
+               M_ASN1_D2I_get_int(b,func); \
+               }
+
 #define M_ASN1_D2I_get_imp(b,func, type) \
        M_ASN1_next=(_tmp& V_ASN1_CONSTRUCTED)|type; \
        c.q=c.p; \
@@ -278,7 +292,7 @@ err:\
                        { c.line=__LINE__; goto err; } \
                if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \
                        Tlen = c.slen - (c.p - c.q); \
-                       if(!ASN1_check_infinite_end(&c.p, Tlen)) \
+                       if(!ASN1_const_check_infinite_end(&c.p, Tlen)) \
                                { c.error=ERR_R_MISSING_ASN1_EOS; \
                                c.line=__LINE__; goto err; } \
                }\
@@ -340,7 +354,7 @@ err:\
 
 /* New macros */
 #define M_ASN1_New_Malloc(ret,type) \
-       if ((ret=(type *)Malloc(sizeof(type))) == NULL) \
+       if ((ret=(type *)OPENSSL_malloc(sizeof(type))) == NULL) \
                { c.line=__LINE__; goto err2; }
 
 #define M_ASN1_New(arg,func) \
@@ -353,8 +367,12 @@ err:\
                return(NULL)
 
 
-#define M_ASN1_next            (*c.p)
-#define M_ASN1_next_prev       (*c.q)
+/* BIG UGLY WARNING!  This is so damn ugly I wanna puke.  Unfortunately,
+   some macros that use ASN1_const_CTX still insist on writing in the input
+   stream.  ARGH!  ARGH!  ARGH!  Let's get rid of this macro package.
+   Please?                                             -- Richard Levitte */
+#define M_ASN1_next            (*((unsigned char *)(c.p)))
+#define M_ASN1_next_prev       (*((unsigned char *)(c.q)))
 
 /*************************************************/
 
@@ -551,8 +569,8 @@ err:\
 #define M_ASN1_I2D_finish()    *pp=p; \
                                return(r);
 
-int asn1_GetSequence(ASN1_CTX *c, long *length);
-void asn1_add_error(unsigned char *address,int offset);
+int asn1_GetSequence(ASN1_const_CTX *c, long *length);
+void asn1_add_error(const unsigned char *address,int offset);
 #ifdef  __cplusplus
 }
 #endif