aboutsummaryrefslogtreecommitdiff
path: root/lib/std/math
diff options
context:
space:
mode:
authoraarvay <me@aarvay.com>2025-10-14 15:30:44 +0530
committerGitHub <noreply@github.com>2025-10-14 12:00:44 +0200
commit2f3234c76ac8465719935bc6ae0e10e0fe59fccd (patch)
tree58da2925234966c98b4622c05c43e1796025f001 /lib/std/math
parent958faa7031c7b50a544e151fea4d486e1c4926c1 (diff)
downloadzig-2f3234c76ac8465719935bc6ae0e10e0fe59fccd.tar.gz
zig-2f3234c76ac8465719935bc6ae0e10e0fe59fccd.zip
std.crypto: add AES-CCM and CBC-MAC (#25526)
* std.crypto: add AES-CCM and CBC-MAC Add AES-CCM (Counter with CBC-MAC) authenticated encryption and CBC-MAC message authentication code implementations to the standard library. AES-CCM combines CTR mode encryption with CBC-MAC authentication as specified in NIST SP 800-38C and RFC 3610. It provides authenticated encryption with support for additional authenticated data (AAD). CBC-MAC is a simple MAC construction used internally by CCM, specified in FIPS 113 and ISO/IEC 9797-1. Includes comprehensive test vectors from RFC 3610 and NIST SP 800-38C. * std.crypto: add CCM* (encryption-only) support to AES-CCM Implements CCM* mode per IEEE 802.15.4 specification, extending AES-CCM to support encryption-only mode when tag_len=0. This is required by protocols like ZigBee, Thread, and WirelessHART. Changes: - Allow tag_len=0 for encryption-only mode (no authentication) - Skip CBC-MAC computation when tag_len=0 in encrypt/decrypt - Correctly encode M'=0 in B0 block for CCM* mode - Add Aes128Ccm0 and Aes256Ccm0 convenience instances - Add IEEE 802.15.4 test vectors and CCM* tests * std.crypto: add doc comments for AES-CCM variants
Diffstat (limited to 'lib/std/math')
0 files changed, 0 insertions, 0 deletions