cmac
Version, currently 1.0.23 versions
- 1.0.2latestNov 7, 2024
- 1.0.1not indexedNov 7, 2024
- 1.0.0not indexedNov 7, 2024
github.com/spider-gazelle/cmac
Crystal implementation of the Cipher-based Message Authentication Code (CMAC)
5 stars
2 dependents
License: MIT
Installation
# Add this to your shard.yml
dependencies:
cmac:
github: spider-gazelle/cmac
version: ~> 1.0.2Then run:
shards installshard.yml
- Crystal
- no constraint declared
Dependencies
Development Dependencies
- ameba*github: veelenga/amebadev
README
Crystal Lang CMAC
Crystal implementation of the Cipher-based Message Authentication Code (CMAC) as defined in RFC4493, RFC4494, and RFC4615. Message authentication codes provide integrity protection of data given that two parties share a secret key.
key = Random.new.random_bytes(16)
message = "attack at dawn"
cmac = CMAC.new(key)
cmac.sign(message)
=> Bytes[246, 184, 193, 76, 93, 115, 191, 26, 135, 60, 164, 161, 90, 224, 102, 170]
Once you've obtained the signature (also called a tag) of a message you can use CMAC to verify it as well.
tag = Bytes[246, 184, 193, 76, 93, 115, 191, 26, 135, 60, 164, 161, 90, 224, 102, 170]
cmac.valid_message?(tag, message)
=> true
cmac.valid_message?(tag, "attack at dusk")
=> false
CMAC can also be used with a variable length input key as described in RFC4615.
key = "setec astronomy"
message = "attack at dawn"
cmac = CMAC.new(key)
cmac.sign(message)
=> Bytes[92, 17, 144, 230, 145, 178, 196, 130, 96, 144, 166, 236, 58, 14, 28, 243]
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
1.0.2- Tagged
- Nov 7, 2024
- Commit
bc9c64e2fb4d- Indexed
- yes
Dependents
Repository
github.com/spider-gazelle/cmac
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 15, 2026
- Synced
- Aug 15, 2026
- Versions
- 3