summaryrefslogtreecommitdiff
path: root/src/exchange-tools
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2022-03-24 01:37:48 +0100
committerFlorian Dold <florian@dold.me>2022-03-24 01:37:48 +0100
commitb0cf653b83de7595f0d2767232c473f0b780a9f1 (patch)
tree12e305046cb8d3f8885f4b6b4c90f7b0787149a2 /src/exchange-tools
parente336c02d14fc82f4b7d26aabcf100306c4e41efe (diff)
downloadexchange-b0cf653b83de7595f0d2767232c473f0b780a9f1.tar.gz
exchange-b0cf653b83de7595f0d2767232c473f0b780a9f1.tar.bz2
exchange-b0cf653b83de7595f0d2767232c473f0b780a9f1.zip
implement more taler-crypto-worker ops
Diffstat (limited to 'src/exchange-tools')
-rw-r--r--src/exchange-tools/taler-crypto-worker.c70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/exchange-tools/taler-crypto-worker.c b/src/exchange-tools/taler-crypto-worker.c
index 5b9844101..d5ba4feec 100644
--- a/src/exchange-tools/taler-crypto-worker.c
+++ b/src/exchange-tools/taler-crypto-worker.c
@@ -93,6 +93,76 @@ run (void *cls,
}
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
"got request\n");
+ if (0 == strcmp ("eddsa_get_public",
+ op))
+ {
+ struct GNUNET_CRYPTO_EddsaPublicKey eddsa_pub;
+ struct GNUNET_CRYPTO_EddsaPrivateKey eddsa_priv;
+ json_t *resp;
+ struct GNUNET_JSON_Specification spec[] = {
+ GNUNET_JSON_spec_fixed_auto ("eddsa_priv",
+ &eddsa_priv),
+ GNUNET_JSON_spec_end ()
+ };
+ if (GNUNET_OK != GNUNET_JSON_parse (args,
+ spec,
+ NULL,
+ NULL))
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "malformed op args\n");
+ global_ret = 1;
+ return;
+ }
+ GNUNET_CRYPTO_eddsa_key_get_public (&eddsa_priv,
+ &eddsa_pub);
+ resp = GNUNET_JSON_PACK (
+ GNUNET_JSON_pack_data_auto ("eddsa_pub",
+ &eddsa_pub)
+ );
+ json_dumpf (resp, stdout, JSON_COMPACT);
+ printf ("\n");
+ fflush (stdout);
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ "sent response\n");
+ GNUNET_JSON_parse_free (spec);
+ continue;
+ }
+ if (0 == strcmp ("ecdhe_get_public",
+ op))
+ {
+ struct GNUNET_CRYPTO_EcdhePublicKey ecdhe_pub;
+ struct GNUNET_CRYPTO_EcdhePrivateKey ecdhe_priv;
+ json_t *resp;
+ struct GNUNET_JSON_Specification spec[] = {
+ GNUNET_JSON_spec_fixed_auto ("ecdhe_priv",
+ &ecdhe_priv),
+ GNUNET_JSON_spec_end ()
+ };
+ if (GNUNET_OK != GNUNET_JSON_parse (args,
+ spec,
+ NULL,
+ NULL))
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "malformed op args\n");
+ global_ret = 1;
+ return;
+ }
+ GNUNET_CRYPTO_ecdhe_key_get_public (&ecdhe_priv,
+ &ecdhe_pub);
+ resp = GNUNET_JSON_PACK (
+ GNUNET_JSON_pack_data_auto ("ecdhe_pub",
+ &ecdhe_pub)
+ );
+ json_dumpf (resp, stdout, JSON_COMPACT);
+ printf ("\n");
+ fflush (stdout);
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ "sent response\n");
+ GNUNET_JSON_parse_free (spec);
+ continue;
+ }
if (0 == strcmp ("eddsa_verify",
op))
{