This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
Adam Langley (author)
Sun Mar 15 17:33:37 -0700 2009
| name | age | message | |
|---|---|---|---|
| |
Makefile | Sun Mar 08 14:12:25 -0700 2009 | |
| |
README | Wed Aug 20 10:43:57 -0700 2008 | |
| |
curve25519-donna-c64.c | Sun Mar 15 17:33:37 -0700 2009 | |
| |
curve25519-donna.c | Mon Sep 15 14:59:16 -0700 2008 | |
| |
speed-curve25519.c | Wed Aug 20 14:14:45 -0700 2008 | |
| |
test-curve25519.c | Wed Aug 20 14:17:10 -0700 2008 | |
| |
test-sc-curve25519.c | Wed Aug 20 14:12:19 -0700 2008 | |
| |
test-sc-curve25519.s | Wed Aug 20 14:12:19 -0700 2008 |
README
See http://code.google.com/p/curve25519-donna/ for details. BUILDING: If you run `make`, two .a archives will be built, similar to djb's curve25519 code. Alternatively, read on: The C implementation is contained within curve25519-donna.c. It has no external dependancies and is BSD licenced. You can copy/include/link it directly in with your program. Recommended C flags: -O2 The x86-64 bit implementation is contained within curve25519-donna-x86-64.c and curve25519-donna-x86-64.s. Build like this: % cpp curve25519-donna-x86-64.s > curve25519-donna-x86-64.s.pp % as -o curve25519-donna-x86-64.s.o curve25519-donna-x86-64.s.pp % gcc -O2 -c curve25519-donna-x86-64.c Then the two .o files can be linked in USAGE: The usage is exactly the same as djb's code (as described at http://cr.yp.to/ecdh.html) expect that the function is called curve25519_donna. In short, To generate a private key, generate 32 random bytes and: mysecret[0] &= 248; mysecret[31] &= 127; mysecret[31] |= 64; To generate the public key, just do static const uint8_t basepoint[32] = {9}; curve25519_donna(mypublic, mysecret, basepoint); To generate an agreed key do: uint8_t shared_key[32]; curve25519_donna(shared_key, mysecret, theirpublic); And hash the shared_key with a cryptographic hash function before using.







