As part of my on-going port of ZFS crypto to FreeBSD, I had to either drop compatibility or write aes-ccm code. I naturally chose the latter. I've tested this patch by using cryptocheck (diffs for that included as well, of course). It is implemented for both cryptosoft and aesni.
This is an update since there's been a lot of churn in the crypto code since my first attempt (D15446).
A previous objection was that the code needed to be reviewed by a professional cryptographer; I'm deferring that to Kris Moore, since he is my manager for this.