aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstrongswan/plugins/bliss/bliss_signature.c
diff options
context:
space:
mode:
authorAndreas Steffen <andreas.steffen@strongswan.org>2015-01-31 02:16:15 +0100
committerAndreas Steffen <andreas.steffen@strongswan.org>2015-02-25 21:45:34 +0100
commitc2aca9eed28dc25aedbd8d2864f2e5f1e9b95b2e (patch)
treebf583232a63f13bedea03f3eecf08ee1f2a80cc5 /src/libstrongswan/plugins/bliss/bliss_signature.c
parentd0d85683563e9f296e47e1c1859f49065ca49890 (diff)
downloadstrongswan-c2aca9eed28dc25aedbd8d2864f2e5f1e9b95b2e.tar.bz2
strongswan-c2aca9eed28dc25aedbd8d2864f2e5f1e9b95b2e.tar.xz
Implemented improved BLISS-B signature algorithm
Diffstat (limited to 'src/libstrongswan/plugins/bliss/bliss_signature.c')
-rw-r--r--src/libstrongswan/plugins/bliss/bliss_signature.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/libstrongswan/plugins/bliss/bliss_signature.c b/src/libstrongswan/plugins/bliss/bliss_signature.c
index ca385ee41..e603da399 100644
--- a/src/libstrongswan/plugins/bliss/bliss_signature.c
+++ b/src/libstrongswan/plugins/bliss/bliss_signature.c
@@ -177,6 +177,12 @@ bliss_signature_t *bliss_signature_create_from_data(bliss_param_set_t *set,
return NULL;
}
+ if (encoding.len == 0)
+ {
+ DBG1(DBG_LIB, "zero length BLISS signature");
+ return NULL;
+ }
+
INIT(this,
.public = {
.get_encoding = _get_encoding,
@@ -198,6 +204,7 @@ bliss_signature_t *bliss_signature_create_from_data(bliss_param_set_t *set,
!packer->read_bits(packer, &z1_low, 8) ||
!coder->decode(coder, &z1, &z2))
{
+ DBG1(DBG_LIB, "truncated BLISS signature encoding of z1/z2");
coder->destroy(coder);
packer->destroy(packer);
destroy(this);
@@ -213,6 +220,7 @@ bliss_signature_t *bliss_signature_create_from_data(bliss_param_set_t *set,
{
if (!packer->read_bits(packer, &value, set->n_bits))
{
+ DBG1(DBG_LIB, "truncated BLISS signature encoding of c_indices");
packer->destroy(packer);
destroy(this);
return NULL;