· 7 years ago · Mar 26, 2018, 04:28 AM
1/// @function hmac_md5_test
2/// @description Runs tests to ensure the correctness of hmac_md5
3
4var reportString = "hmac_md5_test() Test Report:\n\n"
5var testCount = 0
6var passCount = 0
7var failCount = 0
8
9#region Test "A" string with "secret_key" as key
10var test_name = "\"A\" string with \"secret_key\" as key"
11var str = "A"
12var secret_key = "secret_key"
13var hmac_result = ""
14var expected_value = "ee133c384b21ea75f917d6840834b819"
15#region internal function
16 var buffer = buffer_create(string_length(str), buffer_fixed, 1)
17 buffer_write(buffer, buffer_text, str)
18 var hmac_result = hmac_md5(buffer, 0, buffer_get_size(buffer), secret_key)
19 buffer_delete(buffer)
20
21 if hmac_result == expected_value {
22 passCount++
23 } else {
24 reportString += "- Expected test ("+test_name+") to be:\n"+expected_value+"\ninstead got:\n"+hmac_result+"\n\n";
25 failCount++
26 }
27 testCount++
28#endregion
29#endregion
30
31#region Test "A" string with zero-byte terminator with "secret_key" as key
32var test_name = "\"A\" string with zero byte terminator with \"secret_key\" as key"
33var str = "A"
34var secret_key = "secret_key"
35var hmac_result = ""
36var expected_value = "099bf9b598496a45c2dd81fa8fa5942d"
37#region internal function
38 var buffer = buffer_create(string_length(str)+1, buffer_fixed, 1)
39 buffer_write(buffer, buffer_string, str)
40 var hmac_result = hmac_md5(buffer, 0, buffer_get_size(buffer), secret_key)
41 buffer_delete(buffer)
42
43 if hmac_result == expected_value {
44 passCount++
45 } else {
46 reportString += "- Expected test ("+test_name+") to be:\n"+expected_value+"\ninstead got:\n"+hmac_result+"\n\n";
47 failCount++
48 }
49 testCount++
50#endregion
51#endregion
52
53#region Test "A" string with "ff772e31410ae7f31b93c2109f496006ff772e31410ae7f31b93c2109f496006" as key
54var test_name = "\"A\" string with \"ff772e31410ae7f31b93c2109f496006ff772e31410ae7f31b93c2109f496006\" as key"
55var str = "A"
56var secret_key = "ff772e31410ae7f31b93c2109f496006ff772e31410ae7f31b93c2109f496006"
57var hmac_result = ""
58var expected_value = "2efd7338eeb40b0ef11d89baa7a41d7a"
59#region internal function
60 var buffer = buffer_create(string_length(str), buffer_fixed, 1)
61 buffer_write(buffer, buffer_text, str)
62 var hmac_result = hmac_md5(buffer, 0, buffer_get_size(buffer), secret_key)
63 buffer_delete(buffer)
64
65 if hmac_result == expected_value {
66 passCount++
67 } else {
68 reportString += "- Expected test ("+test_name+") to be:\n"+expected_value+"\ninstead got:\n"+hmac_result+"\n\n";
69 failCount++
70 }
71 testCount++
72#endregion
73#endregion
74
75#region Test "A" string with "ff772e31410ae7f31b93c2109f496006ff772e31410ae7f31b93c2109f496006" as key
76var test_name = "\"A\" string with zero byte terminator with \"ff772e31410ae7f31b93c2109f496006ff772e31410ae7f31b93c2109f496006\" as key"
77var str = "A"
78var secret_key = "ff772e31410ae7f31b93c2109f496006ff772e31410ae7f31b93c2109f496006"
79var hmac_result = ""
80var expected_value = "25285069c4041dea67bfc513ee244b14"
81#region internal function
82 var buffer = buffer_create(string_length(str)+1, buffer_fixed, 1)
83 buffer_write(buffer, buffer_string, str)
84 var hmac_result = hmac_md5(buffer, 0, buffer_get_size(buffer), secret_key)
85 buffer_delete(buffer)
86
87 if hmac_result == expected_value {
88 passCount++
89 } else {
90 reportString += "- Expected test ("+test_name+") to be:\n"+expected_value+"\ninstead got:\n"+hmac_result+"\n\n";
91 failCount++
92 }
93 testCount++
94#endregion
95#endregion
96
97// End process.
98// Tests should be executed to test behaviour and not used in actual game code.
99reportString += string(testCount)+" tests, "+string(passCount)+" passed and "+string(failCount)+" failed.\n";
100show_debug_message(reportString)
101show_message(reportString)
102game_end()