IronCoreLabs / ironoxide

Rust SDK for IronCore Privacy Platform
https://docs.rs/ironoxide
GNU Affero General Public License v3.0
10 stars 3 forks source link

Deserialization error in DocumentMetadataResult without permission to decrypt #239

Open giarc3 opened 3 years ago

giarc3 commented 3 years ago

When trying to get the metadata of a document you don't have permission to decrypt, you get an error from serde: serde error was: invalid type: null, expected struct TransformedEncryptedValue. This field should be optional for deserialization.

Test made to show issue:

// create a user
let sdk = initialize_sdk().await?;
// create a group
let group = sdk.group_create(&GroupCreateOpts::default()).await?;
// encrypt a document to the group, not to self
let doc_result = sdk
    .document_encrypt(
        &[0u8; 64],
        &DocumentEncryptOpts::with_explicit_grants(None, None, false, vec![group.id().into()]),
    )
    .await?;
// revoke group's access to the document
sdk.document_revoke_access(doc_result.id(), &vec![group.id().into()])
    .await?;
// attempt to get metadata of the document
sdk.document_get_metadata(doc_result.id()).await?;