Blame glib/tests/hmac.c

Packit ae235b
#include <glib.h>
Packit ae235b
#include <string.h>
Packit ae235b
#include <stdlib.h>
Packit ae235b
Packit ae235b
/* HMAC-MD5 test vectors as per RFC 2202 */
Packit ae235b
Packit ae235b
/* Test 1 */
Packit ae235b
guint8 key_md5_test1[] = {
Packit ae235b
    0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b,
Packit ae235b
    0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b };
Packit ae235b
guint8 result_md5_test1[] = {
Packit ae235b
    0x92, 0x94, 0x72, 0x7a, 0x36, 0x38, 0xbb, 0x1c, 0x13, 0xf4,
Packit ae235b
    0x8e, 0xf8, 0x15, 0x8b, 0xfc, 0x9d };
Packit ae235b
Packit ae235b
/* Test 2 */
Packit ae235b
guint8 result_md5_test2[] = {
Packit ae235b
    0x75, 0x0c, 0x78, 0x3e, 0x6a, 0xb0, 0xb5, 0x03, 0xea, 0xa8,
Packit ae235b
    0x6e, 0x31, 0x0a, 0x5d, 0xb7, 0x38 };
Packit ae235b
Packit ae235b
/* Test 3 */
Packit ae235b
guint8 key_md5_test3[] = {
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa };
Packit ae235b
guint8 data_md5_test3[] = {
Packit ae235b
    0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
Packit ae235b
    0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
Packit ae235b
    0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
Packit ae235b
    0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
Packit ae235b
    0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd };
Packit ae235b
guint8 result_md5_test3[] = {
Packit ae235b
    0x56, 0xbe, 0x34, 0x52, 0x1d, 0x14, 0x4c, 0x88, 0xdb, 0xb8,
Packit ae235b
    0xc7, 0x33, 0xf0, 0xe8, 0xb3, 0xf6 };
Packit ae235b
Packit ae235b
/* Test 4 */
Packit ae235b
guint8 key_md5_test4[] = {
Packit ae235b
    0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a,
Packit ae235b
    0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14,
Packit ae235b
    0x15, 0x16, 0x17, 0x18, 0x19 };
Packit ae235b
guint8 data_md5_test4[] = {
Packit ae235b
    0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,
Packit ae235b
    0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,
Packit ae235b
    0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,
Packit ae235b
    0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,
Packit ae235b
    0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd };
Packit ae235b
guint8 result_md5_test4[] = {
Packit ae235b
    0x69, 0x7e, 0xaf, 0x0a, 0xca, 0x3a, 0x3a, 0xea, 0x3a, 0x75,
Packit ae235b
    0x16, 0x47, 0x46, 0xff, 0xaa, 0x79 };
Packit ae235b
Packit ae235b
/* Test 5 */
Packit ae235b
guint8 key_md5_test5[] = {
Packit ae235b
    0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,
Packit ae235b
    0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c};
Packit ae235b
guint8 result_md5_test5[] = {
Packit ae235b
    0x56, 0x46, 0x1e, 0xf2, 0x34, 0x2e, 0xdc, 0x00, 0xf9, 0xba,
Packit ae235b
    0xb9, 0x95, 0x69, 0x0e, 0xfd, 0x4c };
Packit ae235b
Packit ae235b
/* Test 6 */
Packit ae235b
guint8 key_md5_test6[] = {
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa };
Packit ae235b
guint8 result_md5_test6[] = {
Packit ae235b
    0x6b, 0x1a, 0xb7, 0xfe, 0x4b, 0xd7, 0xbf, 0x8f, 0x0b, 0x62,
Packit ae235b
    0xe6, 0xce, 0x61, 0xb9, 0xd0, 0xcd };
Packit ae235b
Packit ae235b
/* Test 6 */
Packit ae235b
guint8 key_md5_test7[] = {
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa };
Packit ae235b
guint8 result_md5_test7[] = {
Packit ae235b
    0x6f, 0x63, 0x0f, 0xad, 0x67, 0xcd, 0xa0, 0xee, 0x1f, 0xb1,
Packit ae235b
    0xf5, 0x62, 0xdb, 0x3a, 0xa5, 0x3e };
Packit ae235b
Packit ae235b
/* HMAC-SHA1, HMAC-SHA256, HMAC-SHA384 and HMAC-SHA512 test vectors
Packit ae235b
 * as per RFCs 2202 and 4868.
Packit ae235b
 *
Packit ae235b
 * See: https://tools.ietf.org/html/rfc4868#section-2.7.1 */
Packit ae235b
Packit ae235b
/* Test 1 */
Packit ae235b
guint8 key_sha_test1[] = {
Packit ae235b
    0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b,
Packit ae235b
    0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b };
Packit ae235b
guint8 result_sha1_test1[] = {
Packit ae235b
    0xb6, 0x17, 0x31, 0x86, 0x55, 0x05, 0x72, 0x64, 0xe2, 0x8b,
Packit ae235b
    0xc0, 0xb6, 0xfb, 0x37, 0x8c, 0x8e, 0xf1, 0x46, 0xbe, 0x00 };
