From 623dffe2c054d1639dbf9c8f21ddfb088c7950fb Mon Sep 17 00:00:00 2001 From: Dennis Brentjes Date: Sat, 11 Feb 2017 14:48:52 +0100 Subject: Working Ed25519 Implementation of libcmix. --- scratchpad/scratchpad.c | 85 ++++++++++++++++++++++++++++++++++++------------- 1 file changed, 62 insertions(+), 23 deletions(-) (limited to 'scratchpad/scratchpad.c') 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 #include +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(); -- cgit v1.2.3-70-g09d2