Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CMAC Build Status

This gem is ruby 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 = OpenSSL::Random.random_bytes(16)
message = 'attack at dawn'
cmac = CMAC.new(key)
cmac.sign(message)
 => "\xF6\xB8\xC1L]s\xBF\x1A\x87<\xA4\xA1Z\xE0f\xAA"

Once you've obtained the signature (also called a tag) of a message you can use CMAC to verify it as well.

tag = "\xF6\xB8\xC1L]s\xBF\x1A\x87<\xA4\xA1Z\xE0f\xAA"
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)
 => "\\\x11\x90\xE6\x91\xB2\xC4\x82`\x90\xA6\xEC:\x0E\x1C\xF3"

About

Ruby implementation of the Cipher-based Message Authentication Code (CMAC)

Resources

Code of conduct

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages