aboutsummaryrefslogtreecommitdiff
path: root/lockchain-crypto
diff options
context:
space:
mode:
authorKatharina Sabel <katharina.sabel@asquera.de>2018-05-07 23:39:10 +0200
committerKatharina Sabel <katharina.sabel@asquera.de>2018-05-07 23:39:10 +0200
commit3c4030f8fd00c6445731bb102169b4b6b5d6d70e (patch)
tree0bed36e056d30527105d85eee4afc6e3a99af4e4 /lockchain-crypto
parent94c58c0060d243c162b07dd002cb779aec44e153 (diff)
Shuffling some stuff around and implementing some traits
Diffstat (limited to 'lockchain-crypto')
-rw-r--r--lockchain-crypto/Cargo.toml6
-rw-r--r--lockchain-crypto/src/lib.rs45
2 files changed, 46 insertions, 5 deletions
diff --git a/lockchain-crypto/Cargo.toml b/lockchain-crypto/Cargo.toml
index b598a42..b028bd1 100644
--- a/lockchain-crypto/Cargo.toml
+++ b/lockchain-crypto/Cargo.toml
@@ -4,3 +4,9 @@ version = "0.1.0"
authors = ["Katharina Fey <kookie@spacekookie.de>"]
[dependencies]
+lockchain-core = { path = "../lockchain-core" }
+serde_derive = "1.0"
+serde = "1.0"
+
+# Cryptography
+miscreant = "^0.3"
diff --git a/lockchain-crypto/src/lib.rs b/lockchain-crypto/src/lib.rs
index 31e1bb2..5648106 100644
--- a/lockchain-crypto/src/lib.rs
+++ b/lockchain-crypto/src/lib.rs
@@ -1,7 +1,42 @@
-#[cfg(test)]
-mod tests {
- #[test]
- fn it_works() {
- assert_eq!(2 + 2, 4);
+//!
+
+#[macro_use]
+extern crate serde_derive;
+extern crate serde;
+
+extern crate lockchain_core as lcc;
+
+use lcc::{Payload, EncryptedBody};
+use lcc::traits::{Body, AutoEncoder, Base64AutoEncoder, Encryption};
+
+use std::collections::BTreeMap;
+
+#[derive(Serialize, Deserialize)]
+pub struct DataBody {
+ tree: BTreeMap<String, Payload>,
+}
+
+impl AutoEncoder for DataBody {}
+
+impl Body for DataBody {
+ fn get_field(&self, key: &str) -> Option<&Payload> {
+ self.tree.get(key).as_ref()?
+ }
+
+ fn set_field(&mut self, key: &str, value: Payload) -> Option<()> {
+ self.tree.insert(key, value);
+ Some(())
+ }
+
+ fn flatten(&mut self) -> Option<()> {
+ None
}
}
+
+impl Encryption for DataBody {
+ fn encrypt(&mut self) -> EncryptedBody {
+ EncryptedBody {
+ cipher: self.encode()
+ }
+ }
+} \ No newline at end of file