int i2d_X509_EXTENSION(X509_EXTENSION *a, unsigned char **pp) { int k=0; int r=0,ret=0; unsigned char **p=NULL; if (a == NULL) return(0); p=NULL; for (;;) { if (k) { 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); } ret+=i2d_ASN1_OBJECT(a->object,p); if ((a->critical) || a->netscape_hack) ret+=i2d_ASN1_BOOLEAN(a->critical,p); ret+=i2d_ASN1_OCTET_STRING(a->value,p); if (k++) return(r); } }
static int ossl_i2d_ASN1_TYPE(ASN1_TYPE *a, unsigned char **pp) { #if OPENSSL_VERSION_NUMBER < 0x00907000L if(!a) return 0; if(a->type == V_ASN1_BOOLEAN) return i2d_ASN1_BOOLEAN(a->value.boolean, pp); #endif return i2d_ASN1_TYPE(a, pp); }