{ unsigned int length; \
retval = encoder(buf,len,value,&length); \
if (retval) {\
- asn1buf_destroy(&buf);\
return retval; }\
sum += length;\
retval = asn1_make_etag(buf,CONTEXT_SPECIFIC,tag,length,&length);\
if (retval) {\
- asn1buf_destroy(&buf);\
return retval; }\
sum += length; }
if (val->parameters.length != 0) {
retval = asn1buf_insert_octetstring(buf, val->parameters.length,
val->parameters.data);
- if (retval) {
- asn1buf_destroy(&buf);
+ if (retval)
return retval;
- }
sum += val->parameters.length;
}
val->algorithm.data,
&length);
- if (retval) {
- asn1buf_destroy(&buf);
+ if (retval)
return retval;
- }
sum += length;
}
retval = asn1buf_insert_octetstring(buf, val->algorithm.parameters.length,
val->algorithm.parameters.data);
- if (retval) {
- asn1buf_destroy(&buf);
+ if (retval)
return retval;
- }
sum += val->algorithm.parameters.length;
retval = asn1_encode_oid(buf, val->algorithm.algorithm.length,
val->algorithm.algorithm.data,
&length);
- if (retval) {
- asn1buf_destroy(&buf);
+ if (retval)
return retval;
- }
sum += length;
val->algorithm.parameters.length + length,
&length);
- if (retval) {
- asn1buf_destroy(&buf);
+ if (retval)
return retval;
- }
sum += length;
}
retval = asn1_make_etag(buf, CONTEXT_SPECIFIC, 0,
val->subjectPublicKey.length + 1 + length,
&length);
- if (retval) {
- asn1buf_destroy(&buf);
+ if (retval)
return retval;
- }
sum += length;
}
{
unsigned int length;
retval = asn1_encode_sequence_of_external_principal_identifier(buf, val, &length);
- if (retval) {
- asn1buf_destroy(&buf);
+ if (retval)
return retval;
- }
/* length set but ignored? sum not updated? */
}
asn1_cleanup();