Support getting key_bit_length for params 97/80897/3
authorLukasz Pawelczyk <l.pawelczyk@samsung.com>
Wed, 20 Jul 2016 14:25:23 +0000 (16:25 +0200)
committerLukasz Pawelczyk <l.pawelczyk@samsung.com>
Fri, 22 Jul 2016 09:41:41 +0000 (11:41 +0200)
Change-Id: I7900e34ad990aeeb3e5b43d1c5a539db38bc302a

api/yaca/yaca_key.h
src/key.c

index 802c4cc4f6ebe172424b392aa488e43064081477..b8714b147434f3de8e20effe3c032e998d626628 100755 (executable)
@@ -64,6 +64,9 @@ int yaca_key_get_type(const yaca_key_h key, yaca_key_type_e *key_type);
  *
  * @since_tizen 3.0
  *
+ * @remarks  @a key can be any symmetric (including an IV) or
+ *           asymmetric key (including key generation parameters).
+ *
  * @remarks  For Diffie-Helmann @a key_bit_len returns prime length in bits. Values
  *           used to generate the key/parammeters in yaca_key_generate() are not
  *           restored. Neither generator number nor values from #yaca_key_bit_length_dh_rfc_e.
index f2afec5dcd6c415a842a7b58176e9f6d8ddaced2..b226b6f24e4cd67cfbf539faac046f65ab93785a 100644 (file)
--- a/src/key.c
+++ b/src/key.c
@@ -1406,8 +1406,10 @@ API int yaca_key_get_bit_length(const yaca_key_h key, size_t *key_bit_len)
                case YACA_KEY_TYPE_RSA_PUB:
                case YACA_KEY_TYPE_DSA_PRIV:
                case YACA_KEY_TYPE_DSA_PUB:
+               case YACA_KEY_TYPE_DSA_PARAMS:
                case YACA_KEY_TYPE_DH_PRIV:
                case YACA_KEY_TYPE_DH_PUB:
+               case YACA_KEY_TYPE_DH_PARAMS:
                        ret = EVP_PKEY_bits(evp_key->evp);
                        if (ret <= 0) {
                                ret = YACA_ERROR_INTERNAL;
@@ -1418,7 +1420,8 @@ API int yaca_key_get_bit_length(const yaca_key_h key, size_t *key_bit_len)
                        *key_bit_len = ret;
                        return YACA_ERROR_NONE;
                case YACA_KEY_TYPE_EC_PRIV:
-               case YACA_KEY_TYPE_EC_PUB: {
+               case YACA_KEY_TYPE_EC_PUB:
+               case YACA_KEY_TYPE_EC_PARAMS: {
                        assert(EVP_PKEY_type(evp_key->evp->type) == EVP_PKEY_EC);
 
                        const EC_KEY *eck = EVP_PKEY_get0(evp_key->evp);