summaryrefslogtreecommitdiffstats
path: root/g10/pkglue.c
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2003-07-03 20:08:16 +0200
committerWerner Koch <wk@gnupg.org>2003-07-03 20:08:16 +0200
commit1753a2f3b0ec8c1eda54d9de7b17fa62c43fef39 (patch)
treeec11dfed93129b924a14e921ea110ddcc7506d64 /g10/pkglue.c
parent* app-openpgp.c (store_fpr): Fixed fingerprint calculation. (diff)
downloadgnupg2-1753a2f3b0ec8c1eda54d9de7b17fa62c43fef39.tar.xz
gnupg2-1753a2f3b0ec8c1eda54d9de7b17fa62c43fef39.zip
* options.h (DBG_CIPHER): Reintroduced it.
* seskey.c (encode_session_key): Debug output of the session key. * pubkey-enc.c (get_it): Handle card case. * call-agent.c (agent_scd_pkdecrypt): New. * pkglue.c (pk_encrypt): Add RSA support. * g10.c (main): Default to --use-agent. * keygen.c (show_smartcard): Print info about the public key. (check_smartcard): Check for existing key here. (gen_card_key): And not anymore here. (fpr_is_zero): New. (generate_keypair): Generate both keys for a card. (smartcard_change_url): Nw.
Diffstat (limited to 'g10/pkglue.c')
-rw-r--r--g10/pkglue.c26
1 files changed, 21 insertions, 5 deletions
diff --git a/g10/pkglue.c b/g10/pkglue.c
index 3e378822c..7920a5223 100644
--- a/g10/pkglue.c
+++ b/g10/pkglue.c
@@ -177,6 +177,12 @@ pk_encrypt (int algo, gcry_mpi_t * resarr, gcry_mpi_t data, gcry_mpi_t * pkey)
"(public-key(elg(p%m)(g%m)(y%m)))",
pkey[0], pkey[1], pkey[2]);
}
+ else if (algo == GCRY_PK_RSA)
+ {
+ rc = gcry_sexp_build (&s_pkey, NULL,
+ "(public-key(rsa(n%m)(e%m)))",
+ pkey[0], pkey[1]);
+ }
else
return GPG_ERR_PUBKEY_ALGO;
@@ -202,11 +208,14 @@ pk_encrypt (int algo, gcry_mpi_t * resarr, gcry_mpi_t data, gcry_mpi_t * pkey)
assert (resarr[0]);
gcry_sexp_release (list);
- list = gcry_sexp_find_token (s_ciph, "b", 0);
- assert (list);
- resarr[1] = gcry_sexp_nth_mpi (list, 1, 0);
- assert (resarr[1]);
- gcry_sexp_release (list);
+ if (algo != GCRY_PK_RSA)
+ {
+ list = gcry_sexp_find_token (s_ciph, "b", 0);
+ assert (list);
+ resarr[1] = gcry_sexp_nth_mpi (list, 1, 0);
+ assert (resarr[1]);
+ gcry_sexp_release (list);
+ }
}
gcry_sexp_release (s_ciph);
@@ -276,3 +285,10 @@ pk_decrypt (int algo, gcry_mpi_t * result, gcry_mpi_t * data,
return 0;
}
+
+
+
+
+
+
+