diff --git a/resources/example.html b/resources/example.html index f2aaf6ad..12d7f23e 100644 --- a/resources/example.html +++ b/resources/example.html @@ -1,6 +1,7 @@ + Example | OpenPGP.js @@ -65,7 +66,6 @@ z8jl9UymAkoTcsVWRVr5PKR0zsCxaNV3w5hv6j12+US7mEWe2kuD - diff --git a/resources/example.js b/resources/example.js index b19e0938..e9467228 100644 --- a/resources/example.js +++ b/resources/example.js @@ -1,6 +1,28 @@ function encrypt() { - openpgp.init(); - var pub_key = openpgp.read_publicKey($('#pubkey').text()); - $('#message').val(openpgp.write_encrypted_message(pub_key,$('#message').val())); - window.alert("This message is going to be sent:\n" + $('#message').val()); + if (window.crypto.getRandomValues) { + require("./openpgp.min.js"); + openpgp.init(); + var pub_key = openpgp.read_publicKey($('#pubkey').text()); + $('#message').val(openpgp.write_encrypted_message(pub_key,$('#message').val())); + window.alert("This message is going to be sent:\n" + $('#message').val()); + return true; + } else { + $("#mybutton").val("browser not supported"); + window.alert("Error: Browser not supported\nReason: We need a cryptographically secure PRNG to be implemented (i.e. the window.crypto method)\nSolution: Use Chrome >= 11, Safari >= 3.1 or Firefox >= 21"); + return false; + } +} + +function require(script) { + $.ajax({ + url: script, + dataType: "script", + async: false, // <-- this is the key + success: function () { + // all good... + }, + error: function () { + throw new Error("Could not load script " + script); + } + }); }