Packit ae235b
guint8 result_sha256_test1[] = {
Packit ae235b
    0xb0, 0x34, 0x4c, 0x61, 0xd8, 0xdb, 0x38, 0x53, 0x5c, 0xa8,
Packit ae235b
    0xaf, 0xce, 0xaf, 0x0b, 0xf1, 0x2b, 0x88, 0x1d, 0xc2, 0x00,
Packit ae235b
    0xc9, 0x83, 0x3d, 0xa7, 0x26, 0xe9, 0x37, 0x6c, 0x2e, 0x32,
Packit ae235b
    0xcf, 0xf7 };
Packit ae235b
guint8 result_sha384_test1[] = {
Packit ae235b
    0xaf, 0xd0, 0x39, 0x44, 0xd8, 0x48, 0x95, 0x62, 0x6b, 0x08,
Packit ae235b
    0x25, 0xf4, 0xab, 0x46, 0x90, 0x7f, 0x15, 0xf9, 0xda, 0xdb,
Packit ae235b
    0xe4, 0x10, 0x1e, 0xc6, 0x82, 0xaa, 0x03, 0x4c, 0x7c, 0xeb,
Packit ae235b
    0xc5, 0x9c, 0xfa, 0xea, 0x9e, 0xa9, 0x07, 0x6e, 0xde, 0x7f,
Packit ae235b
    0x4a, 0xf1, 0x52, 0xe8, 0xb2, 0xfa, 0x9c, 0xb6 };
Packit ae235b
guint8 result_sha512_test1[] = {
Packit ae235b
    0x87, 0xaa, 0x7c, 0xde, 0xa5, 0xef, 0x61, 0x9d, 0x4f, 0xf0,
Packit ae235b
    0xb4, 0x24, 0x1a, 0x1d, 0x6c, 0xb0, 0x23, 0x79, 0xf4, 0xe2,
Packit ae235b
    0xce, 0x4e, 0xc2, 0x78, 0x7a, 0xd0, 0xb3, 0x05, 0x45, 0xe1,
Packit ae235b
    0x7c, 0xde, 0xda, 0xa8, 0x33, 0xb7, 0xd6, 0xb8, 0xa7, 0x02,
Packit ae235b
    0x03, 0x8b, 0x27, 0x4e, 0xae, 0xa3, 0xf4, 0xe4, 0xbe, 0x9d,
Packit ae235b
    0x91, 0x4e, 0xeb, 0x61, 0xf1, 0x70, 0x2e, 0x69, 0x6c, 0x20,
Packit ae235b
    0x3a, 0x12, 0x68, 0x54 };
Packit ae235b
Packit ae235b
/* Test 2 */
Packit ae235b
guint8 result_sha1_test2[] = {
Packit ae235b
    0xef, 0xfc, 0xdf, 0x6a, 0xe5, 0xeb, 0x2f, 0xa2, 0xd2, 0x74,
Packit ae235b
    0x16, 0xd5, 0xf1, 0x84, 0xdf, 0x9c, 0x25, 0x9a, 0x7c, 0x79 };
Packit ae235b
guint8 result_sha256_test2[] = {
Packit ae235b
    0x5b, 0xdc, 0xc1, 0x46, 0xbf, 0x60, 0x75, 0x4e, 0x6a, 0x04,
Packit ae235b
    0x24, 0x26, 0x08, 0x95, 0x75, 0xc7, 0x5a, 0x00, 0x3f, 0x08,
Packit ae235b
    0x9d, 0x27, 0x39, 0x83, 0x9d, 0xec, 0x58, 0xb9, 0x64, 0xec,
Packit ae235b
    0x38, 0x43 };
Packit ae235b
guint8 result_sha384_test2[] = {
Packit ae235b
    0xaf, 0x45, 0xd2, 0xe3, 0x76, 0x48, 0x40, 0x31, 0x61, 0x7f,
Packit ae235b
    0x78, 0xd2, 0xb5, 0x8a, 0x6b, 0x1b, 0x9c, 0x7e, 0xf4, 0x64,
Packit ae235b
    0xf5, 0xa0, 0x1b, 0x47, 0xe4, 0x2e, 0xc3, 0x73, 0x63, 0x22,
Packit ae235b
    0x44, 0x5e, 0x8e, 0x22, 0x40, 0xca, 0x5e, 0x69, 0xe2, 0xc7,
Packit ae235b
    0x8b, 0x32, 0x39, 0xec, 0xfa, 0xb2, 0x16, 0x49 };
Packit ae235b
guint8 result_sha512_test2[] = {
Packit ae235b
    0x16, 0x4b, 0x7a, 0x7b, 0xfc, 0xf8, 0x19, 0xe2, 0xe3, 0x95,
Packit ae235b
    0xfb, 0xe7, 0x3b, 0x56, 0xe0, 0xa3, 0x87, 0xbd, 0x64, 0x22,
Packit ae235b
    0x2e, 0x83, 0x1f, 0xd6, 0x10, 0x27, 0x0c, 0xd7, 0xea, 0x25,
Packit ae235b
    0x05, 0x54, 0x97, 0x58, 0xbf, 0x75, 0xc0, 0x5a, 0x99, 0x4a,
Packit ae235b
    0x6d, 0x03, 0x4f, 0x65, 0xf8, 0xf0, 0xe6, 0xfd, 0xca, 0xea,
Packit ae235b
    0xb1, 0xa3, 0x4d, 0x4a, 0x6b, 0x4b, 0x63, 0x6e, 0x07, 0x0a,
Packit ae235b
    0x38, 0xbc, 0xe7, 0x37 };
