void CRYPTO_ccm128_init(CCM128_CONTEXT *ctx,
	unsigned int M,unsigned int L,void *key,block128_f block)
{
	memset(ctx->nonce.c,0,sizeof(ctx->nonce.c));
	ctx->nonce.c[0] = ((u8)(L-1)&7) | (u8)(((M-2)/2)&7)<<3;
	ctx->blocks = 0;
	ctx->block = block;
	ctx->key = key;
}
['void CRYPTO_ccm128_init(CCM128_CONTEXT *ctx,\n\tunsigned int M,unsigned int L,void *key,block128_f block)\n{\n\tmemset(ctx->nonce.c,0,sizeof(ctx->nonce.c));\n\tctx->nonce.c[0] = ((u8)(L-1)&7) | (u8)(((M-2)/2)&7)<<3;\n\tctx->blocks = 0;\n\tctx->block = block;\n\tctx->key = key;\n}']