[−][src]Crate encon
Encon is an optionally-encrypted config format, built on top of JSON. A mix of encrypted and plain fields, and support for encrypting arbitrary JSON values make it very flexible.
Example
use serde_json::json; use encon::{Password, Map, Encryptable}; let pass = Password::new("strongpassword"); let mut map = Map::new(); map.insert("foo", Encryptable::Plain("Foo".into())); map.insert("bar", Encryptable::Plain("Bar".into())); map.get_mut(&"foo".to_owned()).unwrap().intend_encrypted(); assert_eq!(map.get(&"foo".to_owned()).unwrap().is_encrypted(), false); assert_eq!(map.get(&"bar".to_owned()).unwrap().is_encrypted(), false); map.apply_all_intents(&pass).unwrap(); assert_eq!(map.get(&"foo".to_owned()).unwrap().is_encrypted(), true); assert_eq!(map.get(&"bar".to_owned()).unwrap().is_encrypted(), false); let json = map.to_json_pretty().unwrap(); let mut map2: Map = serde_json::from_str(&json).unwrap(); assert_eq!(map2.get(&"foo".to_owned()).unwrap().is_encrypted(), true); assert_eq!(map2.get(&"bar".to_owned()).unwrap().is_encrypted(), false); let value = map2.get_mut(&"foo".to_owned()).unwrap() .to_decrypted(&pass).unwrap() .as_plain().unwrap().clone(); assert_eq!(value, json!("Foo"));
Modules
legacy |
Structs
Map | Represents a mapping of string keys to |
Password | Represents an encryption password, and contains the low level encrypt/decrypt operations on lists of bytes. |
PlainMap | |
WithIntent | A wrapper around |
Enums
DecryptError | An error that may arise during decryption. |
EnconError | High level error enum for when a single error type like |
EncryptError | An error that may arise during encryption. Generally it's expected that encryption doesn't fail. |
Encryptable | A value that can either be encrypted or plain, functionality to transition between the two states, and a pretty serde representation. In either variant, it represents an arbitrary JSON value. |
EncryptableKind | Pairs with |
MapToJsonError | An error arising from converting a |
Constants
SIGNATURE |
Functions
init |
|
string | Shorthand for creating an |