aboutsummaryrefslogtreecommitdiff
path: root/scratchpad
diff options
context:
space:
mode:
Diffstat (limited to 'scratchpad')
-rw-r--r--scratchpad/scratchpad.c85
1 files changed, 62 insertions, 23 deletions
diff --git a/scratchpad/scratchpad.c b/scratchpad/scratchpad.c
index 4e7f007..ba7cca9 100644
--- a/scratchpad/scratchpad.c
+++ b/scratchpad/scratchpad.c
@@ -9,34 +9,15 @@
#include <string.h>
#include <stddef.h>
+void crypto_add_sub_scratch();
void crypto_api_scratch();
void gcrypt_scratch();
int main(int argc, char* argv[]) {
- if (!gcry_check_version (GCRYPT_VERSION)) {
- fprintf(stderr, "libgcrypt version mismatch\n");
- exit(-1);
- }
-
- gcry_control (GCRYCTL_SUSPEND_SECMEM_WARN);
- gcry_control (GCRYCTL_INIT_SECMEM, 16384, 0);
- gcry_control (GCRYCTL_RESUME_SECMEM_WARN);
- gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
-
- size_t parse_error_offset;
- gcry_error_t error;
-
- char bytes[] = "a";
- gcry_mpi_t x;// = gcry_mpi_snew(0);
- error = gcry_mpi_scan(&x, GCRYMPI_FMT_USG, bytes, 1, &parse_error_offset);
-
- gcry_mpi_release(x);
+ (void) argc;
+ (void) argv;
- if(error) {
- return -1;
- }
-
- return 0;
+ crypto_add_sub_scratch();
}
void check(gcry_error_t error) {
@@ -121,6 +102,64 @@ void gcrypt_scratch() {
gcry_sexp_release(plain_sexpr);
}
+void crypto_add_sub_scratch() {
+ struct Api api = get_implementation();
+
+ gcry_ctx_t ctx;
+ gcry_error_t error = gcry_mpi_ec_new(&ctx, NULL, "Ed25519");
+
+ GroupElement rel1 = api.get_group_element(false);
+ GroupElement rel2 = api.get_group_element(false);
+
+ gcry_mpi_point_t red_add_raw = gcry_mpi_point_new(0);
+ gcry_mpi_ec_add(red_add_raw, rel1, rel2, ctx);
+
+ GroupElement rel_add = api.combine(rel1, rel2, false);
+ GroupElement rel_sub = api.uncombine(rel_add, rel2, false);
+
+ gcry_mpi_t xaddraw = gcry_mpi_new(0);
+ gcry_mpi_t yaddraw = gcry_mpi_new(0);
+
+ gcry_mpi_ec_get_affine(xaddraw, yaddraw, red_add_raw, ctx);
+
+ gcry_mpi_dump(xaddraw);
+ printf("\n");
+ gcry_mpi_dump(yaddraw);
+ printf("\n");
+
+ gcry_mpi_t xaddapi = gcry_mpi_new(0);
+ gcry_mpi_t yaddapi = gcry_mpi_new(0);
+
+ gcry_mpi_ec_get_affine(xaddapi, yaddapi, rel_add, ctx);
+
+ gcry_mpi_dump(xaddapi);
+ printf("\n");
+ gcry_mpi_dump(yaddapi);
+ printf("\n");
+
+
+ gcry_mpi_t x1 = gcry_mpi_new(0);
+ gcry_mpi_t y1 = gcry_mpi_new(0);
+
+ gcry_mpi_ec_get_affine(x1, y1, rel1, ctx);
+
+ gcry_mpi_dump(x1);
+ printf("\n");
+ gcry_mpi_dump(y1);
+ printf("\n");
+
+ gcry_mpi_t x2 = gcry_mpi_new(0);
+ gcry_mpi_t y2 = gcry_mpi_new(0);
+
+ gcry_mpi_ec_get_affine(x2, y2, rel_sub, ctx);
+
+ gcry_mpi_dump(x2);
+ printf("\n");
+ gcry_mpi_dump(y2);
+ printf("\n");
+
+}
+
void crypto_api_scratch() {
/* struct Api api = get_implementation();