Botan
1.10.9
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
src
mac
cmac
cmac.h
Go to the documentation of this file.
1
/*
2
* CMAC
3
* (C) 1999-2007 Jack Lloyd
4
*
5
* Distributed under the terms of the Botan license
6
*/
7
8
#ifndef BOTAN_CMAC_H__
9
#define BOTAN_CMAC_H__
10
11
#include <botan/mac.h>
12
#include <botan/block_cipher.h>
13
14
namespace
Botan
{
15
16
/**
17
* CMAC, also known as OMAC1
18
*/
19
class
BOTAN_DLL
CMAC
:
public
MessageAuthenticationCode
20
{
21
public
:
22
std::string name()
const
;
23
size_t
output_length
()
const
{
return
e->block_size(); }
24
MessageAuthenticationCode
* clone()
const
;
25
26
void
clear();
27
28
Key_Length_Specification
key_spec
()
const
29
{
30
return
e->key_spec();
31
}
32
33
/**
34
* CMAC's polynomial doubling operation
35
* @param in the input
36
* @param polynomial the byte value of the polynomial
37
*/
38
static
SecureVector<byte>
poly_double(
const
MemoryRegion<byte>
& in,
39
byte
polynomial);
40
41
/**
42
* @param cipher the underlying block cipher to use
43
*/
44
CMAC
(
BlockCipher
* cipher);
45
~
CMAC
();
46
private
:
47
void
add_data(
const
byte
[],
size_t
);
48
void
final_result(
byte
[]);
49
void
key_schedule(
const
byte
[],
size_t
);
50
51
BlockCipher
* e;
52
SecureVector<byte>
buffer,
state
, B, P;
53
size_t
position;
54
byte
polynomial;
55
};
56
57
}
58
59
#endif
Botan::Key_Length_Specification
Definition:
key_spec.h:18
Botan::MessageAuthenticationCode
Definition:
mac.h:20
Botan::byte
unsigned char byte
Definition:
types.h:22
state
RC4_KEY state
Definition:
ossl_arc4.cpp:39
Botan::CMAC::output_length
size_t output_length() const
Definition:
cmac.h:23
Botan::MemoryRegion< byte >
Botan
Definition:
algo_base.h:14
Botan::CMAC
Definition:
cmac.h:19
Botan::SecureVector< byte >
Botan::CMAC::key_spec
Key_Length_Specification key_spec() const
Definition:
cmac.h:28
Botan::BlockCipher
Definition:
block_cipher.h:18
Generated on Sat Aug 20 2016 08:18:47 for Botan by
1.8.9.1