- AUTH_HMAC_MD5_96 and AUTH_HMAC_SHA1_96 implemented and tested...
[strongswan.git] / Source / charon / transforms / signers / signer.c
1 /**
2 * @file signer.c
3 *
4 * @brief Implementation of generic signer_t constructor.
5 *
6 */
7
8 /*
9 * Copyright (C) 2005 Jan Hutter, Martin Willi
10 * Hochschule fuer Technik Rapperswil
11 *
12 * This program is free software; you can redistribute it and/or modify it
13 * under the terms of the GNU General Public License as published by the
14 * Free Software Foundation; either version 2 of the License, or (at your
15 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
16 *
17 * This program is distributed in the hope that it will be useful, but
18 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
19 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
20 * for more details.
21 */
22
23 #include "signer.h"
24
25 #include <transforms/signers/hmac_signer.h>
26
27 /**
28 * string mappings for integrity_algorithm_t
29 */
30 mapping_t integrity_algorithm_m[] = {
31 {AUTH_UNDEFINED, "AUTH_UNDEFINED"},
32 {AUTH_HMAC_MD5_96, "AUTH_HMAC_MD5_96"},
33 {AUTH_HMAC_SHA1_96, "AUTH_HMAC_SHA1_96"},
34 {AUTH_DES_MAC, "AUTH_DES_MAC"},
35 {AUTH_KPDK_MD5, "AUTH_KPDK_MD5"},
36 {AUTH_AES_XCBC_96, "AUTH_AES_XCBC_96"},
37 {MAPPING_END, NULL}
38 };
39
40 signer_t *signer_create(integrity_algorithm_t integrity_algorithm)
41 {
42 switch(integrity_algorithm)
43 {
44 case AUTH_HMAC_SHA1_96:
45 {
46 return ((signer_t *) hmac_signer_create(HASH_SHA1));
47 }
48 case AUTH_HMAC_MD5_96:
49 {
50 return ((signer_t *) hmac_signer_create(HASH_MD5));
51 }
52
53 default:
54 return NULL;
55 }
56 }