EMIT
EMIT(sync_req_attr, SPD_ATTR_ALG_ID, alg->a_alg_num);
EMIT(sync_req_attr, SPD_ATTR_ALG_PROTO, alg->a_proto_num);
EMIT(sync_req_attr, SPD_ATTR_ALG_INCRBITS, alg->a_key_increment);
EMIT(sync_req_attr, SPD_ATTR_ALG_NKEYSIZES, nkey_sizes);
EMIT(sync_req_attr, SPD_ATTR_ALG_KEYSIZE, alg->a_key_sizes[i]);
EMIT(sync_req_attr, SPD_ATTR_ALG_NBLOCKSIZES, nblock_sizes);
EMIT(sync_req_attr, SPD_ATTR_ALG_BLOCKSIZE,
EMIT(sync_req_attr, SPD_ATTR_ALG_NPARAMS, nparams);
EMIT(sync_req_attr, SPD_ATTR_ALG_PARAMS,
EMIT(sync_req_attr, SPD_ATTR_ALG_FLAGS, alg->a_alg_flags);
EMIT(sync_req_attr, SPD_ATTR_ALG_MECHNAME, CRYPTO_MAX_MECH_NAME);
EMIT(sync_req_attr, SPD_ATTR_NEXT, 0);
EMIT(sync_req_attr, SPD_ATTR_PROTO_ID, proto_num);
EMIT(sync_req_attr, SPD_ATTR_PROTO_EXEC_MODE, exec_mode_spdval);
EMIT(sync_req_attr, SPD_ATTR_NEXT, 0);
EMIT(OCHAR, ch);
EMIT(OANYOF, (int)(cs - p->g->sets));
EMIT(OOR2, 0);
EMIT(OOR2, 0); /* offset very wrong... */
EMIT(op, opnd); /* do checks, ensure space */
#define ASTERN(sop, pos) EMIT(sop, HERE()-pos)
EMIT(OEND, 0);
EMIT(OEND, 0);
EMIT(OLPAREN, subno);
EMIT(ORPAREN, subno);
EMIT(OBOL, 0);
EMIT(OEOL, 0);
EMIT(OANY, 0);
EMIT(OBOW, 0);
EMIT(OEOW, 0);
EMIT(OOR2, 0); /* offset very wrong... */
EMIT(OOR2, 0); /* offset is very wrong */
EMIT(OBOL, 0);
EMIT(OEOL, 0);
EMIT(OANY, 0);
EMIT(OBOW, 0);
EMIT(OEOW, 0);
EMIT(OLPAREN, subno);
EMIT(ORPAREN, subno);
EMIT(OBACK_, i);
EMIT(O_BACK, i);
EMIT(OBOW, 0);
EMIT(OEOW, 0);
EMIT(OANYOF, (int)(cs - p->g->sets));
EMIT(SPD_ATTR_EMPTY, 0);
EMIT(SPD_ATTR_TYPE, SPD_ACTTYPE_DROP);
EMIT(SPD_ATTR_TYPE, SPD_ACTTYPE_PASS);
EMIT(SPD_ATTR_TYPE, SPD_ACTTYPE_IPSEC);
EMIT(SPD_ATTR_FLAGS, flags);
EMIT(SPD_ATTR_AH_AUTH, act->ipa_apply.ipp_auth_alg);
EMIT(SPD_ATTR_AH_MINBITS,
EMIT(SPD_ATTR_AH_MAXBITS,
EMIT(SPD_ATTR_ESP_ENCR, act->ipa_apply.ipp_encr_alg);
EMIT(SPD_ATTR_ENCR_MINBITS,
EMIT(SPD_ATTR_ENCR_MAXBITS,
EMIT(SPD_ATTR_ESP_AUTH,
EMIT(SPD_ATTR_ESPA_MINBITS,
EMIT(SPD_ATTR_ESPA_MAXBITS,
EMIT(SPD_ATTR_KM_PROTO, act->ipa_apply.ipp_km_proto);
EMIT(SPD_ATTR_KM_PROTO, act->ipa_apply.ipp_km_cookie);
EMIT(SPD_ATTR_REPLAY_DEPTH,
EMIT(SPD_ATTR_NEXT, 0);
EMIT(SPD_ATTR_END, 0);
EMIT(algattr[_type], algid); /* 1 */ \
EMIT(minbitsattr[_type], minbits); /* 2 */ \
EMIT(maxbitsattr[_type], maxbits); /* 3 */ \
EMIT(defbitsattr[_type], defbits); /* 4 */ \
EMIT(incrbitsattr[_type], incr); /* 5 */ \
EMIT(SPD_ATTR_NEXT, 0); /* 6 */ \
EMIT(SPD_ATTR_ALG_ID, algid);
EMIT(SPD_ATTR_ALG_PROTO, algproto[algtype]);
EMIT(SPD_ATTR_ALG_INCRBITS, alg->alg_increment);
EMIT(SPD_ATTR_ALG_NKEYSIZES, alg->alg_nkey_sizes);
EMIT(SPD_ATTR_ALG_KEYSIZE,
EMIT(SPD_ATTR_ALG_NBLOCKSIZES, alg->alg_nblock_sizes);
EMIT(SPD_ATTR_ALG_BLOCKSIZE,
EMIT(SPD_ATTR_ALG_NPARAMS, alg->alg_nparams);
EMIT(SPD_ATTR_ALG_PARAMS,
EMIT(SPD_ATTR_ALG_FLAGS, alg->alg_flags);
EMIT(SPD_ATTR_ALG_MECHNAME, CRYPTO_MAX_MECH_NAME);
EMIT(SPD_ATTR_NEXT, 0);
EMIT(instructions[i].opcode,