Releases: cipherstash/cipherstash-dynamodb
Releases · cipherstash/cipherstash-dynamodb
v0.8.2
v0.8.1
v0.8.0
What's Changed
- Encrypt with by @coderdan in #77
- Bumped version to 0.8.0 by @coderdan in #79
- Bumped cipherstash-dynamodb-derive to 0.8.0 and updated dep by @coderdan in #80
Derive macros
Adds support for custom field functions so that arbitrary types can be added to Unsealed and encrypted.
For example, to handle a field with a BTreeMap:
#[derive(Debug, Clone, PartialEq, Searchable, Encryptable, Decryptable, Identifiable)]
struct Test {
    #[partition_key]
    pub pk: String,
    #[sort_key]
    pub sk: String,
    pub name: String,
    pub age: i16,
    #[cipherstash(plaintext)]
    pub tag: String,
    #[cipherstash(encryptable_with = put_attrs, decryptable_with = get_attrs)]
    pub attrs: BTreeMap<String, String>,
}
fn put_attrs(unsealed: &mut Unsealed, attrs: BTreeMap<String, String>) {
    attrs.into_iter().for_each(|(k, v)| {
        unsealed.add_protected_map_field("attrs", k, Plaintext::from(v));
    })
}
fn get_attrs<T>(unsealed: &mut Unsealed) -> Result<T, SealError>
where
    T: FromIterator<(String, String)>,
{
    unsealed
        .take_protected_map("attrs")
        .ok_or(TypeParseError("attrs".to_string()))?
        .into_iter()
        .map(|(k, v)| {
            TryFromPlaintext::try_from_plaintext(v)
                .map(|v| (k, v))
                .map_err(SealError::from)
        })
        .collect()
}Full Changelog: v0.7.4...v0.8.0
cipherstash-dynamodb-derive-v0.8.0
v0.7.4
v0.7.3
What's Changed
- Fix bug in unseal_all where it will panic if there is no protected_at… by @nicklaswj in #67
- Bumped cipherstash-dynamodb to 0.7.3 by @coderdan in #73
Full Changelog: v0.7.2...v0.7.3
v0.7.2
v0.7.1
What's Changed
- Build fixes by @coderdan in #57
- Add Identifiable and new API by @bennetthardwick in #58
- Point to a license file that exists by @auxesis in #59
- Support loading Option from missing attributes by @bennetthardwick in #61
- Add helper functions to Prepare*structsPreparedQueryby @nicklaswj in #60
- Add +Send bounds to enable use with tokio by @rosscanning in #62
- Fixed issue where value didn't live long enough by @coderdan in #65
- Bumped version to 0.7.1 by @coderdan in #66
- Updated deps, bumped version by @coderdan in #68
- Updated lockfile by @coderdan in #69
- Pull cipherstash-dynamodb-derive from crates by @coderdan in #70
New Contributors
- @auxesis made their first contribution in #59
- @rosscanning made their first contribution in #62
Full Changelog: v0.2.1...v0.7.1
cipherstash-dynamodb-derive-v0.7.1
What's Changed
- Build fixes by @coderdan in #57
- [WIP] Add Identifiable and new API by @bennetthardwick in #58
- Point to a license file that exists by @auxesis in #59
- Support loading Option from missing attributes by @bennetthardwick in #61
- Add helper functions to Prepare*structsPreparedQueryby @nicklaswj in #60
- Add +Send bounds to enable use with tokio by @rosscanning in #62
- Fixed issue where value didn't live long enough by @coderdan in #65
- Bumped version to 0.7.1 by @coderdan in #66
- Updated deps, bumped version by @coderdan in #68
- Updated lockfile by @coderdan in #69
New Contributors
- @auxesis made their first contribution in #59
- @rosscanning made their first contribution in #62
Full Changelog: https://github.com/cipherstash/cipherstash-dynamodb/commits/cipherstash-dynamodb-derive-v0.7.1
v0.2.1
What's Changed
- Update deps vendored dependencies in #24
- Update tests @bennetthardwick in #24
- Add CI by @bennetthardwick in #20
- Conversion from/to Plaintext and conversion from/to TableAttribute by @nicklaswj in #25
New Contributors
- @nicklaswj made their first contribution in #25
Full Changelog: v0.2.0...v0.2.1