diff --git a/Cargo.toml b/Cargo.toml index a476afa4..04c68278 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -27,7 +27,7 @@ vendored = ["anoncreds-clsignatures/openssl_vendored"] w3c = ["base64", "chrono", "rmp-serde"] [dependencies] -anoncreds-clsignatures = { git = "https://github.com/DSRCorporation/anoncreds-clsignatures-rs.git", branch = "feature/encoding"} +anoncreds-clsignatures = "0.3.0" bs58 = "0.4.0" env_logger = { version = "0.9.3", optional = true } ffi-support = { version = "0.4.0", optional = true } diff --git a/src/data_types/w3c/credential_proof.rs b/src/data_types/w3c/credential_proof.rs index 5116ec4c..7968d7e7 100644 --- a/src/data_types/w3c/credential_proof.rs +++ b/src/data_types/w3c/credential_proof.rs @@ -1,5 +1,5 @@ +use crate::data_types::w3c::encoded_object::EncodedObject; use crate::data_types::w3c::presentation_proof::CredentialPresentationProof; -use crate::utils::encoded_object::EncodedObject; use crate::Result; use anoncreds_clsignatures::{ CredentialSignature as CLCredentialSignature, RevocationRegistry, SignatureCorrectnessProof, diff --git a/src/utils/encoded_object.rs b/src/data_types/w3c/encoded_object.rs similarity index 52% rename from src/utils/encoded_object.rs rename to src/data_types/w3c/encoded_object.rs index cad5323c..a624a2f7 100644 --- a/src/utils/encoded_object.rs +++ b/src/data_types/w3c/encoded_object.rs @@ -23,3 +23,27 @@ pub trait EncodedObject { Ok(json) } } + +#[cfg(test)] +mod tests { + use super::*; + + #[derive(Debug, PartialEq, Serialize, Deserialize)] + struct TestObject { + type_: String, + value: i32, + } + + impl EncodedObject for TestObject {} + + #[test] + fn encoded_object_encode_decode_works() { + let obj = TestObject { + type_: "Test".to_string(), + value: 1, + }; + let encoded = obj.encode().unwrap(); + let decoded = TestObject::decode(&encoded).unwrap(); + assert_eq!(obj, decoded) + } +} diff --git a/src/data_types/w3c/mod.rs b/src/data_types/w3c/mod.rs index 448e3a01..32e22475 100644 --- a/src/data_types/w3c/mod.rs +++ b/src/data_types/w3c/mod.rs @@ -2,6 +2,7 @@ pub mod constants; /// AnonCreds W3C Credentials definition pub mod credential; pub mod credential_proof; +pub mod encoded_object; pub mod one_or_many; /// AnonCreds W3C Presentation definition pub mod presentation; diff --git a/src/data_types/w3c/presentation_proof.rs b/src/data_types/w3c/presentation_proof.rs index 1bd00a4e..051cfa3e 100644 --- a/src/data_types/w3c/presentation_proof.rs +++ b/src/data_types/w3c/presentation_proof.rs @@ -1,5 +1,5 @@ use crate::data_types::pres_request::{PredicateInfo, PredicateTypes}; -use crate::utils::encoded_object::EncodedObject; +use crate::data_types::w3c::encoded_object::EncodedObject; use crate::Result; use anoncreds_clsignatures::{AggregatedProof, SubProof}; use std::collections::HashSet; diff --git a/src/services/w3c/credential_conversion.rs b/src/services/w3c/credential_conversion.rs index a74681f7..74fcbb30 100644 --- a/src/services/w3c/credential_conversion.rs +++ b/src/services/w3c/credential_conversion.rs @@ -251,12 +251,12 @@ mod tests { use crate::data_types::issuer_id::IssuerId; use crate::data_types::schema::SchemaId; use crate::data_types::w3c::constants::{ANONCREDS_CONTEXTS, ANONCREDS_CREDENTIAL_TYPES}; + use crate::data_types::w3c::encoded_object::EncodedObject; use crate::data_types::w3c::one_or_many::OneOrMany; use crate::types::{ AttributeNames, CredentialDefinitionConfig, CredentialValues, MakeCredentialValues, SignatureType, }; - use crate::utils::encoded_object::EncodedObject; use crate::{issuer, ErrorKind}; use anoncreds_clsignatures::{ CredentialSignature as CLCredentialSignature, diff --git a/src/utils/mod.rs b/src/utils/mod.rs index a34e9eec..9931f1d0 100644 --- a/src/utils/mod.rs +++ b/src/utils/mod.rs @@ -6,9 +6,6 @@ pub mod base58; #[cfg(feature = "w3c")] pub mod base64; -#[cfg(feature = "w3c")] -pub mod encoded_object; - pub mod hash; pub mod query;