Packit ae235b
Packit ae235b
/* Test 3 */
Packit ae235b
guint8 key_sha_test3[] = {
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa };
Packit ae235b
guint8 data_sha_test3[] = {
Packit ae235b
    0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
Packit ae235b
    0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
Packit ae235b
    0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
Packit ae235b
    0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
Packit ae235b
    0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd };
Packit ae235b
guint8 result_sha1_test3[] = {
Packit ae235b
    0x12, 0x5d, 0x73, 0x42, 0xb9, 0xac, 0x11, 0xcd, 0x91, 0xa3,
Packit ae235b
    0x9a, 0xf4, 0x8a, 0xa1, 0x7b, 0x4f, 0x63, 0xf1, 0x75, 0xd3 };
Packit ae235b
guint8 result_sha256_test3[] = {
Packit ae235b
    0x77, 0x3e, 0xa9, 0x1e, 0x36, 0x80, 0x0e, 0x46, 0x85, 0x4d,
Packit ae235b
    0xb8, 0xeb, 0xd0, 0x91, 0x81, 0xa7, 0x29, 0x59, 0x09, 0x8b,
Packit ae235b
    0x3e, 0xf8, 0xc1, 0x22, 0xd9, 0x63, 0x55, 0x14, 0xce, 0xd5,
Packit ae235b
    0x65, 0xfe };
Packit ae235b
guint8 result_sha384_test3[] = {
Packit ae235b
    0x88, 0x06, 0x26, 0x08, 0xd3, 0xe6, 0xad, 0x8a, 0x0a, 0xa2,
Packit ae235b
    0xac, 0xe0, 0x14, 0xc8, 0xa8, 0x6f, 0x0a, 0xa6, 0x35, 0xd9,
Packit ae235b
    0x47, 0xac, 0x9f, 0xeb, 0xe8, 0x3e, 0xf4, 0xe5, 0x59, 0x66,
Packit ae235b
    0x14, 0x4b, 0x2a, 0x5a, 0xb3, 0x9d, 0xc1, 0x38, 0x14, 0xb9,
Packit ae235b
    0x4e, 0x3a, 0xb6, 0xe1, 0x01, 0xa3, 0x4f, 0x27 };
Packit ae235b
guint8 result_sha512_test3[] = {
Packit ae235b
    0xfa, 0x73, 0xb0, 0x08, 0x9d, 0x56, 0xa2, 0x84, 0xef, 0xb0,
Packit ae235b
    0xf0, 0x75, 0x6c, 0x89, 0x0b, 0xe9, 0xb1, 0xb5, 0xdb, 0xdd,
Packit ae235b
    0x8e, 0xe8, 0x1a, 0x36, 0x55, 0xf8, 0x3e, 0x33, 0xb2, 0x27,
Packit ae235b
    0x9d, 0x39, 0xbf, 0x3e, 0x84, 0x82, 0x79, 0xa7, 0x22, 0xc8,
Packit ae235b
    0x06, 0xb4, 0x85, 0xa4, 0x7e, 0x67, 0xc8, 0x07, 0xb9, 0x46,
Packit ae235b
    0xa3, 0x37, 0xbe, 0xe8, 0x94, 0x26, 0x74, 0x27, 0x88, 0x59,
Packit ae235b
    0xe1, 0x32, 0x92, 0xfb };
Packit ae235b
Packit ae235b
/* Test 4 */
Packit ae235b
guint8 key_sha_test4[] = {
Packit ae235b
    0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a,
Packit ae235b
    0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14,
Packit ae235b
    0x15, 0x16, 0x17, 0x18, 0x19 };
Packit ae235b
guint8 data_sha_test4[] = {
Packit ae235b
    0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,
Packit ae235b
    0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,
Packit ae235b
    0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,
Packit ae235b
    0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,
Packit ae235b
    0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd };
Packit ae235b
guint8 result_sha1_test4[] = {
Packit ae235b
    0x4c, 0x90, 0x07, 0xf4, 0x02, 0x62, 0x50, 0xc6, 0xbc, 0x84,
Packit ae235b
    0x14, 0xf9, 0xbf, 0x50, 0xc8, 0x6c, 0x2d, 0x72, 0x35, 0xda };
Packit ae235b
guint8 result_sha256_test4[] = {
Packit ae235b
    0x82, 0x55, 0x8a, 0x38, 0x9a, 0x44, 0x3c, 0x0e, 0xa4, 0xcc,
Packit ae235b
    0x81, 0x98, 0x99, 0xf2, 0x08, 0x3a, 0x85, 0xf0, 0xfa, 0xa3,
Packit ae235b
    0xe5, 0x78, 0xf8, 0x07, 0x7a, 0x2e, 0x3f, 0xf4, 0x67, 0x29,
Packit ae235b
    0x66, 0x5b };
