diff options
author | John Baldwin <jhb@FreeBSD.org> | 2021-10-06 21:08:47 +0000 |
---|---|---|
committer | John Baldwin <jhb@FreeBSD.org> | 2021-10-06 21:08:47 +0000 |
commit | ae18720d2792287c9ec658404f1a3173014d4979 (patch) | |
tree | da65ec60155a00af807ef15a57f5ab24166a9397 /sys/opencrypto/cryptodev.h | |
parent | bcb0fd6accc095295765b08b02f5f3b07ea62536 (diff) | |
download | src-ae18720d2792287c9ec658404f1a3173014d4979.tar.gz src-ae18720d2792287c9ec658404f1a3173014d4979.zip |
Diffstat (limited to 'sys/opencrypto/cryptodev.h')
-rw-r--r-- | sys/opencrypto/cryptodev.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/sys/opencrypto/cryptodev.h b/sys/opencrypto/cryptodev.h index b3c79a48f632..6611a8925020 100644 --- a/sys/opencrypto/cryptodev.h +++ b/sys/opencrypto/cryptodev.h @@ -686,5 +686,34 @@ crypto_read_iv(struct cryptop *crp, void *iv) crypto_copydata(crp, crp->crp_iv_start, csp->csp_ivlen, iv); } +static __inline size_t +ccm_max_payload_length(const struct crypto_session_params *csp) +{ + /* RFC 3160 */ + const u_int L = 15 - csp->csp_ivlen; + + switch (L) { + case 2: + return (0xffff); + case 3: + return (0xffffff); +#ifdef __LP64__ + case 4: + return (0xffffffff); + case 5: + return (0xffffffffff); + case 6: + return (0xffffffffffff); + case 7: + return (0xffffffffffffff); + default: + return (0xffffffffffffffff); +#else + default: + return (0xffffffff); +#endif + } +} + #endif /* _KERNEL */ #endif /* _CRYPTO_CRYPTO_H_ */ |