diff options
| author | Dennis Brentjes <d.brentjes@gmail.com> | 2017-02-11 14:48:52 +0100 |
|---|---|---|
| committer | Dennis Brentjes <d.brentjes@gmail.com> | 2017-02-11 17:54:40 +0100 |
| commit | 623dffe2c054d1639dbf9c8f21ddfb088c7950fb (patch) | |
| tree | f8159c5b3cf9872f9b271d03ad5a4b65ecec19b8 /scratchpad/scratchpad.c | |
| parent | b229dc91d8825689c5e66264b462ce01398e621e (diff) | |
| download | cmix-623dffe2c054d1639dbf9c8f21ddfb088c7950fb.tar.gz cmix-623dffe2c054d1639dbf9c8f21ddfb088c7950fb.tar.bz2 cmix-623dffe2c054d1639dbf9c8f21ddfb088c7950fb.zip | |
Working Ed25519 Implementation of libcmix.
Diffstat (limited to 'scratchpad/scratchpad.c')
| -rw-r--r-- | scratchpad/scratchpad.c | 85 |
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(); |
