summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lib.rs47
-rw-r--r--src/utils.rs10
2 files changed, 57 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs
new file mode 100644
index 0000000..c422e2b
--- /dev/null
+++ b/src/lib.rs
@@ -0,0 +1,47 @@
+mod utils;
+
+use wasm_bindgen::prelude::*;
+
+use std::io::{Read, Write};
+use std::iter;
+
+
+use age::x25519::Recipient;
+
+//use rand::{rngs::OsRng, RngCore};
+
+// When the `wee_alloc` feature is enabled, use `wee_alloc` as the global
+// allocator.
+#[cfg(feature = "wee_alloc")]
+#[global_allocator]
+static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT;
+
+#[wasm_bindgen]
+extern {
+ fn alert(s: &str);
+}
+
+#[wasm_bindgen]
+pub fn greet() {
+ alert("Hello, {{project-name}}!");
+}
+
+
+#[wasm_bindgen]
+pub fn lalala(plaintext : String) -> Option<Vec<u8>> {
+
+ utils::set_panic_hook();
+
+ let pubkey = "age1m6k5wqnrk63wxhlwtl7s244ngmacn6xph3lxjd3x735f6wm8z4lsysfzg5".parse::<Recipient>().ok()?;
+
+ let encryptor = age::Encryptor::with_recipients(vec![Box::new(pubkey)]);
+
+ let mut encrypted = vec![];
+
+ let mut writer = encryptor.wrap_output(&mut encrypted).ok()?;
+
+ writer.write_all(&plaintext.as_bytes()).ok()?;
+ writer.finish().ok()?;
+
+ Some(encrypted)
+}
diff --git a/src/utils.rs b/src/utils.rs
new file mode 100644
index 0000000..b1d7929
--- /dev/null
+++ b/src/utils.rs
@@ -0,0 +1,10 @@
+pub fn set_panic_hook() {
+ // When the `console_error_panic_hook` feature is enabled, we can call the
+ // `set_panic_hook` function at least once during initialization, and then
+ // we will get better error messages if our code ever panics.
+ //
+ // For more details see
+ // https://github.com/rustwasm/console_error_panic_hook#readme
+ #[cfg(feature = "console_error_panic_hook")]
+ console_error_panic_hook::set_once();
+}