Packit ae235b
guint8 result_sha384_test4[] = {
Packit ae235b
    0x3e, 0x8a, 0x69, 0xb7, 0x78, 0x3c, 0x25, 0x85, 0x19, 0x33,
Packit ae235b
    0xab, 0x62, 0x90, 0xaf, 0x6c, 0xa7, 0x7a, 0x99, 0x81, 0x48,
Packit ae235b
    0x08, 0x50, 0x00, 0x9c, 0xc5, 0x57, 0x7c, 0x6e, 0x1f, 0x57,
Packit ae235b
    0x3b, 0x4e, 0x68, 0x01, 0xdd, 0x23, 0xc4, 0xa7, 0xd6, 0x79,
Packit ae235b
    0xcc, 0xf8, 0xa3, 0x86, 0xc6, 0x74, 0xcf, 0xfb };
Packit ae235b
guint8 result_sha512_test4[] = {
Packit ae235b
    0xb0, 0xba, 0x46, 0x56, 0x37, 0x45, 0x8c, 0x69, 0x90, 0xe5,
Packit ae235b
    0xa8, 0xc5, 0xf6, 0x1d, 0x4a, 0xf7, 0xe5, 0x76, 0xd9, 0x7f,
Packit ae235b
    0xf9, 0x4b, 0x87, 0x2d, 0xe7, 0x6f, 0x80, 0x50, 0x36, 0x1e,
Packit ae235b
    0xe3, 0xdb, 0xa9, 0x1c, 0xa5, 0xc1, 0x1a, 0xa2, 0x5e, 0xb4,
Packit ae235b
    0xd6, 0x79, 0x27, 0x5c, 0xc5, 0x78, 0x80, 0x63, 0xa5, 0xf1,
Packit ae235b
    0x97, 0x41, 0x12, 0x0c, 0x4f, 0x2d, 0xe2, 0xad, 0xeb, 0xeb,
Packit ae235b
    0x10, 0xa2, 0x98, 0xdd };
Packit ae235b
Packit ae235b
/* Test 5 (note: different for SHA-256/SHA-512) */
Packit ae235b
guint8 key_sha1_test5[] = {
Packit ae235b
    0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,
Packit ae235b
    0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c };
Packit ae235b
guint8 result_sha1_test5[] = {
Packit ae235b
    0x4c, 0x1a, 0x03, 0x42, 0x4b, 0x55, 0xe0, 0x7f, 0xe7, 0xf2,
Packit ae235b
    0x7b, 0xe1, 0xd5, 0x8b, 0xb9, 0x32, 0x4a, 0x9a, 0x5a, 0x04 };
Packit ae235b
Packit ae235b
/* Test 6 & 7 (note: different for SHA-1 and SHA-256/SHA-512) */
Packit ae235b
guint8 key_sha1_test6_7[] = {
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa };
Packit ae235b
Packit ae235b
guint8 result_sha1_test6[] = {
Packit ae235b
    0xaa, 0x4a, 0xe5, 0xe1, 0x52, 0x72, 0xd0, 0x0e, 0x95, 0x70,
Packit ae235b
    0x56, 0x37, 0xce, 0x8a, 0x3b, 0x55, 0xed, 0x40, 0x21, 0x12 };
Packit ae235b
Packit ae235b
guint8 result_sha1_test7[] = {
Packit ae235b
    0xe8, 0xe9, 0x9d, 0xf, 0x45, 0x23, 0x7d, 0x78, 0x6d, 0x6b,
Packit ae235b
    0xba, 0xa7, 0x96, 0x5c, 0x78, 0x8, 0xbb, 0xff, 0x1a, 0x91 };
Packit ae235b
Packit ae235b
/* Test 5 & 6 for SHA-256 and SHA-512. */
Packit ae235b
guint8 key_sha256_test5_6[] = {
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
Packit ae235b
    0xaa };
Packit ae235b
Packit ae235b
guint8 result_sha256_test5[] = {
Packit ae235b
    0x60, 0xe4, 0x31, 0x59, 0x1e, 0xe0, 0xb6, 0x7f, 0x0d, 0x8a,
Packit ae235b
    0x26, 0xaa, 0xcb, 0xf5, 0xb7, 0x7f, 0x8e, 0x0b, 0xc6, 0x21,
Packit ae235b
    0x37, 0x28, 0xc5, 0x14, 0x05, 0x46, 0x04, 0x0f, 0x0e, 0xe3,
Packit ae235b
    0x7f, 0x54 };
Packit ae235b
guint8 result_sha384_test5[] = {
Packit ae235b
    0x4e, 0xce, 0x08, 0x44, 0x85, 0x81, 0x3e, 0x90, 0x88, 0xd2,
Packit ae235b
    0xc6, 0x3a, 0x04, 0x1b, 0xc5, 0xb4, 0x4f, 0x9e, 0xf1, 0x01,
Packit ae235b
    0x2a, 0x2b, 0x58, 0x8f, 0x3c, 0xd1, 0x1f, 0x05, 0x03, 0x3a,
Packit ae235b
    0xc4, 0xc6, 0x0c, 0x2e, 0xf6, 0xab, 0x40, 0x30, 0xfe, 0x82,
Packit ae235b
    0x96, 0x24, 0x8d, 0xf1, 0x63, 0xf4, 0x49, 0x52 };
