Eneboo - Documentación para desarrolladores
|
#include <openssl/asn1.h>
Ir al código fuente de este archivo.
#define ASN1_MAC_ERR_LIB ERR_LIB_ASN1 |
#define M_ASN1_D2I_begin | ( | ) | c.slen = length; |
#define M_ASN1_D2I_end_sequence | ( | ) |
#define M_ASN1_D2I_Finish | ( | a, | |
func, | |||
e | |||
) |
#define M_ASN1_D2I_Finish_2 | ( | a | ) |
#define M_ASN1_D2I_Finish_nolen | ( | a, | |
func, | |||
e | |||
) |
#define M_ASN1_D2I_get | ( | b, | |
func | |||
) |
#define M_ASN1_D2I_get_EXP_opt | ( | r, | |
func, | |||
tag | |||
) |
if ((c.slen != 0L) && (M_ASN1_next == \ (V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \ { \ int Tinf,Ttag,Tclass; \ long Tlen; \ \ c.q=c.p; \ Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,c.slen); \ if (Tinf & 0x80) \ { c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \ c.line=__LINE__; goto err; } \ if (Tinf == (V_ASN1_CONSTRUCTED+1)) \ Tlen = c.slen - (c.p - c.q) - 2; \ if (func(&(r),&c.p,Tlen) == NULL) \ { c.line=__LINE__; goto err; } \ if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \ Tlen = c.slen - (c.p - c.q); \ if(!ASN1_const_check_infinite_end(&c.p, Tlen)) \ { c.error=ERR_R_MISSING_ASN1_EOS; \ c.line=__LINE__; goto err; } \ }\ c.slen-=(c.p-c.q); \ }
#define M_ASN1_D2I_get_EXP_set_opt | ( | r, | |
func, | |||
free_func, | |||
tag, | |||
b | |||
) |
if ((c.slen != 0) && (M_ASN1_next == \ (V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \ { \ int Tinf,Ttag,Tclass; \ long Tlen; \ \ c.q=c.p; \ Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,c.slen); \ if (Tinf & 0x80) \ { c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \ c.line=__LINE__; goto err; } \ if (Tinf == (V_ASN1_CONSTRUCTED+1)) \ Tlen = c.slen - (c.p - c.q) - 2; \ if (d2i_ASN1_SET(&(r),&c.p,Tlen,(char *(*)())func, \ (void (*)())free_func, \ b,V_ASN1_UNIVERSAL) == NULL) \ { 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)) \ { c.error=ERR_R_MISSING_ASN1_EOS; \ c.line=__LINE__; goto err; } \ }\ c.slen-=(c.p-c.q); \ }
if ((c.slen != 0) && (M_ASN1_next == \ (V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \ { \ int Tinf,Ttag,Tclass; \ long Tlen; \ \ c.q=c.p; \ Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,c.slen); \ if (Tinf & 0x80) \ { c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \ c.line=__LINE__; goto err; } \ if (Tinf == (V_ASN1_CONSTRUCTED+1)) \ Tlen = c.slen - (c.p - c.q) - 2; \ if (d2i_ASN1_SET_OF_##type(&(r),&c.p,Tlen,func, \ free_func,b,V_ASN1_UNIVERSAL) == NULL) \ { 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)) \ { c.error=ERR_R_MISSING_ASN1_EOS; \ c.line=__LINE__; goto err; } \ }\ c.slen-=(c.p-c.q); \ }
M_ASN1_next=(_tmp& V_ASN1_CONSTRUCTED)|type; \ c.q=c.p; \ if (func(&(b),&c.p,c.slen) == NULL) \ {c.line=__LINE__; M_ASN1_next_prev = _tmp; goto err; } \ c.slen-=(c.p-c.q);\ M_ASN1_next_prev=_tmp;
if ((c.slen != 0) && ((M_ASN1_next & (~V_ASN1_CONSTRUCTED)) == \ (V_ASN1_CONTEXT_SPECIFIC|(tag)))) \ { \ unsigned char _tmp = M_ASN1_next; \ M_ASN1_D2I_get_imp(b,func, type);\ }
#define M_ASN1_D2I_get_IMP_set | ( | r, | |
func, | |||
free_func, | |||
x | |||
) |
M_ASN1_D2I_get_imp_set(r,func,free_func,\ x,V_ASN1_CONTEXT_SPECIFIC);
#define M_ASN1_D2I_get_IMP_set_opt | ( | b, | |
func, | |||
free_func, | |||
tag | |||
) |
if ((c.slen != 0) && \ (M_ASN1_next == \ (V_ASN1_CONTEXT_SPECIFIC|V_ASN1_CONSTRUCTED|(tag))))\ { \ M_ASN1_D2I_get_imp_set(b,func,free_func,\ tag,V_ASN1_CONTEXT_SPECIFIC); \ }
if ((c.slen != 0) && \ (M_ASN1_next == \ (V_ASN1_CONTEXT_SPECIFIC|V_ASN1_CONSTRUCTED|(tag))))\ { \ M_ASN1_D2I_get_imp_set_type(type,b,func,free_func,\ tag,V_ASN1_CONTEXT_SPECIFIC); \ }
#define M_ASN1_D2I_get_IMP_set_type | ( | type, | |
r, | |||
func, | |||
free_func, | |||
x | |||
) |
M_ASN1_D2I_get_imp_set_type(type,r,func,free_func,\ x,V_ASN1_CONTEXT_SPECIFIC);
#define M_ASN1_D2I_get_int | ( | b, | |
func | |||
) |
if ((c.slen != 0) && ((M_ASN1_next & (~V_ASN1_CONSTRUCTED)) \ == (V_ASN1_UNIVERSAL|(type)))) \ { \ M_ASN1_D2I_get(b,func); \ }
#define M_ASN1_D2I_get_seq | ( | r, | |
func, | |||
free_func | |||
) |
M_ASN1_D2I_get_imp_set(r,func,free_func,\ V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL);
#define M_ASN1_D2I_get_seq_opt | ( | r, | |
func, | |||
free_func | |||
) |
if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \ V_ASN1_CONSTRUCTED|V_ASN1_SEQUENCE)))\ { M_ASN1_D2I_get_seq(r,func,free_func); }
#define M_ASN1_D2I_get_seq_opt_type | ( | type, | |
r, | |||
func, | |||
free_func | |||
) |
if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \ V_ASN1_CONSTRUCTED|V_ASN1_SEQUENCE)))\ { M_ASN1_D2I_get_seq_type(type,r,func,free_func); }
#define M_ASN1_D2I_get_seq_type | ( | type, | |
r, | |||
func, | |||
free_func | |||
) |
M_ASN1_D2I_get_imp_set_type(type,r,func,free_func,\ V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL)
#define M_ASN1_D2I_get_set | ( | r, | |
func, | |||
free_func | |||
) |
M_ASN1_D2I_get_imp_set(r,func,free_func, \ V_ASN1_SET,V_ASN1_UNIVERSAL);
#define M_ASN1_D2I_get_set_opt | ( | r, | |
func, | |||
free_func | |||
) |
if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \ V_ASN1_CONSTRUCTED|V_ASN1_SET)))\ { M_ASN1_D2I_get_set(r,func,free_func); }
#define M_ASN1_D2I_get_set_opt_type | ( | type, | |
r, | |||
func, | |||
free_func | |||
) |
if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \ V_ASN1_CONSTRUCTED|V_ASN1_SET)))\ { M_ASN1_D2I_get_set_type(type,r,func,free_func); }
#define M_ASN1_D2I_get_set_type | ( | type, | |
r, | |||
func, | |||
free_func | |||
) |
M_ASN1_D2I_get_imp_set_type(type,r,func,free_func, \ V_ASN1_SET,V_ASN1_UNIVERSAL);
#define M_ASN1_D2I_Init | ( | ) |
#define M_ASN1_D2I_start_sequence | ( | ) |
if (!asn1_GetSequence(&c,&length)) \ { c.line=__LINE__; goto err; }
#define M_ASN1_I2D_finish | ( | ) |
*pp=p; \ return(r);
#define M_ASN1_I2D_INF_seq_end | ( | ) | *(p++)=0x00; *(p++)=0x00 |
#define M_ASN1_I2D_INF_seq_start | ( | tag, | |
ctx | |||
) |
*(p++)=(V_ASN1_CONSTRUCTED|(tag)|(ctx)); \ *(p++)=0x80
#define M_ASN1_I2D_len_EXP_opt | ( | a, | |
f, | |||
mtag, | |||
v | |||
) |
#define M_ASN1_I2D_len_EXP_SEQUENCE_opt | ( | a, | |
f, | |||
mtag, | |||
tag, | |||
v | |||
) |
if ((a != NULL) && (sk_num(a) != 0))\ { \ v=i2d_ASN1_SET(a,NULL,f,tag,V_ASN1_UNIVERSAL, \ IS_SEQUENCE); \ ret+=ASN1_object_size(1,v,mtag); \ }
if ((a != NULL) && (sk_##type##_num(a) != 0))\ { \ v=i2d_ASN1_SET_OF_##type(a,NULL,f,tag, \ V_ASN1_UNIVERSAL, \ IS_SEQUENCE); \ ret+=ASN1_object_size(1,v,mtag); \ }
#define M_ASN1_I2D_len_EXP_SET_opt | ( | a, | |
f, | |||
mtag, | |||
tag, | |||
v | |||
) |
if ((a != NULL) && (sk_num(a) != 0))\ { \ v=i2d_ASN1_SET(a,NULL,f,tag,V_ASN1_UNIVERSAL,IS_SET); \ ret+=ASN1_object_size(1,v,mtag); \ }
#define M_ASN1_I2D_len_IMP_SEQUENCE | ( | a, | |
f, | |||
x | |||
) |
ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \ IS_SEQUENCE);
#define M_ASN1_I2D_len_IMP_SEQUENCE_opt | ( | a, | |
f, | |||
x | |||
) |
if ((a != NULL) && (sk_num(a) != 0)) \ ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \ IS_SEQUENCE);
if ((a != NULL) && (sk_##type##_num(a) != 0)) \ ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \ V_ASN1_CONTEXT_SPECIFIC, \ IS_SEQUENCE);
#define M_ASN1_I2D_len_IMP_SET | ( | a, | |
f, | |||
x | |||
) | ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC,IS_SET); |
#define M_ASN1_I2D_len_IMP_SET_opt | ( | a, | |
f, | |||
x | |||
) |
if ((a != NULL) && (sk_num(a) != 0)) \ ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \ IS_SET);
#define M_ASN1_I2D_len_SEQUENCE | ( | a, | |
f | |||
) |
#define M_ASN1_I2D_len_SEQUENCE_opt | ( | a, | |
f | |||
) |
ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,V_ASN1_SEQUENCE, \ V_ASN1_UNIVERSAL,IS_SEQUENCE)
#define M_ASN1_I2D_len_SET_opt | ( | a, | |
f | |||
) |
ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,V_ASN1_SET, \ V_ASN1_UNIVERSAL,IS_SET);
#define M_ASN1_I2D_put_EXP_opt | ( | a, | |
f, | |||
tag, | |||
v | |||
) |
if (a != NULL) \ { \ ASN1_put_object(&p,1,v,tag,V_ASN1_CONTEXT_SPECIFIC); \ f(a,&p); \ }
#define M_ASN1_I2D_put_EXP_SEQUENCE_opt | ( | a, | |
f, | |||
mtag, | |||
tag, | |||
v | |||
) |
if ((a != NULL) && (sk_num(a) != 0)) \ { \ ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \ i2d_ASN1_SET(a,&p,f,tag,V_ASN1_UNIVERSAL,IS_SEQUENCE); \ }
if ((a != NULL) && (sk_##type##_num(a) != 0)) \ { \ ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \ i2d_ASN1_SET_OF_##type(a,&p,f,tag,V_ASN1_UNIVERSAL, \ IS_SEQUENCE); \ }
#define M_ASN1_I2D_put_EXP_SET_opt | ( | a, | |
f, | |||
mtag, | |||
tag, | |||
v | |||
) |
if ((a != NULL) && (sk_num(a) != 0)) \ { \ ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \ i2d_ASN1_SET(a,&p,f,tag,V_ASN1_UNIVERSAL,IS_SET); \ }
if (a != NULL) \ { \ unsigned char *q=p; \ f(a,&p); \ *q=(V_ASN1_CONTEXT_SPECIFIC|t|(*q&V_ASN1_CONSTRUCTED));\ }
#define M_ASN1_I2D_put_IMP_SEQUENCE | ( | a, | |
f, | |||
x | |||
) |
i2d_ASN1_SET(a,&p,f,x,\ V_ASN1_CONTEXT_SPECIFIC,IS_SEQUENCE)
#define M_ASN1_I2D_put_IMP_SEQUENCE_opt | ( | a, | |
f, | |||
x | |||
) |
if ((a != NULL) && (sk_num(a) != 0)) \ { i2d_ASN1_SET(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC, \ IS_SEQUENCE); }
if ((a != NULL) && (sk_##type##_num(a) != 0)) \ { i2d_ASN1_SET_OF_##type(a,&p,f,x, \ V_ASN1_CONTEXT_SPECIFIC, \ IS_SEQUENCE); }
#define M_ASN1_I2D_put_IMP_SET | ( | a, | |
f, | |||
x | |||
) |
i2d_ASN1_SET(a,&p,f,x,\ V_ASN1_CONTEXT_SPECIFIC,IS_SET)
#define M_ASN1_I2D_put_IMP_SET_opt | ( | a, | |
f, | |||
x | |||
) |
if ((a != NULL) && (sk_num(a) != 0)) \ { i2d_ASN1_SET(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC, \ IS_SET); }
#define M_ASN1_I2D_put_IMP_SET_type | ( | type, | |
a, | |||
f, | |||
x | |||
) | i2d_ASN1_SET_OF_##type(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC,IS_SET) |
#define M_ASN1_I2D_put_SEQUENCE | ( | a, | |
f | |||
) |
#define M_ASN1_I2D_put_SEQUENCE_opt | ( | a, | |
f | |||
) |
#define M_ASN1_I2D_put_SEQUENCE_opt | ( | a, | |
f | |||
) |
i2d_ASN1_SET_OF_##type(a,&p,f,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL, \ IS_SEQUENCE)
#define M_ASN1_I2D_put_SET | ( | a, | |
f | |||
) |
#define M_ASN1_I2D_put_SET_opt | ( | a, | |
f | |||
) |
#define M_ASN1_I2D_put_SET_type | ( | type, | |
a, | |||
f | |||
) | i2d_ASN1_SET_OF_##type(a,&p,f,V_ASN1_SET,V_ASN1_UNIVERSAL,IS_SET) |
#define M_ASN1_I2D_seq_total | ( | ) |
r=ASN1_object_size(1,ret,V_ASN1_SEQUENCE); \ if (pp == NULL) return(r); \ p= *pp; \ ASN1_put_object(&p,1,ret,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL)
#define M_ASN1_New_Error | ( | a | ) |
/* err: ASN1_MAC_H_err((a),ERR_R_NESTED_ASN1_ERROR,c.line); \ return(NULL);*/ \ err2: ASN1_MAC_H_err((a),ERR_R_MALLOC_FAILURE,c.line); \ return(NULL)
#define M_ASN1_next (*((unsigned char *)(c.p))) |
#define M_ASN1_next_prev (*((unsigned char *)(c.q))) |
void asn1_add_error | ( | const unsigned char * | address, |
int | offset | ||
) |
int asn1_GetSequence | ( | ASN1_const_CTX * | c, |
long * | length | ||
) |