- if (mac && GM_CLASS(mac) == algs.m && oseq < 0x07ffffff) return;
- if (mac) GM_DESTROY(mac);
- assert(algs.mksz < sizeof(buf_t));
- rand_get(RAND_GLOBAL, buf_t, algs.mksz);
- mac = GM_KEY(algs.m, buf_t, algs.mksz);
+ bulkalgs *bulk = master->algs.bulk;
+ if (bchal && bchal->ops == bulk->ops && oseq < 0x07ffffff) return;
+ if (bchal) bchal->ops->freechal(bchal);
+ bchal = bulk->ops->genchal(bulk);
+ bchal->ops = bulk->ops;