You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/mac/sections/03-supported.adoc
+26-15Lines changed: 26 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,19 +2,30 @@
2
2
[#supported]
3
3
== Supported HMAC, CMAC, and GMAC Algorithms
4
4
5
-
The following Message Authentication Code Algorithms *MAY* be advertised by the ACVP compliant cryptographic module:
5
+
The following Message Authentication Code Algorithms *MAY* be advertised by the ACVP compliant cryptographic module as "algorithm" / "mode" / "revision":
Copy file name to clipboardExpand all lines: src/mac/sections/04-testtypes.adoc
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ The ACVP server performs a set of tests on the MAC algorithms in order to assess
9
9
10
10
There is a single test type for MACs (broken into subsections for CMACs). the single test type, algorithm functional test (AFT) can be described as follows:
11
11
12
-
* "AFT" - Algorithm Function Test. The IUT processes all of HMAC, GMAC and the "gen" direction of CMAC by running the randomly chosen key and message data (with constraints as per the IUT's capabilities registration) through the MAC algorithm. CMAC has an additional "ver" direction present in its testing to ensure the IUT can successfully determine when a MAC does not match its originating message/key combination.
12
+
* "AFT" - Algorithm Function Test. The IUT processes all of HMAC, GMAC and the "gen" direction of CMAC by running the randomly chosen key and message data (with constraints as per the IUT's capabilities registration) through the MAC algorithm. CMAC has an additional "ver" direction present in its testing to ensure the IUT can successfully determine when a MAC does not match its originating message/key combination. All property lengths used are randomly selected from the domains provided but *SHALL* include the minimum and maximum in every test group.
Copy file name to clipboardExpand all lines: src/mac/sections/06-hmac-test-vectors.adoc
+62-4Lines changed: 62 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,11 +4,13 @@
4
4
[[hmac_tgjs]]
5
5
==== HMAC Test Groups JSON Schema
6
6
7
-
The testGroups element at the top level in the test vector JSON object is an array of test groups. Test vectors are grouped into similar test cases to reduce the amount of data transmitted in the vector set. For instance, all test vectors that use the same key size would be grouped together. The Test Group JSON object contains meta data that applies to all test vectors within the group. The following table describes the secure HMAC JSON elements of the Test Group JSON object.
7
+
In HMAC revision 1.0, the testGroups element at the top level in the test vector JSON object is an array of test groups. Test vectors are grouped into similar test cases to reduce the amount of data transmitted in the vector set. For instance, all test vectors that use the same key size would be grouped together. The Test Group JSON object contains meta data that applies to all test vectors within the group. The following table describes the secure HMAC JSON elements of the Test Group JSON object.
8
+
9
+
In HMAC revision 2.0, there *SHALL* be one single test group that contains all of the test cases for the test vector object.
8
10
9
11
[[hmac_vs_tg_table]]
10
12
[cols="<,<,<"]
11
-
.HMAC Test Group JSON Object
13
+
.HMAC revision 1.0 Test Group JSON Object
12
14
|===
13
15
| JSON Value | Description | JSON type
14
16
@@ -20,27 +22,49 @@ The testGroups element at the top level in the test vector JSON object is an arr
20
22
| tests | Array of individual test vector JSON objects, which are defined in <<hmac_tvjs>> | array
21
23
|===
22
24
25
+
[[hmac_vs_tg_table2]]
26
+
[cols="<,<,<"]
27
+
.HMAC revision 2.0 Test Group JSON Object
28
+
|===
29
+
| JSON Value | Description | JSON type
30
+
31
+
| tgId | Numeric identifier for the test group, unique across the entire vector set | integer
32
+
| testType | Test category type | string
33
+
| tests | Array of individual test vector JSON objects, which are defined in <<hmac_tvjs>> | array
34
+
|===
35
+
23
36
[[hmac_tvjs]]
24
37
==== HMAC Test Case JSON Schema
25
38
26
39
Each test group contains an array of one or more test cases. Each test case is a JSON object that represents a single test vector to be processed by the ACVP client. The following table describes the JSON elements for each secure MAC test vector.
27
40
28
41
[[hmac_vs_tc_table2]]
42
+
[cols="<,<,<"]
43
+
.HMAC Revision 1.0 Test Case JSON Object
44
+
|===
45
+
| JSON Value | Description | JSON type
46
+
47
+
| tcId | Numeric identifier for the test case, unique across the entire vector set | integer
48
+
| key | The value of the key | hex
49
+
| msg | Value of the message | hex
50
+
|===
29
51
52
+
[[hmac_vs_tc_table3]]
30
53
[cols="<,<,<"]
31
-
.HMAC Test Case JSON Object
54
+
.HMAC Revision 2.0 Test Case JSON Object
32
55
|===
33
56
| JSON Value | Description | JSON type
34
57
35
58
| tcId | Numeric identifier for the test case, unique across the entire vector set | integer
36
59
| key | The value of the key | hex
37
60
| msg | Value of the message | hex
61
+
| macLen | Length of MAC in bits to generate | integer
38
62
|===
39
63
40
64
[[hmac_test_vector_json]]
41
65
==== Example HMAC Test Vector JSON Object
42
66
43
-
The following is an example JSON test vector object for HMAC, truncated for brevity.
67
+
The following is an example JSON test vector object for HMAC revision 1.0, truncated for brevity.
44
68
45
69
[source, json]
46
70
----
@@ -73,3 +97,37 @@ The following is an example JSON test vector object for HMAC, truncated for brev
73
97
}]
74
98
}
75
99
----
100
+
101
+
The following is an example JSON test vector object for HMAC revision 2.0, truncated for brevity.
0 commit comments