int i2d_NETSCAPE_CERT_SEQUENCE(NETSCAPE_CERT_SEQUENCE *a, unsigned char **pp) { int v = 0; M_ASN1_I2D_vars(a); M_ASN1_I2D_len (a->type, i2d_ASN1_OBJECT); M_ASN1_I2D_len_EXP_SEQUENCE_opt_type(X509,a->certs,i2d_X509,0, V_ASN1_SEQUENCE,v); M_ASN1_I2D_seq_total(); M_ASN1_I2D_put (a->type, i2d_ASN1_OBJECT); M_ASN1_I2D_put_EXP_SEQUENCE_opt_type(X509,a->certs,i2d_X509,0, V_ASN1_SEQUENCE,v); M_ASN1_I2D_finish(); }
int i2d_PKCS12_SAFEBAG(PKCS12_SAFEBAG *a, unsigned char **pp) { int bagnid, v = 0; M_ASN1_I2D_vars(a); bagnid = OBJ_obj2nid (a->type); M_ASN1_I2D_len (a->type, i2d_ASN1_OBJECT); switch (bagnid) { case NID_keyBag: M_ASN1_I2D_len_EXP_opt (a->value.keybag, i2d_PKCS8_PRIV_KEY_INFO, 0, v); break; case NID_pkcs8ShroudedKeyBag: M_ASN1_I2D_len_EXP_opt (a->value.shkeybag, i2d_X509_SIG, 0, v); break; case NID_safeContentsBag: M_ASN1_I2D_len_EXP_SEQUENCE_opt_type (PKCS12_SAFEBAG, a->value.safes, (i2d_func_t)i2d_PKCS12_SAFEBAG, 0, V_ASN1_SEQUENCE, v); break; case NID_certBag: case NID_crlBag: case NID_secretBag: M_ASN1_I2D_len_EXP_opt (a->value.bag, i2d_PKCS12_BAGS, 0, v); break; default: M_ASN1_I2D_len_EXP_opt (a->value.other, i2d_ASN1_TYPE, 0, v); break; } M_ASN1_I2D_len_SET_type (X509_ATTRIBUTE,a->attrib, (i2d_func_t)i2d_X509_ATTRIBUTE); M_ASN1_I2D_seq_total (); M_ASN1_I2D_put (a->type, i2d_ASN1_OBJECT); switch (bagnid) { case NID_keyBag: M_ASN1_I2D_put_EXP_opt (a->value.keybag, i2d_PKCS8_PRIV_KEY_INFO, 0, v); break; case NID_pkcs8ShroudedKeyBag: M_ASN1_I2D_put_EXP_opt (a->value.shkeybag, i2d_X509_SIG, 0, v); break; case NID_safeContentsBag: M_ASN1_I2D_put_EXP_SEQUENCE_opt_type (PKCS12_SAFEBAG, a->value.safes, (i2d_func_t)i2d_PKCS12_SAFEBAG, 0, V_ASN1_SEQUENCE, v); break; case NID_certBag: case NID_crlBag: case NID_secretBag: M_ASN1_I2D_put_EXP_opt (a->value.bag, i2d_PKCS12_BAGS, 0, v); break; default: M_ASN1_I2D_put_EXP_opt (a->value.other, i2d_ASN1_TYPE, 0, v); break; } M_ASN1_I2D_put_SET_type (X509_ATTRIBUTE, a->attrib, (i2d_func_t)i2d_X509_ATTRIBUTE); M_ASN1_I2D_finish(); }