summaryrefslogtreecommitdiff
path: root/lib/pk.c
diff options
context:
space:
mode:
authorDmitry Eremin-Solenikov <dbaryshkov@gmail.com>2018-07-09 14:02:14 +0300
committerNikos Mavrogiannopoulos <nmav@redhat.com>2018-07-10 12:45:36 +0200
commit025abe3d3693ebdbd55d8a0c8953eaebe8c4b87e (patch)
treefe1152be337f27eacc1f7d7c521df28a4dd873e9 /lib/pk.c
parent596536f12db974e0668effdc5bf3ef6f673c8f54 (diff)
downloadgnutls-025abe3d3693ebdbd55d8a0c8953eaebe8c4b87e.tar.gz
lib: remove undefined behaviour when handling GOST paramset
Initial version of GOST patchset used param < 0 to represent unknown value. Later special enum entry GNUTLS_GOST_PARAMSET_UNKNOWN was introduced. Fix several leftovers comparing params to 0 directly. Closes #505. Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Diffstat (limited to 'lib/pk.c')
-rw-r--r--lib/pk.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/pk.c b/lib/pk.c
index b4db8033e0..b395f1741a 100644
--- a/lib/pk.c
+++ b/lib/pk.c
@@ -459,6 +459,17 @@ gnutls_pk_algorithm_t _gnutls_digest_gost(gnutls_digest_algorithm_t digest)
return GNUTLS_PK_UNKNOWN;
}
+gnutls_gost_paramset_t _gnutls_gost_paramset_default(gnutls_pk_algorithm_t pk)
+{
+ if (pk == GNUTLS_PK_GOST_01)
+ return GNUTLS_GOST_PARAMSET_CP_A;
+ else if (pk == GNUTLS_PK_GOST_12_256 ||
+ pk == GNUTLS_PK_GOST_12_512)
+ return GNUTLS_GOST_PARAMSET_TC26_Z;
+ else
+ return gnutls_assert_val(GNUTLS_GOST_PARAMSET_UNKNOWN);
+}
+
/* some generic pk functions */
int _gnutls_pk_params_copy(gnutls_pk_params_st * dst,