rev22 / curve25519-donna Goto Github PK
View Code? Open in Web Editor NEWThis project forked from agl/curve25519-donna
Implementations of a fast Elliptic-curve Diffie-Hellman primitive
Home Page: http://code.google.com/p/curve25519-donna
This project forked from agl/curve25519-donna
Implementations of a fast Elliptic-curve Diffie-Hellman primitive
Home Page: http://code.google.com/p/curve25519-donna
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.