aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2010-01-25 11:15:05 +0000
committerMartin Willi <martin@revosec.ch>2010-08-03 15:39:24 +0200
commit9dc73cd21c5fe42d95ee9991d4bf962d9876f6c4 (patch)
tree119b3fabc0b04843f00298ea1cfe83f920f7d6f3 /src
parent4c0c2283a51bab1d992dc2c7337b5e81906ab9e4 (diff)
downloadstrongswan-9dc73cd21c5fe42d95ee9991d4bf962d9876f6c4.tar.bz2
strongswan-9dc73cd21c5fe42d95ee9991d4bf962d9876f6c4.tar.xz
Added support for AUTH_HMAC_SHA2_256_256, used in TLS
Diffstat (limited to 'src')
-rw-r--r--src/libstrongswan/crypto/signers/signer.c7
-rw-r--r--src/libstrongswan/crypto/signers/signer.h2
-rw-r--r--src/libstrongswan/plugins/hmac/hmac_signer.c3
3 files changed, 9 insertions, 3 deletions
diff --git a/src/libstrongswan/crypto/signers/signer.c b/src/libstrongswan/crypto/signers/signer.c
index e98916bfe..1c7dcaef0 100644
--- a/src/libstrongswan/crypto/signers/signer.c
+++ b/src/libstrongswan/crypto/signers/signer.c
@@ -16,11 +16,12 @@
#include "signer.h"
-ENUM_BEGIN(integrity_algorithm_names, AUTH_UNDEFINED, AUTH_HMAC_SHA2_256_96,
+ENUM_BEGIN(integrity_algorithm_names, AUTH_UNDEFINED, AUTH_HMAC_SHA2_256_256,
"UNDEFINED",
"HMAC_SHA1_128",
- "HMAC_SHA2_256_96");
-ENUM_NEXT(integrity_algorithm_names, AUTH_HMAC_MD5_96, AUTH_HMAC_SHA2_512_256, AUTH_HMAC_SHA2_256_96,
+ "HMAC_SHA2_256_96",
+ "HMAC_SHA2_256_256");
+ENUM_NEXT(integrity_algorithm_names, AUTH_HMAC_MD5_96, AUTH_HMAC_SHA2_512_256, AUTH_HMAC_SHA2_256_256,
"HMAC_MD5_96",
"HMAC_SHA1_96",
"DES_MAC",
diff --git a/src/libstrongswan/crypto/signers/signer.h b/src/libstrongswan/crypto/signers/signer.h
index 94e8c99b9..02efc1c5a 100644
--- a/src/libstrongswan/crypto/signers/signer.h
+++ b/src/libstrongswan/crypto/signers/signer.h
@@ -66,6 +66,8 @@ enum integrity_algorithm_t {
AUTH_HMAC_SHA1_128 = 1025,
/** SHA256 96 bit truncation variant, supported by Linux kernels */
AUTH_HMAC_SHA2_256_96 = 1026,
+ /** SHA256 full length tuncation variant, as used in TLS */
+ AUTH_HMAC_SHA2_256_256 = 1027,
};
/**
diff --git a/src/libstrongswan/plugins/hmac/hmac_signer.c b/src/libstrongswan/plugins/hmac/hmac_signer.c
index f82a8f3a1..7b8e03c6d 100644
--- a/src/libstrongswan/plugins/hmac/hmac_signer.c
+++ b/src/libstrongswan/plugins/hmac/hmac_signer.c
@@ -177,6 +177,9 @@ hmac_signer_t *hmac_signer_create(integrity_algorithm_t algo)
hash = HASH_SHA512;
trunc = 32;
break;
+ case AUTH_HMAC_SHA2_256_256:
+ hash = HASH_SHA256;
+ trunc = 32;
default:
return NULL;
}