diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2011-12-31 00:39:08 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2011-12-31 00:39:08 +0200 |
commit | da774307b84256aaf9c7c16b286baadd9c67dd55 (patch) | |
tree | 6a3d13b8c7726cd8a26c54d414a8fdd74e3ffb03 /lib/openpgp/privkey.c | |
parent | 394189a3bddb59f32c27bab388786b035591758d (diff) | |
download | gnutls-da774307b84256aaf9c7c16b286baadd9c67dd55.tar.gz |
more opencdk simplifications
Diffstat (limited to 'lib/openpgp/privkey.c')
-rw-r--r-- | lib/openpgp/privkey.c | 47 |
1 files changed, 9 insertions, 38 deletions
diff --git a/lib/openpgp/privkey.c b/lib/openpgp/privkey.c index f43c53b7ba..81b0e43c56 100644 --- a/lib/openpgp/privkey.c +++ b/lib/openpgp/privkey.c @@ -169,9 +169,8 @@ gnutls_openpgp_privkey_import (gnutls_openpgp_privkey_t key, gnutls_openpgp_crt_fmt_t format, const char *password, unsigned int flags) { - cdk_stream_t inp; cdk_packet_t pkt; - int rc; + int rc, armor; if (data->data == NULL || data->size == 0) { @@ -180,43 +179,15 @@ gnutls_openpgp_privkey_import (gnutls_openpgp_privkey_t key, } if (format == GNUTLS_OPENPGP_FMT_RAW) - { - rc = cdk_kbnode_read_from_mem (&key->knode, data->data, data->size); - if (rc != 0) - { - rc = _gnutls_map_cdk_rc (rc); - gnutls_assert (); - return rc; - } - } - else - { - rc = cdk_stream_tmp_from_mem (data->data, data->size, &inp); - if (rc != 0) - { - rc = _gnutls_map_cdk_rc (rc); - gnutls_assert (); - return rc; - } + armor = 0; + else armor = 1; - rc = cdk_stream_set_armor_flag (inp, 0); - if (rc != 0) - { - rc = _gnutls_map_cdk_rc (rc); - cdk_stream_close (inp); - gnutls_assert (); - return rc; - } - - rc = cdk_keydb_get_keyblock (inp, &key->knode); - cdk_stream_close (inp); - - if (rc != 0) - { - rc = _gnutls_map_cdk_rc (rc); - gnutls_assert (); - return rc; - } + rc = cdk_kbnode_read_from_mem (&key->knode, armor, data->data, data->size); + if (rc != 0) + { + rc = _gnutls_map_cdk_rc (rc); + gnutls_assert (); + return rc; } /* Test if the import was successful. */ |