diff options
Diffstat (limited to '')
-rw-r--r-- | src/lib.rs | 47 | ||||
-rw-r--r-- | src/utils.rs | 10 |
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(); +} |