diff options
Diffstat (limited to 'contrib/examples/keygen-html/src')
-rw-r--r-- | contrib/examples/keygen-html/src/curve25519_generate.c | 2 | ||||
-rw-r--r-- | contrib/examples/keygen-html/src/glue.js | 25 |
2 files changed, 25 insertions, 2 deletions
diff --git a/contrib/examples/keygen-html/src/curve25519_generate.c b/contrib/examples/keygen-html/src/curve25519_generate.c index c82f16d..ae036d5 100644 --- a/contrib/examples/keygen-html/src/curve25519_generate.c +++ b/contrib/examples/keygen-html/src/curve25519_generate.c @@ -2,8 +2,6 @@ * * Copyright (C) 2008 Google Inc. All Rights Reserved. * Copyright (C) 2015-2017 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved. - * - * Build with emcc -O3 --memory-init-file 0 -o curve25519_generate.js curve25519_generate.c */ #include <emscripten.h> diff --git a/contrib/examples/keygen-html/src/glue.js b/contrib/examples/keygen-html/src/glue.js new file mode 100644 index 0000000..f79c383 --- /dev/null +++ b/contrib/examples/keygen-html/src/glue.js @@ -0,0 +1,25 @@ +/*! SPDX-License-Identifier: GPL-2.0 + * + * Copyright (C) 2015-2017 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved. + */ +window["WireGuard"] = { + "generateKeypair": function() { + var privateKey = Module["_malloc"](32); + var publicKey = Module["_malloc"](32); + Module["_curve25519_generate_private"](privateKey); + Module["_curve25519_generate_public"](publicKey, privateKey); + var privateBase64 = Module["_malloc"](45); + var publicBase64 = Module["_malloc"](45); + Module["_key_to_base64"](privateBase64, privateKey); + Module["_key_to_base64"](publicBase64, publicKey); + Module["_free"](privateKey); + Module["_free"](publicKey); + var keypair = { + publicKey: Module["Pointer_stringify"](publicBase64), + privateKey: Module["Pointer_stringify"](privateBase64) + }; + Module["_free"](privateBase64); + Module["_free"](publicBase64); + return keypair; + } +}; |