Skip to content

Commit

Permalink
Merge pull request #106 from buu700/master
Browse files Browse the repository at this point in the history
Save the project
  • Loading branch information
jedisct1 authored Sep 29, 2017
2 parents 45130f4 + 74a4741 commit f8475cb
Show file tree
Hide file tree
Showing 8 changed files with 21 additions and 109 deletions.
59 changes: 3 additions & 56 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@

OUT_DIR=./dist
BROWSERS_TEST_DIR=./browsers-test
BROWSERS_WASM_TEST_DIR=./browsers-wasm-test
MODULES_DIR=$(OUT_DIR)/modules
MODULES_SUMO_DIR=$(OUT_DIR)/modules-sumo
BROWSERS_DIR=$(OUT_DIR)/browsers
Expand All @@ -23,20 +22,17 @@ all: pack
@ls -l $(MODULES_SUMO_DIR)/


standard: $(MODULES_DIR)/libsodium-wasm.js $(MODULES_DIR)/libsodium-wrappers.js
standard: $(MODULES_DIR)/libsodium-wrappers.js
@echo + Building standard distribution

sumo: $(MODULES_SUMO_DIR)/libsodium-wasm.js $(MODULES_SUMO_DIR)/libsodium-wrappers.js
sumo: $(MODULES_SUMO_DIR)/libsodium-wrappers.js
@echo + Building sumo distribution

tests: browsers-tests browsers-tests-wasm
tests: browsers-tests

browsers-tests: $(LIBSODIUM_DIR)/test/default/browser/sodium_core.html
@echo + Building web browsers tests

browsers-tests-wasm: $(LIBSODIUM_DIR)/test/default/browser-wasm/sodium_core.html
@echo + Building web browsers tests [webassembly]

targets: standard sumo

pack: targets
Expand All @@ -56,58 +52,11 @@ $(MODULES_SUMO_DIR)/libsodium-wrappers.js: wrapper/build-wrappers.js wrapper/bui
mkdir -p $(MODULES_SUMO_DIR)
nodejs wrapper/build-wrappers.js libsodium-sumo API.md $(MODULES_SUMO_DIR)/libsodium-wrappers.js 2>/dev/null || node wrapper/build-wrappers.js libsodium-sumo API_sumo.md $(MODULES_SUMO_DIR)/libsodium-wrappers.js

$(MODULES_DIR)/libsodium-wasm.js: wrapper/libsodium-pre.js wrapper/libsodium-post.js $(MODULES_DIR)/libsodium-wrappers.js $(LIBSODIUM_JS_DIR)/lib/libsodium-asmjs.js $(LIBSODIUM_JS_DIR)/lib/libsodium-wasm.js
@echo +++ Building standard/libsodium
mkdir -p $(MODULES_DIR)
cat wrapper/libsodium-pre.js $(LIBSODIUM_JS_DIR)/lib/libsodium-asmjs.js wrapper/libsodium-post.js > $(MODULES_DIR)/libsodium-asmjs.js
cat wrapper/libsodium-pre.js $(LIBSODIUM_JS_DIR)/lib/libsodium-wasm.js wrapper/libsodium-post.js > $(MODULES_DIR)/libsodium-wasm.js
ln -f $(LIBSODIUM_JS_DIR)/lib/libsodium.wasm $(MODULES_DIR)/

mkdir -p $(BROWSERS_DIR)
cat wrapper/modinit.js > $(BROWSERS_DIR)/sodium.js
cat $(MODULES_DIR)/libsodium-asmjs.js $(MODULES_DIR)/libsodium-wrappers.js > $(BROWSERS_DIR)/sodium-asmjs.js
cat $(MODULES_DIR)/libsodium-wasm.js $(MODULES_DIR)/libsodium-wrappers.js > $(BROWSERS_DIR)/sodium-wasm.js
ln -f $(MODULES_DIR)/libsodium.wasm $(BROWSERS_DIR)/

