summaryrefslogtreecommitdiff
path: root/lib/x509/key_decode.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/x509/key_decode.c')
-rw-r--r--lib/x509/key_decode.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/x509/key_decode.c b/lib/x509/key_decode.c
index 049e93a951..f1ce99f6b3 100644
--- a/lib/x509/key_decode.c
+++ b/lib/x509/key_decode.c
@@ -239,18 +239,24 @@ int _gnutls_x509_read_pubkey(gnutls_pk_algorithm_t algo, uint8_t * der,
switch (algo) {
case GNUTLS_PK_RSA:
ret = _gnutls_x509_read_rsa_pubkey(der, dersize, params);
- if (ret >= 0)
+ if (ret >= 0) {
+ params->algo = GNUTLS_PK_RSA;
params->params_nr = RSA_PUBLIC_PARAMS;
+ }
break;
case GNUTLS_PK_DSA:
ret = _gnutls_x509_read_dsa_pubkey(der, dersize, params);
- if (ret >= 0)
+ if (ret >= 0) {
+ params->algo = GNUTLS_PK_DSA;
params->params_nr = DSA_PUBLIC_PARAMS;
+ }
break;
case GNUTLS_PK_EC:
ret = _gnutls_x509_read_ecc_pubkey(der, dersize, params);
- if (ret >= 0)
+ if (ret >= 0) {
+ params->algo = GNUTLS_PK_ECDSA;
params->params_nr = ECC_PUBLIC_PARAMS;
+ }
break;
default:
ret = gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);