diff options
Diffstat (limited to '')
-rw-r--r-- | contrib/examples/keygen-html/src/glue.js | 25 |
1 files changed, 25 insertions, 0 deletions
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; + } +}; |