diff --git a/src/api/dto/content.rs b/src/api/dto/content.rs index a4ec7df..a15ef9c 100644 --- a/src/api/dto/content.rs +++ b/src/api/dto/content.rs @@ -92,11 +92,11 @@ pub enum Mentions { #[derive(Debug, Deserialize)] #[serde(tag = "type")] -pub enum FeedTypedContent { +pub enum TypedMessage { #[serde(rename = "pub")] Pub { address: Option }, #[serde(rename = "post")] - Post, + Post { post: Post }, #[serde(rename = "contact")] Contact { contact: Option, diff --git a/src/crypto/mod.rs b/src/crypto/mod.rs index bd068ed..ef4e933 100644 --- a/src/crypto/mod.rs +++ b/src/crypto/mod.rs @@ -5,3 +5,5 @@ pub use error::{Error, Result}; pub use sodium::{ ToSodiumObject, ToSsbId, CURVE_ED25519_SUFFIX, ED25519_SIGNATURE_SUFFIX, SHA256_SUFFIX, }; +pub use sodiumoxide::crypto::hash::sha256 as sha256; +pub use sodiumoxide::crypto::sign::ed25519 as ed25519; \ No newline at end of file diff --git a/src/crypto/sodium.rs b/src/crypto/sodium.rs index 590d22f..d7d712b 100644 --- a/src/crypto/sodium.rs +++ b/src/crypto/sodium.rs @@ -10,6 +10,7 @@ pub const SHA256_SUFFIX: &str = ".sha256"; pub trait ToSodiumObject { fn to_ed25519_pk(&self) -> Result; + fn to_ed25519_pk_no_suffix(&self) -> Result; fn to_ed25519_sk(&self) -> Result; fn to_ed25519_sk_no_suffix(&self) -> Result; fn to_ed25519_signature(&self) -> Result; @@ -43,6 +44,12 @@ impl ToSodiumObject for str { ed25519::PublicKey::from_slice(&bytes).ok_or_else(|| Error::BadPublicKey) } + fn to_ed25519_pk_no_suffix(self: &str) -> Result { + + let bytes = base64::decode(&self)?; + + ed25519::PublicKey::from_slice(&bytes).ok_or_else(|| Error::BadPublicKey) + } fn to_ed25519_sk(self: &str) -> Result { if !self.ends_with(CURVE_ED25519_SUFFIX) { diff --git a/src/rpc/stream.rs b/src/rpc/stream.rs index 731b61a..533bcbd 100644 --- a/src/rpc/stream.rs +++ b/src/rpc/stream.rs @@ -78,7 +78,7 @@ impl Header { 1 => BodyType::UTF8, 2 => BodyType::JSON, _ => { - warn!("rare message: {}", String::from_utf8_lossy(bytes)); + warn!(target: "ssb", "rare message: {}", String::from_utf8_lossy(bytes)); return Err(Error::InvalidBodyType(body_type_value)); } };