Packit ae235b
guint8 result_sha512_test5[] = {
Packit ae235b
    0x80, 0xb2, 0x42, 0x63, 0xc7, 0xc1, 0xa3, 0xeb, 0xb7, 0x14,
Packit ae235b
    0x93, 0xc1, 0xdd, 0x7b, 0xe8, 0xb4, 0x9b, 0x46, 0xd1, 0xf4,
Packit ae235b
    0x1b, 0x4a, 0xee, 0xc1, 0x12, 0x1b, 0x01, 0x37, 0x83, 0xf8,
Packit ae235b
    0xf3, 0x52, 0x6b, 0x56, 0xd0, 0x37, 0xe0, 0x5f, 0x25, 0x98,
Packit ae235b
    0xbd, 0x0f, 0xd2, 0x21, 0x5d, 0x6a, 0x1e, 0x52, 0x95, 0xe6,
Packit ae235b
    0x4f, 0x73, 0xf6, 0x3f, 0x0a, 0xec, 0x8b, 0x91, 0x5a, 0x98,
Packit ae235b
    0x5d, 0x78, 0x65, 0x98 };
Packit ae235b
Packit ae235b
guint8 result_sha256_test6[] = {
Packit ae235b
    0x9b, 0x09, 0xff, 0xa7, 0x1b, 0x94, 0x2f, 0xcb, 0x27, 0x63,
Packit ae235b
    0x5f, 0xbc, 0xd5, 0xb0, 0xe9, 0x44, 0xbf, 0xdc, 0x63, 0x64,
Packit ae235b
    0x4f, 0x07, 0x13, 0x93, 0x8a, 0x7f, 0x51, 0x53, 0x5c, 0x3a,
Packit ae235b
    0x35, 0xe2 };
Packit ae235b
guint8 result_sha384_test6[] = {
Packit ae235b
    0x66, 0x17, 0x17, 0x8e, 0x94, 0x1f, 0x02, 0x0d, 0x35, 0x1e,
Packit ae235b
    0x2f, 0x25, 0x4e, 0x8f, 0xd3, 0x2c, 0x60, 0x24, 0x20, 0xfe,
Packit ae235b
    0xb0, 0xb8, 0xfb, 0x9a, 0xdc, 0xce, 0xbb, 0x82, 0x46, 0x1e,
Packit ae235b
    0x99, 0xc5, 0xa6, 0x78, 0xcc, 0x31, 0xe7, 0x99, 0x17, 0x6d,
Packit ae235b
    0x38, 0x60, 0xe6, 0x11, 0x0c, 0x46, 0x52, 0x3e };
Packit ae235b
guint8 result_sha512_test6[] = {
Packit ae235b
    0xe3, 0x7b, 0x6a, 0x77, 0x5d, 0xc8, 0x7d, 0xba, 0xa4, 0xdf,
Packit ae235b
    0xa9, 0xf9, 0x6e, 0x5e, 0x3f, 0xfd, 0xde, 0xbd, 0x71, 0xf8,
Packit ae235b
    0x86, 0x72, 0x89, 0x86, 0x5d, 0xf5, 0xa3, 0x2d, 0x20, 0xcd,
Packit ae235b
    0xc9, 0x44, 0xb6, 0x02, 0x2c, 0xac, 0x3c, 0x49, 0x82, 0xb1,
Packit ae235b
    0x0d, 0x5e, 0xeb, 0x55, 0xc3, 0xe4, 0xde, 0x15, 0x13, 0x46,
Packit ae235b
    0x76, 0xfb, 0x6d, 0xe0, 0x44, 0x60, 0x65, 0xc9, 0x74, 0x40,
Packit ae235b
    0xfa, 0x8c, 0x6a, 0x58 };