$(MODULES_SUMO_DIR)/libsodium-wasm.js: wrapper/libsodium-pre.js wrapper/libsodium-post.js $(MODULES_SUMO_DIR)/libsodium-wrappers.js $(LIBSODIUM_JS_SUMO_DIR)/lib/libsodium-asmjs.js $(LIBSODIUM_JS_SUMO_DIR)/lib/libsodium-wasm.js
@echo +++ Building sumo/libsodium
mkdir -p $(MODULES_SUMO_DIR)
cat wrapper/libsodium-pre.js $(LIBSODIUM_JS_SUMO_DIR)/lib/libsodium-asmjs.js wrapper/libsodium-post.js > $(MODULES_SUMO_DIR)/libsodium-asmjs.js
cat wrapper/libsodium-pre.js $(LIBSODIUM_JS_SUMO_DIR)/lib/libsodium-wasm.js wrapper/libsodium-post.js > $(MODULES_SUMO_DIR)/libsodium-wasm.js
ln -f $(LIBSODIUM_JS_SUMO_DIR)/lib/libsodium.wasm $(MODULES_SUMO_DIR)/

mkdir -p $(BROWSERS_SUMO_DIR)
cat wrapper/modinit.js > $(BROWSERS_SUMO_DIR)/sodium.js
cat $(MODULES_SUMO_DIR)/libsodium-asmjs.js $(MODULES_SUMO_DIR)/libsodium-wrappers.js > $(BROWSERS_SUMO_DIR)/sodium-asmjs.js
cat $(MODULES_SUMO_DIR)/libsodium-wasm.js $(MODULES_SUMO_DIR)/libsodium-wrappers.js > $(BROWSERS_SUMO_DIR)/sodium-wasm.js
ln -f $(MODULES_SUMO_DIR)/libsodium.wasm $(BROWSERS_SUMO_DIR)/

