diff options
author | Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | 2018-07-09 14:02:14 +0300 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2018-07-10 12:45:36 +0200 |
commit | 025abe3d3693ebdbd55d8a0c8953eaebe8c4b87e (patch) | |
tree | fe1152be337f27eacc1f7d7c521df28a4dd873e9 /lib/pk.c | |
parent | 596536f12db974e0668effdc5bf3ef6f673c8f54 (diff) | |
download | gnutls-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.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -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, |