Packit ae235b
Packit ae235b
Packit ae235b
typedef struct {
Packit ae235b
  GChecksumType digest_type;
Packit ae235b
  gconstpointer key;
Packit ae235b
  gsize key_len;
Packit ae235b
  gconstpointer data;
Packit ae235b
  gsize data_len;
Packit ae235b
  gconstpointer result;
Packit ae235b
} HmacCase;
Packit ae235b
Packit ae235b
HmacCase hmac_md5_tests[] = {
Packit ae235b
  { G_CHECKSUM_MD5, key_md5_test1, 16, "Hi There", 8, result_md5_test1 },
Packit ae235b
  { G_CHECKSUM_MD5, "Jefe", 4, "what do ya want for nothing?", 28,
Packit ae235b
      result_md5_test2 },
Packit ae235b
  { G_CHECKSUM_MD5, key_md5_test3, 16, data_md5_test3, 50,
Packit ae235b
      result_md5_test3 },
Packit ae235b
  { G_CHECKSUM_MD5, key_md5_test4, 25, data_md5_test4, 50,
Packit ae235b
      result_md5_test4 },
Packit ae235b
  { G_CHECKSUM_MD5, key_md5_test5, 16, "Test With Truncation", 20,
Packit ae235b
      result_md5_test5 },
Packit ae235b
  { G_CHECKSUM_MD5, key_md5_test6, 80,
Packit ae235b
      "Test Using Larger Than Block-Size Key - Hash Key First", 54,
Packit ae235b
      result_md5_test6 },
Packit ae235b
  { G_CHECKSUM_MD5, key_md5_test7, 80,
Packit ae235b
      "Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data",
Packit ae235b
      73, result_md5_test7 },
Packit ae235b
  { -1, NULL, 0, NULL, 0, NULL },
Packit ae235b
};
Packit ae235b
Packit ae235b
HmacCase hmac_sha1_tests[] = {
Packit ae235b
  { G_CHECKSUM_SHA1, key_sha_test1, 20, "Hi There", 8, result_sha1_test1 },
Packit ae235b
  { G_CHECKSUM_SHA1, "Jefe", 4, "what do ya want for nothing?", 28,
Packit ae235b
      result_sha1_test2 },
Packit ae235b
  { G_CHECKSUM_SHA1, key_sha_test3, 20, data_sha_test3, 50,
Packit ae235b
      result_sha1_test3 },
Packit ae235b
  { G_CHECKSUM_SHA1, key_sha_test4, 25, data_sha_test4, 50,
Packit ae235b
      result_sha1_test4 },
Packit ae235b
  { G_CHECKSUM_SHA1, key_sha1_test5, 20, "Test With Truncation", 20,
Packit ae235b
    result_sha1_test5 },
Packit ae235b
  { G_CHECKSUM_SHA1, key_sha1_test6_7, 80,
Packit ae235b
      "Test Using Larger Than Block-Size Key - Hash Key First", 54,
Packit ae235b
      result_sha1_test6 },
Packit ae235b
  { G_CHECKSUM_SHA1, key_sha1_test6_7, 80,
Packit ae235b
      "Test Using Larger Than Block-Size Key and Larger" \
Packit ae235b
               " Than One Block-Size Data", 73, result_sha1_test7, },
Packit ae235b
  { -1, NULL, 0, NULL, 0, NULL },
Packit ae235b
};
Packit ae235b
Packit ae235b
HmacCase hmac_sha256_tests[] = {
Packit ae235b
  { G_CHECKSUM_SHA256, key_sha_test1, 20, "Hi There", 8, result_sha256_test1 },
Packit ae235b
  { G_CHECKSUM_SHA256, "Jefe", 4, "what do ya want for nothing?", 28,
Packit ae235b
      result_sha256_test2 },
Packit ae235b
  { G_CHECKSUM_SHA256, key_sha_test3, 20, data_sha_test3, 50,
Packit ae235b
      result_sha256_test3 },
Packit ae235b
  { G_CHECKSUM_SHA256, key_sha_test4, 25, data_sha_test4, 50,
Packit ae235b
      result_sha256_test4 },
Packit ae235b
  { G_CHECKSUM_SHA256, key_sha256_test5_6, 131,
Packit ae235b
      "Test Using Larger Than Block-Size Key - Hash Key First", 54,
Packit ae235b
      result_sha256_test5 },
Packit ae235b
  { G_CHECKSUM_SHA256, key_sha256_test5_6, 131,
Packit ae235b
      "This is a test using a larger than block-size key and a larger than "
Packit ae235b
      "block-size data. The key needs to be hashed before being used by the "
Packit ae235b
      "HMAC algorithm.", 152, result_sha256_test6, },
Packit ae235b
  { -1, NULL, 0, NULL, 0, NULL },
Packit ae235b
};
Packit ae235b
Packit ae235b
HmacCase hmac_sha384_tests[] = {
Packit ae235b
  { G_CHECKSUM_SHA384, key_sha_test1, 20, "Hi There", 8, result_sha384_test1 },
Packit ae235b
  { G_CHECKSUM_SHA384, "Jefe", 4, "what do ya want for nothing?", 28,
Packit ae235b
      result_sha384_test2 },
Packit ae235b
  { G_CHECKSUM_SHA384, key_sha_test3, 20, data_sha_test3, 50,
Packit ae235b
      result_sha384_test3 },
Packit ae235b
  { G_CHECKSUM_SHA384, key_sha_test4, 25, data_sha_test4, 50,
Packit ae235b
      result_sha384_test4 },
Packit ae235b
  { G_CHECKSUM_SHA384, key_sha256_test5_6, 131,
Packit ae235b
      "Test Using Larger Than Block-Size Key - Hash Key First", 54,
Packit ae235b
      result_sha384_test5 },
Packit ae235b
  { G_CHECKSUM_SHA384, key_sha256_test5_6, 131,
Packit ae235b
      "This is a test using a larger than block-size key and a larger than "
Packit ae235b
      "block-size data. The key needs to be hashed before being used by the "
Packit ae235b
      "HMAC algorithm.", 152, result_sha384_test6, },
Packit ae235b
  { -1, NULL, 0, NULL, 0, NULL },
Packit ae235b
};
Packit ae235b
Packit ae235b
HmacCase hmac_sha512_tests[] = {
Packit ae235b
  { G_CHECKSUM_SHA512, key_sha_test1, 20, "Hi There", 8, result_sha512_test1 },
Packit ae235b
  { G_CHECKSUM_SHA512, "Jefe", 4, "what do ya want for nothing?", 28,
Packit ae235b
      result_sha512_test2 },
Packit ae235b
  { G_CHECKSUM_SHA512, key_sha_test3, 20, data_sha_test3, 50,
Packit ae235b
      result_sha512_test3 },
Packit ae235b
  { G_CHECKSUM_SHA512, key_sha_test4, 25, data_sha_test4, 50,
Packit ae235b
      result_sha512_test4 },
Packit ae235b
  { G_CHECKSUM_SHA512, key_sha256_test5_6, 131,
Packit ae235b
      "Test Using Larger Than Block-Size Key - Hash Key First", 54,
Packit ae235b
      result_sha512_test5 },
Packit ae235b
  { G_CHECKSUM_SHA512, key_sha256_test5_6, 131,
Packit ae235b
      "This is a test using a larger than block-size key and a larger than "
Packit ae235b
      "block-size data. The key needs to be hashed before being used by the "
Packit ae235b
      "HMAC algorithm.", 152, result_sha512_test6, },
Packit ae235b
  { -1, NULL, 0, NULL, 0, NULL },
Packit ae235b
};
Packit ae235b
Packit ae235b
Packit ae235b
static void
Packit ae235b
test_hmac (HmacCase *t)
Packit ae235b
{
Packit ae235b
  GHmac *hmac;
Packit ae235b
  gsize digest_len, hmac_len;
Packit ae235b
  gpointer digest;
Packit ae235b
Packit ae235b
  hmac_len = digest_len = g_checksum_type_get_length (t->digest_type);
Packit ae235b
  digest = g_malloc (hmac_len);
Packit ae235b
Packit ae235b
  hmac = g_hmac_new (t->digest_type, t->key, t->key_len);
Packit ae235b
  g_hmac_update (hmac, t->data, t->data_len);
Packit ae235b
  g_hmac_get_digest (hmac, digest, &digest_len);
Packit ae235b
Packit ae235b
  g_assert_cmpmem (digest, hmac_len, t->result, digest_len);
Packit ae235b
Packit ae235b
  g_free (digest);
Packit ae235b
  g_hmac_unref (hmac);
Packit ae235b
}
Packit ae235b
Packit ae235b
static void
Packit ae235b
test_hmac_ref_unref (void)
Packit ae235b
{
Packit ae235b
  GHmac *hmac, *check;
Packit ae235b
Packit ae235b
  hmac = g_hmac_new (G_CHECKSUM_SHA1, (guchar*)"aaa", 3);
Packit ae235b
  check = g_hmac_ref (hmac);
Packit ae235b
  g_assert (check == hmac);
Packit ae235b
  g_hmac_unref (check);
Packit ae235b
  g_hmac_unref (hmac);
Packit ae235b
}
Packit ae235b
Packit ae235b
static void
Packit ae235b
test_hmac_copy (void)
Packit ae235b
{
Packit ae235b
  GHmac *hmac, *check;
Packit ae235b
Packit ae235b
  hmac = g_hmac_new (G_CHECKSUM_SHA256, (guchar*)"aaa", 3);
Packit ae235b
  check = g_hmac_copy (hmac);
Packit ae235b
  g_assert (check != hmac);
Packit ae235b
  g_assert_cmpstr (g_hmac_get_string (hmac), ==, g_hmac_get_string (check));
Packit ae235b
  g_hmac_unref (check);
Packit ae235b
  g_hmac_unref (hmac);
Packit ae235b
}
Packit ae235b
Packit ae235b
static void
Packit ae235b
test_hmac_for_data (void)
Packit ae235b
{
Packit ae235b
  gchar *string;
Packit ae235b
  GHmac *hmac;
Packit ae235b
Packit ae235b
  string = g_compute_hmac_for_data (G_CHECKSUM_SHA1,
Packit ae235b
                                    (guchar*)"aaa", 3,
Packit ae235b
                                    (guchar*)"bcdef", 5);
Packit ae235b
Packit ae235b
  hmac = g_hmac_new (G_CHECKSUM_SHA1, (guchar*)"aaa", 3);
Packit ae235b
  g_hmac_update (hmac, (guchar*)"bcdef", 5);
Packit ae235b
  g_assert_cmpstr (string, ==, g_hmac_get_string (hmac));
Packit ae235b
  g_hmac_unref (hmac);
Packit ae235b
  g_free (string);
Packit ae235b
}
Packit ae235b
Packit ae235b
static void
Packit ae235b
test_hmac_for_string (void)
Packit ae235b
{
Packit ae235b
  gchar *string;
Packit ae235b
  GHmac *hmac;
Packit ae235b
Packit ae235b
  string = g_compute_hmac_for_string (G_CHECKSUM_SHA1,
Packit ae235b
                                      (guchar*)"aaa", 3,
Packit ae235b
                                      "bcdef", -1);
Packit ae235b
Packit ae235b
  hmac = g_hmac_new (G_CHECKSUM_SHA1, (guchar*)"aaa", 3);
Packit ae235b
  g_hmac_update (hmac, (guchar*)"bcdef", 5);
Packit ae235b
  g_assert_cmpstr (string, ==, g_hmac_get_string (hmac));
Packit ae235b
  g_hmac_unref (hmac);
Packit ae235b
  g_free (string);
Packit ae235b
}
Packit ae235b
Packit ae235b
static void
Packit ae235b
test_hmac_for_bytes (void)
Packit ae235b
{
Packit ae235b
  gchar *string;
Packit ae235b
  GHmac *hmac;
Packit ae235b
  GBytes *key, *data;
Packit ae235b
Packit ae235b
  key = g_bytes_new ("aaa", 3);
Packit ae235b
  data = g_bytes_new ("bcdef", 5);
Packit ae235b
Packit ae235b
  string = g_compute_hmac_for_bytes (G_CHECKSUM_SHA1, key, data);
Packit ae235b
Packit ae235b
  hmac = g_hmac_new (G_CHECKSUM_SHA1, (guchar*)"aaa", 3);
Packit ae235b
  g_hmac_update (hmac, (guchar*)"bcdef", 5);
Packit ae235b
  g_assert_cmpstr (string, ==, g_hmac_get_string (hmac));
Packit ae235b
  g_hmac_unref (hmac);
Packit ae235b
  g_free (string);
Packit ae235b
Packit ae235b
  g_bytes_unref (key);
Packit ae235b
  g_bytes_unref (data);
Packit ae235b
}
Packit ae235b
Packit ae235b
int
Packit ae235b
main (int argc,
Packit ae235b
    char **argv)