$(LIBSODIUM_DIR)/test/default/browser/sodium_core.html: $(LIBSODIUM_DIR)/configure
cd $(LIBSODIUM_DIR) && ./dist-build/emscripten.sh --browser-tests
rm -f $(LIBSODIUM_DIR)/test/default/browser/*.asm.html $(LIBSODIUM_DIR)/test/default/browser/*.asm.js
rm -fr $(BROWSERS_TEST_DIR) && cp -R $(LIBSODIUM_DIR)/test/default/browser $(BROWSERS_TEST_DIR)

$(LIBSODIUM_DIR)/test/default/browser-wasm/sodium_core.html: $(LIBSODIUM_DIR)/configure
cd $(LIBSODIUM_DIR) && ./dist-build/emscripten-wasm.sh --browser-tests
rm -f $(LIBSODIUM_DIR)/test/default/browser-wasm/*.asm.html $(LIBSODIUM_DIR)/test/default/browser-wasm/*.asm.js
rm -fr $(BROWSERS_WASM_TEST_DIR) && cp -R $(LIBSODIUM_DIR)/test/default/browser-wasm $(BROWSERS_WASM_TEST_DIR)

$(LIBSODIUM_JS_DIR)/lib/libsodium-wasm.js: $(LIBSODIUM_DIR)/configure
cd $(LIBSODIUM_DIR) && ./dist-build/emscripten-wasm.sh --standard
mv $(LIBSODIUM_JS_DIR)/lib/libsodium.js $(LIBSODIUM_JS_DIR)/lib/libsodium-wasm.js

$(LIBSODIUM_JS_DIR)/lib/libsodium-asmjs.js: $(LIBSODIUM_JS_DIR)/lib/libsodium-wasm.js
cd $(LIBSODIUM_DIR) && ./dist-build/emscripten.sh --standard
mv $(LIBSODIUM_JS_DIR)/lib/libsodium.js $(LIBSODIUM_JS_DIR)/lib/libsodium-asmjs.js

$(LIBSODIUM_JS_SUMO_DIR)/lib/libsodium-wasm.js: $(LIBSODIUM_DIR)/configure
cd $(LIBSODIUM_DIR) && ./dist-build/emscripten-wasm.sh --sumo
mv $(LIBSODIUM_JS_SUMO_DIR)/lib/libsodium.js $(LIBSODIUM_JS_SUMO_DIR)/lib/libsodium-wasm.js

$(LIBSODIUM_JS_SUMO_DIR)/lib/libsodium-asmjs.js: $(LIBSODIUM_JS_SUMO_DIR)/lib/libsodium-wasm.js
cd $(LIBSODIUM_DIR) && ./dist-build/emscripten.sh --sumo
mv $(LIBSODIUM_JS_SUMO_DIR)/lib/libsodium.js $(LIBSODIUM_JS_SUMO_DIR)/lib/libsodium-asmjs.js

$(LIBSODIUM_DIR)/configure: $(LIBSODIUM_DIR)/configure.ac
cd $(LIBSODIUM_DIR) && ./autogen.sh

Expand All @@ -119,9 +68,7 @@ $(LIBSODIUM_DIR)/configure.ac: .gitmodules
clean:
rm -f $(LIBSODIUM_DIR)/js.done $(LIBSODIUM_DIR)/js-sumo.done $(LIBSODIUM_DIR)/browser-js.done
rm -rf $(BROWSERS_TEST_DIR)
rm -rf $(BROWSERS_WASM_TEST_DIR)
rm -fr $(LIBSODIUM_DIR)/test/default/browser
rm -fr $(LIBSODIUM_DIR)/test/default/browser-wasm
rm -rf $(LIBSODIUM_JS_DIR)
rm -rf $(LIBSODIUM_JS_SUMO_DIR)
rm -rf $(OUT_DIR)
Expand Down
2 changes: 1 addition & 1 deletion libsodium
4 changes: 1 addition & 3 deletions package-libsodium-sumo.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@
"version": "0.6.0",
"description": "The Sodium cryptographic library compiled to pure JavaScript (raw library, no wrappers, sumo variant)",
"main": "dist/modules-sumo/libsodium-sumo.js",
"files": ["dist-modules-sumo/libsodium-asmjs.js", "dist-modules-sumo/libsodium-wasm.js",
"dist-modules-sumo/libsodium-wrappers.js", "dist-modules-sumo/libsodium.js",
"dist-modules-sumo/libsodium.wasm", "package.json"],
"files": ["dist-modules-sumo/libsodium-wrappers.js", "dist-modules-sumo/libsodium.js", "package.json"],
"repository": {
"type": "git",
"url": "https://github.com/jedisct1/libsodium.js.git"
Expand Down
4 changes: 1 addition & 3 deletions package-libsodium-wrappers-sumo.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@
"version": "0.6.0",
"description": "The Sodium cryptographic library compiled to pure JavaScript (wrappers, sumo variant)",
"main": "dist/modules-sumo/libsodium-wrappers-sumo.js",
"files": ["dist-modules-sumo/libsodium-asmjs.js", "dist-modules-sumo/libsodium-wasm.js",
"dist-modules-sumo/libsodium-wrappers.js", "dist-modules-sumo/libsodium.js",
"dist-modules-sumo/libsodium.wasm", "package.json"],
"files": ["dist-modules-sumo/libsodium-wrappers.js", "dist-modules-sumo/libsodium.js", "package.json"],
"repository": {
"type": "git",
"url": "https://github.com/jedisct1/libsodium.js.git"
Expand Down
4 changes: 1 addition & 3 deletions package-libsodium.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@
"version": "0.6.0",
"description": "The Sodium cryptographic library compiled to pure JavaScript (raw library, no wrappers)",
"main": "dist/modules/libsodium.js",
"files": ["dist-modules/libsodium-asmjs.js", "dist-modules/libsodium-wasm.js",
"dist-modules/libsodium-wrappers.js", "dist-modules/libsodium.js",
"dist-modules/libsodium.wasm", "package.json"],
"files": ["dist-modules/libsodium-wrappers.js", "dist-modules/libsodium.js", "package.json"],
"repository": {
"type": "git",
"url": "https://github.com/jedisct1/libsodium.js.git"
Expand Down
4 changes: 1 addition & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@
"version": "0.6.0",
"description": "The Sodium cryptographic library compiled to pure JavaScript (wrappers)",
"main": "dist/modules/libsodium-wrappers.js",
"files": ["dist-modules/libsodium-asmjs.js", "dist-modules/libsodium-wasm.js",
"dist-modules/libsodium-wrappers.js", "dist-modules/libsodium.js",
"dist-modules/libsodium.wasm", "package.json"],
"files": ["dist-modules/libsodium-wrappers.js", "dist-modules/libsodium.js", "package.json"],
"repository": {
"type": "git",
"url": "https://github.com/jedisct1/libsodium.js.git"
Expand Down
27 changes: 0 additions & 27 deletions wrapper/modinit.js
Original file line number Diff line number Diff line change
@@ -1,28 +1 @@
var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};

(function(root) {
function addScript(url) {
if (typeof root.libsodium === 'object') {
return;
}
var node = document.createElement('script');
node.async = 'async';
node.type = 'text/javascript';
node.src = url;
document.head.appendChild(node);
}

var useWasm = false;
try { new WebAssembly.Module(new Uint8Array(262144)) } catch (err) {
if (err.name === 'CompileError') { useWasm = true }
}
if (useWasm) {
fetch('libsodium.wasm').then(function(bytes) { return bytes.arrayBuffer() }).
then(function(bytes) {
root.libsodium_mod = { wasmBinary: bytes, commonJsStrict: {} };
addScript('sodium-wasm.js');
});
} else {
addScript('sodium-asmjs.js');
}
})(this);
26 changes: 13 additions & 13 deletions wrapper/wrap-template.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
(function(root) {

function expose_wrappers(exports, libsodium) {
function expose_wrappers(exports, libsodiumModule) {
"use strict";

var output_format = "uint8array";

if (libsodium._sodium_init() !== 0) {
throw new Error("libsodium was not correctly initialized.");
}
var libsodium;
var ready = libsodiumModule.ready.then(function () {
libsodium = libsodiumModule;
if (libsodium._sodium_init() !== 0) {
throw new Error("libsodium was not correctly initialized.");
}
});

// List of functions and constants defined in the wrapped libsodium
function symbols() {
Expand Down Expand Up @@ -461,12 +465,13 @@ function expose_wrappers(exports, libsodium) {
exports.from_string = from_string;
exports.increment = increment;
exports.is_zero = is_zero;
exports.libsodium = libsodium;
exports.libsodium = libsodiumModule;
exports.memcmp = memcmp;
exports.memzero = memzero;
exports.output_formats = output_formats;
exports.pad = pad;
exports.unpad = unpad;
exports.ready = ready;
exports.symbols = symbols;
exports.to_base64 = to_base64;
exports.to_hex = to_hex;
Expand All @@ -476,16 +481,11 @@ function expose_wrappers(exports, libsodium) {
return exports;
}

var useWasm = false;
try { new WebAssembly.Module(new Uint8Array(262144)) } catch (err) {
if (err.name === 'CompileError') { useWasm = true }
}
var _libsodium = useWasm ? 'libsodium-wasm' : 'libsodium-asmjs',
_onload = (typeof root.sodium === 'object' && typeof root.sodium.onload === 'function') ? root.sodium.onload : null;
var _onload = (typeof root.sodium === 'object' && typeof root.sodium.onload === 'function') ? root.sodium.onload : null;
if (typeof define === 'function' && define.amd) {
define(['exports', _libsodium], expose_libsodium_wrappers);
define(['exports', 'libsodium'], expose_libsodium_wrappers);
} else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {
expose_wrappers(exports, require(_libsodium));
expose_wrappers(exports, require('libsodium'));
} else {
root.sodium = expose_wrappers((root.commonJsStrict = {}), root.libsodium);
}
Expand Down

0 comments on commit f8475cb

Please sign in to comment.