keyhive_wasm/js/
encrypted.rs1use super::change_id::JsChangeId;
2use beekem::encrypted::EncryptedContent;
3use serde::{Deserialize, Serialize};
4use wasm_bindgen::prelude::*;
5
6#[wasm_bindgen(js_name = Encrypted)]
7#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)]
8pub struct JsEncrypted(pub(crate) EncryptedContent<Vec<u8>, JsChangeId>);
9
10#[wasm_bindgen(js_class = Encrypted)]
11impl JsEncrypted {
12 #[wasm_bindgen(js_name = toBytes)]
13 pub fn to_bytes(&self) -> Vec<u8> {
14 self.0.ciphertext.clone()
15 }
16
17 #[wasm_bindgen(getter)]
18 pub fn ciphertext(&self) -> Vec<u8> {
19 self.0.ciphertext.clone()
20 }
21
22 #[wasm_bindgen(getter)]
23 pub fn nonce(&self) -> Vec<u8> {
24 self.0.nonce.as_bytes().to_vec()
25 }
26
27 #[wasm_bindgen(getter)]
28 pub fn pcs_key_hash(&self) -> Vec<u8> {
29 self.0.pcs_key_hash.raw.as_bytes().to_vec()
30 }
31
32 #[wasm_bindgen(getter)]
33 pub fn content_ref(&self) -> Vec<u8> {
34 self.0.content_ref.bytes().to_vec()
35 }
36
37 #[wasm_bindgen(getter)]
38 pub fn pred_refs(&self) -> Vec<u8> {
39 self.0.pred_refs.raw.as_bytes().to_vec()
40 }
41}
42
43impl From<EncryptedContent<Vec<u8>, JsChangeId>> for JsEncrypted {
44 fn from(encrypted: EncryptedContent<Vec<u8>, JsChangeId>) -> Self {
45 JsEncrypted(encrypted)
46 }
47}