X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/22e0bb1fb4e91cbc6dd1831e4426fb1ea6662c97..1491bf9eaa065ee9d654ae342b085ddb777c7711:/symm/ccm-def.h diff --git a/symm/ccm-def.h b/symm/ccm-def.h index 7002aba1..7c6bd2ed 100644 --- a/symm/ccm-def.h +++ b/symm/ccm-def.h @@ -715,13 +715,23 @@ static gaead_key *gckey(const void *k, size_t ksz) \ return (&key->k); \ } \ \ +static int gcszok(size_t nsz, size_t hsz, size_t msz, size_t tsz) \ +{ \ + ccm_params p; \ + \ + if (!gaead_szokcommon(&pre##_ccm, nsz, hsz, msz, tsz)) return (0); \ + p.hsz = hsz; p.msz = msz; p.bsz = PRE##_BLKSZ; p.nsz = nsz; p.tsz = tsz; \ + if (!ccm_check(&p)) return (0); \ + return (1); \ +} \ + \ const gcaead pre##_ccm = { \ name "-ccm", \ pre##_keysz, pre##_ccmnoncesz, pre##_ccmtagsz, \ PRE##_BLKSZ, 0, 0, \ AEADF_PCHSZ | AEADF_PCMSZ | AEADF_PCTSZ | \ AEADF_AADNDEP | AEADF_AADFIRST, \ - gckey \ + gckey, gcszok \ }; \ \ CCM_TESTX(PRE, pre, name, fname)