Skip to content
This repository was archived by the owner on Feb 17, 2025. It is now read-only.

Commit 16ee164

Browse files
committed
Concept description updated #1
1 parent 60e6112 commit 16ee164

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

docs/concepts.md

+39
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,42 @@
11
# Key Derivation Functions Concepts # {#kdf_concepts}
22

33
## Key Derivation Function Concepts ## {#kdf_concept}
4+
5+
A ```KeyDerivationFunction``` is an object intended to compute non-isomorphic permutations from non-fixed size
6+
elements integral field to fixed-size elements integral field,
7+
8+
### Requirements ### {#block_ciphers_concepts_requirements}
9+
10+
The type ```X``` satisfies ```KeyDerivationFunction``` if
11+
12+
Given
13+
* ```MacType```, the type named by ```X::mac_type```
14+
* ```KeyType```, the type named by ```X::key_type```
15+
* ```SaltType```, the type named by ```X::salt_type```
16+
* ```LabelType```, the type named by ```X::label_type```
17+
* ```SecretType```, the type template named by ```X::secret_type```
18+
19+
The following type members must be valid and have their specified effects
20+
21+
|Expression |Type |Requirements and Notes |
22+
|-----------------------------|------------------|-----------------------------|
23+
|```X::mac_type``` |```MacType``` |```MacType``` type satisfies ```MessageAuthenticationCode``` concept|
24+
|```X::key_type``` |```KeyType``` |```KeyType``` type is a ```SequenceContainer``` of type ```T``` which satisfies ```Integral``` concept|
25+
|```X::salt_type``` |```SaltType``` |```SaltType``` type is a ```SequenceContainer``` of type ```T``` which satisfies ```Integral``` concept|
26+
|```X::label_type``` |```LabelType``` |```LabelType``` type is a ```SequenceContainer``` of type ```T``` which satisfies ```Integral``` concept|
27+
|```X::secret_type``` |```SecretType``` |```SecretType``` type is a ```SequenceContainer``` of type ```T``` which satisfies ```Integral``` concept|
28+
29+
The following static data member definitions must be valid and have their specified effects
30+
31+
|Expression |Type |Requirements and Notes |
32+
|--------------------|-----------------|---------------------------------------|
33+
|```X::key_bits``` |```std::size_t```|```Integral``` bits amount in ```KeyType```|
34+
|```X::salt_bits``` |```std::size_t```|```Integral``` bits amount in ```SaltType```|
35+
|```X::label_bits``` |```std::size_t```|```Integral``` bits amount in ```LabelType```|
36+
|```X::secret_bits```|```std::size_t```|```Integral``` bits amount in ```SecretType```|
37+
38+
The following expressions must be valid and have their specified effects
39+
40+
|Expression |Requirements |Return Type |
41+
|---------------------------|------------------|-------------------------------|
42+
|```X(key_type)```|Constructs stateful ```BlockCipher``` object with input key of ```key_type```|```KeyDerivationFunction```|

0 commit comments

Comments
 (0)