Packit ae235b
{
Packit ae235b
  int i;
Packit ae235b
  g_test_init (&argc, &argv, NULL);
Packit ae235b
Packit ae235b
  for (i = 0 ; hmac_sha1_tests[i].key_len > 0 ; i++)
Packit ae235b
    {
Packit ae235b
      gchar *name = g_strdup_printf ("/hmac/sha1-%d", i + 1);
Packit ae235b
      g_test_add_data_func (name, hmac_sha1_tests + i,
Packit ae235b
        (void (*)(const void *)) test_hmac);
Packit ae235b
      g_free (name);
Packit ae235b
    }
Packit ae235b
Packit ae235b
  for (i = 0 ; hmac_sha256_tests[i].key_len > 0 ; i++)
Packit ae235b
    {
Packit ae235b
      gchar *name = g_strdup_printf ("/hmac/sha256-%d", i + 1);
Packit ae235b
      g_test_add_data_func (name, hmac_sha256_tests + i,
Packit ae235b
        (void (*)(const void *)) test_hmac);
Packit ae235b
      g_free (name);
Packit ae235b
    }
Packit ae235b
Packit ae235b
  for (i = 0 ; hmac_sha384_tests[i].key_len > 0 ; i++)
Packit ae235b
    {
Packit ae235b
      gchar *name = g_strdup_printf ("/hmac/sha384-%d", i + 1);
Packit ae235b
      g_test_add_data_func (name, hmac_sha384_tests + i,
Packit ae235b
        (void (*)(const void *)) test_hmac);
Packit ae235b
      g_free (name);
Packit ae235b
    }
Packit ae235b
Packit ae235b
  for (i = 0 ; hmac_sha512_tests[i].key_len > 0 ; i++)
Packit ae235b
    {
Packit ae235b
      gchar *name = g_strdup_printf ("/hmac/sha512-%d", i + 1);
Packit ae235b
      g_test_add_data_func (name, hmac_sha512_tests + i,
Packit ae235b
        (void (*)(const void *)) test_hmac);
Packit ae235b
      g_free (name);
Packit ae235b
    }
Packit ae235b
Packit ae235b
  for (i = 0 ; hmac_md5_tests[i].key_len > 0 ; i++)
Packit ae235b
    {
Packit ae235b
      gchar *name = g_strdup_printf ("/hmac/md5-%d", i + 1);
Packit ae235b
      g_test_add_data_func (name, hmac_md5_tests + i,
Packit ae235b
        (void (*)(const void *)) test_hmac);
Packit ae235b
      g_free (name);
Packit ae235b
    }
Packit ae235b
Packit ae235b
  g_test_add_func ("/hmac/ref-unref", test_hmac_ref_unref);
Packit ae235b
  g_test_add_func ("/hmac/copy", test_hmac_copy);
Packit ae235b
  g_test_add_func ("/hmac/for-data", test_hmac_for_data);
Packit ae235b
  g_test_add_func ("/hmac/for-string", test_hmac_for_string);
Packit ae235b
  g_test_add_func ("/hmac/for-bytes", test_hmac_for_bytes);
Packit ae235b
Packit ae235b
  return g_test_run ();
Packit ae235b
}