summaryrefslogtreecommitdiff
path: root/lib/openpgp/privkey.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2011-12-31 00:39:08 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2011-12-31 00:39:08 +0200
commitda774307b84256aaf9c7c16b286baadd9c67dd55 (patch)
tree6a3d13b8c7726cd8a26c54d414a8fdd74e3ffb03 /lib/openpgp/privkey.c
parent394189a3bddb59f32c27bab388786b035591758d (diff)
downloadgnutls-da774307b84256aaf9c7c16b286baadd9c67dd55.tar.gz
more opencdk simplifications
Diffstat (limited to 'lib/openpgp/privkey.c')
-rw-r--r--lib/openpgp/privkey.c47
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. */