From c145b5b27085c6ced8608b47d50fd9ddffe07f0f Mon Sep 17 00:00:00 2001 From: "artem.ivanov" Date: Fri, 30 Jun 2017 11:21:06 +0300 Subject: [PATCH 01/23] Updated Types --- src/api/anoncreds.rs | 9 +++- src/services/anoncreds/prover.rs | 71 ++++++++++++++++++-------------- src/services/anoncreds/types.rs | 34 +++++++++------ tests/ledger.rs | 16 ++++--- 4 files changed, 79 insertions(+), 51 deletions(-) diff --git a/src/api/anoncreds.rs b/src/api/anoncreds.rs index c42a493f4a..e39a29bcd0 100644 --- a/src/api/anoncreds.rs +++ b/src/api/anoncreds.rs @@ -145,7 +145,9 @@ pub extern fn sovrin_issuer_create_and_store_revoc_reg(command_handle: i32, /// "claim": , /// "signature": , /// "claim_def_seq_no": string, -/// "revoc_reg_seq_no", string +/// "revoc_reg_seq_no", string, +/// "issuer_did", string, +/// "schema_seq_no", string, /// } /// /// #Errors @@ -449,6 +451,7 @@ pub extern fn sovrin_prover_create_and_store_claim_req(command_handle: i32, /// "schema_seq_no": string, /// "claim_def_seq_no": string, /// "revoc_reg_seq_no", string +/// "issuer_did", string /// } /// cb: Callback that takes command result as parameter. /// @@ -541,6 +544,8 @@ pub extern fn sovrin_prover_get_claims(command_handle: i32, /// wallet_handle: wallet handler (created by open_wallet). /// proof_request_json: proof request json /// { +/// "name": string, +/// "version": string, /// "nonce": string, /// "requested_attr1_uuid": , /// "requested_attr2_uuid": , @@ -805,4 +810,4 @@ pub extern fn sovrin_verifier_verify_proof(command_handle: i32, )))); result_to_err_code!(result) -} \ No newline at end of file +} diff --git a/src/services/anoncreds/prover.rs b/src/services/anoncreds/prover.rs index be8377cb1a..29fbc93584 100644 --- a/src/services/anoncreds/prover.rs +++ b/src/services/anoncreds/prover.rs @@ -196,7 +196,10 @@ impl Prover { for (uuid, attribute_info) in requested_attrs { let claims_for_attribute: Vec = claims.iter().cloned() - .filter(|claim| claim.attrs.contains_key(&attribute_info.name) && claim.schema_seq_no == attribute_info.schema_seq_no) + .filter(|claim| + claim.attrs.contains_key(&attribute_info.name) && + if attribute_info.schema_seq_no.is_some() { claim.schema_seq_no == attribute_info.schema_seq_no.unwrap() } else { true } && + if attribute_info.claim_def_seq_no.is_some() { claim.claim_def_seq_no == attribute_info.claim_def_seq_no.unwrap() } else { true }) .collect(); found_attributes.insert(uuid, claims_for_attribute); @@ -207,7 +210,9 @@ impl Prover { for claim in claims.iter() { if let Some(attribute_value) = claim.attrs.get(&predicate.attr_name) { - if Prover::_attribute_satisfy_predicate(&predicate, attribute_value)? { + if Prover::_attribute_satisfy_predicate(&predicate, attribute_value)? && + if predicate.schema_seq_no.is_some() { claim.schema_seq_no == predicate.schema_seq_no.unwrap() } else { true } && + if predicate.claim_def_seq_no.is_some() { claim.claim_def_seq_no == predicate.claim_def_seq_no.unwrap() } else { true } { claims_for_predicate.push(claim.clone()); } } @@ -232,11 +237,11 @@ impl Prover { } fn _prepare_proof_claims(proof_req: &ProofRequestJson, - schemas: &HashMap, - claim_defs: &HashMap, - revoc_regs: &HashMap, - requested_claims: &RequestedClaimsJson, - claims: HashMap) -> Result, CommonError> { + schemas: &HashMap, + claim_defs: &HashMap, + revoc_regs: &HashMap, + requested_claims: &RequestedClaimsJson, + claims: HashMap) -> Result, CommonError> { let mut proof_claims: HashMap = HashMap::new(); for (claim_uuid, claim) in claims { @@ -411,6 +416,8 @@ impl Prover { let claim_proof = ClaimProof::new(proof, proof_claim.claim_json.claim_def_seq_no, + proof_claim.claim_json.schema_seq_no, + proof_claim.claim_json.issuer_did.clone(), proof_claim.claim_json.revoc_reg_seq_no); proofs.insert(proof_claim_uuid.clone(), claim_proof); @@ -1076,7 +1083,7 @@ mod find_claims_tests { #[test] fn find_claims_works_for_revealed_attrs_only_with_same_schema() { let mut requested_attrs: HashMap = HashMap::new(); - requested_attrs.insert("1".to_string(), AttributeInfo::new(1, "name".to_string())); + requested_attrs.insert("1".to_string(), AttributeInfo::new( "name".to_string(), Some(1), None)); let requested_predicates: HashMap = HashMap::new(); @@ -1103,7 +1110,7 @@ mod find_claims_tests { #[test] fn find_claims_works_for_revealed_attrs_only_with_other_schema() { let mut requested_attrs: HashMap = HashMap::new(); - requested_attrs.insert("1".to_string(), AttributeInfo::new(2, "name".to_string())); + requested_attrs.insert("1".to_string(), AttributeInfo::new("name".to_string(),Some(1), None)); let requested_predicates: HashMap = HashMap::new(); @@ -1127,7 +1134,7 @@ mod find_claims_tests { fn find_claims_works_for_predicate_satisfy() { let requested_attrs: HashMap = HashMap::new(); let mut requested_predicates: HashMap = HashMap::new(); - requested_predicates.insert("1".to_string(), Predicate::new("age".to_string(), PredicateType::GE, 18)); + requested_predicates.insert("1".to_string(), Predicate::new("age".to_string(), PredicateType::GE, 18, None, None)); let claims = vec![ mocks::get_gvt_claim_info(), @@ -1153,7 +1160,7 @@ mod find_claims_tests { fn find_claims_works_for_does_not_satisfy_predicate() { let requested_attrs: HashMap = HashMap::new(); let mut requested_predicates: HashMap = HashMap::new(); - requested_predicates.insert("1".to_string(), Predicate::new("age".to_string(), PredicateType::GE, 38)); + requested_predicates.insert("1".to_string(), Predicate::new("age".to_string(), PredicateType::GE, 38, None, None)); let claims = vec![ mocks::get_gvt_claim_info(), @@ -1174,8 +1181,8 @@ mod find_claims_tests { #[test] fn find_claims_works_for_multiply_revealed_attrs() { let mut requested_attrs: HashMap = HashMap::new(); - requested_attrs.insert("1".to_string(), AttributeInfo::new(1, "name".to_string())); - requested_attrs.insert("2".to_string(), AttributeInfo::new(2, "status".to_string())); + requested_attrs.insert("1".to_string(), AttributeInfo::new("name".to_string(), Some(1), None)); + requested_attrs.insert("2".to_string(), AttributeInfo::new("status".to_string(), Some(2), None)); let requested_predicates: HashMap = HashMap::new(); @@ -1210,8 +1217,8 @@ mod find_claims_tests { fn find_claims_works_for_multiply_satisfy_predicates() { let requested_attrs: HashMap = HashMap::new(); let mut requested_predicates: HashMap = HashMap::new(); - requested_predicates.insert("1".to_string(), Predicate::new("age".to_string(), PredicateType::GE, 18)); - requested_predicates.insert("2".to_string(), Predicate::new("period".to_string(), PredicateType::GE, 8)); + requested_predicates.insert("1".to_string(), Predicate::new("age".to_string(), PredicateType::GE, 18, None, None)); + requested_predicates.insert("2".to_string(), Predicate::new("period".to_string(), PredicateType::GE, 8, None, None)); let claims = vec![ mocks::get_gvt_claim_info(), @@ -1243,12 +1250,12 @@ mod find_claims_tests { #[test] fn find_claims_works_for_multiply_attrs_and_satisfy_predicates() { let mut requested_attrs: HashMap = HashMap::new(); - requested_attrs.insert("1".to_string(), AttributeInfo::new(1, "name".to_string())); - requested_attrs.insert("2".to_string(), AttributeInfo::new(2, "status".to_string())); + requested_attrs.insert("1".to_string(), AttributeInfo::new("name".to_string(), Some(1), None)); + requested_attrs.insert("2".to_string(), AttributeInfo::new("status".to_string(), Some(2), None)); let mut requested_predicates: HashMap = HashMap::new(); - requested_predicates.insert("1".to_string(), Predicate::new("age".to_string(), PredicateType::GE, 18)); - requested_predicates.insert("2".to_string(), Predicate::new("period".to_string(), PredicateType::GE, 8)); + requested_predicates.insert("1".to_string(), Predicate::new("age".to_string(), PredicateType::GE, 18, None, None)); + requested_predicates.insert("2".to_string(), Predicate::new("period".to_string(), PredicateType::GE, 8, None, None)); let claims = vec![ mocks::get_gvt_claim_info(), @@ -1279,7 +1286,7 @@ mod find_claims_tests { #[test] fn find_claims_works_for_several_matches_for_attribute() { let mut requested_attrs: HashMap = HashMap::new(); - requested_attrs.insert("1".to_string(), AttributeInfo::new(1, "name".to_string())); + requested_attrs.insert("1".to_string(), AttributeInfo::new("name".to_string(), Some(1), None)); let requested_predicates: HashMap = HashMap::new(); @@ -1306,7 +1313,7 @@ mod find_claims_tests { #[test] fn find_claims_works_for_no_matches_for_attribute() { let mut requested_attrs: HashMap = HashMap::new(); - requested_attrs.insert("1".to_string(), AttributeInfo::new(1, "test".to_string())); + requested_attrs.insert("1".to_string(), AttributeInfo::new("test".to_string(), Some(1), None)); let requested_predicates: HashMap = HashMap::new(); @@ -1331,7 +1338,7 @@ pub mod mocks { use super::*; use services::anoncreds::issuer; use services::anoncreds::verifier; - use services::anoncreds::types::{ClaimDefinitionData,Witness}; + use services::anoncreds::types::{ClaimDefinitionData, Witness}; use std::iter::FromIterator; use services::anoncreds::types::SignatureTypes; @@ -1361,11 +1368,11 @@ pub mod mocks { } pub fn get_gvt_predicate() -> Predicate { - Predicate::new("age".to_string(), PredicateType::GE, 18) + Predicate::new("age".to_string(), PredicateType::GE, 18, None, None) } pub fn get_xyz_predicate() -> Predicate { - Predicate::new("period".to_string(), PredicateType::GE, 8) + Predicate::new("period".to_string(), PredicateType::GE, 8, None, None) } pub fn get_gvt_primary_claim() -> PrimaryClaim { @@ -1558,13 +1565,13 @@ pub mod mocks { pub fn get_proof_req_json() -> ProofRequestJson { let mut requested_attrs: HashMap = HashMap::new(); - requested_attrs.insert("1".to_string(), AttributeInfo::new(1, "name".to_string())); - requested_attrs.insert("2".to_string(), AttributeInfo::new(2, "status".to_string())); - requested_attrs.insert("3".to_string(), AttributeInfo::new(1, "sex".to_string())); + requested_attrs.insert("1".to_string(), AttributeInfo::new("name".to_string(), Some(1), None)); + requested_attrs.insert("2".to_string(), AttributeInfo::new("status".to_string(), Some(2), None)); + requested_attrs.insert("3".to_string(), AttributeInfo::new("sex".to_string(), Some(1), None)); let mut requested_predicates: HashMap = HashMap::new(); - requested_predicates.insert("1".to_string(), Predicate::new("age".to_string(), PredicateType::GE, 18)); - requested_predicates.insert("2".to_string(), Predicate::new("height".to_string(), PredicateType::GE, 180)); + requested_predicates.insert("1".to_string(), Predicate::new("age".to_string(), PredicateType::GE, 18, None, None)); + requested_predicates.insert("2".to_string(), Predicate::new("height".to_string(), PredicateType::GE, 180, None, None)); let nonce = BigNumber::from_dec("123432421212").unwrap(); @@ -1576,7 +1583,7 @@ pub mod mocks { } pub fn get_gvt_claim_definition() -> ClaimDefinition { - let claim_def_data = ClaimDefinitionData ::new(issuer::mocks::get_pk(), None); + let claim_def_data = ClaimDefinitionData::new(issuer::mocks::get_pk(), None); ClaimDefinition { schema_seq_no: 1, claim_def_seq_no: None, @@ -1586,7 +1593,7 @@ pub mod mocks { } pub fn get_xyz_claim_definition() -> ClaimDefinition { - let claim_def_data = ClaimDefinitionData ::new(issuer::mocks::get_pk(), None); + let claim_def_data = ClaimDefinitionData::new(issuer::mocks::get_pk(), None); ClaimDefinition { schema_seq_no: 2, claim_def_seq_no: None, @@ -1643,4 +1650,4 @@ pub mod mocks { issuer_did: "did".to_string() } } -} \ No newline at end of file +} diff --git a/src/services/anoncreds/types.rs b/src/services/anoncreds/types.rs index 1f362a9b34..156dd88895 100644 --- a/src/services/anoncreds/types.rs +++ b/src/services/anoncreds/types.rs @@ -95,15 +95,17 @@ impl AggregatedProof { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct AttributeInfo { - pub schema_seq_no: i32, - pub name: String + pub name: String, + pub schema_seq_no: Option, + pub claim_def_seq_no: Option } impl AttributeInfo { - pub fn new(schema_seq_no: i32, name: String) -> AttributeInfo { + pub fn new(name: String, schema_seq_no: Option, claim_def_seq_no: Option) -> AttributeInfo { AttributeInfo { + name: name, schema_seq_no: schema_seq_no, - name: name + claim_def_seq_no: claim_def_seq_no } } } @@ -220,16 +222,18 @@ impl<'a> JsonDecodable<'a> for ClaimRequest {} #[derive(Debug, Serialize, Deserialize)] pub struct ClaimProof { pub proof: Proof, - pub claim_def_seq_no: i32, - pub revoc_reg_seq_no: Option + pub revoc_reg_seq_no: Option, + pub schema_seq_no: i32, + pub issuer_did: String } impl ClaimProof { - pub fn new(proof: Proof, claim_def_seq_no: i32, revoc_reg_seq_no: Option) -> ClaimProof { + pub fn new(proof: Proof, claim_def_seq_no: i32, schema_seq_no: i32, issuer_did: String, revoc_reg_seq_no: Option) -> ClaimProof { ClaimProof { proof: proof, - claim_def_seq_no: claim_def_seq_no, - revoc_reg_seq_no: revoc_reg_seq_no + schema_seq_no: schema_seq_no, + revoc_reg_seq_no: revoc_reg_seq_no, + issuer_did: issuer_did } } } @@ -362,7 +366,9 @@ pub struct ClaimJson { pub claim_def_seq_no: i32, pub revoc_reg_seq_no: Option, pub schema_seq_no: i32, + #[serde(rename = "claims_signature")] pub signature: ClaimSignature, + #[serde(rename = "identifier")] pub issuer_did: String } @@ -636,15 +642,19 @@ impl<'a> JsonDecodable<'a> for PublicKey {} pub struct Predicate { pub attr_name: String, pub p_type: PredicateType, - pub value: i32 + pub value: i32, + pub schema_seq_no: Option, + pub claim_def_seq_no: Option } impl Predicate { - pub fn new(attr_name: String, p_type: PredicateType, value: i32) -> Predicate { + pub fn new(attr_name: String, p_type: PredicateType, value: i32, schema_seq_no: Option, claim_def_seq_no: Option) -> Predicate { Predicate { attr_name: attr_name, p_type: p_type, - value: value + value: value, + schema_seq_no: schema_seq_no, + claim_def_seq_no: claim_def_seq_no } } } diff --git a/tests/ledger.rs b/tests/ledger.rs index c61af68c70..1a1ec8fc8d 100644 --- a/tests/ledger.rs +++ b/tests/ledger.rs @@ -166,18 +166,24 @@ mod high_cases { #[test] #[cfg(feature = "local_nodes_pool")] - fn sovrin_sign_and_submit_request_works() { + fn sovrin_sign_and_submit_request_works_asas() { TestUtils::cleanup_storage(); let pool_name = "sovrin_sign_and_submit_request_works"; let pool_handle = PoolUtils::create_and_open_pool_ledger_config(pool_name).unwrap(); let wallet_handle = WalletUtils::create_and_open_wallet(pool_name, "wallet1", "default").unwrap(); - let (my_did, _, _) = SignusUtils::create_my_did(wallet_handle, r#"{"seed":"00000000000000000000000000000My1"}"#).unwrap(); - let (trustee_did, _, _) = SignusUtils::create_my_did(wallet_handle, r#"{"seed":"000000000000000000000000Trustee1","cid":true}"#).unwrap(); + let (did, _, _) = SignusUtils::create_my_did(wallet_handle, r#"{"seed":"000000000000000000000000Trustee1","cid":true}"#).unwrap(); - let nym_request = LedgerUtils::build_nym_request(&trustee_did.clone(), &my_did.clone(), None, None, None).unwrap(); - LedgerUtils::sign_and_submit_request(pool_handle, wallet_handle, &trustee_did, &nym_request).unwrap(); + let request = format!(r#"{{ + "reqId":1491566332010860, + "identifier":"{}", + "operation":{{ + "type":"106" + }}}}"#, did); + + let resp = LedgerUtils::sign_and_submit_request(pool_handle, wallet_handle, &did, &request).unwrap(); + println!("{:?}", resp); TestUtils::cleanup_storage(); } From d62dccae15c4a866417264307b4639831e02d6f4 Mon Sep 17 00:00:00 2001 From: "artem.ivanov" Date: Tue, 4 Jul 2017 11:16:16 +0300 Subject: [PATCH 02/23] Cross compability changes --- include/sovrin_ledger.h | 25 ++++++ src/api/ledger.rs | 48 ++++++++-- src/commands/anoncreds/issuer.rs | 4 +- src/commands/anoncreds/prover.rs | 2 +- src/commands/ledger.rs | 17 ++++ src/services/anoncreds/issuer.rs | 7 +- src/services/anoncreds/prover.rs | 14 +-- src/services/anoncreds/types.rs | 25 ++++-- src/services/ledger/constants.rs | 1 + src/services/ledger/mod.rs | 30 ++++++- src/services/ledger/types.rs | 21 ++++- tests/anoncreds.rs | 150 +++++++++++++++++++++---------- tests/demo.rs | 4 +- tests/utils/anoncreds.rs | 5 +- tests/utils/types.rs | 2 +- 15 files changed, 273 insertions(+), 82 deletions(-) diff --git a/include/sovrin_ledger.h b/include/sovrin_ledger.h index 79cedb5ccb..9352087db3 100644 --- a/include/sovrin_ledger.h +++ b/include/sovrin_ledger.h @@ -323,6 +323,31 @@ extern "C" { sovrin_error_t err, const char* request_json) ); + + /// Builds a NODE request. + /// + /// #Params + /// command_handle: command handle to map callback to caller context. + /// submitter_did: Id of Identity stored in secured Wallet. + /// target_did: Id of Identity stored in secured Wallet. + /// data: id of a target NYM record + /// cb: Callback that takes command result as parameter. + /// + /// #Returns + /// Request result as json. + /// + /// #Errors + /// Common* + + + extern sovrin_error_t sovrin_build_get_txn_request(sovrin_handle_t command_handle, + const char * submitter_did, + i32 data, + + void (*cb)(sovrin_handle_t xcommand_handle, + sovrin_error_t err, + const char* request_json) + ); #ifdef __cplusplus } diff --git a/src/api/ledger.rs b/src/api/ledger.rs index f1068b500d..ba7c0e833b 100644 --- a/src/api/ledger.rs +++ b/src/api/ledger.rs @@ -32,12 +32,12 @@ use self::libc::c_char; /// Crypto* #[no_mangle] pub extern fn sovrin_sign_and_submit_request(command_handle: i32, - pool_handle: i32, - wallet_handle: i32, - submitter_did: *const c_char, - request_json: *const c_char, - cb: Option) -> ErrorCode { + pool_handle: i32, + wallet_handle: i32, + submitter_did: *const c_char, + request_json: *const c_char, + cb: Option) -> ErrorCode { check_useful_c_str!(submitter_did, ErrorCode::CommonInvalidParam3); check_useful_c_str!(request_json, ErrorCode::CommonInvalidParam4); check_useful_c_callback!(cb, ErrorCode::CommonInvalidParam5); @@ -516,5 +516,41 @@ pub extern fn sovrin_build_node_request(command_handle: i32, }) ))); + result_to_err_code!(result) +} + +/// Builds a GET_TXN request. +/// +/// #Params +/// command_handle: command handle to map callback to caller context. +/// submitter_did: Id of Identity stored in secured Wallet. +/// data: seq_no of transaction in ledger +/// cb: Callback that takes command result as parameter. +/// +/// #Returns +/// Request result as json. +/// +/// #Errors +/// Common* +#[no_mangle] +pub extern fn sovrin_build_get_txn_request(command_handle: i32, + submitter_did: *const c_char, + data: i32, + cb: Option) -> ErrorCode { + check_useful_c_str!(submitter_did, ErrorCode::CommonInvalidParam2); + check_useful_c_callback!(cb, ErrorCode::CommonInvalidParam4); + + let result = CommandExecutor::instance() + .send(Command::Ledger(LedgerCommand::BuildGetTxnRequest( + submitter_did, + data, + Box::new(move |result| { + let (err, request_json) = result_to_err_code_1!(result, String::new()); + let request_json = CStringUtils::string_to_cstring(request_json); + cb(command_handle, err, request_json.as_ptr()) + }) + ))); + result_to_err_code!(result) } \ No newline at end of file diff --git a/src/commands/anoncreds/issuer.rs b/src/commands/anoncreds/issuer.rs index fa9925c8ad..874172c27d 100644 --- a/src/commands/anoncreds/issuer.rs +++ b/src/commands/anoncreds/issuer.rs @@ -211,7 +211,7 @@ impl IssuerCommandExecutor { .map_err(map_err_trace!()) .map_err(|err| CommonError::InvalidState(format!("Invalid claim_def_private_json: {}", err.to_string())))?; - if claim_def.data.public_key_revocation.is_some() && (revoc_reg_seq_no.is_none() || claim_req_json.claim_request.ur.is_none()) { + if claim_def.data.public_key_revocation.is_some() && (revoc_reg_seq_no.is_none() || claim_req_json.blinded_ms.ur.is_none()) { return Err(SovrinError::AnoncredsError(AnoncredsError::NotIssuedError( format!("Revocation Sequence Number and Claim_request.ur are required for this claim")))) } @@ -244,7 +244,7 @@ impl IssuerCommandExecutor { &claim_def_private, &revocation_registry, &revocation_registry_private, - &claim_req_json.claim_request, + &claim_req_json.blinded_ms, &attributes, user_revoc_index)?; diff --git a/src/commands/anoncreds/prover.rs b/src/commands/anoncreds/prover.rs index 66e2495579..fc2c7f1826 100644 --- a/src/commands/anoncreds/prover.rs +++ b/src/commands/anoncreds/prover.rs @@ -295,7 +295,7 @@ impl ProverCommandExecutor { &revocation_claim_init_data_json)?; } - let claim_request = ClaimRequestJson::new(claim_request, claim_offer.issuer_did, claim_offer.claim_def_seq_no); + let claim_request = ClaimRequestJson::new(claim_request, claim_offer.issuer_did, claim_offer.claim_def_seq_no, claim_offer.schema_seq_no); let claim_request_json = ClaimRequestJson::to_json(&claim_request) .map_err(map_err_trace!()) .map_err(|err| CommonError::InvalidState(format!("Invalid claim_request: {}", err.to_string())))?; diff --git a/src/commands/ledger.rs b/src/commands/ledger.rs index 9893dfd795..d3bc513869 100644 --- a/src/commands/ledger.rs +++ b/src/commands/ledger.rs @@ -84,6 +84,10 @@ pub enum LedgerCommand { String, // submitter did String, // target_did String, // data + Box) + Send>), + BuildGetTxnRequest( + String, // submitter did + i32, // data Box) + Send>) } @@ -177,6 +181,10 @@ impl LedgerCommandExecutor { info!(target: "ledger_command_executor", "BuildNodeRequest command received"); self.build_node_key_request(&submitter_did, &target_did, &data, cb); } + LedgerCommand::BuildGetTxnRequest(submitter_did, data, cb) => { + info!(target: "ledger_command_executor", "BuildGetTxnRequest command received"); + self.build_get_txn_request(&submitter_did, data, cb); + } }; } @@ -332,4 +340,13 @@ impl LedgerCommandExecutor { data ).map_err(|err| SovrinError::CommonError(err))) } + + fn build_get_txn_request(&self, + submitter_did: &str, + data: i32, + cb: Box) + Send>) { + cb(self.ledger_service.build_get_txn_request(submitter_did, + data + ).map_err(|err| SovrinError::CommonError(err))) + } } \ No newline at end of file diff --git a/src/services/anoncreds/issuer.rs b/src/services/anoncreds/issuer.rs index fe66139ca1..20465d5d7f 100644 --- a/src/services/anoncreds/issuer.rs +++ b/src/services/anoncreds/issuer.rs @@ -270,12 +270,7 @@ impl Issuer { info!(target: "anoncreds_service", "Issuer issue primary claim -> done"); - Ok(PrimaryClaim { - m2: context_attribute.clone()?, - a: a, - e: e, - v_prime: v_prime_prime - }) + Ok(PrimaryClaim::new(context_attribute.clone()?, a, e, v_prime_prime)) } fn _sign(public_key: &PublicKey, secret_key: &SecretKey, context_attribute: &BigNumber, diff --git a/src/services/anoncreds/prover.rs b/src/services/anoncreds/prover.rs index 29fbc93584..8cc7d10803 100644 --- a/src/services/anoncreds/prover.rs +++ b/src/services/anoncreds/prover.rs @@ -141,7 +141,7 @@ impl Prover { pub fn _init_primary_claim(claim: &RefCell, v_prime: &BigNumber) -> Result<(), CommonError> { let ref mut primary_claim = claim.borrow_mut().signature.primary_claim; - primary_claim.v_prime = v_prime.add(&primary_claim.v_prime)?; + primary_claim.v = v_prime.add(&primary_claim.v)?; Ok(()) } @@ -535,7 +535,7 @@ impl Prover { let large_e_start = BigNumber::from_dec(&LARGE_E_START.to_string())?; - let vprime = c1.v_prime.sub( + let vprime = c1.v.sub( &c1.e.mul(&r, Some(&mut ctx))? )?; @@ -896,15 +896,15 @@ mod tests { let claim_json = RefCell::new(mocks::get_gvt_claims_json()); let v_prime = BigNumber::from_dec("21337277489659209697972694275961549241988800625063594810959897509238282352238626810206496164796042921922944861660722790127270481494898810301213699637204250648485409496039792926329367175253071514098050800946366413356551955763141949136004248502185266508852158851178744042138131595587172830689293368213380666221485155781604582222397593802865783047420570234359112294991344669207835283314629238445531337778860979843672592610159700225195191155581629856994556889434019851156913688584355226534153997989337803825600096764199505457938355614863559831818213663754528231270325956208966779676675180767488950507044412716354924086945804065215387295334083509").unwrap(); - let old_value = claim_json.borrow().signature.primary_claim.v_prime.clone().unwrap(); + let old_value = claim_json.borrow().signature.primary_claim.v.clone().unwrap(); let res = Prover::_init_primary_claim(&claim_json, &v_prime); assert!(res.is_ok()); - assert_ne!(old_value, claim_json.borrow().signature.primary_claim.v_prime); + assert_ne!(old_value, claim_json.borrow().signature.primary_claim.v); let new_v = BigNumber::from_dec("6477858587997811893327035319417510316563341854132851390093281262022504586945336581881563055213337677056181844572991952555932751996898440671581814053127951224635658321050035511444973918938951286397608407154945420576869136257515796028414378962335588462012678546940230947218473631620847322671867296043124087586400291121388864996880108619720604815227218240238018894734106036749434566128263766145147938204864471079326020636108875736950439614174893113941785014290729562585035442317715573694490415783867707489645644928275501455034338736759260129329435713263029873859553709178436828106858314991461880152652981178848566237411834715936997680351679484278048175488999620056712097674305032686536393318931401622256070852825807510445941751166073917118721482407482663237596774153152864341413225983416965337899803365905987145336353882936").unwrap(); - assert_eq!(new_v, claim_json.borrow().signature.primary_claim.v_prime); + assert_eq!(new_v, claim_json.borrow().signature.primary_claim.v); } #[test] @@ -1110,7 +1110,7 @@ mod find_claims_tests { #[test] fn find_claims_works_for_revealed_attrs_only_with_other_schema() { let mut requested_attrs: HashMap = HashMap::new(); - requested_attrs.insert("1".to_string(), AttributeInfo::new("name".to_string(),Some(1), None)); + requested_attrs.insert("1".to_string(), AttributeInfo::new("name".to_string(),Some(3), None)); let requested_predicates: HashMap = HashMap::new(); @@ -1577,6 +1577,8 @@ pub mod mocks { ProofRequestJson { nonce: nonce, + name: "name".to_string(), + version: "version".to_string(), requested_attrs: requested_attrs, requested_predicates: requested_predicates } diff --git a/src/services/anoncreds/types.rs b/src/services/anoncreds/types.rs index 156dd88895..22434ddb48 100644 --- a/src/services/anoncreds/types.rs +++ b/src/services/anoncreds/types.rs @@ -146,17 +146,19 @@ impl<'a> JsonDecodable<'a> for ClaimOffer {} #[derive(Debug, Deserialize, Serialize)] pub struct ClaimRequestJson { - pub claim_request: ClaimRequest, + pub blinded_ms: ClaimRequest, pub issuer_did: String, - pub claim_def_seq_no: i32 + pub claim_def_seq_no: i32, + pub schema_seq_no: i32 } impl ClaimRequestJson { - pub fn new(claim_request: ClaimRequest, issuer_did: String, claim_def_seq_no: i32) -> ClaimRequestJson { + pub fn new(blinded_ms: ClaimRequest, issuer_did: String, claim_def_seq_no: i32, schema_seq_no: i32) -> ClaimRequestJson { ClaimRequestJson { - claim_request: claim_request, + blinded_ms: blinded_ms, issuer_did: issuer_did, - claim_def_seq_no: claim_def_seq_no + claim_def_seq_no: claim_def_seq_no, + schema_seq_no: schema_seq_no } } } @@ -664,16 +666,16 @@ pub struct PrimaryClaim { pub m2: BigNumber, pub a: BigNumber, pub e: BigNumber, - pub v_prime: BigNumber + pub v: BigNumber } impl PrimaryClaim { - pub fn new(m2: BigNumber, a: BigNumber, e: BigNumber, v_prime: BigNumber) -> PrimaryClaim { + pub fn new(m2: BigNumber, a: BigNumber, e: BigNumber, v: BigNumber) -> PrimaryClaim { PrimaryClaim { m2: m2, a: a, e: e, - v_prime: v_prime + v: v } } } @@ -918,15 +920,20 @@ impl<'a> JsonDecodable<'a> for ProofClaimsJson {} #[derive(Debug, Deserialize, Serialize)] pub struct ProofRequestJson { pub nonce: BigNumber, + pub name: String, + pub version: String, + #[serde(rename = "verifiableAttributes")] pub requested_attrs: HashMap, pub requested_predicates: HashMap } impl ProofRequestJson { - pub fn new(nonce: BigNumber, requested_attr: HashMap, + pub fn new(nonce: BigNumber, name: String, version: String, requested_attr: HashMap, requested_predicate: HashMap) -> ProofRequestJson { ProofRequestJson { nonce: nonce, + name: name, + version: version, requested_attrs: requested_attr, requested_predicates: requested_predicate } diff --git a/src/services/ledger/constants.rs b/src/services/ledger/constants.rs index 6ce51854a7..70dad527f8 100644 --- a/src/services/ledger/constants.rs +++ b/src/services/ledger/constants.rs @@ -5,6 +5,7 @@ pub const SCHEMA: &'static str = "101"; pub const CLAIM_DEF: &'static str = "102"; pub const GET_ATTR: &'static str = "104"; pub const GET_NYM: &'static str = "105"; +pub const GET_TXN: &'static str = "106"; pub const GET_SCHEMA: &'static str = "107"; pub const GET_CLAIM_DEF: &'static str = "108"; pub const GET_DDO: &'static str = "120";//TODO change number diff --git a/src/services/ledger/mod.rs b/src/services/ledger/mod.rs index 91b78fc762..e6dcd0f5c6 100644 --- a/src/services/ledger/mod.rs +++ b/src/services/ledger/mod.rs @@ -20,7 +20,8 @@ use self::types::{ GetDdoOperation, NodeOperation, NodeOperationData, - Role + Role, + GetTxnOperation }; use errors::common::CommonError; use utils::json::{JsonEncodable, JsonDecodable}; @@ -210,6 +211,20 @@ impl LedgerService { Ok(request_json) } + pub fn build_get_txn_request(&self, identifier: &str, data: i32) -> Result { + Base58::decode(&identifier)?; + + let req_id = LedgerService::get_req_id(); + + let operation = GetTxnOperation::new(data); + let request = Request::new(req_id, + identifier.to_string(), + operation); + let request_json = Request::to_json(&request) + .map_err(|err| CommonError::InvalidState(format!("Invalid get txn request json: {}", err.to_string())))?; + Ok(request_json) + } + fn get_req_id() -> u64 { time::get_time().sec as u64 * (1e9 as u64) + time::get_time().nsec as u64 } @@ -406,4 +421,17 @@ mod tests { let node_request = ledger_service.build_node_request(identifier, dest, data); assert!(node_request.is_err()); } + + #[test] + fn build_get_txn_request_works() { + let ledger_service = LedgerService::new(); + let identifier = "identifier"; + + let expected_result = r#""identifier":"identifier","operation":{"type":"106","data":1}"#; + + let get_txn_request = ledger_service.build_get_txn_request(identifier, 1); + assert!(get_txn_request.is_ok()); + let get_txn_request = get_txn_request.unwrap(); + assert!(get_txn_request.contains(expected_result)); + } } \ No newline at end of file diff --git a/src/services/ledger/types.rs b/src/services/ledger/types.rs index 84572763a5..bd1d507216 100644 --- a/src/services/ledger/types.rs +++ b/src/services/ledger/types.rs @@ -12,7 +12,8 @@ use services::ledger::constants::{ CLAIM_DEF, GET_CLAIM_DEF, STEWARD, - TRUSTEE + TRUSTEE, + GET_TXN }; #[derive(Serialize, PartialEq, Debug)] @@ -366,6 +367,24 @@ impl GetDdoOperation { impl JsonEncodable for GetDdoOperation {} +#[derive(Serialize, PartialEq, Debug)] +pub struct GetTxnOperation { + #[serde(rename = "type")] + pub _type: String, + pub data: i32 +} + +impl GetTxnOperation { + pub fn new(data: i32) -> GetTxnOperation { + GetTxnOperation { + _type: GET_TXN.to_string(), + data: data + } + } +} + +impl JsonEncodable for GetTxnOperation {} + #[derive(Deserialize, Eq, PartialEq, Debug)] pub struct Reply { pub op: String, diff --git a/tests/anoncreds.rs b/tests/anoncreds.rs index 03c1c42b4b..0e9da11f5c 100644 --- a/tests/anoncreds.rs +++ b/tests/anoncreds.rs @@ -273,7 +273,7 @@ mod high_cases { fn issuer_create_claim_works() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_req = r#"{"claim_request":{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"54172737564529332710724213139048941083013176891644677117322321823630308734620627329227591845094100636256829761959157314784293939045176621327154990908459072821826818718739696323299787928173535529024556540323709578850706993294234966440826690899266872682790228513973999212370574548239877108511283629423807338632435431097339875665075453785141722989098387895970395982432709011505864533727415552566715069675346220752584449560407261446567731711814188836703337365986725429656195275616846543535707364215498980750860746440672050640048215761507774996460985293327604627646056062013419674090094698841792968543317468164175921100038","ur":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","claim_def_seq_no":1}"#; + let claim_req = r#"{"blinded_ms":{"blinded_ms":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"54172737564529332710724213139048941083013176891644677117322321823630308734620627329227591845094100636256829761959157314784293939045176621327154990908459072821826818718739696323299787928173535529024556540323709578850706993294234966440826690899266872682790228513973999212370574548239877108511283629423807338632435431097339875665075453785141722989098387895970395982432709011505864533727415552566715069675346220752584449560407261446567731711814188836703337365986725429656195275616846543535707364215498980750860746440672050640048215761507774996460985293327604627646056062013419674090094698841792968543317468164175921100038","ur":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","claim_def_seq_no":1,"schema_seq_no":1}"#; let claim_json = AnoncredsUtils::get_gvt_claim_json(); @@ -282,14 +282,14 @@ mod high_cases { assert!(claim_json.signature.primary_claim.a.len() > 0); assert!(claim_json.signature.primary_claim.m2.len() > 0); assert!(claim_json.signature.primary_claim.e.len() > 0); - assert!(claim_json.signature.primary_claim.v_prime.len() > 0); + assert!(claim_json.signature.primary_claim.v.len() > 0); } #[test] fn issuer_create_claim_works_for_claim_does_not_correspond_to_claim_req() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_req = r#"{"claim_request"{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"78642009183061519681642949186511883517561213024253007693605674585288964920641017651779407190325620073544451273313223865970730324882004218654708785143702626337327148875137393101464687794953218753005927492179012286511197396945795208681795313939767499444933139277315113356530041684437761038663276793040349557294620223093906897574215436647703667891052762523022326049857738264833807472302707972331207200720216038057270470116611478516211732505056236404960175670287081433670657644042478872537481050085523491110773623684416797190117083084618649667528194409150615774512701755156055570554349550169869411668543258825800016015079","ur":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","claim_def_seq_no":1}"#; + let claim_req = r#"{"blinded_ms"{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"78642009183061519681642949186511883517561213024253007693605674585288964920641017651779407190325620073544451273313223865970730324882004218654708785143702626337327148875137393101464687794953218753005927492179012286511197396945795208681795313939767499444933139277315113356530041684437761038663276793040349557294620223093906897574215436647703667891052762523022326049857738264833807472302707972331207200720216038057270470116611478516211732505056236404960175670287081433670657644042478872537481050085523491110773623684416797190117083084618649667528194409150615774512701755156055570554349550169869411668543258825800016015079","ur":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","claim_def_seq_no":1,"schema_seq_no":1}"#; let claim_json = AnoncredsUtils::get_xyz_claim_json(); @@ -301,7 +301,7 @@ mod high_cases { fn issuer_create_claim_works_for_for_invalid_wallet_handle() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_req = r#"{"claim_request":{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"54172737564529332710724213139048941083013176891644677117322321823630308734620627329227591845094100636256829761959157314784293939045176621327154990908459072821826818718739696323299787928173535529024556540323709578850706993294234966440826690899266872682790228513973999212370574548239877108511283629423807338632435431097339875665075453785141722989098387895970395982432709011505864533727415552566715069675346220752584449560407261446567731711814188836703337365986725429656195275616846543535707364215498980750860746440672050640048215761507774996460985293327604627646056062013419674090094698841792968543317468164175921100038","ur":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","claim_def_seq_no":1}"#; + let claim_req = r#"{"blinded_ms":{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"54172737564529332710724213139048941083013176891644677117322321823630308734620627329227591845094100636256829761959157314784293939045176621327154990908459072821826818718739696323299787928173535529024556540323709578850706993294234966440826690899266872682790228513973999212370574548239877108511283629423807338632435431097339875665075453785141722989098387895970395982432709011505864533727415552566715069675346220752584449560407261446567731711814188836703337365986725429656195275616846543535707364215498980750860746440672050640048215761507774996460985293327604627646056062013419674090094698841792968543317468164175921100038","ur":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","claim_def_seq_no":1,"schema_seq_no":1}"#; let claim_json = AnoncredsUtils::get_gvt_claim_json(); @@ -414,7 +414,9 @@ mod high_cases { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); let proof_req = r#"{"nonce":"123432421212", - "requested_attrs":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, "requested_predicates":{} }"#; @@ -434,7 +436,9 @@ mod high_cases { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); let proof_req = r#"{"nonce":"123432421212", - "requested_attrs":{"attr1_uuid":{"schema_seq_no":1, "name":"some_attr"}}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{"attr1_uuid":{"schema_seq_no":1, "name":"some_attr"}}, "requested_predicates":{} }"#; @@ -454,7 +458,9 @@ mod high_cases { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); let proof_req = r#"{"nonce":"123432421212", - "requested_attrs":{}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{}, "requested_predicates":{"predicate1_uuid":{"attr_name":"age","p_type":"GE","value":18}} }"#; @@ -474,7 +480,9 @@ mod high_cases { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); let proof_req = r#"{"nonce":"123432421212", - "requested_attrs":{}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{}, "requested_predicates":{"predicate1_uuid":{"attr_name":"age","p_type":"GE","value":58}} }"#; @@ -494,14 +502,16 @@ mod high_cases { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); let proof_req = r#"{"nonce":"123432421212", - "requested_attrs":{ - "attr1_uuid":{"schema_seq_no":1, "name":"name"}, - "attr2_uuid":{"schema_seq_no":1, "name":"sex"} - }, - "requested_predicates":{ - "predicate1_uuid":{"attr_name":"age","p_type":"GE","value":18}, - "predicate2_uuid":{"attr_name":"height","p_type":"GE","value":160} - }}"#; + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{ + "attr1_uuid":{"schema_seq_no":1, "name":"name"}, + "attr2_uuid":{"schema_seq_no":1, "name":"sex"} + }, + "requested_predicates":{ + "predicate1_uuid":{"attr_name":"age","p_type":"GE","value":18}, + "predicate2_uuid":{"attr_name":"height","p_type":"GE","value":160} + }}"#; let claims_json = AnoncredsUtils::prover_get_claims_for_proof_req(wallet_handle, &proof_req).unwrap(); @@ -528,9 +538,11 @@ mod high_cases { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); let proof_req = r#"{"nonce":"123432421212", - "requested_attrs":{}, - "requested_predicates":{"predicate1_uuid":{"attr_name":"age","p_type":"GE","value":58}} - }"#; + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{}, + "requested_predicates":{"predicate1_uuid":{"attr_name":"age","p_type":"GE","value":58}} + }"#; let invalid_wallet_handle = wallet_handle + 1; let res = AnoncredsUtils::prover_get_claims_for_proof_req(invalid_wallet_handle, &proof_req); @@ -547,7 +559,9 @@ mod high_cases { let (wallet_handle, claim_def_json) = AnoncredsUtils::init_common_wallet(); let proof_req = r#"{"nonce":"123432421212", - "requested_attrs":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, "requested_predicates":{"predicate1_uuid":{"attr_name":"age","p_type":"GE","value":18}} }"#; @@ -588,7 +602,9 @@ mod high_cases { let claim_uuid = claims[0].clone().claim_uuid; let proof_req = r#"{"nonce":"123432421212", - "requested_attrs":{"attr1_uuid":{"schema_seq_no":1, "name":"some_attr"}}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{"attr1_uuid":{"schema_seq_no":1, "name":"some_attr"}}, "requested_predicates":{} }"#; @@ -617,9 +633,11 @@ mod high_cases { let (wallet_handle, claim_def_json) = AnoncredsUtils::init_common_wallet(); let proof_req = r#"{"nonce":"123432421212", - "requested_attrs":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, - "requested_predicates":{} - }"#; + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, + "requested_predicates":{} + }"#; let claims_json = AnoncredsUtils::prover_get_claims_for_proof_req(wallet_handle, &proof_req).unwrap(); let claims: ProofClaimsJson = serde_json::from_str(&claims_json).unwrap(); @@ -658,7 +676,9 @@ mod high_cases { let proof_req_json = format!(r#"{{ "nonce":"123432421212", - "requested_attrs":{{"attr1_uuid":{{"schema_seq_no":1,"name":"name"}}}}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{{"attr1_uuid":{{"schema_seq_no":1,"name":"name"}}}}, "requested_predicates":{{"predicate1_uuid":{{"attr_name":"age","p_type":"GE","value":18}}}} }}"#); @@ -684,7 +704,9 @@ mod high_cases { let proof_req_json = format!(r#"{{ "nonce":"123432421212", - "requested_attrs":{{"attr1_uuid":{{"schema_seq_no":1,"name":"sex"}}}}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{{"attr1_uuid":{{"schema_seq_no":1,"name":"sex"}}}}, "requested_predicates":{{"predicate1_uuid":{{"attr_name":"height","p_type":"GE","value":180}}}} }}"#); @@ -710,7 +732,9 @@ mod high_cases { let proof_req_json = format!(r#"{{ "nonce":"123432421212", - "requested_attrs":{{"attr1_uuid":{{"schema_seq_no":1,"name":"name"}}}}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{{"attr1_uuid":{{"schema_seq_no":1,"name":"name"}}}}, "requested_predicates":{{"predicate1_uuid":{{"attr_name":"age","p_type":"GE","value":18}}}} }}"#); @@ -891,7 +915,7 @@ mod medium_cases { fn issuer_create_claim_works_for_for_invalid_claim_req_json() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_req = r#"{"claim_request"{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW"","ur":null},"claim_def_seq_no":1}"#; + let claim_req = r#"{"blinded_ms"{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW"","ur":null},"claim_def_seq_no":1,"schema_seq_no":1}"#; let claim_json = AnoncredsUtils::get_gvt_claim_json(); @@ -903,7 +927,7 @@ mod medium_cases { fn issuer_create_claim_works_for_for_invalid_claim_json() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_req = r#"{"claim_request":{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"54172737564529332710724213139048941083013176891644677117322321823630308734620627329227591845094100636256829761959157314784293939045176621327154990908459072821826818718739696323299787928173535529024556540323709578850706993294234966440826690899266872682790228513973999212370574548239877108511283629423807338632435431097339875665075453785141722989098387895970395982432709011505864533727415552566715069675346220752584449560407261446567731711814188836703337365986725429656195275616846543535707364215498980750860746440672050640048215761507774996460985293327604627646056062013419674090094698841792968543317468164175921100038","ur":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","claim_def_seq_no":1}"#; + let claim_req = r#"{"blinded_ms":{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"54172737564529332710724213139048941083013176891644677117322321823630308734620627329227591845094100636256829761959157314784293939045176621327154990908459072821826818718739696323299787928173535529024556540323709578850706993294234966440826690899266872682790228513973999212370574548239877108511283629423807338632435431097339875665075453785141722989098387895970395982432709011505864533727415552566715069675346220752584449560407261446567731711814188836703337365986725429656195275616846543535707364215498980750860746440672050640048215761507774996460985293327604627646056062013419674090094698841792968543317468164175921100038","ur":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","claim_def_seq_no":1,"schema_seq_no":1}"#; let claim_json = r#"{ "sex":"male", @@ -929,7 +953,7 @@ mod medium_cases { "revoc_reg_seq_no":null, "schema_seq_no":10, "issuer_did":"did", - "signature":{"primary_claim":{"m2":"1","a":"1","e":"2","v_prime":"3"},"non_revocation_claim":null}}"#; + "signature":{"primary_claim":{"m2":"1","a":"1","e":"2","v":"3"},"non_revocation_claim":null}}"#; let res = AnoncredsUtils::prover_store_claim(wallet_handle, &claim_json); assert_eq!(res.unwrap_err(), ErrorCode::WalletNotFoundError); @@ -976,7 +1000,9 @@ mod medium_cases { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); let proof_req = r#"{"nonce":"123432421212", - "requested_attrs":{}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{}, "requested_predicates":{} }"#; @@ -993,6 +1019,8 @@ mod medium_cases { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); let proof_req = r#"{"nonce":"123432421212", + "name":"proof_req_1", + "version":"0.1", "requested_predicates":{} }"#; @@ -1005,7 +1033,9 @@ mod medium_cases { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); let proof_req = r#"{"nonce":"123432421212", - "requested_attrs":{"attr1_uuid":{"schema_seq_no":2, "name":"name"}}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{"attr1_uuid":{"schema_seq_no":2, "name":"name"}}, "requested_predicates":{} }"#; @@ -1025,7 +1055,9 @@ mod medium_cases { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); let proof_req = r#"{"nonce":"123432421212", - "requested_attrs":{}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{}, "requested_predicates":{"predicate1_uuid":{"attr_name":"age"}} }"#; @@ -1038,7 +1070,9 @@ mod medium_cases { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); let proof_req = r#"{"nonce":"123432421212", - "requested_attrs":{}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{}, "requested_predicates":{"predicate1_uuid":{"attr_name":"age","p_type":"LE","value":58}} }"#; @@ -1055,7 +1089,9 @@ mod medium_cases { let (wallet_handle, claim_def_json) = AnoncredsUtils::init_common_wallet(); let proof_req = r#"{"nonce":"123432421212", - "requested_attrs":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, "requested_predicates":{} }"#; @@ -1090,7 +1126,9 @@ mod medium_cases { let (wallet_handle, claim_def_json) = AnoncredsUtils::init_common_wallet(); let proof_req = r#"{"nonce":"123432421212", - "requested_attrs":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, "requested_predicates":{} }"#; @@ -1125,7 +1163,9 @@ mod medium_cases { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); let proof_req = r#"{"nonce":"123432421212", - "requested_attrs":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, "requested_predicates":{} }"#; @@ -1160,7 +1200,9 @@ mod medium_cases { let (wallet_handle, claim_def_json) = AnoncredsUtils::init_common_wallet(); let proof_req = r#"{"nonce":"123432421212", - "requested_attrs":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, "requested_predicates":{} }"#; @@ -1200,7 +1242,9 @@ mod medium_cases { let proof_req_json = format!(r#"{{ "nonce":"123432421212", - "requested_attrs":{{"attr1_uuid":{{"schema_seq_no":1,"name":"name"}}}}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{{"attr1_uuid":{{"schema_seq_no":1,"name":"name"}}}}, "requested_predicates":{{"predicate1_uuid":{{"attr_name":"age","p_type":"GE","value":18}}}} }}"#); @@ -1225,7 +1269,9 @@ mod medium_cases { let proof_req_json = format!(r#"{{ "nonce":"123432421212", - "requested_attrs":{{"attr1_uuid":{{"schema_seq_no":1,"name":"name"}}}}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{{"attr1_uuid":{{"schema_seq_no":1,"name":"name"}}}}, "requested_predicates":{{"predicate1_uuid":{{"attr_name":"age","p_type":"GE","value":18}}}} }}"#); @@ -1250,7 +1296,9 @@ mod medium_cases { let proof_req_json = format!(r#"{{ "nonce":"123432421212", - "requested_attrs":{{"attr1_uuid":{{"schema_seq_no":1,"name":"name"}}}}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{{"attr1_uuid":{{"schema_seq_no":1,"name":"name"}}}}, "requested_predicates":{{"predicate1_uuid":{{"attr_name":"age","p_type":"GE","value":18}}}} }}"#); @@ -1314,7 +1362,9 @@ mod demos { // 7. Prover gets Claims for Proof Request let proof_req_json = format!(r#"{{ "nonce":"123432421212", - "requested_attrs":{{"attr1_uuid":{{"schema_seq_no":{},"name":"name"}}}}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{{"attr1_uuid":{{"schema_seq_no":{},"name":"name"}}}}, "requested_predicates":{{}} }}"#, schema_seq_no); @@ -1346,7 +1396,9 @@ mod demos { // 9. Verifier verify proof let proof_req_json = format!(r#"{{ "nonce":"123432421212", - "requested_attrs":{{"attr1_uuid":{{"schema_seq_no":{},"name":"name"}}}}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{{"attr1_uuid":{{"schema_seq_no":{},"name":"name"}}}}, "requested_predicates":{{"predicate1_uuid":{{"attr_name":"age","p_type":"GE","value":18}}}} }}"#, schema_seq_no); @@ -1422,7 +1474,9 @@ mod demos { // 10. Prover gets Claims for Proof Request let proof_req_json = format!(r#"{{ "nonce":"123432421212", - "requested_attrs":{{"attr1_uuid":{{"schema_seq_no":{},"name":"name"}}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{{"attr1_uuid":{{"schema_seq_no":{},"name":"name"}}, "attr2_uuid":{{"schema_seq_no":{},"name":"sex"}}}}, "requested_predicates":{{"predicate1_uuid":{{"attr_name":"age","p_type":"GE","value":18}}}} }}"#, schema_seq_no, schema_seq_no); @@ -1595,7 +1649,9 @@ mod demos { // 17. Prover gets Claims for Proof Request let proof_req_json = format!(r#"{{ "nonce":"123432421212", - "requested_attrs":{{"attr1_uuid":{{"schema_seq_no":{},"name":"name"}}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{{"attr1_uuid":{{"schema_seq_no":{},"name":"name"}}, "attr2_uuid":{{"schema_seq_no":{},"name":"status"}}}}, "requested_predicates":{{"predicate1_uuid":{{"attr_name":"age","p_type":"GE","value":18}}, "predicate2_uuid":{{"attr_name":"period","p_type":"GE","value":5}}}} @@ -1786,7 +1842,9 @@ mod demos { //15. Prover gets Claims for Proof Request let proof_req_json = format!(r#"{{ "nonce":"123432421212", - "requested_attrs":{{"attr1_uuid":{{"schema_seq_no":{},"name":"name"}}}}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{{"attr1_uuid":{{"schema_seq_no":{},"name":"name"}}}}, "requested_predicates":{{"predicate1_uuid":{{"attr_name":"age","p_type":"GE","value":18}}, "predicate2_uuid":{{"attr_name":"period","p_type":"GE","value":5}}}} }}"#, gvt_schema_seq_no); diff --git a/tests/demo.rs b/tests/demo.rs index 581161662e..4e4c9aa298 100644 --- a/tests/demo.rs +++ b/tests/demo.rs @@ -298,7 +298,9 @@ fn anoncreds_demo_works() { let proof_req_json = format!(r#"{{ "nonce":"123432421212", - "requested_attrs":{{"attr1_uuid":{{"schema_seq_no":{},"name":"name"}}}}, + "name":"proof_req_1", + "version":"0.1", + "verifiableAttributes":{{"attr1_uuid":{{"schema_seq_no":{},"name":"name"}}}}, "requested_predicates":{{"predicate1_uuid":{{"attr_name":"age","p_type":"GE","value":18}}}} }}"#, schema_seq_no); diff --git a/tests/utils/anoncreds.rs b/tests/utils/anoncreds.rs index 36a6cedc97..08b227c173 100644 --- a/tests/utils/anoncreds.rs +++ b/tests/utils/anoncreds.rs @@ -464,13 +464,14 @@ impl AnoncredsUtils { pub fn get_gvt_claim_req() -> String { r#"{ - "claim_request":{ + "blinded_ms":{ "prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW", "u":"72052674960029442327236458752017934128206007798774128392572211954456711136771871346204637748253860917837147111221378456345006764308173447177933384497678611527908801900335623480700015849806575534757455484512742315652166882850683721692964547448843598104385874050447011820051099399087175505815748958014671544911179795524159951193233504921329404534187047046492036161628814022862661479869322137573048331473599346645871295570237032991261433025344456232326409789544299441933427561947291495434188942844516539974096858281005872862193803356400358925349350554630231733687344283622639185011395343616612151755685912869590344206893", "ur":null }, "issuer_did":"NcYxiDXkpYi6ov5FcYDi1e", - "claim_def_seq_no":1 + "claim_def_seq_no":1, + "schema_seq_no":1 }"#.to_string() } diff --git a/tests/utils/types.rs b/tests/utils/types.rs index 5c5b4e5438..5c984430d9 100644 --- a/tests/utils/types.rs +++ b/tests/utils/types.rs @@ -184,7 +184,7 @@ pub struct PrimaryClaim { pub m2: String, pub a: String, pub e: String, - pub v_prime: String + pub v: String } #[derive(Debug, Serialize, Deserialize)] From e7456fcfe47043a7489a98f78c8595f412d52bab Mon Sep 17 00:00:00 2001 From: "artem.ivanov" Date: Tue, 4 Jul 2017 11:54:46 +0300 Subject: [PATCH 03/23] Fixed tests --- tests/anoncreds.rs | 14 +++++++------- tests/ledger.rs | 16 +++++----------- tests/utils/types.rs | 7 +++++-- 3 files changed, 17 insertions(+), 20 deletions(-) diff --git a/tests/anoncreds.rs b/tests/anoncreds.rs index 0e9da11f5c..9306c021d9 100644 --- a/tests/anoncreds.rs +++ b/tests/anoncreds.rs @@ -219,7 +219,7 @@ mod high_cases { assert_eq!(claim_req.claim_def_seq_no, claim_def_seq_no); assert_eq!(claim_req.issuer_did, issuer_did); - assert!(claim_req.claim_request.u.len() > 0); + assert!(claim_req.blinded_ms.u.len() > 0); } #[test] @@ -273,7 +273,7 @@ mod high_cases { fn issuer_create_claim_works() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_req = r#"{"blinded_ms":{"blinded_ms":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"54172737564529332710724213139048941083013176891644677117322321823630308734620627329227591845094100636256829761959157314784293939045176621327154990908459072821826818718739696323299787928173535529024556540323709578850706993294234966440826690899266872682790228513973999212370574548239877108511283629423807338632435431097339875665075453785141722989098387895970395982432709011505864533727415552566715069675346220752584449560407261446567731711814188836703337365986725429656195275616846543535707364215498980750860746440672050640048215761507774996460985293327604627646056062013419674090094698841792968543317468164175921100038","ur":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","claim_def_seq_no":1,"schema_seq_no":1}"#; + let claim_req = r#"{"blinded_ms":{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"54172737564529332710724213139048941083013176891644677117322321823630308734620627329227591845094100636256829761959157314784293939045176621327154990908459072821826818718739696323299787928173535529024556540323709578850706993294234966440826690899266872682790228513973999212370574548239877108511283629423807338632435431097339875665075453785141722989098387895970395982432709011505864533727415552566715069675346220752584449560407261446567731711814188836703337365986725429656195275616846543535707364215498980750860746440672050640048215761507774996460985293327604627646056062013419674090094698841792968543317468164175921100038","ur":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","claim_def_seq_no":1,"schema_seq_no":1}"#; let claim_json = AnoncredsUtils::get_gvt_claim_json(); @@ -688,7 +688,7 @@ mod high_cases { let claim_defs_json = format!(r#"{{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{}}}"#, claim_def); let revoc_regs_jsons = "{}"; - let proof_json = r#"{"proofs":{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{"proof":{"primary_proof":{"eq_proof":{"revealed_attrs":{"name":"1139481716457488690172217916278103335"},"a_prime":"47629821806628155353444789773246165920681315271529392722265555946090524267165563309836167110610840740533588118152308411732923636370660640410661034994521654033599863817144282118006097899736622728860229305231675970853294584911572355833537271010861501353858292189045263114095480601737776505186511389129055847562085611741257601964074827979121349153316235245772819207422031038042586202074331681302501661153569340935741290924699468188826629478130140797677338573924284871118002193526319478550852287453975107498037063076866410320160118555629090040954555043934303307652160345244864713226315470541231435958298648179413077988340","e":"13427639393364185909415877973872458621259927563729922146828001652769380799419438410309469022979920689628523901764614163117469683925816443","v":"852136445143816932026946294488424887907102968158908948827421962603492187508454543239422067899916472317305416590471170842186669606584356963437132366711335927890209765986844538775191207999204354235774464468525274918097404114453069375363594310105209141774763909570100638835926337238009617444858777301355087706167735590386774813901740600054753028260344014744801229032610106838480523182317262113911183640784111960909501662169298536941919854667754097841344375972975021196106884215734228415868248724905018661498061287694439466570946597514142085096419985189064172035527690786158872698717583830848410994616274586162550376126607414773916066374234063208380831144157533076866210628625236440222547584539349936639548061601416341705483504386186280800509889531835172071717956251546280392606775903107774727736794828168898273891724336881907672405328368540895104468091907771325910937575557566831844131159128453840354307814975621978196047820","m":{"age":"1117601261519431120446925325460734824239475567013636538481947258329666056692767097795046086413732472111811628751812987521644198549167671875326968410921589186689138994171774838662","height":"7064132689652704067914104576495132313294680087958177180391515757079548676035445873279966783996928425154050462229933823707574545166617858646442019030600136959459527533262821184869","sex":"16084497853957041205729191269508720470626311156190485518484640641677445098603656354458362520541393995692536218820724164533958162674375198846036330444513484319280148335515891811530"},"m1":"154906224259819061652290487122980839849626068919893070220438585977323162319993111920906032317552959103520053742608858935542877608981244065301675821390065831113115709272412144796159984624494428122971995557415296140268002332169405587907128359886810433617416529821500995701094400375272097687818064435577784795275","m2":"13805395408072590464827983892588030341708765524663545700917462089376137940485022437657208204460048097312372685954050370540389593952001973312378647790917367330461398089529292217752"},"ge_proofs":[{"u":{"1":"7698818972783845439601187851976452936638792889455287252542709653271706844173743185409084669157965935169942655008606334521674712818637940377261656468700786810566551698412412949418","0":"11703047052430512223413711314521545616119146623040600935686474696241801697819280425232876917607198335376453682738553665221410353412906194951254558355994401995990233992518110582450","3":"13210777821918317858818819091924507295018522783042111457450035423463340571245465760486275059291363621513532153389441883097799049597687545496359999443320001567152794884095192951040","2":"15219471780524079156861690098171693383497641272226737821992208834301871102152362116211452788300889697214391366996966539871625433480959011635688106136537800706217506402845296449689"},"r":{"1":"46043242109380749151527145850513330956077996622769158245225343392397735706292106535150958053995712629189143692293204979798837951212291825184346767969751978730000071952944305252032332015837054475531407691352179423131405515518588355918925056889302269768343499864256747177988825578647189563088068257214198650437730618330249172716051559993880468542083352885474175039320848153156858562341041960950299312991459780503345784440261679263045723337629951517601461685539857683027034345542399365706329805317943096391758978877658949910614447086409173234155028671453929715706057153381022697673192590033507204548864311227048268516889390503318015295207078022755834130221198717787608473222789491216667698651180077661375273569115943192","0":"135472587547410377947826119498467634347118057359097899596599164976338466445104141784869016998150489852448547539824768048351359572626675997498079394825940306636285481821620973655797996638210760710325933304918452142858879806106214845499670718704532018129553348815327362843246706518826311676917538452317818631484884032929252959289913274829848084561421467966320595980172006456003183536232790787521924655750157145207798486087511869939940023266736153366338179116840490184005332351004990854691988404031259910319601383696749511809898297656135548118786342107367065232798999979296280467063561892962526945512167505847049907450058650930480352253243357594344686769208712964458923557777584158831146374282687397585726706489164423632","DELTA":"93540839493959971552865423901789226093328763011922445919928571946113703515842729132879472109395228387208764738970926484618949870591214627692618668077375153559192701474693025462226656116549337248146652482501255820930607033869432220667968682424554711616471973627651716863421554516577716366331699848682958681216261888139409101603059124344125075525791543312721162515584942523419876134808829569829529457617639955678189490257208141837196965948342373022812790844435050648360150869293836349223060722858500537182872294143846213258360218898475766641125493477502149553491502593654061863323857297998048614447925371606038801933864960337435890254277043261512846682042139570000962051463878026338583242360548041329046695667868842400","3":"1227675452527605924725300993571504188580051470857656204064614533296779844072852823820754766175236321050062349182891221840452517985644028521499240739391613871973822807731772613052644168369405390658793869751915172749739844553410726807277698347769400977274750672880389943392076308065414059539317340070691852044062594715307024113666759844200606183662256825096857658837519571386467051003466014468855293015652584667669998830524947537781865745830650392641812221679438090257444660715937570193098993118585554478799821072396238689063767016402460690760792908977364175126682041704095200572282644311025594681667826054722587271200221036938804846621444065128275082392082327596239358623150786484106872933657139420542280145197712634108","2":"596248147592834822582469335300585333722415132713749620075902332764163096347819006925876158892694742461036531935093982309708492066217459300117157420442081698140277277546563570823996272914068575482008392971932777453900260626542725308060927710122631763045025742980634216666560934260634907599194353151523256914796667535940073668465664206971169038864484235442207811974981191879443614478897291543702607764944403808380921189291059195014621592027660463072969363556421687131446107696579365265893962197300447027501604372738056016734644378437907931412654753728514905671605635291285742886484416973884856055084605172305967034292646171874483670469193852404511746786039743401185954843446037600121496137915619789351744485264614840070"},"mj":"1117601261519431120446925325460734824239475567013636538481947258329666056692767097795046086413732472111811628751812987521644198549167671875326968410921589186689138994171774838662","alpha":"76727612740067576380015106087224381023260815407331375101920043509817863645705120013304683427627332447210083684516403565749916480947649443674885388155460323163682547865307733144184097845709556309570345707127872162476432029772452433292049079349274445907295491125915363620615679995457134810061392296263970553630102299601689685622244925494554558218277670233361938142224820526392365740420502452466959099546877778248089664282581792213376636587293479012783947088070052463503335266180110771978445892744225891676396288437005847308189508347446490710626231658457908472341606549292437553353163031111068977301305043175839949352742711874426231072729977019365761072816602400121302646283352164756787266537474728685656685493249314400351742964904006326192403855909148605656818024621453179832395687665671245528217931951331393482249182516107670379946496778373","t":{"1":"37203689290881948278188715497642400459048942241931994079434400288578680362970117779048886269388440270597283202033458042171954610700745461571112086648991639439510380585728148682202768590972068041537531136529323260832899360551065706810590032715173070285762675403853992183366951113799098912676809373169763887110420539387555392787590966452796271491986622992160642135480293110112269570862265489120557014181468118619500321000966443141863893743211690388599242584469856365803370202569641902205925191670838354052104480074127555862332399641076324738839120815544432811566503174551735326387678621283249883091766325861497740614317","3":"58486787977689017034592833190899828017343431922483563651969628402499947729293364026001243898136737211851089198526360764391403150763769829047179796728616126204105160762333590343947446892105646111520243793053992399512412375936746396187319527051818920531870855183738837254656664620975569939859368862778444291640228229744805843388153451336792379036403300211151424879060241580540910888241769468335914016289938374111481091198264912969768783884602931940994543804730631920434719776196148182987249363641941951160704928605829395517074202388967815738516252602903999010405305463910751219873354588685197134114358234107748126140977","0":"60771874648036182010335841594233428920565254732600738082343398028553347795361460295011584446745121430144172025428394361648540904134739046923992231536160801306934272250969829886396340824213814702904457884984387666505055153957942221822193548673145705543973635530652570436109428474727638128773540793530691399549837156239786231362112148914687724325416768262058486101761972044802628459748878200584371058300150212485731451700436345975266860685549673168984700174294811561393162860595319582236734968601457003780816977537443267217411297266600994916897237305128142313335280264655603445636393371224354539882875937093696844430903","DELTA":"32816484171372208266594641116109072545171919234551585018140151846920408763078147655907777031259225522515086979967895258126318315788662577171150780535509410112003001556402222994276811926864642497249250763185467678044678144507739529818566125668667424447792097244624010084189629269472698722402896445274092470014229247479740671263651727480322483037149584904549203417226525624083290572692241241259382947122018271686649224741832992966652878170311798126004447080305528487720923103595513611363001766063956060990267107048028416069435287244770875463867263571308182619338433913487209319707428378896314619624990311543563016697299","2":"36428320569485697540634597755814766104888687488985202673924762266313135133244610404742081973550848160712054769198012193456278135847215508952327879544434490828380496286187725750283788811367824465072001959950807751252194618152990469069074061195618692339915840384087350671392595652921761835083158086795163935060896053332506433434451836095710383871272788002621913967538399141417857031787255744141437237474972197102809365346359345477248611632307159641948507043668113827177494748159094045928919209335044052792843664865311991178972383241855607627188111601119780878072683890170539599447876998109080150992209773901144245398001"},"predicate":{"attr_name":"age","p_type":"GE","value":18}}]},"non_revoc_proof":null},"claim_def_seq_no":1,"revoc_reg_seq_no":null}},"aggregated_proof":{"c_hash":"33103550379681684069592829341967479618752165928802550870585275205292715916069","c_list":[[1,121,77,5,144,154,14,192,190,190,145,180,128,71,22,60,168,20,46,163,139,194,71,165,220,188,121,76,25,146,231,114,65,54,69,68,19,200,250,192,47,123,157,132,74,50,28,69,226,195,243,118,45,63,237,197,216,202,206,101,33,56,225,200,128,3,89,12,182,38,113,221,165,119,228,201,156,201,172,136,59,64,51,72,164,198,49,228,223,117,80,64,166,226,37,8,29,146,186,80,210,119,76,252,4,255,62,218,112,163,164,147,247,190,108,76,140,191,76,217,214,184,152,179,193,149,15,70,197,46,90,60,255,247,197,219,252,73,76,0,125,104,114,22,182,161,110,36,162,103,27,42,88,18,161,237,198,43,177,189,181,86,135,207,71,114,0,26,175,12,199,125,25,124,178,87,36,208,251,15,191,127,202,148,152,43,142,92,191,7,89,153,130,195,223,248,176,109,97,164,126,162,181,124,237,130,155,197,66,59,40,197,72,84,32,100,64,55,227,60,214,143,200,200,89,115,236,172,145,56,100,73,20,242,233,95,130,58,112,153,120,115,119,42,199,30,205,88,223,42,196,184,41,19,100,19,244],[1,225,103,238,42,147,91,191,110,69,154,53,57,156,124,43,174,155,76,202,193,98,128,38,207,126,66,70,161,96,109,127,174,44,203,198,177,238,118,117,89,227,170,155,44,251,35,119,219,29,100,173,26,144,95,50,177,4,40,234,117,174,210,192,172,57,160,198,42,199,212,243,240,114,59,91,207,68,57,38,198,2,73,18,16,209,182,145,206,71,17,69,222,49,36,120,72,117,169,107,238,208,235,216,24,183,201,81,15,83,242,45,136,184,166,26,142,136,228,58,229,235,88,169,238,134,205,96,85,9,122,53,147,100,183,114,92,54,125,178,125,75,127,116,50,88,109,152,22,4,121,252,190,18,190,130,143,138,59,231,38,131,176,54,19,194,218,67,144,122,91,43,86,73,233,48,193,30,183,183,191,238,216,167,101,28,185,43,118,64,242,16,62,239,177,27,109,144,67,221,175,202,4,92,130,74,24,20,151,15,227,225,142,71,145,46,192,248,87,57,183,142,253,52,20,56,153,220,234,25,67,116,225,179,211,116,161,37,64,34,48,155,1,1,159,157,37,31,202,19,229,152,23,138,183,126,55],[1,38,181,193,191,72,2,239,34,83,49,36,179,160,82,112,172,98,255,63,60,22,177,249,67,215,220,198,181,7,49,254,133,243,221,214,47,64,229,82,11,94,175,57,86,152,229,192,184,96,136,116,226,123,128,217,23,244,19,204,36,44,123,208,88,24,217,120,145,139,25,233,227,5,119,90,47,147,1,115,92,39,119,194,167,17,229,39,163,167,237,14,116,234,106,252,216,54,33,233,21,54,183,130,144,161,177,142,177,240,51,73,21,202,188,103,244,153,204,219,123,231,139,135,189,155,143,28,4,180,44,148,0,27,103,26,13,203,31,32,166,67,84,87,23,72,234,236,20,1,84,70,86,76,192,164,235,124,86,128,78,230,119,155,95,121,125,20,244,181,121,250,169,9,67,85,213,177,139,111,187,183,114,165,249,177,161,181,175,46,226,66,86,84,124,86,69,143,217,158,161,30,107,133,44,239,89,209,24,150,1,238,122,144,138,179,121,114,90,13,212,209,60,126,37,62,177,180,131,222,168,2,201,156,169,220,224,53,8,203,220,215,163,104,195,184,73,35,241,182,177,80,41,253,230,90,173],[1,32,145,96,219,241,190,19,195,129,219,50,148,152,107,12,189,225,103,171,149,252,193,243,136,132,195,44,19,20,247,140,160,91,230,78,31,242,85,213,65,185,1,91,12,69,118,80,26,135,102,131,4,108,130,230,83,91,176,249,196,56,128,127,82,72,106,49,211,94,133,40,86,72,42,187,199,216,191,223,208,206,121,118,15,167,255,228,57,206,158,217,64,205,212,178,8,248,129,183,221,98,70,54,37,55,47,81,120,59,186,238,165,0,70,173,137,193,232,180,125,211,237,182,249,191,173,107,129,164,148,231,116,225,66,66,71,156,39,248,164,253,234,140,205,177,140,117,47,21,15,242,31,113,118,91,143,89,213,86,143,135,21,46,35,199,214,107,111,65,65,19,26,171,130,16,19,102,145,210,210,61,51,169,148,169,118,182,106,107,253,100,214,232,52,103,180,96,249,254,71,6,11,119,48,129,213,223,205,93,20,117,26,187,32,151,212,137,203,17,237,208,150,72,23,225,235,122,188,34,105,115,0,160,168,251,191,22,242,238,207,74,142,154,66,94,149,191,215,194,134,6,165,244,167,233,241],[1,207,77,250,146,127,242,229,44,172,182,201,183,242,32,242,182,129,233,10,8,180,23,191,163,21,238,158,5,27,216,146,253,173,127,99,95,168,209,132,242,196,242,34,25,25,249,211,51,236,164,153,175,61,65,150,82,251,174,102,186,47,195,82,44,90,252,184,74,89,251,177,254,108,151,136,230,220,93,224,173,247,244,116,132,59,170,215,194,30,87,84,166,147,57,156,201,207,132,203,222,191,253,15,19,228,173,81,156,4,51,121,227,159,50,18,148,129,205,42,42,227,252,138,62,176,115,227,253,52,125,110,178,167,132,244,14,116,195,194,172,44,45,63,38,121,215,136,68,230,21,108,133,159,197,179,94,78,233,107,236,114,92,165,248,22,124,161,23,142,236,224,175,233,134,25,97,150,131,61,220,203,104,154,199,247,146,47,205,56,209,0,133,132,18,103,136,8,202,37,29,100,105,12,232,74,33,6,255,202,96,170,52,229,244,4,235,2,201,125,86,168,179,224,130,81,54,221,185,184,187,141,0,114,98,38,70,225,228,60,157,53,210,238,60,216,215,154,48,73,3,157,192,245,81,170,49],[1,3,244,229,158,71,18,146,198,202,27,2,231,37,13,145,243,84,112,220,61,174,4,175,104,200,64,146,193,20,174,126,42,157,168,76,165,21,50,216,82,211,180,73,244,54,227,200,19,157,25,228,81,37,64,201,19,138,175,50,246,169,11,45,74,194,131,236,127,177,41,242,130,55,112,182,98,22,99,48,153,83,161,250,65,89,3,97,6,5,171,54,223,87,98,103,23,200,212,177,140,155,151,252,125,45,176,55,92,41,56,2,252,32,149,60,3,168,209,193,23,168,230,182,72,193,230,224,5,15,58,63,93,196,33,93,76,188,30,70,31,136,64,204,223,2,230,210,243,255,135,193,52,132,248,160,22,18,164,71,77,80,112,229,120,116,210,225,2,19,139,35,0,214,5,246,9,106,136,204,0,148,97,21,222,153,57,177,162,11,243,252,7,242,34,239,245,50,104,74,221,92,73,13,142,10,184,250,246,167,240,46,230,86,207,181,12,133,81,119,143,164,88,114,223,243,179,208,175,84,161,27,11,225,36,37,177,112,85,81,184,163,223,159,36,9,247,20,13,230,215,108,117,35,99,117,211]]},"requested_proof":{"revealed_attrs":{"attr1_uuid":["claim::277478db-bf57-42c3-8530-b1b13cfe0bfd","Alex","1139481716457488690172217916278103335"]},"unrevealed_attrs":{},"self_attested_attrs":{},"predicates":{"predicate1_uuid":"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd"}}}"#; + let proof_json = r#"{"proofs":{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{"proof":{"primary_proof":{"eq_proof":{"revealed_attrs":{"name":"1139481716457488690172217916278103335"},"a_prime":"47629821806628155353444789773246165920681315271529392722265555946090524267165563309836167110610840740533588118152308411732923636370660640410661034994521654033599863817144282118006097899736622728860229305231675970853294584911572355833537271010861501353858292189045263114095480601737776505186511389129055847562085611741257601964074827979121349153316235245772819207422031038042586202074331681302501661153569340935741290924699468188826629478130140797677338573924284871118002193526319478550852287453975107498037063076866410320160118555629090040954555043934303307652160345244864713226315470541231435958298648179413077988340","e":"13427639393364185909415877973872458621259927563729922146828001652769380799419438410309469022979920689628523901764614163117469683925816443","v":"852136445143816932026946294488424887907102968158908948827421962603492187508454543239422067899916472317305416590471170842186669606584356963437132366711335927890209765986844538775191207999204354235774464468525274918097404114453069375363594310105209141774763909570100638835926337238009617444858777301355087706167735590386774813901740600054753028260344014744801229032610106838480523182317262113911183640784111960909501662169298536941919854667754097841344375972975021196106884215734228415868248724905018661498061287694439466570946597514142085096419985189064172035527690786158872698717583830848410994616274586162550376126607414773916066374234063208380831144157533076866210628625236440222547584539349936639548061601416341705483504386186280800509889531835172071717956251546280392606775903107774727736794828168898273891724336881907672405328368540895104468091907771325910937575557566831844131159128453840354307814975621978196047820","m":{"age":"1117601261519431120446925325460734824239475567013636538481947258329666056692767097795046086413732472111811628751812987521644198549167671875326968410921589186689138994171774838662","height":"7064132689652704067914104576495132313294680087958177180391515757079548676035445873279966783996928425154050462229933823707574545166617858646442019030600136959459527533262821184869","sex":"16084497853957041205729191269508720470626311156190485518484640641677445098603656354458362520541393995692536218820724164533958162674375198846036330444513484319280148335515891811530"},"m1":"154906224259819061652290487122980839849626068919893070220438585977323162319993111920906032317552959103520053742608858935542877608981244065301675821390065831113115709272412144796159984624494428122971995557415296140268002332169405587907128359886810433617416529821500995701094400375272097687818064435577784795275","m2":"13805395408072590464827983892588030341708765524663545700917462089376137940485022437657208204460048097312372685954050370540389593952001973312378647790917367330461398089529292217752"},"ge_proofs":[{"u":{"1":"7698818972783845439601187851976452936638792889455287252542709653271706844173743185409084669157965935169942655008606334521674712818637940377261656468700786810566551698412412949418","0":"11703047052430512223413711314521545616119146623040600935686474696241801697819280425232876917607198335376453682738553665221410353412906194951254558355994401995990233992518110582450","3":"13210777821918317858818819091924507295018522783042111457450035423463340571245465760486275059291363621513532153389441883097799049597687545496359999443320001567152794884095192951040","2":"15219471780524079156861690098171693383497641272226737821992208834301871102152362116211452788300889697214391366996966539871625433480959011635688106136537800706217506402845296449689"},"r":{"1":"46043242109380749151527145850513330956077996622769158245225343392397735706292106535150958053995712629189143692293204979798837951212291825184346767969751978730000071952944305252032332015837054475531407691352179423131405515518588355918925056889302269768343499864256747177988825578647189563088068257214198650437730618330249172716051559993880468542083352885474175039320848153156858562341041960950299312991459780503345784440261679263045723337629951517601461685539857683027034345542399365706329805317943096391758978877658949910614447086409173234155028671453929715706057153381022697673192590033507204548864311227048268516889390503318015295207078022755834130221198717787608473222789491216667698651180077661375273569115943192","0":"135472587547410377947826119498467634347118057359097899596599164976338466445104141784869016998150489852448547539824768048351359572626675997498079394825940306636285481821620973655797996638210760710325933304918452142858879806106214845499670718704532018129553348815327362843246706518826311676917538452317818631484884032929252959289913274829848084561421467966320595980172006456003183536232790787521924655750157145207798486087511869939940023266736153366338179116840490184005332351004990854691988404031259910319601383696749511809898297656135548118786342107367065232798999979296280467063561892962526945512167505847049907450058650930480352253243357594344686769208712964458923557777584158831146374282687397585726706489164423632","DELTA":"93540839493959971552865423901789226093328763011922445919928571946113703515842729132879472109395228387208764738970926484618949870591214627692618668077375153559192701474693025462226656116549337248146652482501255820930607033869432220667968682424554711616471973627651716863421554516577716366331699848682958681216261888139409101603059124344125075525791543312721162515584942523419876134808829569829529457617639955678189490257208141837196965948342373022812790844435050648360150869293836349223060722858500537182872294143846213258360218898475766641125493477502149553491502593654061863323857297998048614447925371606038801933864960337435890254277043261512846682042139570000962051463878026338583242360548041329046695667868842400","3":"1227675452527605924725300993571504188580051470857656204064614533296779844072852823820754766175236321050062349182891221840452517985644028521499240739391613871973822807731772613052644168369405390658793869751915172749739844553410726807277698347769400977274750672880389943392076308065414059539317340070691852044062594715307024113666759844200606183662256825096857658837519571386467051003466014468855293015652584667669998830524947537781865745830650392641812221679438090257444660715937570193098993118585554478799821072396238689063767016402460690760792908977364175126682041704095200572282644311025594681667826054722587271200221036938804846621444065128275082392082327596239358623150786484106872933657139420542280145197712634108","2":"596248147592834822582469335300585333722415132713749620075902332764163096347819006925876158892694742461036531935093982309708492066217459300117157420442081698140277277546563570823996272914068575482008392971932777453900260626542725308060927710122631763045025742980634216666560934260634907599194353151523256914796667535940073668465664206971169038864484235442207811974981191879443614478897291543702607764944403808380921189291059195014621592027660463072969363556421687131446107696579365265893962197300447027501604372738056016734644378437907931412654753728514905671605635291285742886484416973884856055084605172305967034292646171874483670469193852404511746786039743401185954843446037600121496137915619789351744485264614840070"},"mj":"1117601261519431120446925325460734824239475567013636538481947258329666056692767097795046086413732472111811628751812987521644198549167671875326968410921589186689138994171774838662","alpha":"76727612740067576380015106087224381023260815407331375101920043509817863645705120013304683427627332447210083684516403565749916480947649443674885388155460323163682547865307733144184097845709556309570345707127872162476432029772452433292049079349274445907295491125915363620615679995457134810061392296263970553630102299601689685622244925494554558218277670233361938142224820526392365740420502452466959099546877778248089664282581792213376636587293479012783947088070052463503335266180110771978445892744225891676396288437005847308189508347446490710626231658457908472341606549292437553353163031111068977301305043175839949352742711874426231072729977019365761072816602400121302646283352164756787266537474728685656685493249314400351742964904006326192403855909148605656818024621453179832395687665671245528217931951331393482249182516107670379946496778373","t":{"1":"37203689290881948278188715497642400459048942241931994079434400288578680362970117779048886269388440270597283202033458042171954610700745461571112086648991639439510380585728148682202768590972068041537531136529323260832899360551065706810590032715173070285762675403853992183366951113799098912676809373169763887110420539387555392787590966452796271491986622992160642135480293110112269570862265489120557014181468118619500321000966443141863893743211690388599242584469856365803370202569641902205925191670838354052104480074127555862332399641076324738839120815544432811566503174551735326387678621283249883091766325861497740614317","3":"58486787977689017034592833190899828017343431922483563651969628402499947729293364026001243898136737211851089198526360764391403150763769829047179796728616126204105160762333590343947446892105646111520243793053992399512412375936746396187319527051818920531870855183738837254656664620975569939859368862778444291640228229744805843388153451336792379036403300211151424879060241580540910888241769468335914016289938374111481091198264912969768783884602931940994543804730631920434719776196148182987249363641941951160704928605829395517074202388967815738516252602903999010405305463910751219873354588685197134114358234107748126140977","0":"60771874648036182010335841594233428920565254732600738082343398028553347795361460295011584446745121430144172025428394361648540904134739046923992231536160801306934272250969829886396340824213814702904457884984387666505055153957942221822193548673145705543973635530652570436109428474727638128773540793530691399549837156239786231362112148914687724325416768262058486101761972044802628459748878200584371058300150212485731451700436345975266860685549673168984700174294811561393162860595319582236734968601457003780816977537443267217411297266600994916897237305128142313335280264655603445636393371224354539882875937093696844430903","DELTA":"32816484171372208266594641116109072545171919234551585018140151846920408763078147655907777031259225522515086979967895258126318315788662577171150780535509410112003001556402222994276811926864642497249250763185467678044678144507739529818566125668667424447792097244624010084189629269472698722402896445274092470014229247479740671263651727480322483037149584904549203417226525624083290572692241241259382947122018271686649224741832992966652878170311798126004447080305528487720923103595513611363001766063956060990267107048028416069435287244770875463867263571308182619338433913487209319707428378896314619624990311543563016697299","2":"36428320569485697540634597755814766104888687488985202673924762266313135133244610404742081973550848160712054769198012193456278135847215508952327879544434490828380496286187725750283788811367824465072001959950807751252194618152990469069074061195618692339915840384087350671392595652921761835083158086795163935060896053332506433434451836095710383871272788002621913967538399141417857031787255744141437237474972197102809365346359345477248611632307159641948507043668113827177494748159094045928919209335044052792843664865311991178972383241855607627188111601119780878072683890170539599447876998109080150992209773901144245398001"},"predicate":{"attr_name":"age","p_type":"GE","value":18}}]},"non_revoc_proof":null},"schema_seq_no":1,"revoc_reg_seq_no":null,"issuer_did":"did"}},"aggregated_proof":{"c_hash":"33103550379681684069592829341967479618752165928802550870585275205292715916069","c_list":[[1,121,77,5,144,154,14,192,190,190,145,180,128,71,22,60,168,20,46,163,139,194,71,165,220,188,121,76,25,146,231,114,65,54,69,68,19,200,250,192,47,123,157,132,74,50,28,69,226,195,243,118,45,63,237,197,216,202,206,101,33,56,225,200,128,3,89,12,182,38,113,221,165,119,228,201,156,201,172,136,59,64,51,72,164,198,49,228,223,117,80,64,166,226,37,8,29,146,186,80,210,119,76,252,4,255,62,218,112,163,164,147,247,190,108,76,140,191,76,217,214,184,152,179,193,149,15,70,197,46,90,60,255,247,197,219,252,73,76,0,125,104,114,22,182,161,110,36,162,103,27,42,88,18,161,237,198,43,177,189,181,86,135,207,71,114,0,26,175,12,199,125,25,124,178,87,36,208,251,15,191,127,202,148,152,43,142,92,191,7,89,153,130,195,223,248,176,109,97,164,126,162,181,124,237,130,155,197,66,59,40,197,72,84,32,100,64,55,227,60,214,143,200,200,89,115,236,172,145,56,100,73,20,242,233,95,130,58,112,153,120,115,119,42,199,30,205,88,223,42,196,184,41,19,100,19,244],[1,225,103,238,42,147,91,191,110,69,154,53,57,156,124,43,174,155,76,202,193,98,128,38,207,126,66,70,161,96,109,127,174,44,203,198,177,238,118,117,89,227,170,155,44,251,35,119,219,29,100,173,26,144,95,50,177,4,40,234,117,174,210,192,172,57,160,198,42,199,212,243,240,114,59,91,207,68,57,38,198,2,73,18,16,209,182,145,206,71,17,69,222,49,36,120,72,117,169,107,238,208,235,216,24,183,201,81,15,83,242,45,136,184,166,26,142,136,228,58,229,235,88,169,238,134,205,96,85,9,122,53,147,100,183,114,92,54,125,178,125,75,127,116,50,88,109,152,22,4,121,252,190,18,190,130,143,138,59,231,38,131,176,54,19,194,218,67,144,122,91,43,86,73,233,48,193,30,183,183,191,238,216,167,101,28,185,43,118,64,242,16,62,239,177,27,109,144,67,221,175,202,4,92,130,74,24,20,151,15,227,225,142,71,145,46,192,248,87,57,183,142,253,52,20,56,153,220,234,25,67,116,225,179,211,116,161,37,64,34,48,155,1,1,159,157,37,31,202,19,229,152,23,138,183,126,55],[1,38,181,193,191,72,2,239,34,83,49,36,179,160,82,112,172,98,255,63,60,22,177,249,67,215,220,198,181,7,49,254,133,243,221,214,47,64,229,82,11,94,175,57,86,152,229,192,184,96,136,116,226,123,128,217,23,244,19,204,36,44,123,208,88,24,217,120,145,139,25,233,227,5,119,90,47,147,1,115,92,39,119,194,167,17,229,39,163,167,237,14,116,234,106,252,216,54,33,233,21,54,183,130,144,161,177,142,177,240,51,73,21,202,188,103,244,153,204,219,123,231,139,135,189,155,143,28,4,180,44,148,0,27,103,26,13,203,31,32,166,67,84,87,23,72,234,236,20,1,84,70,86,76,192,164,235,124,86,128,78,230,119,155,95,121,125,20,244,181,121,250,169,9,67,85,213,177,139,111,187,183,114,165,249,177,161,181,175,46,226,66,86,84,124,86,69,143,217,158,161,30,107,133,44,239,89,209,24,150,1,238,122,144,138,179,121,114,90,13,212,209,60,126,37,62,177,180,131,222,168,2,201,156,169,220,224,53,8,203,220,215,163,104,195,184,73,35,241,182,177,80,41,253,230,90,173],[1,32,145,96,219,241,190,19,195,129,219,50,148,152,107,12,189,225,103,171,149,252,193,243,136,132,195,44,19,20,247,140,160,91,230,78,31,242,85,213,65,185,1,91,12,69,118,80,26,135,102,131,4,108,130,230,83,91,176,249,196,56,128,127,82,72,106,49,211,94,133,40,86,72,42,187,199,216,191,223,208,206,121,118,15,167,255,228,57,206,158,217,64,205,212,178,8,248,129,183,221,98,70,54,37,55,47,81,120,59,186,238,165,0,70,173,137,193,232,180,125,211,237,182,249,191,173,107,129,164,148,231,116,225,66,66,71,156,39,248,164,253,234,140,205,177,140,117,47,21,15,242,31,113,118,91,143,89,213,86,143,135,21,46,35,199,214,107,111,65,65,19,26,171,130,16,19,102,145,210,210,61,51,169,148,169,118,182,106,107,253,100,214,232,52,103,180,96,249,254,71,6,11,119,48,129,213,223,205,93,20,117,26,187,32,151,212,137,203,17,237,208,150,72,23,225,235,122,188,34,105,115,0,160,168,251,191,22,242,238,207,74,142,154,66,94,149,191,215,194,134,6,165,244,167,233,241],[1,207,77,250,146,127,242,229,44,172,182,201,183,242,32,242,182,129,233,10,8,180,23,191,163,21,238,158,5,27,216,146,253,173,127,99,95,168,209,132,242,196,242,34,25,25,249,211,51,236,164,153,175,61,65,150,82,251,174,102,186,47,195,82,44,90,252,184,74,89,251,177,254,108,151,136,230,220,93,224,173,247,244,116,132,59,170,215,194,30,87,84,166,147,57,156,201,207,132,203,222,191,253,15,19,228,173,81,156,4,51,121,227,159,50,18,148,129,205,42,42,227,252,138,62,176,115,227,253,52,125,110,178,167,132,244,14,116,195,194,172,44,45,63,38,121,215,136,68,230,21,108,133,159,197,179,94,78,233,107,236,114,92,165,248,22,124,161,23,142,236,224,175,233,134,25,97,150,131,61,220,203,104,154,199,247,146,47,205,56,209,0,133,132,18,103,136,8,202,37,29,100,105,12,232,74,33,6,255,202,96,170,52,229,244,4,235,2,201,125,86,168,179,224,130,81,54,221,185,184,187,141,0,114,98,38,70,225,228,60,157,53,210,238,60,216,215,154,48,73,3,157,192,245,81,170,49],[1,3,244,229,158,71,18,146,198,202,27,2,231,37,13,145,243,84,112,220,61,174,4,175,104,200,64,146,193,20,174,126,42,157,168,76,165,21,50,216,82,211,180,73,244,54,227,200,19,157,25,228,81,37,64,201,19,138,175,50,246,169,11,45,74,194,131,236,127,177,41,242,130,55,112,182,98,22,99,48,153,83,161,250,65,89,3,97,6,5,171,54,223,87,98,103,23,200,212,177,140,155,151,252,125,45,176,55,92,41,56,2,252,32,149,60,3,168,209,193,23,168,230,182,72,193,230,224,5,15,58,63,93,196,33,93,76,188,30,70,31,136,64,204,223,2,230,210,243,255,135,193,52,132,248,160,22,18,164,71,77,80,112,229,120,116,210,225,2,19,139,35,0,214,5,246,9,106,136,204,0,148,97,21,222,153,57,177,162,11,243,252,7,242,34,239,245,50,104,74,221,92,73,13,142,10,184,250,246,167,240,46,230,86,207,181,12,133,81,119,143,164,88,114,223,243,179,208,175,84,161,27,11,225,36,37,177,112,85,81,184,163,223,159,36,9,247,20,13,230,215,108,117,35,99,117,211]]},"requested_proof":{"revealed_attrs":{"attr1_uuid":["claim::277478db-bf57-42c3-8530-b1b13cfe0bfd","Alex","1139481716457488690172217916278103335"]},"unrevealed_attrs":{},"self_attested_attrs":{},"predicates":{"predicate1_uuid":"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd"}}}"#; let valid = AnoncredsUtils::verifier_verify_proof(&proof_req_json, &proof_json, @@ -716,7 +716,7 @@ mod high_cases { let claim_defs_json = format!(r#"{{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{}}}"#, claim_def); let revoc_regs_jsons = "{}"; - let proof_json = r#"{"proofs":{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{"proof":{"primary_proof":{"eq_proof":{"revealed_attrs":{"name":"1139481716457488690172217916278103335"},"a_prime":"47629821806628155353444789773246165920681315271529392722265555946090524267165563309836167110610840740533588118152308411732923636370660640410661034994521654033599863817144282118006097899736622728860229305231675970853294584911572355833537271010861501353858292189045263114095480601737776505186511389129055847562085611741257601964074827979121349153316235245772819207422031038042586202074331681302501661153569340935741290924699468188826629478130140797677338573924284871118002193526319478550852287453975107498037063076866410320160118555629090040954555043934303307652160345244864713226315470541231435958298648179413077988340","e":"13427639393364185909415877973872458621259927563729922146828001652769380799419438410309469022979920689628523901764614163117469683925816443","v":"852136445143816932026946294488424887907102968158908948827421962603492187508454543239422067899916472317305416590471170842186669606584356963437132366711335927890209765986844538775191207999204354235774464468525274918097404114453069375363594310105209141774763909570100638835926337238009617444858777301355087706167735590386774813901740600054753028260344014744801229032610106838480523182317262113911183640784111960909501662169298536941919854667754097841344375972975021196106884215734228415868248724905018661498061287694439466570946597514142085096419985189064172035527690786158872698717583830848410994616274586162550376126607414773916066374234063208380831144157533076866210628625236440222547584539349936639548061601416341705483504386186280800509889531835172071717956251546280392606775903107774727736794828168898273891724336881907672405328368540895104468091907771325910937575557566831844131159128453840354307814975621978196047820","m":{"age":"1117601261519431120446925325460734824239475567013636538481947258329666056692767097795046086413732472111811628751812987521644198549167671875326968410921589186689138994171774838662","height":"7064132689652704067914104576495132313294680087958177180391515757079548676035445873279966783996928425154050462229933823707574545166617858646442019030600136959459527533262821184869","sex":"16084497853957041205729191269508720470626311156190485518484640641677445098603656354458362520541393995692536218820724164533958162674375198846036330444513484319280148335515891811530"},"m1":"154906224259819061652290487122980839849626068919893070220438585977323162319993111920906032317552959103520053742608858935542877608981244065301675821390065831113115709272412144796159984624494428122971995557415296140268002332169405587907128359886810433617416529821500995701094400375272097687818064435577784795275","m2":"13805395408072590464827983892588030341708765524663545700917462089376137940485022437657208204460048097312372685954050370540389593952001973312378647790917367330461398089529292217752"},"ge_proofs":[{"u":{"1":"7698818972783845439601187851976452936638792889455287252542709653271706844173743185409084669157965935169942655008606334521674712818637940377261656468700786810566551698412412949418","0":"11703047052430512223413711314521545616119146623040600935686474696241801697819280425232876917607198335376453682738553665221410353412906194951254558355994401995990233992518110582450","3":"13210777821918317858818819091924507295018522783042111457450035423463340571245465760486275059291363621513532153389441883097799049597687545496359999443320001567152794884095192951040","2":"15219471780524079156861690098171693383497641272226737821992208834301871102152362116211452788300889697214391366996966539871625433480959011635688106136537800706217506402845296449689"},"r":{"1":"46043242109380749151527145850513330956077996622769158245225343392397735706292106535150958053995712629189143692293204979798837951212291825184346767969751978730000071952944305252032332015837054475531407691352179423131405515518588355918925056889302269768343499864256747177988825578647189563088068257214198650437730618330249172716051559993880468542083352885474175039320848153156858562341041960950299312991459780503345784440261679263045723337629951517601461685539857683027034345542399365706329805317943096391758978877658949910614447086409173234155028671453929715706057153381022697673192590033507204548864311227048268516889390503318015295207078022755834130221198717787608473222789491216667698651180077661375273569115943192","0":"135472587547410377947826119498467634347118057359097899596599164976338466445104141784869016998150489852448547539824768048351359572626675997498079394825940306636285481821620973655797996638210760710325933304918452142858879806106214845499670718704532018129553348815327362843246706518826311676917538452317818631484884032929252959289913274829848084561421467966320595980172006456003183536232790787521924655750157145207798486087511869939940023266736153366338179116840490184005332351004990854691988404031259910319601383696749511809898297656135548118786342107367065232798999979296280467063561892962526945512167505847049907450058650930480352253243357594344686769208712964458923557777584158831146374282687397585726706489164423632","DELTA":"93540839493959971552865423901789226093328763011922445919928571946113703515842729132879472109395228387208764738970926484618949870591214627692618668077375153559192701474693025462226656116549337248146652482501255820930607033869432220667968682424554711616471973627651716863421554516577716366331699848682958681216261888139409101603059124344125075525791543312721162515584942523419876134808829569829529457617639955678189490257208141837196965948342373022812790844435050648360150869293836349223060722858500537182872294143846213258360218898475766641125493477502149553491502593654061863323857297998048614447925371606038801933864960337435890254277043261512846682042139570000962051463878026338583242360548041329046695667868842400","3":"1227675452527605924725300993571504188580051470857656204064614533296779844072852823820754766175236321050062349182891221840452517985644028521499240739391613871973822807731772613052644168369405390658793869751915172749739844553410726807277698347769400977274750672880389943392076308065414059539317340070691852044062594715307024113666759844200606183662256825096857658837519571386467051003466014468855293015652584667669998830524947537781865745830650392641812221679438090257444660715937570193098993118585554478799821072396238689063767016402460690760792908977364175126682041704095200572282644311025594681667826054722587271200221036938804846621444065128275082392082327596239358623150786484106872933657139420542280145197712634108","2":"596248147592834822582469335300585333722415132713749620075902332764163096347819006925876158892694742461036531935093982309708492066217459300117157420442081698140277277546563570823996272914068575482008392971932777453900260626542725308060927710122631763045025742980634216666560934260634907599194353151523256914796667535940073668465664206971169038864484235442207811974981191879443614478897291543702607764944403808380921189291059195014621592027660463072969363556421687131446107696579365265893962197300447027501604372738056016734644378437907931412654753728514905671605635291285742886484416973884856055084605172305967034292646171874483670469193852404511746786039743401185954843446037600121496137915619789351744485264614840070"},"mj":"1117601261519431120446925325460734824239475567013636538481947258329666056692767097795046086413732472111811628751812987521644198549167671875326968410921589186689138994171774838662","alpha":"76727612740067576380015106087224381023260815407331375101920043509817863645705120013304683427627332447210083684516403565749916480947649443674885388155460323163682547865307733144184097845709556309570345707127872162476432029772452433292049079349274445907295491125915363620615679995457134810061392296263970553630102299601689685622244925494554558218277670233361938142224820526392365740420502452466959099546877778248089664282581792213376636587293479012783947088070052463503335266180110771978445892744225891676396288437005847308189508347446490710626231658457908472341606549292437553353163031111068977301305043175839949352742711874426231072729977019365761072816602400121302646283352164756787266537474728685656685493249314400351742964904006326192403855909148605656818024621453179832395687665671245528217931951331393482249182516107670379946496778373","t":{"1":"37203689290881948278188715497642400459048942241931994079434400288578680362970117779048886269388440270597283202033458042171954610700745461571112086648991639439510380585728148682202768590972068041537531136529323260832899360551065706810590032715173070285762675403853992183366951113799098912676809373169763887110420539387555392787590966452796271491986622992160642135480293110112269570862265489120557014181468118619500321000966443141863893743211690388599242584469856365803370202569641902205925191670838354052104480074127555862332399641076324738839120815544432811566503174551735326387678621283249883091766325861497740614317","3":"58486787977689017034592833190899828017343431922483563651969628402499947729293364026001243898136737211851089198526360764391403150763769829047179796728616126204105160762333590343947446892105646111520243793053992399512412375936746396187319527051818920531870855183738837254656664620975569939859368862778444291640228229744805843388153451336792379036403300211151424879060241580540910888241769468335914016289938374111481091198264912969768783884602931940994543804730631920434719776196148182987249363641941951160704928605829395517074202388967815738516252602903999010405305463910751219873354588685197134114358234107748126140977","0":"60771874648036182010335841594233428920565254732600738082343398028553347795361460295011584446745121430144172025428394361648540904134739046923992231536160801306934272250969829886396340824213814702904457884984387666505055153957942221822193548673145705543973635530652570436109428474727638128773540793530691399549837156239786231362112148914687724325416768262058486101761972044802628459748878200584371058300150212485731451700436345975266860685549673168984700174294811561393162860595319582236734968601457003780816977537443267217411297266600994916897237305128142313335280264655603445636393371224354539882875937093696844430903","DELTA":"32816484171372208266594641116109072545171919234551585018140151846920408763078147655907777031259225522515086979967895258126318315788662577171150780535509410112003001556402222994276811926864642497249250763185467678044678144507739529818566125668667424447792097244624010084189629269472698722402896445274092470014229247479740671263651727480322483037149584904549203417226525624083290572692241241259382947122018271686649224741832992966652878170311798126004447080305528487720923103595513611363001766063956060990267107048028416069435287244770875463867263571308182619338433913487209319707428378896314619624990311543563016697299","2":"36428320569485697540634597755814766104888687488985202673924762266313135133244610404742081973550848160712054769198012193456278135847215508952327879544434490828380496286187725750283788811367824465072001959950807751252194618152990469069074061195618692339915840384087350671392595652921761835083158086795163935060896053332506433434451836095710383871272788002621913967538399141417857031787255744141437237474972197102809365346359345477248611632307159641948507043668113827177494748159094045928919209335044052792843664865311991178972383241855607627188111601119780878072683890170539599447876998109080150992209773901144245398001"},"predicate":{"attr_name":"age","p_type":"GE","value":18}}]},"non_revoc_proof":null},"claim_def_seq_no":1,"revoc_reg_seq_no":null}},"aggregated_proof":{"c_hash":"33103550379681684069592829341967479618752165928802550870585275205292715916069","c_list":[[1,121,77,5,144,154,14,192,190,190,145,180,128,71,22,60,168,20,46,163,139,194,71,165,220,188,121,76,25,146,231,114,65,54,69,68,19,200,250,192,47,123,157,132,74,50,28,69,226,195,243,118,45,63,237,197,216,202,206,101,33,56,225,200,128,3,89,12,182,38,113,221,165,119,228,201,156,201,172,136,59,64,51,72,164,198,49,228,223,117,80,64,166,226,37,8,29,146,186,80,210,119,76,252,4,255,62,218,112,163,164,147,247,190,108,76,140,191,76,217,214,184,152,179,193,149,15,70,197,46,90,60,255,247,197,219,252,73,76,0,125,104,114,22,182,161,110,36,162,103,27,42,88,18,161,237,198,43,177,189,181,86,135,207,71,114,0,26,175,12,199,125,25,124,178,87,36,208,251,15,191,127,202,148,152,43,142,92,191,7,89,153,130,195,223,248,176,109,97,164,126,162,181,124,237,130,155,197,66,59,40,197,72,84,32,100,64,55,227,60,214,143,200,200,89,115,236,172,145,56,100,73,20,242,233,95,130,58,112,153,120,115,119,42,199,30,205,88,223,42,196,184,41,19,100,19,244],[1,225,103,238,42,147,91,191,110,69,154,53,57,156,124,43,174,155,76,202,193,98,128,38,207,126,66,70,161,96,109,127,174,44,203,198,177,238,118,117,89,227,170,155,44,251,35,119,219,29,100,173,26,144,95,50,177,4,40,234,117,174,210,192,172,57,160,198,42,199,212,243,240,114,59,91,207,68,57,38,198,2,73,18,16,209,182,145,206,71,17,69,222,49,36,120,72,117,169,107,238,208,235,216,24,183,201,81,15,83,242,45,136,184,166,26,142,136,228,58,229,235,88,169,238,134,205,96,85,9,122,53,147,100,183,114,92,54,125,178,125,75,127,116,50,88,109,152,22,4,121,252,190,18,190,130,143,138,59,231,38,131,176,54,19,194,218,67,144,122,91,43,86,73,233,48,193,30,183,183,191,238,216,167,101,28,185,43,118,64,242,16,62,239,177,27,109,144,67,221,175,202,4,92,130,74,24,20,151,15,227,225,142,71,145,46,192,248,87,57,183,142,253,52,20,56,153,220,234,25,67,116,225,179,211,116,161,37,64,34,48,155,1,1,159,157,37,31,202,19,229,152,23,138,183,126,55],[1,38,181,193,191,72,2,239,34,83,49,36,179,160,82,112,172,98,255,63,60,22,177,249,67,215,220,198,181,7,49,254,133,243,221,214,47,64,229,82,11,94,175,57,86,152,229,192,184,96,136,116,226,123,128,217,23,244,19,204,36,44,123,208,88,24,217,120,145,139,25,233,227,5,119,90,47,147,1,115,92,39,119,194,167,17,229,39,163,167,237,14,116,234,106,252,216,54,33,233,21,54,183,130,144,161,177,142,177,240,51,73,21,202,188,103,244,153,204,219,123,231,139,135,189,155,143,28,4,180,44,148,0,27,103,26,13,203,31,32,166,67,84,87,23,72,234,236,20,1,84,70,86,76,192,164,235,124,86,128,78,230,119,155,95,121,125,20,244,181,121,250,169,9,67,85,213,177,139,111,187,183,114,165,249,177,161,181,175,46,226,66,86,84,124,86,69,143,217,158,161,30,107,133,44,239,89,209,24,150,1,238,122,144,138,179,121,114,90,13,212,209,60,126,37,62,177,180,131,222,168,2,201,156,169,220,224,53,8,203,220,215,163,104,195,184,73,35,241,182,177,80,41,253,230,90,173],[1,32,145,96,219,241,190,19,195,129,219,50,148,152,107,12,189,225,103,171,149,252,193,243,136,132,195,44,19,20,247,140,160,91,230,78,31,242,85,213,65,185,1,91,12,69,118,80,26,135,102,131,4,108,130,230,83,91,176,249,196,56,128,127,82,72,106,49,211,94,133,40,86,72,42,187,199,216,191,223,208,206,121,118,15,167,255,228,57,206,158,217,64,205,212,178,8,248,129,183,221,98,70,54,37,55,47,81,120,59,186,238,165,0,70,173,137,193,232,180,125,211,237,182,249,191,173,107,129,164,148,231,116,225,66,66,71,156,39,248,164,253,234,140,205,177,140,117,47,21,15,242,31,113,118,91,143,89,213,86,143,135,21,46,35,199,214,107,111,65,65,19,26,171,130,16,19,102,145,210,210,61,51,169,148,169,118,182,106,107,253,100,214,232,52,103,180,96,249,254,71,6,11,119,48,129,213,223,205,93,20,117,26,187,32,151,212,137,203,17,237,208,150,72,23,225,235,122,188,34,105,115,0,160,168,251,191,22,242,238,207,74,142,154,66,94,149,191,215,194,134,6,165,244,167,233,241],[1,207,77,250,146,127,242,229,44,172,182,201,183,242,32,242,182,129,233,10,8,180,23,191,163,21,238,158,5,27,216,146,253,173,127,99,95,168,209,132,242,196,242,34,25,25,249,211,51,236,164,153,175,61,65,150,82,251,174,102,186,47,195,82,44,90,252,184,74,89,251,177,254,108,151,136,230,220,93,224,173,247,244,116,132,59,170,215,194,30,87,84,166,147,57,156,201,207,132,203,222,191,253,15,19,228,173,81,156,4,51,121,227,159,50,18,148,129,205,42,42,227,252,138,62,176,115,227,253,52,125,110,178,167,132,244,14,116,195,194,172,44,45,63,38,121,215,136,68,230,21,108,133,159,197,179,94,78,233,107,236,114,92,165,248,22,124,161,23,142,236,224,175,233,134,25,97,150,131,61,220,203,104,154,199,247,146,47,205,56,209,0,133,132,18,103,136,8,202,37,29,100,105,12,232,74,33,6,255,202,96,170,52,229,244,4,235,2,201,125,86,168,179,224,130,81,54,221,185,184,187,141,0,114,98,38,70,225,228,60,157,53,210,238,60,216,215,154,48,73,3,157,192,245,81,170,49],[1,3,244,229,158,71,18,146,198,202,27,2,231,37,13,145,243,84,112,220,61,174,4,175,104,200,64,146,193,20,174,126,42,157,168,76,165,21,50,216,82,211,180,73,244,54,227,200,19,157,25,228,81,37,64,201,19,138,175,50,246,169,11,45,74,194,131,236,127,177,41,242,130,55,112,182,98,22,99,48,153,83,161,250,65,89,3,97,6,5,171,54,223,87,98,103,23,200,212,177,140,155,151,252,125,45,176,55,92,41,56,2,252,32,149,60,3,168,209,193,23,168,230,182,72,193,230,224,5,15,58,63,93,196,33,93,76,188,30,70,31,136,64,204,223,2,230,210,243,255,135,193,52,132,248,160,22,18,164,71,77,80,112,229,120,116,210,225,2,19,139,35,0,214,5,246,9,106,136,204,0,148,97,21,222,153,57,177,162,11,243,252,7,242,34,239,245,50,104,74,221,92,73,13,142,10,184,250,246,167,240,46,230,86,207,181,12,133,81,119,143,164,88,114,223,243,179,208,175,84,161,27,11,225,36,37,177,112,85,81,184,163,223,159,36,9,247,20,13,230,215,108,117,35,99,117,211]]},"requested_proof":{"revealed_attrs":{"attr1_uuid":["claim::277478db-bf57-42c3-8530-b1b13cfe0bfd","Alex","1139481716457488690172217916278103335"]},"unrevealed_attrs":{},"self_attested_attrs":{},"predicates":{"predicate1_uuid":"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd"}}}"#; + let proof_json = r#"{"proofs":{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{"proof":{"primary_proof":{"eq_proof":{"revealed_attrs":{"name":"1139481716457488690172217916278103335"},"a_prime":"47629821806628155353444789773246165920681315271529392722265555946090524267165563309836167110610840740533588118152308411732923636370660640410661034994521654033599863817144282118006097899736622728860229305231675970853294584911572355833537271010861501353858292189045263114095480601737776505186511389129055847562085611741257601964074827979121349153316235245772819207422031038042586202074331681302501661153569340935741290924699468188826629478130140797677338573924284871118002193526319478550852287453975107498037063076866410320160118555629090040954555043934303307652160345244864713226315470541231435958298648179413077988340","e":"13427639393364185909415877973872458621259927563729922146828001652769380799419438410309469022979920689628523901764614163117469683925816443","v":"852136445143816932026946294488424887907102968158908948827421962603492187508454543239422067899916472317305416590471170842186669606584356963437132366711335927890209765986844538775191207999204354235774464468525274918097404114453069375363594310105209141774763909570100638835926337238009617444858777301355087706167735590386774813901740600054753028260344014744801229032610106838480523182317262113911183640784111960909501662169298536941919854667754097841344375972975021196106884215734228415868248724905018661498061287694439466570946597514142085096419985189064172035527690786158872698717583830848410994616274586162550376126607414773916066374234063208380831144157533076866210628625236440222547584539349936639548061601416341705483504386186280800509889531835172071717956251546280392606775903107774727736794828168898273891724336881907672405328368540895104468091907771325910937575557566831844131159128453840354307814975621978196047820","m":{"age":"1117601261519431120446925325460734824239475567013636538481947258329666056692767097795046086413732472111811628751812987521644198549167671875326968410921589186689138994171774838662","height":"7064132689652704067914104576495132313294680087958177180391515757079548676035445873279966783996928425154050462229933823707574545166617858646442019030600136959459527533262821184869","sex":"16084497853957041205729191269508720470626311156190485518484640641677445098603656354458362520541393995692536218820724164533958162674375198846036330444513484319280148335515891811530"},"m1":"154906224259819061652290487122980839849626068919893070220438585977323162319993111920906032317552959103520053742608858935542877608981244065301675821390065831113115709272412144796159984624494428122971995557415296140268002332169405587907128359886810433617416529821500995701094400375272097687818064435577784795275","m2":"13805395408072590464827983892588030341708765524663545700917462089376137940485022437657208204460048097312372685954050370540389593952001973312378647790917367330461398089529292217752"},"ge_proofs":[{"u":{"1":"7698818972783845439601187851976452936638792889455287252542709653271706844173743185409084669157965935169942655008606334521674712818637940377261656468700786810566551698412412949418","0":"11703047052430512223413711314521545616119146623040600935686474696241801697819280425232876917607198335376453682738553665221410353412906194951254558355994401995990233992518110582450","3":"13210777821918317858818819091924507295018522783042111457450035423463340571245465760486275059291363621513532153389441883097799049597687545496359999443320001567152794884095192951040","2":"15219471780524079156861690098171693383497641272226737821992208834301871102152362116211452788300889697214391366996966539871625433480959011635688106136537800706217506402845296449689"},"r":{"1":"46043242109380749151527145850513330956077996622769158245225343392397735706292106535150958053995712629189143692293204979798837951212291825184346767969751978730000071952944305252032332015837054475531407691352179423131405515518588355918925056889302269768343499864256747177988825578647189563088068257214198650437730618330249172716051559993880468542083352885474175039320848153156858562341041960950299312991459780503345784440261679263045723337629951517601461685539857683027034345542399365706329805317943096391758978877658949910614447086409173234155028671453929715706057153381022697673192590033507204548864311227048268516889390503318015295207078022755834130221198717787608473222789491216667698651180077661375273569115943192","0":"135472587547410377947826119498467634347118057359097899596599164976338466445104141784869016998150489852448547539824768048351359572626675997498079394825940306636285481821620973655797996638210760710325933304918452142858879806106214845499670718704532018129553348815327362843246706518826311676917538452317818631484884032929252959289913274829848084561421467966320595980172006456003183536232790787521924655750157145207798486087511869939940023266736153366338179116840490184005332351004990854691988404031259910319601383696749511809898297656135548118786342107367065232798999979296280467063561892962526945512167505847049907450058650930480352253243357594344686769208712964458923557777584158831146374282687397585726706489164423632","DELTA":"93540839493959971552865423901789226093328763011922445919928571946113703515842729132879472109395228387208764738970926484618949870591214627692618668077375153559192701474693025462226656116549337248146652482501255820930607033869432220667968682424554711616471973627651716863421554516577716366331699848682958681216261888139409101603059124344125075525791543312721162515584942523419876134808829569829529457617639955678189490257208141837196965948342373022812790844435050648360150869293836349223060722858500537182872294143846213258360218898475766641125493477502149553491502593654061863323857297998048614447925371606038801933864960337435890254277043261512846682042139570000962051463878026338583242360548041329046695667868842400","3":"1227675452527605924725300993571504188580051470857656204064614533296779844072852823820754766175236321050062349182891221840452517985644028521499240739391613871973822807731772613052644168369405390658793869751915172749739844553410726807277698347769400977274750672880389943392076308065414059539317340070691852044062594715307024113666759844200606183662256825096857658837519571386467051003466014468855293015652584667669998830524947537781865745830650392641812221679438090257444660715937570193098993118585554478799821072396238689063767016402460690760792908977364175126682041704095200572282644311025594681667826054722587271200221036938804846621444065128275082392082327596239358623150786484106872933657139420542280145197712634108","2":"596248147592834822582469335300585333722415132713749620075902332764163096347819006925876158892694742461036531935093982309708492066217459300117157420442081698140277277546563570823996272914068575482008392971932777453900260626542725308060927710122631763045025742980634216666560934260634907599194353151523256914796667535940073668465664206971169038864484235442207811974981191879443614478897291543702607764944403808380921189291059195014621592027660463072969363556421687131446107696579365265893962197300447027501604372738056016734644378437907931412654753728514905671605635291285742886484416973884856055084605172305967034292646171874483670469193852404511746786039743401185954843446037600121496137915619789351744485264614840070"},"mj":"1117601261519431120446925325460734824239475567013636538481947258329666056692767097795046086413732472111811628751812987521644198549167671875326968410921589186689138994171774838662","alpha":"76727612740067576380015106087224381023260815407331375101920043509817863645705120013304683427627332447210083684516403565749916480947649443674885388155460323163682547865307733144184097845709556309570345707127872162476432029772452433292049079349274445907295491125915363620615679995457134810061392296263970553630102299601689685622244925494554558218277670233361938142224820526392365740420502452466959099546877778248089664282581792213376636587293479012783947088070052463503335266180110771978445892744225891676396288437005847308189508347446490710626231658457908472341606549292437553353163031111068977301305043175839949352742711874426231072729977019365761072816602400121302646283352164756787266537474728685656685493249314400351742964904006326192403855909148605656818024621453179832395687665671245528217931951331393482249182516107670379946496778373","t":{"1":"37203689290881948278188715497642400459048942241931994079434400288578680362970117779048886269388440270597283202033458042171954610700745461571112086648991639439510380585728148682202768590972068041537531136529323260832899360551065706810590032715173070285762675403853992183366951113799098912676809373169763887110420539387555392787590966452796271491986622992160642135480293110112269570862265489120557014181468118619500321000966443141863893743211690388599242584469856365803370202569641902205925191670838354052104480074127555862332399641076324738839120815544432811566503174551735326387678621283249883091766325861497740614317","3":"58486787977689017034592833190899828017343431922483563651969628402499947729293364026001243898136737211851089198526360764391403150763769829047179796728616126204105160762333590343947446892105646111520243793053992399512412375936746396187319527051818920531870855183738837254656664620975569939859368862778444291640228229744805843388153451336792379036403300211151424879060241580540910888241769468335914016289938374111481091198264912969768783884602931940994543804730631920434719776196148182987249363641941951160704928605829395517074202388967815738516252602903999010405305463910751219873354588685197134114358234107748126140977","0":"60771874648036182010335841594233428920565254732600738082343398028553347795361460295011584446745121430144172025428394361648540904134739046923992231536160801306934272250969829886396340824213814702904457884984387666505055153957942221822193548673145705543973635530652570436109428474727638128773540793530691399549837156239786231362112148914687724325416768262058486101761972044802628459748878200584371058300150212485731451700436345975266860685549673168984700174294811561393162860595319582236734968601457003780816977537443267217411297266600994916897237305128142313335280264655603445636393371224354539882875937093696844430903","DELTA":"32816484171372208266594641116109072545171919234551585018140151846920408763078147655907777031259225522515086979967895258126318315788662577171150780535509410112003001556402222994276811926864642497249250763185467678044678144507739529818566125668667424447792097244624010084189629269472698722402896445274092470014229247479740671263651727480322483037149584904549203417226525624083290572692241241259382947122018271686649224741832992966652878170311798126004447080305528487720923103595513611363001766063956060990267107048028416069435287244770875463867263571308182619338433913487209319707428378896314619624990311543563016697299","2":"36428320569485697540634597755814766104888687488985202673924762266313135133244610404742081973550848160712054769198012193456278135847215508952327879544434490828380496286187725750283788811367824465072001959950807751252194618152990469069074061195618692339915840384087350671392595652921761835083158086795163935060896053332506433434451836095710383871272788002621913967538399141417857031787255744141437237474972197102809365346359345477248611632307159641948507043668113827177494748159094045928919209335044052792843664865311991178972383241855607627188111601119780878072683890170539599447876998109080150992209773901144245398001"},"predicate":{"attr_name":"age","p_type":"GE","value":18}}]},"non_revoc_proof":null},"schema_seq_no":1,"revoc_reg_seq_no":null,"issuer_did":"did"}},"aggregated_proof":{"c_hash":"33103550379681684069592829341967479618752165928802550870585275205292715916069","c_list":[[1,121,77,5,144,154,14,192,190,190,145,180,128,71,22,60,168,20,46,163,139,194,71,165,220,188,121,76,25,146,231,114,65,54,69,68,19,200,250,192,47,123,157,132,74,50,28,69,226,195,243,118,45,63,237,197,216,202,206,101,33,56,225,200,128,3,89,12,182,38,113,221,165,119,228,201,156,201,172,136,59,64,51,72,164,198,49,228,223,117,80,64,166,226,37,8,29,146,186,80,210,119,76,252,4,255,62,218,112,163,164,147,247,190,108,76,140,191,76,217,214,184,152,179,193,149,15,70,197,46,90,60,255,247,197,219,252,73,76,0,125,104,114,22,182,161,110,36,162,103,27,42,88,18,161,237,198,43,177,189,181,86,135,207,71,114,0,26,175,12,199,125,25,124,178,87,36,208,251,15,191,127,202,148,152,43,142,92,191,7,89,153,130,195,223,248,176,109,97,164,126,162,181,124,237,130,155,197,66,59,40,197,72,84,32,100,64,55,227,60,214,143,200,200,89,115,236,172,145,56,100,73,20,242,233,95,130,58,112,153,120,115,119,42,199,30,205,88,223,42,196,184,41,19,100,19,244],[1,225,103,238,42,147,91,191,110,69,154,53,57,156,124,43,174,155,76,202,193,98,128,38,207,126,66,70,161,96,109,127,174,44,203,198,177,238,118,117,89,227,170,155,44,251,35,119,219,29,100,173,26,144,95,50,177,4,40,234,117,174,210,192,172,57,160,198,42,199,212,243,240,114,59,91,207,68,57,38,198,2,73,18,16,209,182,145,206,71,17,69,222,49,36,120,72,117,169,107,238,208,235,216,24,183,201,81,15,83,242,45,136,184,166,26,142,136,228,58,229,235,88,169,238,134,205,96,85,9,122,53,147,100,183,114,92,54,125,178,125,75,127,116,50,88,109,152,22,4,121,252,190,18,190,130,143,138,59,231,38,131,176,54,19,194,218,67,144,122,91,43,86,73,233,48,193,30,183,183,191,238,216,167,101,28,185,43,118,64,242,16,62,239,177,27,109,144,67,221,175,202,4,92,130,74,24,20,151,15,227,225,142,71,145,46,192,248,87,57,183,142,253,52,20,56,153,220,234,25,67,116,225,179,211,116,161,37,64,34,48,155,1,1,159,157,37,31,202,19,229,152,23,138,183,126,55],[1,38,181,193,191,72,2,239,34,83,49,36,179,160,82,112,172,98,255,63,60,22,177,249,67,215,220,198,181,7,49,254,133,243,221,214,47,64,229,82,11,94,175,57,86,152,229,192,184,96,136,116,226,123,128,217,23,244,19,204,36,44,123,208,88,24,217,120,145,139,25,233,227,5,119,90,47,147,1,115,92,39,119,194,167,17,229,39,163,167,237,14,116,234,106,252,216,54,33,233,21,54,183,130,144,161,177,142,177,240,51,73,21,202,188,103,244,153,204,219,123,231,139,135,189,155,143,28,4,180,44,148,0,27,103,26,13,203,31,32,166,67,84,87,23,72,234,236,20,1,84,70,86,76,192,164,235,124,86,128,78,230,119,155,95,121,125,20,244,181,121,250,169,9,67,85,213,177,139,111,187,183,114,165,249,177,161,181,175,46,226,66,86,84,124,86,69,143,217,158,161,30,107,133,44,239,89,209,24,150,1,238,122,144,138,179,121,114,90,13,212,209,60,126,37,62,177,180,131,222,168,2,201,156,169,220,224,53,8,203,220,215,163,104,195,184,73,35,241,182,177,80,41,253,230,90,173],[1,32,145,96,219,241,190,19,195,129,219,50,148,152,107,12,189,225,103,171,149,252,193,243,136,132,195,44,19,20,247,140,160,91,230,78,31,242,85,213,65,185,1,91,12,69,118,80,26,135,102,131,4,108,130,230,83,91,176,249,196,56,128,127,82,72,106,49,211,94,133,40,86,72,42,187,199,216,191,223,208,206,121,118,15,167,255,228,57,206,158,217,64,205,212,178,8,248,129,183,221,98,70,54,37,55,47,81,120,59,186,238,165,0,70,173,137,193,232,180,125,211,237,182,249,191,173,107,129,164,148,231,116,225,66,66,71,156,39,248,164,253,234,140,205,177,140,117,47,21,15,242,31,113,118,91,143,89,213,86,143,135,21,46,35,199,214,107,111,65,65,19,26,171,130,16,19,102,145,210,210,61,51,169,148,169,118,182,106,107,253,100,214,232,52,103,180,96,249,254,71,6,11,119,48,129,213,223,205,93,20,117,26,187,32,151,212,137,203,17,237,208,150,72,23,225,235,122,188,34,105,115,0,160,168,251,191,22,242,238,207,74,142,154,66,94,149,191,215,194,134,6,165,244,167,233,241],[1,207,77,250,146,127,242,229,44,172,182,201,183,242,32,242,182,129,233,10,8,180,23,191,163,21,238,158,5,27,216,146,253,173,127,99,95,168,209,132,242,196,242,34,25,25,249,211,51,236,164,153,175,61,65,150,82,251,174,102,186,47,195,82,44,90,252,184,74,89,251,177,254,108,151,136,230,220,93,224,173,247,244,116,132,59,170,215,194,30,87,84,166,147,57,156,201,207,132,203,222,191,253,15,19,228,173,81,156,4,51,121,227,159,50,18,148,129,205,42,42,227,252,138,62,176,115,227,253,52,125,110,178,167,132,244,14,116,195,194,172,44,45,63,38,121,215,136,68,230,21,108,133,159,197,179,94,78,233,107,236,114,92,165,248,22,124,161,23,142,236,224,175,233,134,25,97,150,131,61,220,203,104,154,199,247,146,47,205,56,209,0,133,132,18,103,136,8,202,37,29,100,105,12,232,74,33,6,255,202,96,170,52,229,244,4,235,2,201,125,86,168,179,224,130,81,54,221,185,184,187,141,0,114,98,38,70,225,228,60,157,53,210,238,60,216,215,154,48,73,3,157,192,245,81,170,49],[1,3,244,229,158,71,18,146,198,202,27,2,231,37,13,145,243,84,112,220,61,174,4,175,104,200,64,146,193,20,174,126,42,157,168,76,165,21,50,216,82,211,180,73,244,54,227,200,19,157,25,228,81,37,64,201,19,138,175,50,246,169,11,45,74,194,131,236,127,177,41,242,130,55,112,182,98,22,99,48,153,83,161,250,65,89,3,97,6,5,171,54,223,87,98,103,23,200,212,177,140,155,151,252,125,45,176,55,92,41,56,2,252,32,149,60,3,168,209,193,23,168,230,182,72,193,230,224,5,15,58,63,93,196,33,93,76,188,30,70,31,136,64,204,223,2,230,210,243,255,135,193,52,132,248,160,22,18,164,71,77,80,112,229,120,116,210,225,2,19,139,35,0,214,5,246,9,106,136,204,0,148,97,21,222,153,57,177,162,11,243,252,7,242,34,239,245,50,104,74,221,92,73,13,142,10,184,250,246,167,240,46,230,86,207,181,12,133,81,119,143,164,88,114,223,243,179,208,175,84,161,27,11,225,36,37,177,112,85,81,184,163,223,159,36,9,247,20,13,230,215,108,117,35,99,117,211]]},"requested_proof":{"revealed_attrs":{"attr1_uuid":["claim::277478db-bf57-42c3-8530-b1b13cfe0bfd","Alex","1139481716457488690172217916278103335"]},"unrevealed_attrs":{},"self_attested_attrs":{},"predicates":{"predicate1_uuid":"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd"}}}"#; let res = AnoncredsUtils::verifier_verify_proof(&proof_req_json, &proof_json, @@ -744,7 +744,7 @@ mod high_cases { let claim_defs_json = format!(r#"{{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{}}}"#, claim_def); let revoc_regs_jsons = "{}"; - let proof_json = r#"{"proofs":{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{"proof":{"primary_proof":{"eq_proof":{"revealed_attrs":{"name":"1139481716457488690172217916278103335"},"a_prime":"47629821806628155353444789773246165920681315271529392722265555946090524267165563309836167110610840740533588118152308411732923636370660640410661034994521654033599863817144282118006097899736622728860229305231675970853294584911572355833537271010861501353858292189045263114095480601737776505186511389129055847562085611741257601964074827979121349153316235245772819207422031038042586202074331681302501661153569340935741290924699468188826629478130140797677338573924284871118002193526319478550852287453975107498037063076866410320160118555629090040954555043934303307652160345244864713226315470541231435958298648179413077988326","e":"13427639393364185909415877973872458621256927563729922146828001652769380799419438410309469022979920689628523901764614163117469683925816443","v":"852136445143816932026946294488424887907102968158908948827421962603492187508454543239422067899916472317305416590471170842186669606584356963437132366711335927890209765986844538775191207999204354235774464468525274918097404114453069375363594310105209141774763909570100638835926337238009617444858777301355087706167735590386774813901740600054753028260344014744801229032610106838480523182317262113911183640784111960909501662169298536941919854667754097841344375972975021196106884215734228415868248724905018661498061287694439466570946597514142085096419985189064172035527690786158872698717583830848410994616274746162550376126607414773916066374234063208380831144157533076866210628625236440222547584539349936639548061601416341705483504386186280800509889531835172071717956251546280392606775903107774727736794828168898273891724336881907672405328368540895104468091907771325910937575557566831844131159128453840354307814975621978196047820","m":{"age":"1117601261519431120446925325460734824239475567013636538481947258329666056692767097795046086413732472111811628751812987521644198549167671875326968410921589186689138994171774838662","height":"7064132689652704067914104576495132313294680087958177180391515757079548676035445873279966783996928425154050462229933823707574545166617858646442019030600136959459527533262821184869","sex":"16084497853957041205729191269508720470626311156190485518484640641677445098603656354458362520541393995692536218820724164533958162674375198846036330444513484319280148335515891811530"},"m1":"154906224259819061652290487122980839849626068919893070220438585977323162319993111920906032317552959103520053742608858935542877608981244065301675821390065831113115709272412144796159984624494428122971995557415296140268002332169405587907128359886810433617416529821500995701094400375272097687818064435577784795275","m2":"13805395408072590464827983892588030341708765524663545700917462089376137940485022437657208204460048097312372685954050370540389593952001973312378647790917367330461398089529292217752"},"ge_proofs":[{"u":{"1":"7698818972783845439601187851976452936638792889455287252542709653271706844173743185409084669157965935169942655008606334521674712818637940377261656468700786810566551698412412949418","0":"11703047052430512223413711314521545616119146623040600935686474696241801697819280425232876917607198335376453682738553665221410353412906194951254558355994401995990233992518110582450","3":"13210777821918317858818819091924507295018522783042111457450035423463340571245465760486275059291363621513532153389441883097799049597687545496359999443320001567152794884095192951040","2":"15219471780524079156861690098171693383497641272226737821992208834301871102152362116211452788300889697214391366996966539871625433480959011635688106136537800706217506402845296449689"},"r":{"1":"46043242109380749151527145850513330956077996622769158245225343392397735706292106535150958053995712629189143692293204979798837951212291825184346767969751978730000071952944305252032332015837054475531407691352179423131405515518588355918925056889302269768343499864256747177988825578647189563088068257214198650437730618330249172716051559993880468542083352885474175039320848153156858562341041960950299312991459780503345784440261679263045723337629951517601461685539857683027034345542399365706329805317943096391758978877658949910614447086409173234155028671453929715706057153381022697673192590033507204548864311227048268516889390503318015295207078022755834130221198717787608473222789491216667698651180077661375273569115943192","0":"135472587547410377947826119498467634347118057359097899596599164976338466445104141784869016998150489852448547539824768048351359572626675997498079394825940306636285481821620973655797996638210760710325933304918452142858879806106214845499670718704532018129553348815327362843246706518826311676917538452317818631484884032929252959289913274829848084561421467966320595980172006456003183536232790787521924655750157145207798486087511869939940023266736153366338179116840490184005332351004990854691988404031259910319601383696749511809898297656135548118786342107367065232798999979296280467063561892962526945512167505847049907450058650930480352253243357594344686769208712964458923557777584158831146374282687397585726706489164423632","DELTA":"93540839493959971552865423901789226093328763011922445919928571946113703515842729132879472109395228387208764738970926484618949870591214627692618668077375153559192701474693025462226656116549337248146652482501255820930607033869432220667968682424554711616471973627651716863421554516577716366331699848682958681216261888139409101603059124344125075525791543312721162515584942523419876134808829569829529457617639955678189490257208141837196965948342373022812790844435050648360150869293836349223060722858500537182872294143846213258360218898475766641125493477502149553491502593654061863323857297998048614447925371606038801933864960337435890254277043261512846682042139570000962051463878026338583242360548041329046695667868842400","3":"1227675452527605924725300993571504188580051470857656204064614533296779844072852823820754766175236321050062349182891221840452517985644028521499240739391613871973822807731772613052644168369405390658793869751915172749739844553410726807277698347769400977274750672880389943392076308065414059539317340070691852044062594715307024113666759844200606183662256825096857658837519571386467051003466014468855293015652584667669998830524947537781865745830650392641812221679438090257444660715937570193098993118585554478799821072396238689063767016402460690760792908977364175126682041704095200572282644311025594681667826054722587271200221036938804846621444065128275082392082327596239358623150786484106872933657139420542280145197712634108","2":"596248147592834822582469335300585333722415132713749620075902332764163096347819006925876158892694742461036531935093982309708492066217459300117157420442081698140277277546563570823996272914068575482008392971932777453900260626542725308060927710122631763045025742980634216666560934260634907599194353151523256914796667535940073668465664206971169038864484235442207811974981191879443614478897291543702607764944403808380921189291059195014621592027660463072969363556421687131446107696579365265893962197300447027501604372738056016734644378437907931412654753728514905671605635291285742886484416973884856055084605172305967034292646171874483670469193852404511746786039743401185954843446037600121496137915619789351744485264614840070"},"mj":"1117601261519431120446925325460734824239475567013636538481947258329666056692767097795046086413732472111811628751812987521644198549167671875326968410921589186689138994171774838662","alpha":"76727612740067576380015106087224381023260815407331375101920043509817863645705120013304683427627332447210083684516403565749916480947649443674885388155460323163682547865307733144184097845709556309570345707127872162476432029772452433292049079349274445907295491125915363620615679995457134810061392296263970553630102299601689685622244925494554558218277670233361938142224820526392365740420502452466959099546877778248089664282581792213376636587293479012783947088070052463503335266180110771978445892744225891676396288437005847308189508347446490710626231658457908472341606549292437553353163031111068977301305043175839949352742711874426231072729977019365761072816602400121302646283352164756787266537474728685656685493249314400351742964904006326192403855909148605656818024621453179832395687665671245528217931951331393482249182516107670379946496778373","t":{"1":"37203689290881948278188715497642400459048942241931994079434400288578680362970117779048886269388440270597283202033458042171954610700745461571112086648991639439510380585728148682202768590972068041537531136529323260832899360551065706810590032715173070285762675403853992183366951113799098912676809373169763887110420539387555392787590966452796271491986622992160642135480293110112269570862265489120557014181468118619500321000966443141863893743211690388599242584469856365803370202569641902205925191670838354052104480074127555862332399641076324738839120815544432811566503174551735326387678621283249883091766325861497740614317","3":"58486787977689017034592833190899828017343431922483563651969628402499947729293364026001243898136737211851089198526360764391403150763769829047179796728616126204105160762333590343947446892105646111520243793053992399512412375936746396187319527051818920531870855183738837254656664620975569939859368862778444291640228229744805843369153451336792379036403300211151424879060241580540910888241769468335914016289938374111481091198264912969768783884602931940994543804730631920434719776196148182987249363641941951160704928605829395517074202388967815738516252602903999010405305463910751219873354588685197134114358234107748126140977","0":"60771874648036182010335841594233428920565254732600738082343398028553347795361460295011584446745121430144172025428394361648540904134739046923992231536160801306934272250969829886396340824213814702904457884984387666505055153957942221822193548673145705543973635530652570436109428474727638128773540793530691399549837156239786231362112148914687724325416768262058486101761972044802628459748878200584371058300150212485731451700436345975266860685549673168984700174294811561393162860595319582236734968601457003780816977537443267217411297266600994916897237305128142313335280264655603445636393371224354539882875937093696844430903","DELTA":"32816484171372208266594641116109072545171919234551585018140151846920408763078147655907777031259225522515086979967895258126318315788662577171150780535509410112003001556402222994276811926864642497249250763185467678044678144507739529818566125668667424447792097244624010084189629269472698722402896445274092470014229247479740671263651727480322483037149584904549203417226525624083290572692241241259382947122018271686649224741832992966652878170311798126004447080305528487720923103595513611363001766063956060990267107048028416069435287244770875463867263571308182619338433913487209319707428378896314619624990311543563016697299","2":"36428320569485697540634597755814766104888687488985202673924762266313135133244610404742081973550848160712054769198012193456278135847215508952327879544434490828380496286187725750283788811367824465072001959950807751252194618152990469069074061195618692339915840384087350671392595652921761835083158086795163935060896053332506433434451836095710383871272788002621913967538399141417857031787255744141437237474972197102809365346359345477248611632307159641948507043668113827177494748159094045928919209335044052792843664865311991178972383241855607627188111601119780878072683890170539599447876998109080150992209773901144245398001"},"predicate":{"attr_name":"age","p_type":"GE","value":18}}]},"non_revoc_proof":null},"claim_def_seq_no":1,"revoc_reg_seq_no":null}},"aggregated_proof":{"c_hash":"33103550379681684069592829341967479618752165928802550870585275205292715916069","c_list":[[1,121,77,5,144,154,14,192,190,190,145,180,128,71,22,60,168,20,46,163,139,194,71,165,220,188,121,76,25,146,231,114,65,54,69,68,19,200,250,192,47,123,157,132,74,50,28,69,226,195,243,118,45,63,237,197,216,202,206,101,33,56,225,200,128,3,89,12,182,38,113,221,165,119,228,201,156,201,172,136,59,64,51,72,164,198,49,228,223,117,80,64,166,226,37,8,29,146,186,80,210,119,76,252,4,255,62,218,112,163,164,147,247,190,108,76,140,191,76,217,214,184,152,179,193,149,15,70,197,46,90,60,255,247,197,219,252,73,76,0,125,104,114,22,182,161,110,36,162,103,27,42,88,18,161,237,198,43,177,189,181,86,135,207,71,114,0,26,175,12,199,125,25,124,178,87,36,208,251,15,191,127,202,148,152,43,142,92,191,7,89,153,130,195,223,248,176,109,97,164,126,162,181,124,237,130,155,197,66,59,40,197,72,84,32,100,64,55,227,60,214,143,200,200,89,115,236,172,145,56,100,73,20,242,233,95,130,58,112,153,120,115,119,42,199,30,205,88,223,42,196,184,41,19,100,19,244],[1,225,103,238,42,147,91,191,110,69,154,53,57,156,124,43,174,155,76,202,193,98,128,38,207,126,66,70,161,96,109,127,174,44,203,198,177,238,118,117,89,227,170,155,44,251,35,119,219,29,100,173,26,144,95,50,177,4,40,234,117,174,210,192,172,57,160,198,42,199,212,243,240,114,59,91,207,68,57,38,198,2,73,18,16,209,182,145,206,71,17,69,222,49,36,120,72,117,169,107,238,208,235,216,24,183,201,81,15,83,242,45,136,184,166,26,142,136,228,58,229,235,88,169,238,134,205,96,85,9,122,53,147,100,183,114,92,54,125,178,125,75,127,116,50,88,109,152,22,4,121,252,190,18,190,130,143,138,59,231,38,131,176,54,19,194,218,67,144,122,91,43,86,73,233,48,193,30,183,183,191,238,216,167,101,28,185,43,118,64,242,16,62,239,177,27,109,144,67,221,175,202,4,92,130,74,24,20,151,15,227,225,142,71,145,46,192,248,87,57,183,142,253,52,20,56,153,220,234,25,67,116,225,179,211,116,161,37,64,34,48,155,1,1,159,157,37,31,202,19,229,152,23,138,183,126,55],[1,38,181,193,191,72,2,239,34,83,49,36,179,160,82,112,172,98,255,63,60,22,177,249,67,215,220,198,181,7,49,254,133,243,221,214,47,64,229,82,11,94,175,57,86,152,229,192,184,96,136,116,226,123,128,217,23,244,19,204,36,44,123,208,88,24,217,120,145,139,25,233,227,5,119,90,47,147,1,115,92,39,119,194,167,17,229,39,163,167,237,14,116,234,106,252,216,54,33,233,21,54,183,130,144,161,177,142,177,240,51,73,21,202,188,103,244,153,204,219,123,231,139,135,189,155,143,28,4,180,44,148,0,27,103,26,13,203,31,32,166,67,84,87,23,72,234,236,20,1,84,70,86,76,192,164,235,124,86,128,78,230,119,155,95,121,125,20,244,181,121,250,169,9,67,85,213,177,139,111,187,183,114,165,249,177,161,181,175,46,226,66,86,84,124,86,69,143,217,158,161,30,107,133,44,239,89,209,24,150,1,238,122,144,138,179,121,114,90,13,212,209,60,126,37,62,177,180,131,222,168,2,201,156,169,220,224,53,8,203,220,215,163,104,195,184,73,35,241,182,177,80,41,253,230,90,173],[1,32,145,96,219,241,190,19,195,129,219,50,148,152,107,12,189,225,103,171,149,252,193,243,136,132,195,44,19,20,247,140,160,91,230,78,31,242,85,213,65,185,1,91,12,69,118,80,26,135,102,131,4,108,130,230,83,91,176,249,196,56,128,127,82,72,106,49,211,94,133,40,86,72,42,187,199,216,191,223,208,206,121,118,15,167,255,228,57,206,158,217,64,205,212,178,8,248,129,183,221,98,70,54,37,55,47,81,120,59,186,238,165,0,70,173,137,193,232,180,125,211,237,182,249,191,173,107,129,164,148,231,116,225,66,66,71,156,39,248,164,253,234,140,205,177,140,117,47,21,15,242,31,113,118,91,143,89,213,86,143,135,21,46,35,199,214,107,111,65,65,19,26,171,130,16,19,102,145,210,210,61,51,169,148,169,118,182,106,107,253,100,214,232,52,103,180,96,249,254,71,6,11,119,48,129,213,223,205,93,20,117,26,187,32,151,212,137,203,17,237,208,150,72,23,225,235,122,188,34,105,115,0,160,168,251,191,22,242,238,207,74,142,154,66,94,149,191,215,194,134,6,165,244,167,233,241],[1,207,77,250,146,127,242,229,44,172,182,201,183,242,32,242,182,129,233,10,8,180,23,191,163,21,238,158,5,27,216,146,253,173,127,99,95,168,209,132,242,196,242,34,25,25,249,211,51,236,164,153,175,61,65,150,82,251,174,102,186,47,195,82,44,90,252,184,74,89,251,177,254,108,151,136,230,220,93,224,173,247,244,116,132,59,170,215,194,30,87,84,166,147,57,156,201,207,132,203,222,191,253,15,19,228,173,81,156,4,51,121,227,159,50,18,148,129,205,42,42,227,252,138,62,176,115,227,253,52,125,110,178,167,132,244,14,116,195,194,172,44,45,63,38,121,215,136,68,230,21,108,133,159,197,179,94,78,233,107,236,114,92,165,248,22,124,161,23,142,236,224,175,233,134,25,97,150,131,61,220,203,104,154,199,247,146,47,205,56,209,0,133,132,18,103,136,8,202,37,29,100,105,12,232,74,33,6,255,202,96,170,52,229,244,4,235,2,201,125,86,168,179,224,130,81,54,221,185,184,187,141,0,114,98,38,70,225,228,60,157,53,210,238,60,216,215,154,48,73,3,157,192,245,81,170,49],[1,3,244,229,158,71,18,146,198,202,27,2,231,37,13,145,243,84,112,220,61,174,4,175,104,200,64,146,193,20,174,126,42,157,168,76,165,21,50,216,82,211,180,73,244,54,227,200,19,157,25,228,81,37,64,201,19,138,175,50,246,169,11,45,74,194,131,236,127,177,41,242,130,55,112,182,98,22,99,48,153,83,161,250,65,89,3,97,6,5,171,54,223,87,98,103,23,200,212,177,140,155,151,252,125,45,176,55,92,41,56,2,252,32,149,60,3,168,209,193,23,168,230,182,72,193,230,224,5,15,58,63,93,196,33,93,76,188,30,70,31,136,64,204,223,2,230,210,243,255,135,193,52,132,248,160,22,18,164,71,77,80,112,229,120,116,210,225,2,19,139,35,0,214,5,246,9,106,136,204,0,148,97,21,222,153,57,177,162,11,243,252,7,242,34,239,245,50,104,74,221,92,73,13,142,10,184,250,246,167,240,46,230,86,207,181,12,133,81,119,143,164,88,114,223,243,179,208,175,84,161,27,11,225,36,37,177,112,85,81,184,163,223,159,36,9,247,20,13,230,215,108,117,35,99,117,211]]},"requested_proof":{"revealed_attrs":{"attr1_uuid":["claim::277478db-bf57-42c3-8530-b1b13cfe0bfd","Alex","1139481716457488690172217916278103335"]},"unrevealed_attrs":{},"self_attested_attrs":{},"predicates":{"predicate1_uuid":"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd"}}}"#; + let proof_json = r#"{"proofs":{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{"proof":{"primary_proof":{"eq_proof":{"revealed_attrs":{"name":"1139481716457488690172217916278103335"},"a_prime":"47629821806628155353444789773246165920681315271529392722265555946090524267165563309836167110610840740533588118152308411732923636370660640410661034994521654033599863817144282118006097899736622728860229305231675970853294584911572355833537271010861501353858292189045263114095480601737776505186511389129055847562085611741257601964074827979121349153316235245772819207422031038042586202074331681302501661153569340935741290924699468188826629478130140797677338573924284871118002193526319478550852287453975107498037063076866410320160118555629090040954555043934303307652160345244864713226315470541231435958298648179413077988326","e":"13427639393364185909415877973872458621256927563729922146828001652769380799419438410309469022979920689628523901764614163117469683925816443","v":"852136445143816932026946294488424887907102968158908948827421962603492187508454543239422067899916472317305416590471170842186669606584356963437132366711335927890209765986844538775191207999204354235774464468525274918097404114453069375363594310105209141774763909570100638835926337238009617444858777301355087706167735590386774813901740600054753028260344014744801229032610106838480523182317262113911183640784111960909501662169298536941919854667754097841344375972975021196106884215734228415868248724905018661498061287694439466570946597514142085096419985189064172035527690786158872698717583830848410994616274746162550376126607414773916066374234063208380831144157533076866210628625236440222547584539349936639548061601416341705483504386186280800509889531835172071717956251546280392606775903107774727736794828168898273891724336881907672405328368540895104468091907771325910937575557566831844131159128453840354307814975621978196047820","m":{"age":"1117601261519431120446925325460734824239475567013636538481947258329666056692767097795046086413732472111811628751812987521644198549167671875326968410921589186689138994171774838662","height":"7064132689652704067914104576495132313294680087958177180391515757079548676035445873279966783996928425154050462229933823707574545166617858646442019030600136959459527533262821184869","sex":"16084497853957041205729191269508720470626311156190485518484640641677445098603656354458362520541393995692536218820724164533958162674375198846036330444513484319280148335515891811530"},"m1":"154906224259819061652290487122980839849626068919893070220438585977323162319993111920906032317552959103520053742608858935542877608981244065301675821390065831113115709272412144796159984624494428122971995557415296140268002332169405587907128359886810433617416529821500995701094400375272097687818064435577784795275","m2":"13805395408072590464827983892588030341708765524663545700917462089376137940485022437657208204460048097312372685954050370540389593952001973312378647790917367330461398089529292217752"},"ge_proofs":[{"u":{"1":"7698818972783845439601187851976452936638792889455287252542709653271706844173743185409084669157965935169942655008606334521674712818637940377261656468700786810566551698412412949418","0":"11703047052430512223413711314521545616119146623040600935686474696241801697819280425232876917607198335376453682738553665221410353412906194951254558355994401995990233992518110582450","3":"13210777821918317858818819091924507295018522783042111457450035423463340571245465760486275059291363621513532153389441883097799049597687545496359999443320001567152794884095192951040","2":"15219471780524079156861690098171693383497641272226737821992208834301871102152362116211452788300889697214391366996966539871625433480959011635688106136537800706217506402845296449689"},"r":{"1":"46043242109380749151527145850513330956077996622769158245225343392397735706292106535150958053995712629189143692293204979798837951212291825184346767969751978730000071952944305252032332015837054475531407691352179423131405515518588355918925056889302269768343499864256747177988825578647189563088068257214198650437730618330249172716051559993880468542083352885474175039320848153156858562341041960950299312991459780503345784440261679263045723337629951517601461685539857683027034345542399365706329805317943096391758978877658949910614447086409173234155028671453929715706057153381022697673192590033507204548864311227048268516889390503318015295207078022755834130221198717787608473222789491216667698651180077661375273569115943192","0":"135472587547410377947826119498467634347118057359097899596599164976338466445104141784869016998150489852448547539824768048351359572626675997498079394825940306636285481821620973655797996638210760710325933304918452142858879806106214845499670718704532018129553348815327362843246706518826311676917538452317818631484884032929252959289913274829848084561421467966320595980172006456003183536232790787521924655750157145207798486087511869939940023266736153366338179116840490184005332351004990854691988404031259910319601383696749511809898297656135548118786342107367065232798999979296280467063561892962526945512167505847049907450058650930480352253243357594344686769208712964458923557777584158831146374282687397585726706489164423632","DELTA":"93540839493959971552865423901789226093328763011922445919928571946113703515842729132879472109395228387208764738970926484618949870591214627692618668077375153559192701474693025462226656116549337248146652482501255820930607033869432220667968682424554711616471973627651716863421554516577716366331699848682958681216261888139409101603059124344125075525791543312721162515584942523419876134808829569829529457617639955678189490257208141837196965948342373022812790844435050648360150869293836349223060722858500537182872294143846213258360218898475766641125493477502149553491502593654061863323857297998048614447925371606038801933864960337435890254277043261512846682042139570000962051463878026338583242360548041329046695667868842400","3":"1227675452527605924725300993571504188580051470857656204064614533296779844072852823820754766175236321050062349182891221840452517985644028521499240739391613871973822807731772613052644168369405390658793869751915172749739844553410726807277698347769400977274750672880389943392076308065414059539317340070691852044062594715307024113666759844200606183662256825096857658837519571386467051003466014468855293015652584667669998830524947537781865745830650392641812221679438090257444660715937570193098993118585554478799821072396238689063767016402460690760792908977364175126682041704095200572282644311025594681667826054722587271200221036938804846621444065128275082392082327596239358623150786484106872933657139420542280145197712634108","2":"596248147592834822582469335300585333722415132713749620075902332764163096347819006925876158892694742461036531935093982309708492066217459300117157420442081698140277277546563570823996272914068575482008392971932777453900260626542725308060927710122631763045025742980634216666560934260634907599194353151523256914796667535940073668465664206971169038864484235442207811974981191879443614478897291543702607764944403808380921189291059195014621592027660463072969363556421687131446107696579365265893962197300447027501604372738056016734644378437907931412654753728514905671605635291285742886484416973884856055084605172305967034292646171874483670469193852404511746786039743401185954843446037600121496137915619789351744485264614840070"},"mj":"1117601261519431120446925325460734824239475567013636538481947258329666056692767097795046086413732472111811628751812987521644198549167671875326968410921589186689138994171774838662","alpha":"76727612740067576380015106087224381023260815407331375101920043509817863645705120013304683427627332447210083684516403565749916480947649443674885388155460323163682547865307733144184097845709556309570345707127872162476432029772452433292049079349274445907295491125915363620615679995457134810061392296263970553630102299601689685622244925494554558218277670233361938142224820526392365740420502452466959099546877778248089664282581792213376636587293479012783947088070052463503335266180110771978445892744225891676396288437005847308189508347446490710626231658457908472341606549292437553353163031111068977301305043175839949352742711874426231072729977019365761072816602400121302646283352164756787266537474728685656685493249314400351742964904006326192403855909148605656818024621453179832395687665671245528217931951331393482249182516107670379946496778373","t":{"1":"37203689290881948278188715497642400459048942241931994079434400288578680362970117779048886269388440270597283202033458042171954610700745461571112086648991639439510380585728148682202768590972068041537531136529323260832899360551065706810590032715173070285762675403853992183366951113799098912676809373169763887110420539387555392787590966452796271491986622992160642135480293110112269570862265489120557014181468118619500321000966443141863893743211690388599242584469856365803370202569641902205925191670838354052104480074127555862332399641076324738839120815544432811566503174551735326387678621283249883091766325861497740614317","3":"58486787977689017034592833190899828017343431922483563651969628402499947729293364026001243898136737211851089198526360764391403150763769829047179796728616126204105160762333590343947446892105646111520243793053992399512412375936746396187319527051818920531870855183738837254656664620975569939859368862778444291640228229744805843369153451336792379036403300211151424879060241580540910888241769468335914016289938374111481091198264912969768783884602931940994543804730631920434719776196148182987249363641941951160704928605829395517074202388967815738516252602903999010405305463910751219873354588685197134114358234107748126140977","0":"60771874648036182010335841594233428920565254732600738082343398028553347795361460295011584446745121430144172025428394361648540904134739046923992231536160801306934272250969829886396340824213814702904457884984387666505055153957942221822193548673145705543973635530652570436109428474727638128773540793530691399549837156239786231362112148914687724325416768262058486101761972044802628459748878200584371058300150212485731451700436345975266860685549673168984700174294811561393162860595319582236734968601457003780816977537443267217411297266600994916897237305128142313335280264655603445636393371224354539882875937093696844430903","DELTA":"32816484171372208266594641116109072545171919234551585018140151846920408763078147655907777031259225522515086979967895258126318315788662577171150780535509410112003001556402222994276811926864642497249250763185467678044678144507739529818566125668667424447792097244624010084189629269472698722402896445274092470014229247479740671263651727480322483037149584904549203417226525624083290572692241241259382947122018271686649224741832992966652878170311798126004447080305528487720923103595513611363001766063956060990267107048028416069435287244770875463867263571308182619338433913487209319707428378896314619624990311543563016697299","2":"36428320569485697540634597755814766104888687488985202673924762266313135133244610404742081973550848160712054769198012193456278135847215508952327879544434490828380496286187725750283788811367824465072001959950807751252194618152990469069074061195618692339915840384087350671392595652921761835083158086795163935060896053332506433434451836095710383871272788002621913967538399141417857031787255744141437237474972197102809365346359345477248611632307159641948507043668113827177494748159094045928919209335044052792843664865311991178972383241855607627188111601119780878072683890170539599447876998109080150992209773901144245398001"},"predicate":{"attr_name":"age","p_type":"GE","value":18}}]},"non_revoc_proof":null},"schema_seq_no":1,"revoc_reg_seq_no":null,"issuer_did":"did"}},"aggregated_proof":{"c_hash":"33103550379681684069592829341967479618752165928802550870585275205292715916069","c_list":[[1,121,77,5,144,154,14,192,190,190,145,180,128,71,22,60,168,20,46,163,139,194,71,165,220,188,121,76,25,146,231,114,65,54,69,68,19,200,250,192,47,123,157,132,74,50,28,69,226,195,243,118,45,63,237,197,216,202,206,101,33,56,225,200,128,3,89,12,182,38,113,221,165,119,228,201,156,201,172,136,59,64,51,72,164,198,49,228,223,117,80,64,166,226,37,8,29,146,186,80,210,119,76,252,4,255,62,218,112,163,164,147,247,190,108,76,140,191,76,217,214,184,152,179,193,149,15,70,197,46,90,60,255,247,197,219,252,73,76,0,125,104,114,22,182,161,110,36,162,103,27,42,88,18,161,237,198,43,177,189,181,86,135,207,71,114,0,26,175,12,199,125,25,124,178,87,36,208,251,15,191,127,202,148,152,43,142,92,191,7,89,153,130,195,223,248,176,109,97,164,126,162,181,124,237,130,155,197,66,59,40,197,72,84,32,100,64,55,227,60,214,143,200,200,89,115,236,172,145,56,100,73,20,242,233,95,130,58,112,153,120,115,119,42,199,30,205,88,223,42,196,184,41,19,100,19,244],[1,225,103,238,42,147,91,191,110,69,154,53,57,156,124,43,174,155,76,202,193,98,128,38,207,126,66,70,161,96,109,127,174,44,203,198,177,238,118,117,89,227,170,155,44,251,35,119,219,29,100,173,26,144,95,50,177,4,40,234,117,174,210,192,172,57,160,198,42,199,212,243,240,114,59,91,207,68,57,38,198,2,73,18,16,209,182,145,206,71,17,69,222,49,36,120,72,117,169,107,238,208,235,216,24,183,201,81,15,83,242,45,136,184,166,26,142,136,228,58,229,235,88,169,238,134,205,96,85,9,122,53,147,100,183,114,92,54,125,178,125,75,127,116,50,88,109,152,22,4,121,252,190,18,190,130,143,138,59,231,38,131,176,54,19,194,218,67,144,122,91,43,86,73,233,48,193,30,183,183,191,238,216,167,101,28,185,43,118,64,242,16,62,239,177,27,109,144,67,221,175,202,4,92,130,74,24,20,151,15,227,225,142,71,145,46,192,248,87,57,183,142,253,52,20,56,153,220,234,25,67,116,225,179,211,116,161,37,64,34,48,155,1,1,159,157,37,31,202,19,229,152,23,138,183,126,55],[1,38,181,193,191,72,2,239,34,83,49,36,179,160,82,112,172,98,255,63,60,22,177,249,67,215,220,198,181,7,49,254,133,243,221,214,47,64,229,82,11,94,175,57,86,152,229,192,184,96,136,116,226,123,128,217,23,244,19,204,36,44,123,208,88,24,217,120,145,139,25,233,227,5,119,90,47,147,1,115,92,39,119,194,167,17,229,39,163,167,237,14,116,234,106,252,216,54,33,233,21,54,183,130,144,161,177,142,177,240,51,73,21,202,188,103,244,153,204,219,123,231,139,135,189,155,143,28,4,180,44,148,0,27,103,26,13,203,31,32,166,67,84,87,23,72,234,236,20,1,84,70,86,76,192,164,235,124,86,128,78,230,119,155,95,121,125,20,244,181,121,250,169,9,67,85,213,177,139,111,187,183,114,165,249,177,161,181,175,46,226,66,86,84,124,86,69,143,217,158,161,30,107,133,44,239,89,209,24,150,1,238,122,144,138,179,121,114,90,13,212,209,60,126,37,62,177,180,131,222,168,2,201,156,169,220,224,53,8,203,220,215,163,104,195,184,73,35,241,182,177,80,41,253,230,90,173],[1,32,145,96,219,241,190,19,195,129,219,50,148,152,107,12,189,225,103,171,149,252,193,243,136,132,195,44,19,20,247,140,160,91,230,78,31,242,85,213,65,185,1,91,12,69,118,80,26,135,102,131,4,108,130,230,83,91,176,249,196,56,128,127,82,72,106,49,211,94,133,40,86,72,42,187,199,216,191,223,208,206,121,118,15,167,255,228,57,206,158,217,64,205,212,178,8,248,129,183,221,98,70,54,37,55,47,81,120,59,186,238,165,0,70,173,137,193,232,180,125,211,237,182,249,191,173,107,129,164,148,231,116,225,66,66,71,156,39,248,164,253,234,140,205,177,140,117,47,21,15,242,31,113,118,91,143,89,213,86,143,135,21,46,35,199,214,107,111,65,65,19,26,171,130,16,19,102,145,210,210,61,51,169,148,169,118,182,106,107,253,100,214,232,52,103,180,96,249,254,71,6,11,119,48,129,213,223,205,93,20,117,26,187,32,151,212,137,203,17,237,208,150,72,23,225,235,122,188,34,105,115,0,160,168,251,191,22,242,238,207,74,142,154,66,94,149,191,215,194,134,6,165,244,167,233,241],[1,207,77,250,146,127,242,229,44,172,182,201,183,242,32,242,182,129,233,10,8,180,23,191,163,21,238,158,5,27,216,146,253,173,127,99,95,168,209,132,242,196,242,34,25,25,249,211,51,236,164,153,175,61,65,150,82,251,174,102,186,47,195,82,44,90,252,184,74,89,251,177,254,108,151,136,230,220,93,224,173,247,244,116,132,59,170,215,194,30,87,84,166,147,57,156,201,207,132,203,222,191,253,15,19,228,173,81,156,4,51,121,227,159,50,18,148,129,205,42,42,227,252,138,62,176,115,227,253,52,125,110,178,167,132,244,14,116,195,194,172,44,45,63,38,121,215,136,68,230,21,108,133,159,197,179,94,78,233,107,236,114,92,165,248,22,124,161,23,142,236,224,175,233,134,25,97,150,131,61,220,203,104,154,199,247,146,47,205,56,209,0,133,132,18,103,136,8,202,37,29,100,105,12,232,74,33,6,255,202,96,170,52,229,244,4,235,2,201,125,86,168,179,224,130,81,54,221,185,184,187,141,0,114,98,38,70,225,228,60,157,53,210,238,60,216,215,154,48,73,3,157,192,245,81,170,49],[1,3,244,229,158,71,18,146,198,202,27,2,231,37,13,145,243,84,112,220,61,174,4,175,104,200,64,146,193,20,174,126,42,157,168,76,165,21,50,216,82,211,180,73,244,54,227,200,19,157,25,228,81,37,64,201,19,138,175,50,246,169,11,45,74,194,131,236,127,177,41,242,130,55,112,182,98,22,99,48,153,83,161,250,65,89,3,97,6,5,171,54,223,87,98,103,23,200,212,177,140,155,151,252,125,45,176,55,92,41,56,2,252,32,149,60,3,168,209,193,23,168,230,182,72,193,230,224,5,15,58,63,93,196,33,93,76,188,30,70,31,136,64,204,223,2,230,210,243,255,135,193,52,132,248,160,22,18,164,71,77,80,112,229,120,116,210,225,2,19,139,35,0,214,5,246,9,106,136,204,0,148,97,21,222,153,57,177,162,11,243,252,7,242,34,239,245,50,104,74,221,92,73,13,142,10,184,250,246,167,240,46,230,86,207,181,12,133,81,119,143,164,88,114,223,243,179,208,175,84,161,27,11,225,36,37,177,112,85,81,184,163,223,159,36,9,247,20,13,230,215,108,117,35,99,117,211]]},"requested_proof":{"revealed_attrs":{"attr1_uuid":["claim::277478db-bf57-42c3-8530-b1b13cfe0bfd","Alex","1139481716457488690172217916278103335"]},"unrevealed_attrs":{},"self_attested_attrs":{},"predicates":{"predicate1_uuid":"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd"}}}"#; let valid = AnoncredsUtils::verifier_verify_proof(&proof_req_json, &proof_json, @@ -952,8 +952,8 @@ mod medium_cases { "claim_def_seq_no":10, "revoc_reg_seq_no":null, "schema_seq_no":10, - "issuer_did":"did", - "signature":{"primary_claim":{"m2":"1","a":"1","e":"2","v":"3"},"non_revocation_claim":null}}"#; + "identifier":"did", + "claims_signature":{"primary_claim":{"m2":"1","a":"1","e":"2","v":"3"},"non_revocation_claim":null}}"#; let res = AnoncredsUtils::prover_store_claim(wallet_handle, &claim_json); assert_eq!(res.unwrap_err(), ErrorCode::WalletNotFoundError); diff --git a/tests/ledger.rs b/tests/ledger.rs index 1a1ec8fc8d..c61af68c70 100644 --- a/tests/ledger.rs +++ b/tests/ledger.rs @@ -166,24 +166,18 @@ mod high_cases { #[test] #[cfg(feature = "local_nodes_pool")] - fn sovrin_sign_and_submit_request_works_asas() { + fn sovrin_sign_and_submit_request_works() { TestUtils::cleanup_storage(); let pool_name = "sovrin_sign_and_submit_request_works"; let pool_handle = PoolUtils::create_and_open_pool_ledger_config(pool_name).unwrap(); let wallet_handle = WalletUtils::create_and_open_wallet(pool_name, "wallet1", "default").unwrap(); - let (did, _, _) = SignusUtils::create_my_did(wallet_handle, r#"{"seed":"000000000000000000000000Trustee1","cid":true}"#).unwrap(); - - let request = format!(r#"{{ - "reqId":1491566332010860, - "identifier":"{}", - "operation":{{ - "type":"106" - }}}}"#, did); + let (my_did, _, _) = SignusUtils::create_my_did(wallet_handle, r#"{"seed":"00000000000000000000000000000My1"}"#).unwrap(); + let (trustee_did, _, _) = SignusUtils::create_my_did(wallet_handle, r#"{"seed":"000000000000000000000000Trustee1","cid":true}"#).unwrap(); - let resp = LedgerUtils::sign_and_submit_request(pool_handle, wallet_handle, &did, &request).unwrap(); - println!("{:?}", resp); + let nym_request = LedgerUtils::build_nym_request(&trustee_did.clone(), &my_did.clone(), None, None, None).unwrap(); + LedgerUtils::sign_and_submit_request(pool_handle, wallet_handle, &trustee_did, &nym_request).unwrap(); TestUtils::cleanup_storage(); } diff --git a/tests/utils/types.rs b/tests/utils/types.rs index 5c984430d9..19cf3be647 100644 --- a/tests/utils/types.rs +++ b/tests/utils/types.rs @@ -152,7 +152,7 @@ pub struct ClaimInfo { #[derive(Debug, Deserialize, Serialize)] pub struct ClaimRequestJson { - pub claim_request: ClaimRequest, + pub blinded_ms: ClaimRequest, pub issuer_did: String, pub claim_def_seq_no: i32 } @@ -170,7 +170,10 @@ pub struct ClaimJson { pub claim_def_seq_no: i32, pub revoc_reg_seq_no: Option, pub schema_seq_no: i32, - pub signature: ClaimSignature + #[serde(rename = "claims_signature")] + pub signature: ClaimSignature, + #[serde(rename = "identifier")] + pub issuer_did: String } #[derive(Debug, Deserialize, Serialize)] From 2a8e4ee440fa8ff15dd181ae99158c43743a70e2 Mon Sep 17 00:00:00 2001 From: Evgeniy Razinkov Date: Tue, 4 Jul 2017 14:36:18 +0300 Subject: [PATCH 04/23] merge master to replace-claim-def-seq-no --- src/api/anoncreds.rs | 17 ++++++++-------- src/commands/anoncreds/issuer.rs | 35 +++++++++++++++++--------------- tests/demo.rs | 21 ++++--------------- 3 files changed, 32 insertions(+), 41 deletions(-) diff --git a/src/api/anoncreds.rs b/src/api/anoncreds.rs index e39a29bcd0..feeea16813 100644 --- a/src/api/anoncreds.rs +++ b/src/api/anoncreds.rs @@ -35,28 +35,29 @@ use self::libc::c_char; #[no_mangle] pub extern fn sovrin_issuer_create_and_store_claim_def(command_handle: i32, wallet_handle: i32, + issuer_did: *const c_char, schema_json: *const c_char, signature_type: *const c_char, create_non_revoc: bool, cb: Option) -> ErrorCode { - check_useful_c_str!(schema_json, ErrorCode::CommonInvalidParam3); - check_useful_opt_c_str!(signature_type, ErrorCode::CommonInvalidParam4); - check_useful_c_callback!(cb, ErrorCode::CommonInvalidParam5); + check_useful_c_str!(issuer_did, ErrorCode::CommonInvalidParam3); + check_useful_c_str!(schema_json, ErrorCode::CommonInvalidParam4); + check_useful_opt_c_str!(signature_type, ErrorCode::CommonInvalidParam5); + check_useful_c_callback!(cb, ErrorCode::CommonInvalidParam6); let result = CommandExecutor::instance() .send(Command::Anoncreds(AnoncredsCommand::Issuer(IssuerCommand::CreateAndStoreClaimDefinition( wallet_handle, + issuer_did, schema_json, signature_type, create_non_revoc, Box::new(move |result| { - let (err, claim_def_json, claim_def_uuid) = result_to_err_code_2!(result, String::new(), String::new()); + let (err, claim_def_json) = result_to_err_code_1!(result, String::new()); let claim_def_json = CStringUtils::string_to_cstring(claim_def_json); - let claim_def_uuid = CStringUtils::string_to_cstring(claim_def_uuid); - cb(command_handle, err, claim_def_json.as_ptr(), claim_def_uuid.as_ptr()) + cb(command_handle, err, claim_def_json.as_ptr()) }) )))); diff --git a/src/commands/anoncreds/issuer.rs b/src/commands/anoncreds/issuer.rs index 874172c27d..3aa73776ca 100644 --- a/src/commands/anoncreds/issuer.rs +++ b/src/commands/anoncreds/issuer.rs @@ -27,10 +27,11 @@ use std::cell::RefCell; pub enum IssuerCommand { CreateAndStoreClaimDefinition( i32, // wallet handle + String, // issuer did String, // schema json Option, // signature type bool, - Box) + Send>), + Box) + Send>), CreateAndStoreRevocationRegistry( i32, // wallet handle i32, // claim def seq no @@ -70,9 +71,9 @@ impl IssuerCommandExecutor { pub fn execute(&self, command: IssuerCommand) { match command { - IssuerCommand::CreateAndStoreClaimDefinition(wallet_handle, schema_json, signature_type, create_non_revoc, cb) => { + IssuerCommand::CreateAndStoreClaimDefinition(wallet_handle, issuer_did, schema_json, signature_type, create_non_revoc, cb) => { info!(target: "issuer_command_executor", "CreateAndStoreClaim command received"); - self.create_and_store_claim_definition(wallet_handle, &schema_json, + self.create_and_store_claim_definition(wallet_handle, &issuer_did, &schema_json, signature_type.as_ref().map(String::as_str), create_non_revoc, cb); } IssuerCommand::CreateAndStoreRevocationRegistry(wallet_handle, claim_def_seq_no, max_claim_num, cb) => { @@ -94,24 +95,28 @@ impl IssuerCommandExecutor { fn create_and_store_claim_definition(&self, wallet_handle: i32, + issuer_did: &str, schema_json: &str, signature_type: Option<&str>, create_non_revoc: bool, - cb: Box) + Send>) { - let result = self._create_claim_definition(wallet_handle, schema_json, - signature_type, create_non_revoc); + cb: Box) + Send>) { + let result = self._create_and_store_claim_definition(wallet_handle, issuer_did, schema_json, + signature_type, create_non_revoc); cb(result) } - fn _create_claim_definition(&self, - wallet_handle: i32, - schema_json: &str, - signature_type: Option<&str>, - create_non_revoc: bool) -> Result<(String, String), SovrinError> { + fn _create_and_store_claim_definition(&self, + wallet_handle: i32, + issuer_did: &str, + schema_json: &str, + signature_type: Option<&str>, + create_non_revoc: bool) -> Result { let schema = Schema::from_json(schema_json) .map_err(map_err_trace!()) .map_err(|err| CommonError::InvalidStructure(format!("Invalid schema json: {}", err.to_string())))?; + let claim_def_id = schema.seq_no.to_string() + "_" + issuer_did; + let (claim_definition, claim_definition_private) = self.anoncreds_service.issuer.generate_claim_definition(schema, signature_type, create_non_revoc)?; @@ -123,12 +128,10 @@ impl IssuerCommandExecutor { .map_err(map_err_trace!()) .map_err(|err| CommonError::InvalidState(format!("Invalid claim definition private json: {}", err.to_string())))?; - let uuid = Uuid::new_v4().to_string(); - - self.wallet_service.set(wallet_handle, &format!("claim_definition::{}", &uuid), &claim_definition_json)?; - self.wallet_service.set(wallet_handle, &format!("claim_definition_private::{}", &uuid), &claim_definition_private_json)?; + self.wallet_service.set(wallet_handle, &format!("claim_definition::{}", &claim_def_id), &claim_definition_json)?; + self.wallet_service.set(wallet_handle, &format!("claim_definition_private::{}", &claim_def_id), &claim_definition_private_json)?; - Ok((claim_definition_json, uuid)) + Ok(claim_definition_json) } fn create_and_store_revocation_registry(&self, diff --git a/tests/demo.rs b/tests/demo.rs index 4e4c9aa298..2eb378d963 100644 --- a/tests/demo.rs +++ b/tests/demo.rs @@ -167,6 +167,7 @@ fn anoncreds_demo_works() { assert_eq!(ErrorCode::Success, err); let schema_seq_no = 1; + let issuer_did = "some_issuer_did"; let schema = format!(r#"{{ "seqNo":{}, "data":{{ @@ -180,29 +181,15 @@ fn anoncreds_demo_works() { let err = sovrin_issuer_create_and_store_claim_def(issuer_create_claim_definition_command_handle, wallet_handle, + CString::new(issuer_did.clone()).unwrap().as_ptr(), CString::new(schema.clone()).unwrap().as_ptr(), null(), false, create_claim_definition_callback); assert_eq!(ErrorCode::Success, err); - let (err, mut claim_def_json, claim_def_uuid) = issuer_create_claim_definition_receiver.recv_timeout(TimeoutUtils::long_timeout()).unwrap(); - - info!("claim_def_json {:?}", claim_def_json); - assert_eq!(ErrorCode::Success, err); - - let claim_def_seq_no = 1; - claim_def_json = claim_def_json.replace(r#""seqNo":null"#, &format!(r#""seqNo":{}"#, claim_def_seq_no));//Need for tests - - // 4. Create relationship between claim_def_seq_no and claim_def_uuid in wallet - let err = sovrin_wallet_set_seq_no_for_value(wallet_set_seq_no_for_value_command_handle, - wallet_handle, - CString::new(claim_def_uuid).unwrap().as_ptr(), - claim_def_seq_no, - wallet_set_seq_no_for_value_callback); - - assert_eq!(ErrorCode::Success, err); - let err = wallet_set_seq_no_for_value_receiver.recv_timeout(TimeoutUtils::long_timeout()).unwrap(); + let (err, claim_def_json) = issuer_create_claim_definition_receiver.recv_timeout(TimeoutUtils::long_timeout()).unwrap(); + println!("claim_def_json {:?}", claim_def_json); assert_eq!(ErrorCode::Success, err); let master_secret_name = "master_secret"; From a70d053648c68d94e69f60eb7ec58e7e1c3e534b Mon Sep 17 00:00:00 2001 From: Evgeniy Razinkov Date: Tue, 4 Jul 2017 18:37:55 +0300 Subject: [PATCH 05/23] removed claim_def_seq_no --- src/api/anoncreds.rs | 2 +- src/commands/anoncreds/issuer.rs | 13 ++++++----- src/commands/anoncreds/prover.rs | 30 +++++++++++------------- src/services/anoncreds/issuer.rs | 14 +++++------ src/services/anoncreds/prover.rs | 17 ++++++-------- src/services/anoncreds/types.rs | 40 +++++++++++++------------------- tests/anoncreds.rs | 24 ++++++++++--------- tests/demo.rs | 8 +++---- tests/ledger.rs | 2 +- tests/utils/anoncreds.rs | 20 ++++++---------- tests/utils/callback.rs | 12 ++++------ 11 files changed, 82 insertions(+), 100 deletions(-) diff --git a/src/api/anoncreds.rs b/src/api/anoncreds.rs index feeea16813..61cf27e61c 100644 --- a/src/api/anoncreds.rs +++ b/src/api/anoncreds.rs @@ -45,7 +45,7 @@ pub extern fn sovrin_issuer_create_and_store_claim_def(command_handle: i32, check_useful_c_str!(issuer_did, ErrorCode::CommonInvalidParam3); check_useful_c_str!(schema_json, ErrorCode::CommonInvalidParam4); check_useful_opt_c_str!(signature_type, ErrorCode::CommonInvalidParam5); - check_useful_c_callback!(cb, ErrorCode::CommonInvalidParam6); + check_useful_c_callback!(cb, ErrorCode::CommonInvalidParam7); let result = CommandExecutor::instance() .send(Command::Anoncreds(AnoncredsCommand::Issuer(IssuerCommand::CreateAndStoreClaimDefinition( diff --git a/src/commands/anoncreds/issuer.rs b/src/commands/anoncreds/issuer.rs index 3aa73776ca..328b61ac58 100644 --- a/src/commands/anoncreds/issuer.rs +++ b/src/commands/anoncreds/issuer.rs @@ -115,10 +115,10 @@ impl IssuerCommandExecutor { .map_err(map_err_trace!()) .map_err(|err| CommonError::InvalidStructure(format!("Invalid schema json: {}", err.to_string())))?; - let claim_def_id = schema.seq_no.to_string() + "_" + issuer_did; + let claim_def_id = issuer_did.to_string() + ":" + &schema.seq_no.to_string(); let (claim_definition, claim_definition_private) = - self.anoncreds_service.issuer.generate_claim_definition(schema, signature_type, create_non_revoc)?; + self.anoncreds_service.issuer.generate_claim_definition(issuer_did, schema, signature_type, create_non_revoc)?; let claim_definition_json = ClaimDefinition::to_json(&claim_definition) .map_err(map_err_trace!()) @@ -202,9 +202,10 @@ impl IssuerCommandExecutor { .map_err(map_err_trace!()) .map_err(|err| CommonError::InvalidStructure(format!("Invalid claim_req_json: {}", err.to_string())))?; - let claim_def_uuid = self.wallet_service.get(wallet_handle, &format!("seq_no::{}", &claim_req_json.claim_def_seq_no))?; - let claim_def_json = self.wallet_service.get(wallet_handle, &format!("claim_definition::{}", &claim_def_uuid))?; - let claim_def_private_json = self.wallet_service.get(wallet_handle, &format!("claim_definition_private::{}", &claim_def_uuid))?; + let claim_def_id = claim_req_json.issuer_did.clone() + ":" + &claim_req_json.schema_seq_no.to_string(); + + let claim_def_json = self.wallet_service.get(wallet_handle, &format!("claim_definition::{}", &claim_def_id))?; + let claim_def_private_json = self.wallet_service.get(wallet_handle, &format!("claim_definition_private::{}", &claim_def_id))?; let claim_def = ClaimDefinition::from_json(&claim_def_json) .map_err(map_err_trace!()) @@ -259,7 +260,7 @@ impl IssuerCommandExecutor { self.wallet_service.set(wallet_handle, &format!("revocation_registry::{}", &revocation_registry_uuid), &revocation_registry_json)?; } - let claim_json = ClaimJson::new(attributes, claim_req_json.claim_def_seq_no, revoc_reg_seq_no, claims, claim_def.schema_seq_no, claim_req_json.issuer_did); + let claim_json = ClaimJson::new(attributes, revoc_reg_seq_no, claims, claim_def.schema_seq_no, claim_req_json.issuer_did); let claim_json = ClaimJson::to_json(&claim_json) .map_err(map_err_trace!()) diff --git a/src/commands/anoncreds/prover.rs b/src/commands/anoncreds/prover.rs index fc2c7f1826..64740390d8 100644 --- a/src/commands/anoncreds/prover.rs +++ b/src/commands/anoncreds/prover.rs @@ -183,9 +183,6 @@ impl ProverCommandExecutor { claim_offers.retain(move |claim_offer| { let mut condition = true; - if let Some(ref claim_def_seq_no) = filter.claim_def_seq_no { - condition = condition && claim_offer.claim_def_seq_no == claim_def_seq_no.clone(); - } if let Some(ref issuer_did) = filter.issuer_did { condition = condition && claim_offer.issuer_did == issuer_did.clone(); } @@ -258,9 +255,9 @@ impl ProverCommandExecutor { .map_err(|err| CommonError::InvalidStructure(format!("Invalid prover did: {}", err.to_string())))?; - if claim_def.claim_def_seq_no != Some(claim_offer.claim_def_seq_no) { + if claim_def.issuer_did != claim_offer.issuer_did { return Err(SovrinError::CommonError(CommonError::InvalidStructure( - format!("ClaimOffer claim_def_seq_no {} does not correspond to ClaimDef claim_def_seq_no {:?}", claim_offer.claim_def_seq_no, claim_def.claim_def_seq_no)))) + format!("ClaimOffer issuer_did {} does not correspond to ClaimDef issuer_did {:?}", claim_offer.issuer_did, claim_def.issuer_did)))) } if claim_def.schema_seq_no != claim_offer.schema_seq_no { @@ -273,8 +270,10 @@ impl ProverCommandExecutor { claim_def.data.public_key_revocation, master_secret, prover_did)?; + let claim_def_id = claim_offer.issuer_did.clone() + ":" + &claim_offer.schema_seq_no.to_string(); + self.wallet_service.set(wallet_handle, - &format!("claim_definition::{}", &claim_offer.claim_def_seq_no), + &format!("claim_definition::{}", &claim_def_id), &claim_def_json)?; let primary_claim_init_data_json = ClaimInitData::to_json(&primary_claim_init_data) @@ -282,7 +281,7 @@ impl ProverCommandExecutor { .map_err(|err| CommonError::InvalidState(format!("Invalid primary_claim_init_data: {}", err.to_string())))?; self.wallet_service.set(wallet_handle, - &format!("primary_claim_init_data::{}", &claim_offer.claim_def_seq_no), + &format!("primary_claim_init_data::{}", &claim_def_id), &primary_claim_init_data_json)?; if let Some(data) = revocation_claim_init_data { @@ -291,11 +290,11 @@ impl ProverCommandExecutor { .map_err(|err| CommonError::InvalidState(format!("Invalid data: {}", err.to_string())))?; self.wallet_service.set(wallet_handle, - &format!("revocation_claim_init_data::{}", &claim_offer.claim_def_seq_no), + &format!("revocation_claim_init_data::{}", &claim_def_id), &revocation_claim_init_data_json)?; } - let claim_request = ClaimRequestJson::new(claim_request, claim_offer.issuer_did, claim_offer.claim_def_seq_no, claim_offer.schema_seq_no); + let claim_request = ClaimRequestJson::new(claim_request, claim_offer.issuer_did, claim_offer.schema_seq_no); let claim_request_json = ClaimRequestJson::to_json(&claim_request) .map_err(map_err_trace!()) .map_err(|err| CommonError::InvalidState(format!("Invalid claim_request: {}", err.to_string())))?; @@ -315,6 +314,8 @@ impl ProverCommandExecutor { .map_err(map_err_trace!()) .map_err(|err| CommonError::InvalidStructure(format!("Invalid claim_json: {}", err.to_string())))?; + let claim_def_id = claim_json.issuer_did.clone() + ":" + &claim_json.schema_seq_no.to_string(); + let (revocation_registry, revocation_claim_init_data) = match claim_json.revoc_reg_seq_no { Some(seq_no) => { let revocation_registry_uuid = self.wallet_service.get(wallet_handle, &format!("seq_no::{}", &seq_no))?; @@ -326,7 +327,7 @@ impl ProverCommandExecutor { .map_err(|err| CommonError::InvalidState(format!("Invalid revocation_registry_json: {}", err.to_string())))?; let revocation_claim_init_data_json = self.wallet_service.get(wallet_handle, - &format!("revocation_claim_init_data::{}", &claim_json.claim_def_seq_no))?; + &format!("revocation_claim_init_data::{}", &claim_def_id))?; let revocation_claim_init_data = RevocationClaimInitData::from_json(&revocation_claim_init_data_json) .map_err(map_err_trace!()) .map_err(|err| CommonError::InvalidState(format!("Invalid revocation_claim_init_data_json: {}", err.to_string())))?; @@ -337,13 +338,13 @@ impl ProverCommandExecutor { }; let primary_claim_init_data_json = self.wallet_service.get(wallet_handle, - &format!("primary_claim_init_data::{}", &claim_json.claim_def_seq_no))?; + &format!("primary_claim_init_data::{}", &claim_def_id))?; let primary_claim_init_data = ClaimInitData::from_json(&primary_claim_init_data_json) .map_err(map_err_trace!()) .map_err(|err| CommonError::InvalidState(format!("Invalid primary_claim_init_data_json: {}", err.to_string())))?; let claim_def_json = self.wallet_service.get(wallet_handle, - &format!("claim_definition::{}", &claim_json.claim_def_seq_no))?; + &format!("claim_definition::{}", &claim_def_id))?; let claim_def = ClaimDefinition::from_json(&claim_def_json) .map_err(map_err_trace!()) .map_err(|err| CommonError::InvalidState(format!("Invalid claim_def_json: {}", err.to_string())))?; @@ -397,9 +398,6 @@ impl ProverCommandExecutor { condition = condition && claim_info.issuer_did == issuer_did; } - if let Some(claim_def_seq_no) = filter.claim_def_seq_no { - condition = condition && claim_info.claim_def_seq_no == claim_def_seq_no; - } condition }); @@ -424,7 +422,7 @@ impl ProverCommandExecutor { attrs.insert(attr.clone(), values[1].clone()); } - claims_info.push(ClaimInfo::new(uuid.clone(), attrs, claim_json.claim_def_seq_no.clone(), claim_json.revoc_reg_seq_no.clone(), + claims_info.push(ClaimInfo::new(uuid.clone(), attrs, claim_json.revoc_reg_seq_no.clone(), claim_json.schema_seq_no.clone(), claim_json.issuer_did.clone())); } diff --git a/src/services/anoncreds/issuer.rs b/src/services/anoncreds/issuer.rs index 20465d5d7f..f9ff78e73e 100644 --- a/src/services/anoncreds/issuer.rs +++ b/src/services/anoncreds/issuer.rs @@ -53,7 +53,7 @@ impl Issuer { Issuer {} } - pub fn generate_claim_definition(&self, schema: Schema, signature_type: Option<&str>, + pub fn generate_claim_definition(&self, issuer_did: &str, schema: Schema, signature_type: Option<&str>, create_non_revoc: bool) -> Result<(ClaimDefinition, ClaimDefinitionPrivate), AnoncredsError> { info!(target: "anoncreds_service", "Issuer generate claim definition for Schema {:?} -> start", &schema); @@ -69,7 +69,7 @@ impl Issuer { (None, None) }; let claim_definition_data = ClaimDefinitionData::new(pk, pkr); - let claim_definition = ClaimDefinition::new(schema.seq_no, None, SignatureTypes::CL, claim_definition_data); + let claim_definition = ClaimDefinition::new(schema.seq_no, issuer_did.to_string(), SignatureTypes::CL, claim_definition_data); let claim_definition_private = ClaimDefinitionPrivate::new(sk, skr); info!(target: "anoncreds_service", "Issuer generate claim definition for Schema {:?} -> done", &schema); @@ -474,7 +474,7 @@ mod tests { #[test] fn generate_keys_works() { let issuer = Issuer::new(); - let (claim_definition, claim_definition_private) = issuer.generate_claim_definition(mocks::get_gvt_schema(), None, false).unwrap(); + let (claim_definition, claim_definition_private) = issuer.generate_claim_definition("NcYxiDXkpYi6ov5FcYDi1e", mocks::get_gvt_schema(), None, false).unwrap(); assert_eq!(claim_definition, mocks::get_claim_definition()); assert_eq!(claim_definition_private, mocks::get_claim_definition_private()); } @@ -492,7 +492,7 @@ mod tests { let signature_type = None; let create_non_revoc = false; - let result = issuer.generate_claim_definition(schema, signature_type, create_non_revoc); + let result = issuer.generate_claim_definition("NcYxiDXkpYi6ov5FcYDi1e", schema, signature_type, create_non_revoc); assert!(result.is_ok()); let (claim_definition, claim_definition_private) = result.unwrap(); @@ -509,7 +509,7 @@ mod tests { let signature_type = None; let create_non_revoc = true; - let result = issuer.generate_claim_definition(schema, signature_type, create_non_revoc); + let result = issuer.generate_claim_definition("NcYxiDXkpYi6ov5FcYDi1e", schema, signature_type, create_non_revoc); assert!(result.is_ok()); let (claim_definition, claim_definition_private) = result.unwrap(); @@ -527,7 +527,7 @@ mod tests { let signature_type = None; let create_non_revoc = false; - let result = issuer.generate_claim_definition(schema, signature_type, create_non_revoc); + let result = issuer.generate_claim_definition("NcYxiDXkpYi6ov5FcYDi1e", schema, signature_type, create_non_revoc); assert!(result.is_err()); } @@ -580,7 +580,7 @@ pub mod mocks { BigNumber::from_dec("58606710922154038918005745652863947546479611221487923871520854046018234465128105585608812090213473225037875788462225679336791123783441657062831589984290779844020407065450830035885267846722229953206567087435754612694085258455822926492275621650532276267042885213400704012011608869094703483233081911010530256094461587809601298503874283124334225428746479707531278882536314925285434699376158578239556590141035593717362562548075653598376080466948478266094753818404986494459240364648986755479857098110402626477624280802323635285059064580583239726433768663879431610261724430965980430886959304486699145098822052003020688956471").unwrap() ); let claim_def_data = ClaimDefinitionData::new(public_key, None); - ClaimDefinition::new(1, None, SignatureTypes::CL, claim_def_data) + ClaimDefinition::new(1, "NcYxiDXkpYi6ov5FcYDi1e".to_string(), SignatureTypes::CL, claim_def_data) } pub fn get_claim_definition_private() -> ClaimDefinitionPrivate { diff --git a/src/services/anoncreds/prover.rs b/src/services/anoncreds/prover.rs index 8cc7d10803..0bea806c2d 100644 --- a/src/services/anoncreds/prover.rs +++ b/src/services/anoncreds/prover.rs @@ -199,7 +199,7 @@ impl Prover { .filter(|claim| claim.attrs.contains_key(&attribute_info.name) && if attribute_info.schema_seq_no.is_some() { claim.schema_seq_no == attribute_info.schema_seq_no.unwrap() } else { true } && - if attribute_info.claim_def_seq_no.is_some() { claim.claim_def_seq_no == attribute_info.claim_def_seq_no.unwrap() } else { true }) + if attribute_info.issuer_did.is_some() { claim.issuer_did == attribute_info.issuer_did.clone().unwrap() } else { true }) .collect(); found_attributes.insert(uuid, claims_for_attribute); @@ -212,7 +212,7 @@ impl Prover { if let Some(attribute_value) = claim.attrs.get(&predicate.attr_name) { if Prover::_attribute_satisfy_predicate(&predicate, attribute_value)? && if predicate.schema_seq_no.is_some() { claim.schema_seq_no == predicate.schema_seq_no.unwrap() } else { true } && - if predicate.claim_def_seq_no.is_some() { claim.claim_def_seq_no == predicate.claim_def_seq_no.unwrap() } else { true } { + if predicate.issuer_did.is_some() { claim.issuer_did == predicate.issuer_did.clone().unwrap() } else { true } { claims_for_predicate.push(claim.clone()); } } @@ -415,7 +415,6 @@ impl Prover { }; let claim_proof = ClaimProof::new(proof, - proof_claim.claim_json.claim_def_seq_no, proof_claim.claim_json.schema_seq_no, proof_claim.claim_json.issuer_did.clone(), proof_claim.claim_json.revoc_reg_seq_no); @@ -1550,17 +1549,17 @@ pub mod mocks { pub fn get_gvt_claim_info() -> ClaimInfo { let attrs = issuer::mocks::get_gvt_row_attributes(); - ClaimInfo::new("1".to_string(), attrs, 1, None, 1, "did".to_string()) + ClaimInfo::new("1".to_string(), attrs, None, 1, "NcYxiDXkpYi6ov5FcYDi1e".to_string()) } pub fn get_xyz_claim_info() -> ClaimInfo { let attrs = issuer::mocks::get_xyz_row_attributes(); - ClaimInfo::new("2".to_string(), attrs, 2, None, 2, "did".to_string()) + ClaimInfo::new("2".to_string(), attrs, None, 2, "NcYxiDXkpYi6ov5FcYDi1e".to_string()) } pub fn get_abc_claim_info() -> ClaimInfo { let attrs = issuer::mocks::get_gvt_row_attributes(); - ClaimInfo::new("3".to_string(), attrs, 2, None, 1, "did".to_string()) + ClaimInfo::new("3".to_string(), attrs, None, 1, "NcYxiDXkpYi6ov5FcYDi1e".to_string()) } pub fn get_proof_req_json() -> ProofRequestJson { @@ -1588,7 +1587,7 @@ pub mod mocks { let claim_def_data = ClaimDefinitionData::new(issuer::mocks::get_pk(), None); ClaimDefinition { schema_seq_no: 1, - claim_def_seq_no: None, + issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), signature_type: SignatureTypes::CL, data: claim_def_data } @@ -1598,7 +1597,7 @@ pub mod mocks { let claim_def_data = ClaimDefinitionData::new(issuer::mocks::get_pk(), None); ClaimDefinition { schema_seq_no: 2, - claim_def_seq_no: None, + issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), signature_type: SignatureTypes::CL, data: claim_def_data } @@ -1634,7 +1633,6 @@ pub mod mocks { pub fn get_gvt_claims_json() -> ClaimJson { ClaimJson { claim: issuer::mocks::get_gvt_attributes(), - claim_def_seq_no: 1, revoc_reg_seq_no: None, schema_seq_no: 1, signature: mocks::get_gvt_claims_object(), @@ -1645,7 +1643,6 @@ pub mod mocks { pub fn get_xyz_claims_json() -> ClaimJson { ClaimJson { claim: issuer::mocks::get_xyz_attributes(), - claim_def_seq_no: 2, revoc_reg_seq_no: None, schema_seq_no: 2, signature: mocks::get_xyz_claims_object(), diff --git a/src/services/anoncreds/types.rs b/src/services/anoncreds/types.rs index 22434ddb48..a4d982bc13 100644 --- a/src/services/anoncreds/types.rs +++ b/src/services/anoncreds/types.rs @@ -97,15 +97,15 @@ impl AggregatedProof { pub struct AttributeInfo { pub name: String, pub schema_seq_no: Option, - pub claim_def_seq_no: Option + pub issuer_did: Option } impl AttributeInfo { - pub fn new(name: String, schema_seq_no: Option, claim_def_seq_no: Option) -> AttributeInfo { + pub fn new(name: String, schema_seq_no: Option, issuer_did: Option) -> AttributeInfo { AttributeInfo { name: name, schema_seq_no: schema_seq_no, - claim_def_seq_no: claim_def_seq_no + issuer_did: issuer_did } } } @@ -117,15 +117,13 @@ impl<'a> JsonDecodable<'a> for AttributeInfo {} #[derive(Debug, Deserialize, Serialize)] pub struct ClaimOffer { pub issuer_did: String, - pub claim_def_seq_no: i32, pub schema_seq_no: i32 } impl ClaimOffer { - pub fn new(issuer_did: String, claim_def_seq_no: i32, schema_seq_no: i32) -> ClaimOffer { + pub fn new(issuer_did: String, schema_seq_no: i32) -> ClaimOffer { ClaimOffer { issuer_did: issuer_did, - claim_def_seq_no: claim_def_seq_no, schema_seq_no: schema_seq_no } } @@ -148,16 +146,14 @@ impl<'a> JsonDecodable<'a> for ClaimOffer {} pub struct ClaimRequestJson { pub blinded_ms: ClaimRequest, pub issuer_did: String, - pub claim_def_seq_no: i32, pub schema_seq_no: i32 } impl ClaimRequestJson { - pub fn new(blinded_ms: ClaimRequest, issuer_did: String, claim_def_seq_no: i32, schema_seq_no: i32) -> ClaimRequestJson { + pub fn new(blinded_ms: ClaimRequest, issuer_did: String, schema_seq_no: i32) -> ClaimRequestJson { ClaimRequestJson { blinded_ms: blinded_ms, issuer_did: issuer_did, - claim_def_seq_no: claim_def_seq_no, schema_seq_no: schema_seq_no } } @@ -171,19 +167,17 @@ impl<'a> JsonDecodable<'a> for ClaimRequestJson {} pub struct ClaimInfo { pub claim_uuid: String, pub attrs: HashMap, - pub claim_def_seq_no: i32, pub revoc_reg_seq_no: Option, pub schema_seq_no: i32, pub issuer_did: String } impl ClaimInfo { - pub fn new(claim_uuid: String, attrs: HashMap, claim_def_seq_no: i32, + pub fn new(claim_uuid: String, attrs: HashMap, revoc_reg_seq_no: Option, schema_seq_no: i32, issuer_did: String) -> ClaimInfo { ClaimInfo { claim_uuid: claim_uuid, attrs: attrs, - claim_def_seq_no: claim_def_seq_no, revoc_reg_seq_no: revoc_reg_seq_no, schema_seq_no: schema_seq_no, issuer_did: issuer_did @@ -230,7 +224,7 @@ pub struct ClaimProof { } impl ClaimProof { - pub fn new(proof: Proof, claim_def_seq_no: i32, schema_seq_no: i32, issuer_did: String, revoc_reg_seq_no: Option) -> ClaimProof { + pub fn new(proof: Proof, schema_seq_no: i32, issuer_did: String, revoc_reg_seq_no: Option) -> ClaimProof { ClaimProof { proof: proof, schema_seq_no: schema_seq_no, @@ -249,18 +243,18 @@ pub enum SignatureTypes { pub struct ClaimDefinition { #[serde(rename = "ref")] pub schema_seq_no: i32, - #[serde(rename = "seqNo")] - pub claim_def_seq_no: Option, + #[serde(rename = "origin")] + pub issuer_did: String, pub signature_type: SignatureTypes, pub data: ClaimDefinitionData } impl ClaimDefinition { - pub fn new(schema_seq_no: i32, claim_def_seq_no: Option, signature_type: SignatureTypes, + pub fn new(schema_seq_no: i32, issuer_did: String, signature_type: SignatureTypes, data: ClaimDefinitionData) -> ClaimDefinition { ClaimDefinition { schema_seq_no: schema_seq_no, - claim_def_seq_no: claim_def_seq_no, + issuer_did: issuer_did, signature_type: signature_type, data: data } @@ -269,7 +263,7 @@ impl ClaimDefinition { pub fn clone(&self) -> Result { Ok(ClaimDefinition { schema_seq_no: self.schema_seq_no, - claim_def_seq_no: self.claim_def_seq_no, + issuer_did: self.issuer_did.clone(), signature_type: self.signature_type.clone(), data: self.data.clone()?, }) @@ -365,7 +359,6 @@ impl<'a> JsonDecodable<'a> for ClaimInitData {} #[derive(Debug, Deserialize, Serialize)] pub struct ClaimJson { pub claim: HashMap>, - pub claim_def_seq_no: i32, pub revoc_reg_seq_no: Option, pub schema_seq_no: i32, #[serde(rename = "claims_signature")] @@ -375,11 +368,10 @@ pub struct ClaimJson { } impl ClaimJson { - pub fn new(claim: HashMap>, claim_def_seq_no: i32, revoc_reg_seq_no: Option, + pub fn new(claim: HashMap>, revoc_reg_seq_no: Option, signature: ClaimSignature, schema_seq_no: i32, issuer_did: String) -> ClaimJson { ClaimJson { claim: claim, - claim_def_seq_no: claim_def_seq_no, revoc_reg_seq_no: revoc_reg_seq_no, schema_seq_no: schema_seq_no, signature: signature, @@ -646,17 +638,17 @@ pub struct Predicate { pub p_type: PredicateType, pub value: i32, pub schema_seq_no: Option, - pub claim_def_seq_no: Option + pub issuer_did: Option } impl Predicate { - pub fn new(attr_name: String, p_type: PredicateType, value: i32, schema_seq_no: Option, claim_def_seq_no: Option) -> Predicate { + pub fn new(attr_name: String, p_type: PredicateType, value: i32, schema_seq_no: Option, issuer_did: Option) -> Predicate { Predicate { attr_name: attr_name, p_type: p_type, value: value, schema_seq_no: schema_seq_no, - claim_def_seq_no: claim_def_seq_no + issuer_did: issuer_did } } } diff --git a/tests/anoncreds.rs b/tests/anoncreds.rs index 9306c021d9..e3648b06de 100644 --- a/tests/anoncreds.rs +++ b/tests/anoncreds.rs @@ -40,9 +40,10 @@ mod high_cases { fn issuer_create_and_store_claim_def_works() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); + let issuer_did = "NcYxiDXkpYi6ov5FcYDi1e"; let schema = AnoncredsUtils::get_gvt_schema_json(1); - let (claim_def_json, _) = AnoncredsUtils::issuer_create_claim_definition(wallet_handle, &schema, None, false).unwrap(); + let claim_def_json = AnoncredsUtils::issuer_create_claim_definition(wallet_handle, issuer_did, &schema, None, false).unwrap(); let claim_def: ClaimDefinition = serde_json::from_str(&claim_def_json).unwrap(); @@ -58,10 +59,11 @@ mod high_cases { fn issuer_create_and_store_claim_def_works_for_invalid_wallet() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); + let issuer_did = "NcYxiDXkpYi6ov5FcYDi1e"; let schema = AnoncredsUtils::get_gvt_schema_json(1); let invalid_wallet_handle = wallet_handle + 1; - let res = AnoncredsUtils::issuer_create_claim_definition(invalid_wallet_handle, &schema, None, false); + let res = AnoncredsUtils::issuer_create_claim_definition(invalid_wallet_handle, &issuer_did, &schema, None, false); assert_eq!(res.unwrap_err(), ErrorCode::WalletInvalidHandle); } } @@ -768,7 +770,7 @@ mod medium_cases { let schema = r#"{"seqNo":1, "name":"name","version":"1.0", "keys":[]}"#; - let res = AnoncredsUtils::issuer_create_claim_definition(wallet_handle, &schema, None, false); + let res = AnoncredsUtils::issuer_create_claim_definition(wallet_handle, "NcYxiDXkpYi6ov5FcYDi1e", &schema, None, false); assert_eq!(res.unwrap_err(), ErrorCode::CommonInvalidStructure); } @@ -778,7 +780,7 @@ mod medium_cases { let schema = r#"{"seqNo":1, "data":{"name":"name","version":"1.0","keys":[]}}"#; - let res = AnoncredsUtils::issuer_create_claim_definition(wallet_handle, &schema, None, false); + let res = AnoncredsUtils::issuer_create_claim_definition(wallet_handle, &schema, "NcYxiDXkpYi6ov5FcYDi1e", None, false); assert_eq!(res.unwrap_err(), ErrorCode::CommonInvalidStructure); } @@ -788,7 +790,7 @@ mod medium_cases { let schema = AnoncredsUtils::get_gvt_schema_json(1); - let res = AnoncredsUtils::issuer_create_claim_definition(wallet_handle, &schema, Some("some_type"), false); + let res = AnoncredsUtils::issuer_create_claim_definition(wallet_handle, &schema, "NcYxiDXkpYi6ov5FcYDi1e", Some("some_type"), false); assert_eq!(res.unwrap_err(), ErrorCode::CommonInvalidStructure); } } @@ -1334,7 +1336,7 @@ mod demos { let claim_def_seq_no = 1; let schema = AnoncredsUtils::get_gvt_schema_json(schema_seq_no); - let claim_def_json = AnoncredsUtils::create_claim_definition_and_set_link(wallet_handle, &schema, claim_def_seq_no).unwrap(); + let claim_def_json = AnoncredsUtils::issuer_create_claim_definition(wallet_handle, &issuer_did, &schema, None, false).unwrap(); //3. Prover create Master Secret let master_secret_name = "prover_master_secret"; @@ -1433,7 +1435,7 @@ mod demos { let claim_def_seq_no = 1; let schema = AnoncredsUtils::get_gvt_schema_json(schema_seq_no); - let claim_def_json = AnoncredsUtils::create_claim_definition_and_set_link(issuer_wallet_handle, &schema, claim_def_seq_no).unwrap(); + let claim_def_json = AnoncredsUtils::issuer_create_claim_definition(issuer_wallet_handle, &issuer_did, &schema, None, false).unwrap(); //4. Prover create Master Secret let master_secret_name = "prover_master_secret"; @@ -1561,7 +1563,7 @@ mod demos { let gvt_claim_def_seq_no = 1; let gvt_schema = AnoncredsUtils::get_gvt_schema_json(gvt_schema_seq_no); - let gvt_claim_def_json = AnoncredsUtils::create_claim_definition_and_set_link(issuer_gvt_wallet_handle, &gvt_schema, gvt_claim_def_seq_no).unwrap(); + let gvt_claim_def_json = AnoncredsUtils::issuer_create_claim_definition(issuer_gvt_wallet_handle, &issuer1_did, &gvt_schema, None, false).unwrap(); schemas.insert(gvt_schema_seq_no, gvt_schema.clone()); claim_defs.insert(gvt_claim_def_seq_no, gvt_claim_def_json.clone()); @@ -1572,7 +1574,7 @@ mod demos { let xyz_claim_def_seq_no = 2; let xyz_schema = AnoncredsUtils::get_xyz_schema_json(xyz_schema_seq_no); - let xyz_claim_def_json = AnoncredsUtils::create_claim_definition_and_set_link(issuer_xyz_wallet_handle, &xyz_schema, xyz_claim_def_seq_no).unwrap(); + let xyz_claim_def_json = AnoncredsUtils::issuer_create_claim_definition(issuer_xyz_wallet_handle, &issuer2_did, &xyz_schema, None, false).unwrap(); schemas.insert(xyz_schema_seq_no, xyz_schema.clone()); claim_defs.insert(xyz_claim_def_seq_no, xyz_claim_def_json.clone()); @@ -1759,7 +1761,7 @@ mod demos { let gvt_claim_def_seq_no = 1; let gvt_schema = AnoncredsUtils::get_gvt_schema_json(gvt_schema_seq_no); - let gvt_claim_def_json = AnoncredsUtils::create_claim_definition_and_set_link(issuer_wallet_handle, &gvt_schema, gvt_claim_def_seq_no).unwrap(); + let gvt_claim_def_json = AnoncredsUtils::issuer_create_claim_definition(issuer_wallet_handle, &issuer_did, &gvt_schema, None, false).unwrap(); schemas.insert(gvt_schema_seq_no, gvt_schema.clone()); claim_defs.insert(gvt_claim_def_seq_no, gvt_claim_def_json.clone()); @@ -1769,7 +1771,7 @@ mod demos { let xyz_claim_def_seq_no = 2; let xyz_schema = AnoncredsUtils::get_xyz_schema_json(xyz_schema_seq_no); - let xyz_claim_def_json = AnoncredsUtils::create_claim_definition_and_set_link(issuer_wallet_handle, &xyz_schema, xyz_claim_def_seq_no).unwrap(); + let xyz_claim_def_json = AnoncredsUtils::issuer_create_claim_definition(issuer_wallet_handle, &issuer_did, &xyz_schema, None, false).unwrap(); schemas.insert(xyz_schema_seq_no, xyz_schema.clone()); claim_defs.insert(xyz_claim_def_seq_no, xyz_claim_def_json.clone()); diff --git a/tests/demo.rs b/tests/demo.rs index 2eb378d963..3073bbd6a5 100644 --- a/tests/demo.rs +++ b/tests/demo.rs @@ -79,8 +79,8 @@ fn anoncreds_demo_works() { let (prover_create_proof_sender, prover_create_proof_receiver) = channel(); let (verifier_verify_proof_sender, verifier_verify_proof_receiver) = channel(); - let issuer_create_claim_definition_cb = Box::new(move |err, claim_def_json, claim_def_uuid| { - issuer_create_claim_definition_sender.send((err, claim_def_json, claim_def_uuid)).unwrap(); + let issuer_create_claim_definition_cb = Box::new(move |err, claim_def_json| { + issuer_create_claim_definition_sender.send((err, claim_def_json)).unwrap(); }); let create_wallet_cb = Box::new(move |err| { create_wallet_sender.send(err).unwrap(); @@ -167,7 +167,7 @@ fn anoncreds_demo_works() { assert_eq!(ErrorCode::Success, err); let schema_seq_no = 1; - let issuer_did = "some_issuer_did"; + let issuer_did = "NcYxiDXkpYi6ov5FcYDi1e"; let schema = format!(r#"{{ "seqNo":{}, "data":{{ @@ -233,7 +233,7 @@ fn anoncreds_demo_works() { assert_eq!(ErrorCode::Success, err); let prover_did = "BzfFCYk"; - let claim_offer_json = format!(r#"{{"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","claim_def_seq_no":{}, "schema_seq_no":{}}}"#, claim_def_seq_no, schema_seq_no); + let claim_offer_json = format!(r#"{{"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","schema_seq_no":{}}}"#, schema_seq_no); // 6. Prover create Claim Request let err = diff --git a/tests/ledger.rs b/tests/ledger.rs index c61af68c70..cda0b4b748 100644 --- a/tests/ledger.rs +++ b/tests/ledger.rs @@ -654,7 +654,7 @@ mod high_cases { let get_schema_response: Reply = serde_json::from_str(&get_schema_response).unwrap(); - let (claim_def_json, _) = AnoncredsUtils::issuer_create_claim_definition(wallet_handle, + let claim_def_json = AnoncredsUtils::issuer_create_claim_definition(wallet_handle, "NcYxiDXkpYi6ov5FcYDi1e", &serde_json::to_string(&get_schema_response.result).unwrap(), None, false).unwrap(); info!("claim_def_json {:}", claim_def_json); diff --git a/tests/utils/anoncreds.rs b/tests/utils/anoncreds.rs index 08b227c173..86b2d2d05e 100644 --- a/tests/utils/anoncreds.rs +++ b/tests/utils/anoncreds.rs @@ -36,18 +36,11 @@ static mut WALLET_HANDLE: i32 = 0; static mut CLAIM_DEF_JSON: &'static str = ""; impl AnoncredsUtils { - pub fn create_claim_definition_and_set_link(wallet_handle: i32, schema: &str, claim_def_seq_no: i32) -> Result { - let (mut claim_def_json, claim_def_uuid) = AnoncredsUtils::issuer_create_claim_definition(wallet_handle, &schema, None, false)?; - claim_def_json = claim_def_json.replace(r#""seqNo":null"#, &format!(r#""seqNo":{}"#, claim_def_seq_no));//Need for tests - WalletUtils::wallet_set_seq_no_for_value(wallet_handle, &claim_def_uuid, claim_def_seq_no)?; - Ok(claim_def_json) - } - - pub fn issuer_create_claim_definition(wallet_handle: i32, schema: &str, signature_type: Option<&str>, create_non_revoc: bool) -> Result<(String, String), ErrorCode> { + pub fn issuer_create_claim_definition(wallet_handle: i32, issuer_did: &str, schema: &str, signature_type: Option<&str>, create_non_revoc: bool) -> Result { let (sender, receiver) = channel(); - let cb = Box::new(move |err, claim_def_json, claim_def_uuid| { - sender.send((err, claim_def_json, claim_def_uuid)).unwrap(); + let cb = Box::new(move |err, claim_def_json| { + sender.send((err, claim_def_json)).unwrap(); }); let (command_handle, cb) = CallbackUtils::closure_to_issuer_create_claim_definition_cb(cb); @@ -58,6 +51,7 @@ impl AnoncredsUtils { let err = sovrin_issuer_create_and_store_claim_def(command_handle, wallet_handle, + issuer_did.as_ptr(), schema.as_ptr(), if signature_type.is_some() { signature_type_str.as_ptr() } else { null() }, create_non_revoc, @@ -67,13 +61,13 @@ impl AnoncredsUtils { return Err(err); } - let (err, claim_def_json, claim_def_uuid) = receiver.recv().unwrap(); + let (err, claim_def_json) = receiver.recv().unwrap(); if err != ErrorCode::Success { return Err(err); } - Ok((claim_def_json, claim_def_uuid)) + Ok(claim_def_json) } pub fn prover_create_master_secret(wallet_handle: i32, master_secret_name: &str) -> Result<(), ErrorCode> { @@ -512,7 +506,7 @@ impl AnoncredsUtils { //2. Create GVT ClaimDefinition let schema = AnoncredsUtils::get_gvt_schema_json(COMMON_SCHEMA_SEQ_NO); //TODO Fix it.....Convert String to &'static str - let claim_def_json = AnoncredsUtils::create_claim_definition_and_set_link(WALLET_HANDLE, &schema, COMMON_CLAIM_DEF_SEQ_NO).unwrap(); + let claim_def_json = AnoncredsUtils::issuer_create_claim_definition(WALLET_HANDLE, "NcYxiDXkpYi6ov5FcYDi1e", &schema, None, false).unwrap(); let res = mem::transmute(&claim_def_json as &str); mem::forget(claim_def_json); CLAIM_DEF_JSON = res; diff --git a/tests/utils/callback.rs b/tests/utils/callback.rs index 136eeda6d2..ae814d198c 100644 --- a/tests/utils/callback.rs +++ b/tests/utils/callback.rs @@ -146,21 +146,19 @@ impl CallbackUtils { (command_handle, Some(send_tx_callback)) } - pub fn closure_to_issuer_create_claim_definition_cb(closure: Box) -> (i32, + pub fn closure_to_issuer_create_claim_definition_cb(closure: Box) -> (i32, Option) { + claim_def_json: *const c_char)>) { lazy_static! { - static ref CREATE_CLAIM_DEFINITION_CALLBACKS: Mutex < HashMap < i32, Box < FnMut(ErrorCode, String, String) + Send > >> = Default::default(); + static ref CREATE_CLAIM_DEFINITION_CALLBACKS: Mutex < HashMap < i32, Box < FnMut(ErrorCode, String) + Send > >> = Default::default(); } - extern "C" fn create_claim_definition_callback(command_handle: i32, err: ErrorCode, claim_def_json: *const c_char, claim_def_uuid: *const c_char) { + extern "C" fn create_claim_definition_callback(command_handle: i32, err: ErrorCode, claim_def_json: *const c_char) { let mut callbacks = CREATE_CLAIM_DEFINITION_CALLBACKS.lock().unwrap(); let mut cb = callbacks.remove(&command_handle).unwrap(); let claim_def_json = unsafe { CStr::from_ptr(claim_def_json).to_str().unwrap().to_string() }; - let claim_def_uuid = unsafe { CStr::from_ptr(claim_def_uuid).to_str().unwrap().to_string() }; - cb(err, claim_def_json, claim_def_uuid) + cb(err, claim_def_json) } let mut callbacks = CREATE_CLAIM_DEFINITION_CALLBACKS.lock().unwrap(); From dbda142daedc33194553420c994c720f6e42ca8c Mon Sep 17 00:00:00 2001 From: Evgeniy Razinkov Date: Wed, 5 Jul 2017 10:37:30 +0300 Subject: [PATCH 06/23] fixed tests --- tests/utils/anoncreds.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/utils/anoncreds.rs b/tests/utils/anoncreds.rs index 86b2d2d05e..ea2f3ac902 100644 --- a/tests/utils/anoncreds.rs +++ b/tests/utils/anoncreds.rs @@ -47,6 +47,7 @@ impl AnoncredsUtils { let schema = CString::new(schema).unwrap(); let signature_type_str = signature_type.map(|s| CString::new(s).unwrap()).unwrap_or(CString::new("").unwrap()); + let issuer_did = CString::new(issuer_did).unwrap(); let err = sovrin_issuer_create_and_store_claim_def(command_handle, From 8a985d4066c74d206c71421fc2ad25d3f68dc887 Mon Sep 17 00:00:00 2001 From: Evgeniy Razinkov Date: Wed, 5 Jul 2017 11:35:52 +0300 Subject: [PATCH 07/23] changes for revoc_reg --- src/api/anoncreds.rs | 38 +++++++++++++++----------------- src/commands/anoncreds/issuer.rs | 22 ++++++++++-------- src/services/anoncreds/issuer.rs | 16 +++++++++----- src/services/anoncreds/prover.rs | 3 ++- src/services/anoncreds/types.rs | 8 ++++--- tests/demo.rs | 8 +------ 6 files changed, 50 insertions(+), 45 deletions(-) diff --git a/src/api/anoncreds.rs b/src/api/anoncreds.rs index 61cf27e61c..0efb7614e0 100644 --- a/src/api/anoncreds.rs +++ b/src/api/anoncreds.rs @@ -71,7 +71,7 @@ pub extern fn sovrin_issuer_create_and_store_claim_def(command_handle: i32, /// wallet_handle: wallet handler (created by open_wallet). /// command_handle: command handle to map callback to user context. /// issuer_did: a DID of the issuer signing revoc_reg transaction to the Ledger -/// claim_def_seq_no: seq no of a public key transaction in Ledger +/// schema_seq_no: seq no of a schema transaction in Ledger /// max_claim_num: maximum number of claims the new registry can process. /// cb: Callback that takes command result as parameter. /// @@ -86,20 +86,24 @@ pub extern fn sovrin_issuer_create_and_store_claim_def(command_handle: i32, #[no_mangle] pub extern fn sovrin_issuer_create_and_store_revoc_reg(command_handle: i32, wallet_handle: i32, - claim_def_seq_no: i32, + issuer_did: *const c_char, + schema_seq_no: i32, max_claim_num: i32, cb: Option) -> ErrorCode { - check_useful_c_callback!(cb, ErrorCode::CommonInvalidParam5); + + check_useful_c_str!(issuer_did, ErrorCode::CommonInvalidParam3); + check_useful_c_callback!(cb, ErrorCode::CommonInvalidParam6); let result = CommandExecutor::instance() .send(Command::Anoncreds( AnoncredsCommand::Issuer( IssuerCommand::CreateAndStoreRevocationRegistry( wallet_handle, - claim_def_seq_no, + issuer_did, + schema_seq_no, max_claim_num, Box::new(move |result| { let (err, revoc_reg_json, revoc_reg_wallet_key) = result_to_err_code_2!(result, String::new(), String::new()); @@ -248,7 +252,6 @@ pub extern fn sovrin_issuer_revoke_claim(command_handle: i32, /// claim_offer_json: claim offer as a json containing information about the issuer and a claim: /// { /// "issuer_did": string, -/// "claim_def_seq_no": string, /// "schema_seq_no": string /// } /// @@ -290,7 +293,6 @@ pub extern fn sovrin_prover_store_claim_offer(command_handle: i32, /// Each of the filters is optional and can be combines /// { /// "issuer_did": string, -/// "claim_def_seq_no": string, /// "schema_seq_no": string /// } /// @@ -298,7 +300,6 @@ pub extern fn sovrin_prover_store_claim_offer(command_handle: i32, /// A json with a list of claim offers for the filter. /// { /// [{"issuer_did": string, -/// "claim_def_seq_no": string, /// "schema_seq_no": string}] /// } /// @@ -369,7 +370,7 @@ pub extern fn sovrin_prover_create_master_secret(command_handle: i32, /// Creates a clam request json for the given claim offer and stores it in a secure wallet. -/// The claim offer contains the information about Issuer (DID, claim_def_seq_no), +/// The claim offer contains the information about Issuer (DID, schema_seq_no), /// and the schema (schema_seq_no). /// The method gets public key and schema from the ledger, stores them in a wallet, /// and creates a blinded master secret for a master secret identified by a provided name. @@ -383,10 +384,9 @@ pub extern fn sovrin_prover_create_master_secret(command_handle: i32, /// claim_offer_json: claim offer as a json containing information about the issuer and a claim: /// { /// "issuer_did": string, -/// "claim_def_seq_no": string, /// "schema_seq_no": string /// } -/// claim_def_json: claim definition json associated with a claim_def_seq_no in the claim_offer +/// claim_def_json: claim definition json associated with issuer_did and schema_seq_no in the claim_offer /// master_secret_name: the name of the master secret stored in the wallet /// cb: Callback that takes command result as parameter. /// @@ -394,7 +394,7 @@ pub extern fn sovrin_prover_create_master_secret(command_handle: i32, /// Claim request json. /// { /// "blinded_ms" : , -/// "claim_def_seq_no" : , +/// "schema_seq_no" : , /// "issuer_did" : /// } /// @@ -437,7 +437,7 @@ pub extern fn sovrin_prover_create_and_store_claim_req(command_handle: i32, /// Updates the claim by a master secret and stores in a secure wallet. /// The claim contains the information about -/// claim_def_seq_no revoc_reg_seq_no (see issuer_create_claim). +/// schema_seq_no, issuer_did, revoc_reg_seq_no (see issuer_create_claim). /// Seq_no is a sequence number of the corresponding transaction in the ledger. /// The method loads a blinded secret for this key from the wallet, /// updates the claim and stores it in a wallet. @@ -450,7 +450,6 @@ pub extern fn sovrin_prover_create_and_store_claim_req(command_handle: i32, /// "claim": {attr1:[value, value_as_int]} /// "signature": , /// "schema_seq_no": string, -/// "claim_def_seq_no": string, /// "revoc_reg_seq_no", string /// "issuer_did", string /// } @@ -496,8 +495,7 @@ pub extern fn sovrin_prover_store_claim(command_handle: i32, /// filter_json: filter for claims /// { /// "issuer_did": string, -/// "schema_seq_no": string, -/// "claim_def_seq_no": string, +/// "schema_seq_no": string /// } /// cb: Callback that takes command result as parameter. /// @@ -507,7 +505,7 @@ pub extern fn sovrin_prover_store_claim(command_handle: i32, /// "claim_uuid": , /// "attrs": [{"attr_name" : "attr_value"}], /// "schema_seq_no": string, -/// "claim_def_seq_no": string, +/// "issuer_did": string, /// "revoc_reg_seq_no": string, /// }] /// #Errors @@ -558,7 +556,7 @@ pub extern fn sovrin_prover_get_claims(command_handle: i32, /// /// #Returns /// json with claims for the given pool request. -/// Claim consists of uuid, human-readable attributes (key-value map), schema_seq_no, claim_def_seq_no and revoc_reg_seq_no. +/// Claim consists of uuid, human-readable attributes (key-value map), schema_seq_no, issuer_did and revoc_reg_seq_no. /// { /// "requested_attr1_uuid": [claim1, claim2], /// "requested_attr2_uuid": [], @@ -570,7 +568,7 @@ pub extern fn sovrin_prover_get_claims(command_handle: i32, /// "claim_uuid": , /// "attrs": [{"attr_name" : "attr_value"}], /// "schema_seq_no": string, -/// "claim_def_seq_no": string, +/// "issuer_did": string, /// "revoc_reg_seq_no": string, /// } /// @@ -657,7 +655,7 @@ pub extern fn sovrin_prover_get_claims_for_proof_req(command_handle: i32, /// Proof json /// For each requested attribute either a proof (with optionally revealed attribute value) or /// self-attested attribute value is provided. -/// Each proof is associated with a claim and corresponding schema_seq_no, claim_def_seq_no and revoc_reg_seq_no. +/// Each proof is associated with a claim and corresponding schema_seq_no, issuer_did and revoc_reg_seq_no. /// There ais also aggregated proof part common for all claim proofs. /// { /// "requested": { @@ -736,7 +734,7 @@ pub extern fn sovrin_prover_create_proof(command_handle: i32, /// proof_json: proof json /// For each requested attribute either a proof (with optionally revealed attribute value) or /// self-attested attribute value is provided. -/// Each proof is associated with a claim and corresponding schema_seq_no, claim_def_seq_no and revoc_reg_seq_no. +/// Each proof is associated with a claim and corresponding schema_seq_no, issuer_did and revoc_reg_seq_no. /// There ais also aggregated proof part common for all claim proofs. /// { /// "requested": { diff --git a/src/commands/anoncreds/issuer.rs b/src/commands/anoncreds/issuer.rs index 328b61ac58..50f1cb756f 100644 --- a/src/commands/anoncreds/issuer.rs +++ b/src/commands/anoncreds/issuer.rs @@ -34,7 +34,8 @@ pub enum IssuerCommand { Box) + Send>), CreateAndStoreRevocationRegistry( i32, // wallet handle - i32, // claim def seq no + String, // issuer did + i32, // schema seq no i32, // max claim num Box) + Send>), CreateClaim( @@ -76,9 +77,9 @@ impl IssuerCommandExecutor { self.create_and_store_claim_definition(wallet_handle, &issuer_did, &schema_json, signature_type.as_ref().map(String::as_str), create_non_revoc, cb); } - IssuerCommand::CreateAndStoreRevocationRegistry(wallet_handle, claim_def_seq_no, max_claim_num, cb) => { + IssuerCommand::CreateAndStoreRevocationRegistry(wallet_handle, issuer_did, schema_seq_no, max_claim_num, cb) => { info!(target: "issuer_command_executor", "CreateAndStoreRevocationRegistryRegistry command received"); - self.create_and_store_revocation_registry(wallet_handle, claim_def_seq_no, max_claim_num, cb); + self.create_and_store_revocation_registry(wallet_handle, &issuer_did, schema_seq_no, max_claim_num, cb); } IssuerCommand::CreateClaim(wallet_handle, claim_req_json, claim_json, revoc_reg_seq_no, user_revoc_index, cb) => { info!(target: "issuer_command_executor", "CreateClaim command received"); @@ -136,19 +137,22 @@ impl IssuerCommandExecutor { fn create_and_store_revocation_registry(&self, wallet_handle: i32, - claim_def_seq_no: i32, + issuer_did: &str, + schema_seq_no: i32, max_claim_num: i32, cb: Box) + Send>) { - let result = self._create_and_store_revocation_registry(wallet_handle, claim_def_seq_no, max_claim_num); + let result = self._create_and_store_revocation_registry(wallet_handle, issuer_did, schema_seq_no, max_claim_num); cb(result) } fn _create_and_store_revocation_registry(&self, wallet_handle: i32, - claim_def_seq_no: i32, + issuer_did: &str, + schema_seq_no: i32, max_claim_num: i32) -> Result<(String, String), SovrinError> { - let claim_def_uuid = self.wallet_service.get(wallet_handle, &format!("seq_no::{}", &claim_def_seq_no))?; - let claim_def_json = self.wallet_service.get(wallet_handle, &format!("claim_definition::{}", &claim_def_uuid))?; + + let claim_def_id = issuer_did.to_string() + ":" + &schema_seq_no.to_string(); + let claim_def_json = self.wallet_service.get(wallet_handle, &format!("claim_definition::{}", &claim_def_id))?; let claim_def = ClaimDefinition::from_json(&claim_def_json) .map_err(map_err_trace!()) .map_err(|err| CommonError::InvalidState(format!("Invalid claim definition json: {}", err.to_string())))?; @@ -157,7 +161,7 @@ impl IssuerCommandExecutor { .ok_or(SovrinError::AnoncredsError(AnoncredsError::NotIssuedError("Revocation Public Key for this claim definition".to_string())))?; let (revocation_registry, revocation_registry_private) = - self.anoncreds_service.issuer.issue_accumulator(&pk_r, max_claim_num, claim_def_seq_no)?; + self.anoncreds_service.issuer.issue_accumulator(&pk_r, max_claim_num, issuer_did, schema_seq_no)?; let uuid = Uuid::new_v4().to_string(); diff --git a/src/services/anoncreds/issuer.rs b/src/services/anoncreds/issuer.rs index f9ff78e73e..3487a4169c 100644 --- a/src/services/anoncreds/issuer.rs +++ b/src/services/anoncreds/issuer.rs @@ -159,9 +159,11 @@ impl Issuer { Ok(result) } - pub fn issue_accumulator(&self, pk_r: &RevocationPublicKey, max_claim_num: i32, claim_def_seq_no: i32) + pub fn issue_accumulator(&self, pk_r: &RevocationPublicKey, max_claim_num: i32, issuer_did: &str, schema_seq_no: i32) -> Result<(RevocationRegistry, RevocationRegistryPrivate), AnoncredsError> { - info!(target: "anoncreds_service", "Issuer create accumulator for claim_def_seq_no {} -> start", claim_def_seq_no); + info!(target: "anoncreds_service", + "Issuer create accumulator for issuer_did {} and schema_seq_no {} -> start", + issuer_did, schema_seq_no); let gamma = GroupOrderElement::new()?; let mut g: HashMap = HashMap::new(); let mut g_dash: HashMap = HashMap::new(); @@ -189,10 +191,12 @@ impl Issuer { let acc_pk = AccumulatorPublicKey::new(z); let acc_sk = AccumulatorSecretKey::new(gamma); - let revocation_registry = RevocationRegistry::new(acc, acc_pk, claim_def_seq_no); + let revocation_registry = RevocationRegistry::new(acc, acc_pk, issuer_did.to_string(), schema_seq_no); let revocation_registry_private = RevocationRegistryPrivate::new(acc_sk, g, g_dash); - info!(target: "anoncreds_service", "Issuer create accumulator for claim_def_seq_no {} -> done", claim_def_seq_no); + info!(target: "anoncreds_service", + "Issuer create accumulator for issuer_did {} and schema_seq_no {} -> done", + issuer_did, schema_seq_no); Ok((revocation_registry, revocation_registry_private)) } @@ -325,7 +329,9 @@ impl Issuer { let ref mut accumulator = revocation_registry.borrow_mut().accumulator; if accumulator.is_full() { - return Err(AnoncredsError::AccumulatorIsFull(format!("{}", revocation_registry.borrow().claim_def_seq_no))) + return Err(AnoncredsError::AccumulatorIsFull( + format!("issuer_did: {} schema_seq_no: {}", revocation_registry.borrow().issuer_did, revocation_registry.borrow().schema_seq_no)) + ) } let i = match seq_number { diff --git a/src/services/anoncreds/prover.rs b/src/services/anoncreds/prover.rs index 0bea806c2d..7cb6606b27 100644 --- a/src/services/anoncreds/prover.rs +++ b/src/services/anoncreds/prover.rs @@ -1605,7 +1605,8 @@ pub mod mocks { pub fn get_revocation_registry() -> RevocationRegistry { RevocationRegistry { - claim_def_seq_no: 1, + issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), + schema_seq_no: 1, accumulator: mocks::get_accumulator(), acc_pk: verifier::mocks::get_accum_publick_key() } diff --git a/src/services/anoncreds/types.rs b/src/services/anoncreds/types.rs index a4d982bc13..5e8c47a93e 100644 --- a/src/services/anoncreds/types.rs +++ b/src/services/anoncreds/types.rs @@ -960,18 +960,20 @@ impl<'a> JsonDecodable<'a> for ProofJson {} #[derive(Deserialize, Debug, Serialize, Clone)] pub struct RevocationRegistry { - pub claim_def_seq_no: i32, + pub issuer_did: String, + pub schema_seq_no: i32, pub accumulator: Accumulator, pub acc_pk: AccumulatorPublicKey } impl RevocationRegistry { pub fn new(accumulator: Accumulator, acc_pk: AccumulatorPublicKey, - claim_def_seq_no: i32) -> RevocationRegistry { + issuer_did: String, schema_seq_no: i32) -> RevocationRegistry { RevocationRegistry { + issuer_did: issuer_did, accumulator: accumulator, acc_pk: acc_pk, - claim_def_seq_no: claim_def_seq_no + schema_seq_no: schema_seq_no } } } diff --git a/tests/demo.rs b/tests/demo.rs index 3073bbd6a5..d3ee9a6282 100644 --- a/tests/demo.rs +++ b/tests/demo.rs @@ -40,8 +40,7 @@ use sovrin::api::pool::{ }; use sovrin::api::wallet::{ sovrin_create_wallet, - sovrin_open_wallet, - sovrin_wallet_set_seq_no_for_value + sovrin_open_wallet }; use sovrin::api::signus::{ sovrin_create_and_store_my_did, @@ -67,7 +66,6 @@ fn anoncreds_demo_works() { let (create_wallet_sender, create_wallet_receiver) = channel(); let (open_wallet_sender, open_wallet_receiver) = channel(); let (issuer_create_claim_definition_sender, issuer_create_claim_definition_receiver) = channel(); - let (wallet_set_seq_no_for_value_sender, wallet_set_seq_no_for_value_receiver) = channel(); // TODO: uncomment this for revocation part //let (wallet_set_seq_no_for_value_sender2, wallet_set_seq_no_for_value_receiver2) = channel(); //let (issuer_create_and_store_revoc_reg_sender, issuer_create_and_store_revoc_reg_receiver) = channel(); @@ -88,9 +86,6 @@ fn anoncreds_demo_works() { let open_wallet_cb = Box::new(move |err, handle| { open_wallet_sender.send((err, handle)).unwrap(); }); - let wallet_set_seq_no_for_value_cb = Box::new(move |err| { - wallet_set_seq_no_for_value_sender.send(err).unwrap(); - }); // TODO: uncomment this for revocation part // let wallet_set_seq_no_for_value_cb2 = Box::new(move |err| { // wallet_set_seq_no_for_value_sender2.send(err).unwrap(); @@ -123,7 +118,6 @@ fn anoncreds_demo_works() { let (issuer_create_claim_definition_command_handle, create_claim_definition_callback) = CallbackUtils::closure_to_issuer_create_claim_definition_cb(issuer_create_claim_definition_cb); let (create_wallet_command_handle, create_wallet_callback) = CallbackUtils::closure_to_create_wallet_cb(create_wallet_cb); let (open_wallet_command_handle, open_wallet_callback) = CallbackUtils::closure_to_open_wallet_cb(open_wallet_cb); - let (wallet_set_seq_no_for_value_command_handle, wallet_set_seq_no_for_value_callback) = CallbackUtils::closure_to_wallet_set_seq_no_for_value_cb(wallet_set_seq_no_for_value_cb); // TODO: uncomment this for revocation part // let (wallet_set_seq_no_for_value_command_handle2, wallet_set_seq_no_for_value_callback2) = CallbackUtils::closure_to_wallet_set_seq_no_for_value_cb(wallet_set_seq_no_for_value_cb2); // let (issuer_create_and_store_revoc_reg_command_handle, issuer_create_and_store_revoc_reg_callback) = CallbackUtils::closure_to_issuer_create_and_store_revoc_reg_cb(issuer_create_and_store_revoc_reg_cb); From 7bfdd0cf6105b2218f2e91abb07f07a98fc0221a Mon Sep 17 00:00:00 2001 From: Evgeniy Razinkov Date: Wed, 5 Jul 2017 11:52:02 +0300 Subject: [PATCH 08/23] changes for create_claim --- src/api/anoncreds.rs | 7 +++---- src/services/anoncreds/types.rs | 2 -- tests/utils/types.rs | 1 - 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/api/anoncreds.rs b/src/api/anoncreds.rs index 0efb7614e0..99d6562b25 100644 --- a/src/api/anoncreds.rs +++ b/src/api/anoncreds.rs @@ -125,11 +125,11 @@ pub extern fn sovrin_issuer_create_and_store_revoc_reg(command_handle: i32, /// command_handle: command handle to map callback to user context. /// claim_req_json: a claim request with a blinded secret /// from the user (returned by prover_create_and_store_claim_req). -/// Also contains claim_def_seq_no and issuer_did +/// Also contains schema_seq_no and issuer_did /// Example: /// { /// "blinded_ms" : , -/// "claim_def_seq_no" : , +/// "schema_seq_no" : , /// "issuer_did" : /// } /// claim_json: a claim containing attribute values for each of requested attribute names. @@ -144,12 +144,11 @@ pub extern fn sovrin_issuer_create_and_store_revoc_reg(command_handle: i32, /// /// #Returns /// Revocation registry update json with a newly issued claim -/// Claim json containing issued claim, and claim_def_seq_no and revoc_reg_seq_no +/// Claim json containing issued claim, issuer_did, schema_seq_no, and revoc_reg_seq_no /// used for issuance /// { /// "claim": , /// "signature": , -/// "claim_def_seq_no": string, /// "revoc_reg_seq_no", string, /// "issuer_did", string, /// "schema_seq_no", string, diff --git a/src/services/anoncreds/types.rs b/src/services/anoncreds/types.rs index 5e8c47a93e..fb486cc68d 100644 --- a/src/services/anoncreds/types.rs +++ b/src/services/anoncreds/types.rs @@ -132,7 +132,6 @@ impl ClaimOffer { #[derive(Debug, Deserialize, Serialize)] pub struct ClaimOfferFilter { pub issuer_did: Option, - pub claim_def_seq_no: Option, pub schema_seq_no: Option } @@ -188,7 +187,6 @@ impl ClaimInfo { #[derive(Debug, Deserialize, Serialize)] pub struct ClaimInfoFilter { pub issuer_did: Option, - pub claim_def_seq_no: Option, pub schema_seq_no: Option } diff --git a/tests/utils/types.rs b/tests/utils/types.rs index 19cf3be647..edaae2b96e 100644 --- a/tests/utils/types.rs +++ b/tests/utils/types.rs @@ -167,7 +167,6 @@ pub struct ClaimRequest { #[derive(Debug, Deserialize, Serialize)] pub struct ClaimJson { pub claim: HashMap>, - pub claim_def_seq_no: i32, pub revoc_reg_seq_no: Option, pub schema_seq_no: i32, #[serde(rename = "claims_signature")] From b3cb40eadb7e28af71e135ec4a87ce58ce776b88 Mon Sep 17 00:00:00 2001 From: Evgeniy Razinkov Date: Wed, 5 Jul 2017 11:56:06 +0300 Subject: [PATCH 09/23] changes for revoke claim --- src/api/anoncreds.rs | 3 --- src/commands/anoncreds/issuer.rs | 9 +++------ 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/api/anoncreds.rs b/src/api/anoncreds.rs index 99d6562b25..499f0c7d6d 100644 --- a/src/api/anoncreds.rs +++ b/src/api/anoncreds.rs @@ -202,7 +202,6 @@ pub extern fn sovrin_issuer_create_claim(command_handle: i32, /// wallet_handle: wallet handler (created by open_wallet). /// command_handle: command handle to map callback to user context. /// issuer_did: a DID of the issuer signing transactions to the Ledger -/// claim_def_seq_no: seq no of a claim definition transaction in Ledger /// revoc_reg_seq_no: seq no of a revocation registry transaction in Ledger /// user_revoc_index: index of the user in the revocation registry /// cb: Callback that takes command result as parameter. @@ -217,7 +216,6 @@ pub extern fn sovrin_issuer_create_claim(command_handle: i32, #[no_mangle] pub extern fn sovrin_issuer_revoke_claim(command_handle: i32, wallet_handle: i32, - claim_def_seq_no: i32, revoc_reg_seq_no: i32, user_revoc_index: i32, cb: Option) + Send>), RevokeClaim( i32, // wallet handle - i32, // claim def seq no i32, // revoc reg seq no i32, // user revoc index Box) + Send>), @@ -86,10 +85,10 @@ impl IssuerCommandExecutor { self.create_claim(wallet_handle, &claim_req_json, &claim_json, revoc_reg_seq_no, user_revoc_index, cb); } - IssuerCommand::RevokeClaim(wallet_handle, claim_def_seq_no, revoc_reg_seq_no, + IssuerCommand::RevokeClaim(wallet_handle, revoc_reg_seq_no, user_revoc_index, cb) => { info!(target: "issuer_command_executor", "RevokeClaim command received"); - self.revoke_claim(wallet_handle, claim_def_seq_no, revoc_reg_seq_no, user_revoc_index, cb); + self.revoke_claim(wallet_handle, revoc_reg_seq_no, user_revoc_index, cb); } }; } @@ -275,17 +274,15 @@ impl IssuerCommandExecutor { fn revoke_claim(&self, wallet_handle: i32, - claim_def_seq_no: i32, revoc_reg_seq_no: i32, user_revoc_index: i32, cb: Box) + Send>) { - let result = self._revoke_claim(wallet_handle, claim_def_seq_no, revoc_reg_seq_no, user_revoc_index); + let result = self._revoke_claim(wallet_handle, revoc_reg_seq_no, user_revoc_index); cb(result) } fn _revoke_claim(&self, wallet_handle: i32, - claim_def_seq_no: i32, revoc_reg_seq_no: i32, user_revoc_index: i32) -> Result { let revocation_registry_uuid = self.wallet_service.get(wallet_handle, &format!("revocation_registry_uuid::{}", &revoc_reg_seq_no))?; From 1c0f61ac5ab8c09d247c4f05c1c06c181df046fd Mon Sep 17 00:00:00 2001 From: Evgeniy Razinkov Date: Wed, 5 Jul 2017 16:18:06 +0300 Subject: [PATCH 10/23] fixed several tests --- src/api/anoncreds.rs | 12 ++--- tests/anoncreds.rs | 98 ++++++++++++++++++++-------------------- tests/utils/anoncreds.rs | 12 ++--- tests/utils/types.rs | 9 ++-- 4 files changed, 64 insertions(+), 67 deletions(-) diff --git a/src/api/anoncreds.rs b/src/api/anoncreds.rs index 499f0c7d6d..a95044258e 100644 --- a/src/api/anoncreds.rs +++ b/src/api/anoncreds.rs @@ -663,9 +663,9 @@ pub extern fn sovrin_prover_get_claims_for_proof_req(command_handle: i32, /// "requested_predicate_2_uuid": [claim_proof3_uuid], /// } /// "claim_proofs": { -/// "claim_proof1_uuid": [, claim_def_seq_no, revoc_reg_seq_no], -/// "claim_proof2_uuid": [, claim_def_seq_no, revoc_reg_seq_no], -/// "claim_proof3_uuid": [, claim_def_seq_no, revoc_reg_seq_no] +/// "claim_proof1_uuid": [, issuer_did, schema_seq_no, revoc_reg_seq_no], +/// "claim_proof2_uuid": [, issuer_did, schema_seq_no, revoc_reg_seq_no], +/// "claim_proof3_uuid": [, issuer_did, schema_seq_no, revoc_reg_seq_no] /// }, /// "aggregated_proof": /// } @@ -742,9 +742,9 @@ pub extern fn sovrin_prover_create_proof(command_handle: i32, /// "requested_predicate_2_uuid": [claim_proof3_uuid], /// } /// "claim_proofs": { -/// "claim_proof1_uuid": [, claim_def_seq_no, revoc_reg_seq_no], -/// "claim_proof2_uuid": [, claim_def_seq_no, revoc_reg_seq_no], -/// "claim_proof3_uuid": [, claim_def_seq_no, revoc_reg_seq_no] +/// "claim_proof1_uuid": [, issuer_did, schema_seq_no, revoc_reg_seq_no], +/// "claim_proof2_uuid": [, issuer_did, schema_seq_no, revoc_reg_seq_no], +/// "claim_proof3_uuid": [, issuer_did, schema_seq_no, revoc_reg_seq_no] /// }, /// "aggregated_proof": /// } diff --git a/tests/anoncreds.rs b/tests/anoncreds.rs index e3648b06de..b5a9536ae7 100644 --- a/tests/anoncreds.rs +++ b/tests/anoncreds.rs @@ -75,7 +75,7 @@ mod high_cases { fn prover_store_claim_offer_works() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1, 1); + let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1); AnoncredsUtils::prover_store_claim_offer(wallet_handle, &claim_offer_json).unwrap(); } @@ -94,7 +94,7 @@ mod high_cases { fn prover_store_claim_offer_works_for_invalid_wallet() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1, 1); + let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1); let invalid_wallet_handle = wallet_handle + 1; let res = AnoncredsUtils::prover_store_claim_offer(invalid_wallet_handle, &claim_offer_json); @@ -123,8 +123,8 @@ mod high_cases { let claim_offers: Vec = serde_json::from_str(&claim_offers).unwrap(); assert_eq!(claim_offers.len(), 2); - assert!(claim_offers.contains(&ClaimOffer { issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), claim_def_seq_no: 1, schema_seq_no: 1 })); - assert!(claim_offers.contains(&ClaimOffer { issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), claim_def_seq_no: 2, schema_seq_no: 2 })); + assert!(claim_offers.contains(&ClaimOffer { issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), schema_seq_no: 1 })); + assert!(claim_offers.contains(&ClaimOffer { issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), schema_seq_no: 2 })); } #[test] @@ -135,7 +135,7 @@ mod high_cases { let claim_offers: Vec = serde_json::from_str(&claim_offers).unwrap(); assert_eq!(claim_offers.len(), 1); - assert!(claim_offers.contains(&ClaimOffer { issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), claim_def_seq_no: 2, schema_seq_no: 2 })); + assert!(claim_offers.contains(&ClaimOffer { issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), schema_seq_no: 2 })); } #[test] @@ -146,8 +146,8 @@ mod high_cases { let claim_offers: Vec = serde_json::from_str(&claim_offers).unwrap(); assert_eq!(claim_offers.len(), 2); - assert!(claim_offers.contains(&ClaimOffer { issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), claim_def_seq_no: 2, schema_seq_no: 2 })); - assert!(claim_offers.contains(&ClaimOffer { issuer_did: "CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW".to_string(), claim_def_seq_no: 3, schema_seq_no: 2 })); + assert!(claim_offers.contains(&ClaimOffer { issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), schema_seq_no: 2 })); + assert!(claim_offers.contains(&ClaimOffer { issuer_did: "CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW".to_string(), schema_seq_no: 2 })); } #[test] @@ -158,7 +158,7 @@ mod high_cases { let claim_offers: Vec = serde_json::from_str(&claim_offers).unwrap(); assert_eq!(claim_offers.len(), 1); - assert!(claim_offers.contains(&ClaimOffer { issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), claim_def_seq_no: 1, schema_seq_no: 1 })); + assert!(claim_offers.contains(&ClaimOffer { issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), schema_seq_no: 1 })); } #[test] @@ -209,8 +209,8 @@ mod high_cases { let (wallet_handle, claim_def) = AnoncredsUtils::init_common_wallet(); let issuer_did = "NcYxiDXkpYi6ov5FcYDi1e"; - let claim_def_seq_no = 1; - let claim_offer_json = AnoncredsUtils::get_claim_offer(issuer_did, claim_def_seq_no, 1); + let schema_seq_no = 1; + let claim_offer_json = AnoncredsUtils::get_claim_offer(issuer_did, schema_seq_no); let claim_req_json = AnoncredsUtils::prover_create_and_store_claim_req(wallet_handle, "CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW", @@ -219,7 +219,7 @@ mod high_cases { COMMON_MASTER_SECRET).unwrap(); let claim_req: ClaimRequestJson = serde_json::from_str(&claim_req_json).unwrap(); - assert_eq!(claim_req.claim_def_seq_no, claim_def_seq_no); + assert_eq!(claim_req.schema_seq_no, schema_seq_no); assert_eq!(claim_req.issuer_did, issuer_did); assert!(claim_req.blinded_ms.u.len() > 0); } @@ -228,7 +228,7 @@ mod high_cases { fn prover_create_and_store_claim_req_works_for_invalid_wallet() { let (wallet_handle, claim_def) = AnoncredsUtils::init_common_wallet(); - let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1, 1); + let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1); let invalid_wallet_handle = wallet_handle + 1; let res = AnoncredsUtils::prover_create_and_store_claim_req(invalid_wallet_handle, @@ -243,7 +243,7 @@ mod high_cases { fn prover_create_and_store_claim_req_works_for_claim_def_does_not_correspond_offer_different_claim_def_seq_no() { let (wallet_handle, claim_def) = AnoncredsUtils::init_common_wallet(); - let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 2, 1); + let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1); let res = AnoncredsUtils::prover_create_and_store_claim_req(wallet_handle, "CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW", @@ -257,7 +257,7 @@ mod high_cases { fn prover_create_and_store_claim_req_works_for_claim_def_does_not_correspond_offer_different_schema_seq_no() { let (wallet_handle, claim_def) = AnoncredsUtils::init_common_wallet(); - let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1, 2); + let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 2); let res = AnoncredsUtils::prover_create_and_store_claim_req(wallet_handle, "CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW", @@ -320,7 +320,7 @@ mod high_cases { fn prover_store_claim_works() { let (wallet_handle, claim_def_json) = AnoncredsUtils::init_common_wallet(); - let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1, 1); + let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1); let claim_req = AnoncredsUtils::prover_create_and_store_claim_req(wallet_handle, "CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW", @@ -338,7 +338,7 @@ mod high_cases { fn prover_store_claim_works_for_invalid_wallet_handle() { let (wallet_handle, claim_def_json) = AnoncredsUtils::init_common_wallet(); - let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1, 1); + let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1); let claim_req = AnoncredsUtils::prover_create_and_store_claim_req(wallet_handle, "CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW", @@ -827,9 +827,9 @@ mod medium_cases { let wallet_handle_1 = WalletUtils::create_and_open_wallet("pool1", "wallet1", "default").unwrap(); let wallet_handle_2 = WalletUtils::create_and_open_wallet("pool1", "wallet2", "default").unwrap(); - let claim_offer_json_1 = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1, 1); - let claim_offer_json_2 = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 2, 2); - let claim_offer_json_3 = AnoncredsUtils::get_claim_offer("CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW", 3, 2); + let claim_offer_json_1 = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1); + let claim_offer_json_2 = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 2); + let claim_offer_json_3 = AnoncredsUtils::get_claim_offer("CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW", 2); AnoncredsUtils::prover_store_claim_offer(wallet_handle_1, &claim_offer_json_1).unwrap(); AnoncredsUtils::prover_store_claim_offer(wallet_handle_2, &claim_offer_json_2).unwrap(); @@ -839,7 +839,7 @@ mod medium_cases { let claim_offers: Vec = serde_json::from_str(&claim_offers).unwrap(); assert_eq!(claim_offers.len(), 1); - assert!(claim_offers.contains(&ClaimOffer { issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), claim_def_seq_no: 2, schema_seq_no: 2 })); + assert!(claim_offers.contains(&ClaimOffer { issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), schema_seq_no: 2 })); } } @@ -877,7 +877,7 @@ mod medium_cases { fn prover_create_and_store_claim_req_works_for_invalid_claim_def() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1, 1); + let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1); let claim_def = r#"{ "schema_seq_no":1, "signature_type":"CL", @@ -899,7 +899,7 @@ mod medium_cases { fn prover_create_and_store_claim_req_works_for_invalid_master_secret() { let (wallet_handle, claim_def) = AnoncredsUtils::init_common_wallet(); - let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1, 1); + let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1); let res = AnoncredsUtils::prover_create_and_store_claim_req(wallet_handle, "CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW", @@ -965,7 +965,7 @@ mod medium_cases { fn prover_store_claim_works_for_invalid_claim_json() { let (wallet_handle, claim_def_json) = AnoncredsUtils::init_common_wallet(); - let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1, 1); + let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1); AnoncredsUtils::prover_create_and_store_claim_req(wallet_handle, "CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW", &claim_offer_json, @@ -1333,7 +1333,6 @@ mod demos { //2. Issuer create claim definition let issuer_did = "NcYxiDXkpYi6ov5FcYDi1e"; let schema_seq_no = 1; - let claim_def_seq_no = 1; let schema = AnoncredsUtils::get_gvt_schema_json(schema_seq_no); let claim_def_json = AnoncredsUtils::issuer_create_claim_definition(wallet_handle, &issuer_did, &schema, None, false).unwrap(); @@ -1345,7 +1344,7 @@ mod demos { //4. Prover create Claim Request let prover_did = "BzfFCYk"; - let claim_offer_json = AnoncredsUtils::get_claim_offer(issuer_did, claim_def_seq_no, schema_seq_no); + let claim_offer_json = AnoncredsUtils::get_claim_offer(issuer_did, schema_seq_no); let claim_req = AnoncredsUtils::prover_create_and_store_claim_req(wallet_handle, prover_did, &claim_offer_json, @@ -1432,7 +1431,6 @@ mod demos { //3. Issuer create claim definition let issuer_did = "NcYxiDXkpYi6ov5FcYDi1e"; let schema_seq_no = 1; - let claim_def_seq_no = 1; let schema = AnoncredsUtils::get_gvt_schema_json(schema_seq_no); let claim_def_json = AnoncredsUtils::issuer_create_claim_definition(issuer_wallet_handle, &issuer_did, &schema, None, false).unwrap(); @@ -1443,7 +1441,7 @@ mod demos { AnoncredsUtils::prover_create_master_secret(prover_wallet_handle, master_secret_name).unwrap(); //5. Prover store Claim Offer received from Issuer - let claim_offer_json = AnoncredsUtils::get_claim_offer(issuer_did, claim_def_seq_no, schema_seq_no); + let claim_offer_json = AnoncredsUtils::get_claim_offer(issuer_did, schema_seq_no); AnoncredsUtils::prover_store_claim_offer(prover_wallet_handle, &claim_offer_json).unwrap(); @@ -1485,7 +1483,7 @@ mod demos { let claims_json = AnoncredsUtils::prover_get_claims_for_proof_req(prover_wallet_handle, &proof_req_json).unwrap(); let claims: ProofClaimsJson = serde_json::from_str(&claims_json).unwrap(); - + info!("claims_json: {}", &claims_json); let claims_for_attr_1 = claims.attrs.get("attr1_uuid").unwrap(); assert_eq!(1, claims_for_attr_1.len()); let claim = claims_for_attr_1[0].clone(); @@ -1556,28 +1554,26 @@ mod demos { let prover_wallet_handle = WalletUtils::create_and_open_wallet(pool_name, prover_wallet_name, xtype).unwrap(); let mut schemas: HashMap = HashMap::new(); - let mut claim_defs: HashMap = HashMap::new(); + let mut claim_defs: HashMap = HashMap::new(); //4. Issuer1 create claim definition by gvt schema let gvt_schema_seq_no = 1; - let gvt_claim_def_seq_no = 1; let gvt_schema = AnoncredsUtils::get_gvt_schema_json(gvt_schema_seq_no); let gvt_claim_def_json = AnoncredsUtils::issuer_create_claim_definition(issuer_gvt_wallet_handle, &issuer1_did, &gvt_schema, None, false).unwrap(); schemas.insert(gvt_schema_seq_no, gvt_schema.clone()); - claim_defs.insert(gvt_claim_def_seq_no, gvt_claim_def_json.clone()); + claim_defs.insert(issuer1_did.to_string(), gvt_claim_def_json.clone()); //5. Issuer1 create claim definition by xyz schema let xyz_schema_seq_no = 2; - let xyz_claim_def_seq_no = 2; let xyz_schema = AnoncredsUtils::get_xyz_schema_json(xyz_schema_seq_no); let xyz_claim_def_json = AnoncredsUtils::issuer_create_claim_definition(issuer_xyz_wallet_handle, &issuer2_did, &xyz_schema, None, false).unwrap(); schemas.insert(xyz_schema_seq_no, xyz_schema.clone()); - claim_defs.insert(xyz_claim_def_seq_no, xyz_claim_def_json.clone()); + claim_defs.insert(issuer2_did.to_string(), xyz_claim_def_json.clone()); //6. Prover create Master Secret for Issuer1 let master_secret_name_1 = "prover_master_secret_issuer_1"; @@ -1590,12 +1586,12 @@ mod demos { AnoncredsUtils::prover_create_master_secret(prover_wallet_handle, master_secret_name_2).unwrap(); //8. Prover store Claim Offer received from Issuer1 - let issuer1_claim_offer_json = AnoncredsUtils::get_claim_offer(issuer1_did, gvt_claim_def_seq_no, gvt_schema_seq_no); + let issuer1_claim_offer_json = AnoncredsUtils::get_claim_offer(issuer1_did, gvt_schema_seq_no); AnoncredsUtils::prover_store_claim_offer(prover_wallet_handle, &issuer1_claim_offer_json).unwrap(); //9. Prover store Claim Offer received from Issuer2 - let issuer2_claim_offer_json = AnoncredsUtils::get_claim_offer(issuer2_did, xyz_claim_def_seq_no, xyz_schema_seq_no); + let issuer2_claim_offer_json = AnoncredsUtils::get_claim_offer(issuer2_did, xyz_schema_seq_no); AnoncredsUtils::prover_store_claim_offer(prover_wallet_handle, &issuer2_claim_offer_json).unwrap(); @@ -1614,7 +1610,7 @@ mod demos { let claim_offer_2_json = serde_json::to_string(&claim_offer_2).unwrap(); //11. Prover create Claim Request for gvt claim offer - let claim_offer = if claim_offer_1.claim_def_seq_no == gvt_claim_def_seq_no { claim_offer_1_json.clone() } else { claim_offer_2_json.clone() }; + let claim_offer = if claim_offer_1.issuer_did == issuer1_did { claim_offer_1_json.clone() } else { claim_offer_2_json.clone() }; let gvt_claim_req = AnoncredsUtils::prover_create_and_store_claim_req(prover_wallet_handle, prover_did, @@ -1632,7 +1628,7 @@ mod demos { AnoncredsUtils::prover_store_claim(prover_wallet_handle, &gvt_claim_json).unwrap(); //14. Prover create Claim Request for xyz claim offer - let claim_offer = if claim_offer_2.claim_def_seq_no == xyz_claim_def_seq_no { claim_offer_2_json.clone() } else { claim_offer_1_json.clone() }; + let claim_offer = if claim_offer_2.issuer_did == issuer2_did { claim_offer_2_json.clone() } else { claim_offer_1_json.clone() }; let xyz_claim_req = AnoncredsUtils::prover_create_and_store_claim_req(prover_wallet_handle, prover_did, &claim_offer, @@ -1702,9 +1698,9 @@ mod demos { let claim_defs_json = format!(r#"{{"{}":{},"{}":{}}}"#, unique_claims[0].claim_uuid, - claim_defs.get(&unique_claims[0].claim_def_seq_no).unwrap(), + claim_defs.get(&unique_claims[0].issuer_did).unwrap(), unique_claims[1].claim_uuid, - claim_defs.get(&unique_claims[1].claim_def_seq_no).unwrap()); + claim_defs.get(&unique_claims[1].issuer_did).unwrap()); let revoc_regs_jsons = "{}"; @@ -1754,27 +1750,27 @@ mod demos { let prover_wallet_handle = WalletUtils::create_and_open_wallet(pool_name, prover_wallet_name, xtype).unwrap(); let mut schemas: HashMap = HashMap::new(); - let mut claim_defs: HashMap = HashMap::new(); + let mut claim_defs: HashMap = HashMap::new(); //3. Issuer create claim definition by gvt schema let gvt_schema_seq_no = 1; - let gvt_claim_def_seq_no = 1; + let claim_def_id = issuer_did.to_string() + ":" + &gvt_schema_seq_no.to_string(); let gvt_schema = AnoncredsUtils::get_gvt_schema_json(gvt_schema_seq_no); let gvt_claim_def_json = AnoncredsUtils::issuer_create_claim_definition(issuer_wallet_handle, &issuer_did, &gvt_schema, None, false).unwrap(); schemas.insert(gvt_schema_seq_no, gvt_schema.clone()); - claim_defs.insert(gvt_claim_def_seq_no, gvt_claim_def_json.clone()); + claim_defs.insert(claim_def_id, gvt_claim_def_json.clone()); //4. Issuer create claim definition by xyz schema let xyz_schema_seq_no = 2; - let xyz_claim_def_seq_no = 2; + let claim_def_id = issuer_did.to_string() + ":" + &xyz_schema_seq_no.to_string(); let xyz_schema = AnoncredsUtils::get_xyz_schema_json(xyz_schema_seq_no); let xyz_claim_def_json = AnoncredsUtils::issuer_create_claim_definition(issuer_wallet_handle, &issuer_did, &xyz_schema, None, false).unwrap(); schemas.insert(xyz_schema_seq_no, xyz_schema.clone()); - claim_defs.insert(xyz_claim_def_seq_no, xyz_claim_def_json.clone()); + claim_defs.insert(claim_def_id, xyz_claim_def_json.clone()); //5. Prover create Master Secret for Issuer1 let master_secret_name = "prover_master_secret_issuer"; @@ -1782,12 +1778,12 @@ mod demos { AnoncredsUtils::prover_create_master_secret(prover_wallet_handle, master_secret_name).unwrap(); //6. Prover store GVT Claim Offer received from Issuer - let issuer_claim_offer_json = AnoncredsUtils::get_claim_offer(issuer_did, gvt_claim_def_seq_no, gvt_schema_seq_no); + let issuer_claim_offer_json = AnoncredsUtils::get_claim_offer(issuer_did, gvt_schema_seq_no); AnoncredsUtils::prover_store_claim_offer(prover_wallet_handle, &issuer_claim_offer_json).unwrap(); //7. Prover store XYZ Claim Offer received from Issuer - let issuer_claim_offer_json = AnoncredsUtils::get_claim_offer(issuer_did, xyz_claim_def_seq_no, xyz_schema_seq_no); + let issuer_claim_offer_json = AnoncredsUtils::get_claim_offer(issuer_did, xyz_schema_seq_no); AnoncredsUtils::prover_store_claim_offer(prover_wallet_handle, &issuer_claim_offer_json).unwrap(); @@ -1806,7 +1802,7 @@ mod demos { let claim_offer_2_json = serde_json::to_string(&claim_offer_2).unwrap(); //9. Prover create Claim Request for gvt claim offer - let claim_offer = if claim_offer_1.claim_def_seq_no == gvt_claim_def_seq_no { claim_offer_1_json.clone() } else { claim_offer_2_json.clone() }; + let claim_offer = if claim_offer_1.schema_seq_no == gvt_schema_seq_no { claim_offer_1_json.clone() } else { claim_offer_2_json.clone() }; let gvt_claim_req = AnoncredsUtils::prover_create_and_store_claim_req(prover_wallet_handle, prover_did, @@ -1825,7 +1821,7 @@ mod demos { AnoncredsUtils::prover_store_claim(prover_wallet_handle, &gvt_claim_json).unwrap(); //12. Prover create Claim Request for xyz claim offer - let claim_offer = if claim_offer_2.claim_def_seq_no == xyz_claim_def_seq_no { claim_offer_2_json.clone() } else { claim_offer_1_json.clone() }; + let claim_offer = if claim_offer_2.schema_seq_no == xyz_schema_seq_no { claim_offer_2_json.clone() } else { claim_offer_1_json.clone() }; let xyz_claim_req = AnoncredsUtils::prover_create_and_store_claim_req(prover_wallet_handle, prover_did, &claim_offer, @@ -1890,12 +1886,14 @@ mod demos { unique_claims[1].claim_uuid, schemas.get(&unique_claims[1].schema_seq_no).unwrap()); + let claim_def_id1 = unique_claims[0].issuer_did.to_string() + ":" + &unique_claims[0].schema_seq_no.to_string(); + let claim_def_id2 = unique_claims[1].issuer_did.to_string() + ":" + &unique_claims[1].schema_seq_no.to_string(); let claim_defs_json = format!(r#"{{"{}":{},"{}":{}}}"#, unique_claims[0].claim_uuid, - claim_defs.get(&unique_claims[0].claim_def_seq_no).unwrap(), + claim_defs.get(&claim_def_id1).unwrap(), unique_claims[1].claim_uuid, - claim_defs.get(&unique_claims[1].claim_def_seq_no).unwrap()); + claim_defs.get(&claim_def_id2).unwrap()); let revoc_regs_jsons = "{}"; let proof_json = AnoncredsUtils::prover_create_proof(prover_wallet_handle, diff --git a/tests/utils/anoncreds.rs b/tests/utils/anoncreds.rs index ea2f3ac902..3c736dd121 100644 --- a/tests/utils/anoncreds.rs +++ b/tests/utils/anoncreds.rs @@ -414,9 +414,9 @@ impl AnoncredsUtils { }}"#, schema_seq_no) } - pub fn get_claim_offer(issuer_did: &str, claim_def_seq_no: i32, schema_seq_no: i32) -> String { - format!(r#"{{"issuer_did":"{}","claim_def_seq_no":{},"schema_seq_no":{} }}"#, - issuer_did, claim_def_seq_no, schema_seq_no) + pub fn get_claim_offer(issuer_did: &str, schema_seq_no: i32) -> String { + format!(r#"{{"issuer_did":"{}","schema_seq_no":{} }}"#, + issuer_did, schema_seq_no) } pub fn get_gvt_claim_json() -> String { @@ -513,9 +513,9 @@ impl AnoncredsUtils { CLAIM_DEF_JSON = res; //3. Store three claim offers - let claim_offer_json_1 = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", COMMON_CLAIM_DEF_SEQ_NO, COMMON_SCHEMA_SEQ_NO); - let claim_offer_json_2 = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 2, 2); - let claim_offer_json_3 = AnoncredsUtils::get_claim_offer("CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW", 3, 2); + let claim_offer_json_1 = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", COMMON_SCHEMA_SEQ_NO); + let claim_offer_json_2 = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 2); + let claim_offer_json_3 = AnoncredsUtils::get_claim_offer("CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW", 2); AnoncredsUtils::prover_store_claim_offer(WALLET_HANDLE, &claim_offer_json_1).unwrap(); AnoncredsUtils::prover_store_claim_offer(WALLET_HANDLE, &claim_offer_json_2).unwrap(); diff --git a/tests/utils/types.rs b/tests/utils/types.rs index edaae2b96e..0ae03e6c04 100644 --- a/tests/utils/types.rs +++ b/tests/utils/types.rs @@ -5,8 +5,8 @@ use std::cell::RefCell; pub struct ClaimDefinition { #[serde(rename = "ref")] pub schema_seq_no: i32, - #[serde(rename = "seqNo")] - pub claim_def_seq_no: Option, + #[serde(rename = "origin")] + pub issuer_did: String, pub signature_type: String, pub data: ClaimDefinitionData } @@ -132,7 +132,6 @@ pub struct SchemaData { #[derive(Debug, Deserialize, Serialize, Clone, PartialEq, Eq)] pub struct ClaimOffer { pub issuer_did: String, - pub claim_def_seq_no: i32, pub schema_seq_no: i32 } @@ -145,7 +144,7 @@ pub struct ProofClaimsJson { #[derive(Debug, Serialize, Deserialize, Clone, Eq, PartialEq, Hash)] pub struct ClaimInfo { pub claim_uuid: String, - pub claim_def_seq_no: i32, + pub issuer_did: String, pub revoc_reg_seq_no: Option, pub schema_seq_no: i32 } @@ -154,7 +153,7 @@ pub struct ClaimInfo { pub struct ClaimRequestJson { pub blinded_ms: ClaimRequest, pub issuer_did: String, - pub claim_def_seq_no: i32 + pub schema_seq_no: i32 } #[derive(Debug, Serialize, Deserialize)] From f7ff699b1f3f9b136b61a18734054967e1913acd Mon Sep 17 00:00:00 2001 From: Evgeniy Razinkov Date: Wed, 5 Jul 2017 16:41:51 +0300 Subject: [PATCH 11/23] fix for test --- tests/anoncreds.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/anoncreds.rs b/tests/anoncreds.rs index b5a9536ae7..578025ae51 100644 --- a/tests/anoncreds.rs +++ b/tests/anoncreds.rs @@ -240,10 +240,10 @@ mod high_cases { } #[test] - fn prover_create_and_store_claim_req_works_for_claim_def_does_not_correspond_offer_different_claim_def_seq_no() { + fn prover_create_and_store_claim_req_works_for_claim_def_does_not_correspond_offer_different_issuer_did() { let (wallet_handle, claim_def) = AnoncredsUtils::init_common_wallet(); - let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1); + let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e3", 1); let res = AnoncredsUtils::prover_create_and_store_claim_req(wallet_handle, "CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW", From ebada6b12a82d157dc51e4ee208334d1d8c8b895 Mon Sep 17 00:00:00 2001 From: Evgeniy Razinkov Date: Wed, 5 Jul 2017 18:08:55 +0300 Subject: [PATCH 12/23] fix for several tests --- tests/anoncreds.rs | 51 ++++++++++++++++++---------------------------- tests/demo.rs | 3 ++- 2 files changed, 22 insertions(+), 32 deletions(-) diff --git a/tests/anoncreds.rs b/tests/anoncreds.rs index 578025ae51..f60b35f494 100644 --- a/tests/anoncreds.rs +++ b/tests/anoncreds.rs @@ -127,17 +127,6 @@ mod high_cases { assert!(claim_offers.contains(&ClaimOffer { issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), schema_seq_no: 2 })); } - #[test] - fn prover_get_claim_offers_works_for_filter_by_claim_def() { - let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - - let claim_offers = AnoncredsUtils::prover_get_claim_offers(wallet_handle, r#"{"claim_def_seq_no":2}"#).unwrap(); - let claim_offers: Vec = serde_json::from_str(&claim_offers).unwrap(); - - assert_eq!(claim_offers.len(), 1); - assert!(claim_offers.contains(&ClaimOffer { issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), schema_seq_no: 2 })); - } - #[test] fn prover_get_claim_offers_works_for_filter_by_schema() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); @@ -165,7 +154,7 @@ mod high_cases { fn prover_get_claim_offers_works_for_no_results() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_offers = AnoncredsUtils::prover_get_claim_offers(wallet_handle, r#"{"claim_def_seq_no":4}"#).unwrap(); + let claim_offers = AnoncredsUtils::prover_get_claim_offers(wallet_handle, r#"{"schema_seq_no":4}"#).unwrap(); let claim_offers: Vec = serde_json::from_str(&claim_offers).unwrap(); assert_eq!(claim_offers.len(), 0); @@ -176,7 +165,7 @@ mod high_cases { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); let invalid_wallet_handle = wallet_handle + 1; - let res = AnoncredsUtils::prover_get_claim_offers(invalid_wallet_handle, r#"{"claim_def_seq_no":"1"}"#); + let res = AnoncredsUtils::prover_get_claim_offers(invalid_wallet_handle, r#"{"schema_seq_no":"1"}"#); assert_eq!(res.unwrap_err(), ErrorCode::WalletInvalidHandle); } } @@ -275,7 +264,7 @@ mod high_cases { fn issuer_create_claim_works() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_req = r#"{"blinded_ms":{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"54172737564529332710724213139048941083013176891644677117322321823630308734620627329227591845094100636256829761959157314784293939045176621327154990908459072821826818718739696323299787928173535529024556540323709578850706993294234966440826690899266872682790228513973999212370574548239877108511283629423807338632435431097339875665075453785141722989098387895970395982432709011505864533727415552566715069675346220752584449560407261446567731711814188836703337365986725429656195275616846543535707364215498980750860746440672050640048215761507774996460985293327604627646056062013419674090094698841792968543317468164175921100038","ur":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","claim_def_seq_no":1,"schema_seq_no":1}"#; + let claim_req = r#"{"blinded_ms":{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"54172737564529332710724213139048941083013176891644677117322321823630308734620627329227591845094100636256829761959157314784293939045176621327154990908459072821826818718739696323299787928173535529024556540323709578850706993294234966440826690899266872682790228513973999212370574548239877108511283629423807338632435431097339875665075453785141722989098387895970395982432709011505864533727415552566715069675346220752584449560407261446567731711814188836703337365986725429656195275616846543535707364215498980750860746440672050640048215761507774996460985293327604627646056062013419674090094698841792968543317468164175921100038","ur":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","schema_seq_no":1}"#; let claim_json = AnoncredsUtils::get_gvt_claim_json(); @@ -291,7 +280,7 @@ mod high_cases { fn issuer_create_claim_works_for_claim_does_not_correspond_to_claim_req() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_req = r#"{"blinded_ms"{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"78642009183061519681642949186511883517561213024253007693605674585288964920641017651779407190325620073544451273313223865970730324882004218654708785143702626337327148875137393101464687794953218753005927492179012286511197396945795208681795313939767499444933139277315113356530041684437761038663276793040349557294620223093906897574215436647703667891052762523022326049857738264833807472302707972331207200720216038057270470116611478516211732505056236404960175670287081433670657644042478872537481050085523491110773623684416797190117083084618649667528194409150615774512701755156055570554349550169869411668543258825800016015079","ur":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","claim_def_seq_no":1,"schema_seq_no":1}"#; + let claim_req = r#"{"blinded_ms"{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"78642009183061519681642949186511883517561213024253007693605674585288964920641017651779407190325620073544451273313223865970730324882004218654708785143702626337327148875137393101464687794953218753005927492179012286511197396945795208681795313939767499444933139277315113356530041684437761038663276793040349557294620223093906897574215436647703667891052762523022326049857738264833807472302707972331207200720216038057270470116611478516211732505056236404960175670287081433670657644042478872537481050085523491110773623684416797190117083084618649667528194409150615774512701755156055570554349550169869411668543258825800016015079","ur":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","schema_seq_no":1}"#; let claim_json = AnoncredsUtils::get_xyz_claim_json(); @@ -303,7 +292,7 @@ mod high_cases { fn issuer_create_claim_works_for_for_invalid_wallet_handle() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_req = r#"{"blinded_ms":{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"54172737564529332710724213139048941083013176891644677117322321823630308734620627329227591845094100636256829761959157314784293939045176621327154990908459072821826818718739696323299787928173535529024556540323709578850706993294234966440826690899266872682790228513973999212370574548239877108511283629423807338632435431097339875665075453785141722989098387895970395982432709011505864533727415552566715069675346220752584449560407261446567731711814188836703337365986725429656195275616846543535707364215498980750860746440672050640048215761507774996460985293327604627646056062013419674090094698841792968543317468164175921100038","ur":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","claim_def_seq_no":1,"schema_seq_no":1}"#; + let claim_req = r#"{"blinded_ms":{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"54172737564529332710724213139048941083013176891644677117322321823630308734620627329227591845094100636256829761959157314784293939045176621327154990908459072821826818718739696323299787928173535529024556540323709578850706993294234966440826690899266872682790228513973999212370574548239877108511283629423807338632435431097339875665075453785141722989098387895970395982432709011505864533727415552566715069675346220752584449560407261446567731711814188836703337365986725429656195275616846543535707364215498980750860746440672050640048215761507774996460985293327604627646056062013419674090094698841792968543317468164175921100038","ur":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","schema_seq_no":1}"#; let claim_json = AnoncredsUtils::get_gvt_claim_json(); @@ -369,20 +358,20 @@ mod high_cases { } #[test] - fn prover_get_claims_works_for_filer_by_claim_def_seq_no() { + fn prover_get_claims_works_for_filter_by_issuer_did() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claims = AnoncredsUtils::prover_get_claims(wallet_handle, r#"{"claim_def_seq_no":1}"#).unwrap(); + let claims = AnoncredsUtils::prover_get_claims(wallet_handle, r#"{"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e"}"#).unwrap(); let claims: Vec = serde_json::from_str(&claims).unwrap(); assert_eq!(claims.len(), 1); } #[test] - fn prover_get_claims_works_for_filer_by_claim_def_seq_no_and_schema_seq_no() { + fn prover_get_claims_works_for_filter_by_issuer_did_and_schema_seq_no() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claims = AnoncredsUtils::prover_get_claims(wallet_handle, r#"{"claim_def_seq_no":1, "schema_seq_no":1}"#).unwrap(); + let claims = AnoncredsUtils::prover_get_claims(wallet_handle, r#"{"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e", "schema_seq_no":1}"#).unwrap(); let claims: Vec = serde_json::from_str(&claims).unwrap(); assert_eq!(claims.len(), 1); @@ -392,7 +381,7 @@ mod high_cases { fn prover_get_claims_works_for_empty_result() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claims = AnoncredsUtils::prover_get_claims(wallet_handle, r#"{"claim_def_seq_no":10}"#).unwrap(); + let claims = AnoncredsUtils::prover_get_claims(wallet_handle, r#"{"schema_seq_no":10}"#).unwrap(); let claims: Vec = serde_json::from_str(&claims).unwrap(); assert_eq!(claims.len(), 0); @@ -802,7 +791,7 @@ mod medium_cases { fn prover_store_claim_offer_works_for_invalid_issuer_did() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_offer_json = r#"{"issuer_did":"invalid_base58_string", "claim_def_seq_no":1, "schema_seq_no":1}"#; + let claim_offer_json = r#"{"issuer_did":"invalid_base58_string", "schema_seq_no":1}"#; let res = AnoncredsUtils::prover_store_claim_offer(wallet_handle, &claim_offer_json); assert_eq!(res.unwrap_err(), ErrorCode::CommonInvalidStructure); @@ -816,7 +805,7 @@ mod medium_cases { fn prover_get_claim_offers_works_for_invalid_filter_json() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let res = AnoncredsUtils::prover_get_claim_offers(wallet_handle, r#"{"claim_def_seq_no":"1"}"#); + let res = AnoncredsUtils::prover_get_claim_offers(wallet_handle, r#"{"schema_seq_no":"1"}"#); assert_eq!(res.unwrap_err(), ErrorCode::CommonInvalidStructure); } @@ -863,7 +852,7 @@ mod medium_cases { fn prover_create_and_store_claim_req_works_for_invalid_claim_offer() { let (wallet_handle, claim_def) = AnoncredsUtils::init_common_wallet(); - let claim_offer_json = r#"{"claim_def_seq_no":1}"#; + let claim_offer_json = r#"{"schema_seq_no":1}"#; let res = AnoncredsUtils::prover_create_and_store_claim_req(wallet_handle, "CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW", @@ -917,7 +906,7 @@ mod medium_cases { fn issuer_create_claim_works_for_for_invalid_claim_req_json() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_req = r#"{"blinded_ms"{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW"","ur":null},"claim_def_seq_no":1,"schema_seq_no":1}"#; + let claim_req = r#"{"blinded_ms"{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW"","ur":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","schema_seq_no":1}"#; let claim_json = AnoncredsUtils::get_gvt_claim_json(); @@ -929,7 +918,7 @@ mod medium_cases { fn issuer_create_claim_works_for_for_invalid_claim_json() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_req = r#"{"blinded_ms":{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"54172737564529332710724213139048941083013176891644677117322321823630308734620627329227591845094100636256829761959157314784293939045176621327154990908459072821826818718739696323299787928173535529024556540323709578850706993294234966440826690899266872682790228513973999212370574548239877108511283629423807338632435431097339875665075453785141722989098387895970395982432709011505864533727415552566715069675346220752584449560407261446567731711814188836703337365986725429656195275616846543535707364215498980750860746440672050640048215761507774996460985293327604627646056062013419674090094698841792968543317468164175921100038","ur":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","claim_def_seq_no":1,"schema_seq_no":1}"#; + let claim_req = r#"{"blinded_ms":{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"54172737564529332710724213139048941083013176891644677117322321823630308734620627329227591845094100636256829761959157314784293939045176621327154990908459072821826818718739696323299787928173535529024556540323709578850706993294234966440826690899266872682790228513973999212370574548239877108511283629423807338632435431097339875665075453785141722989098387895970395982432709011505864533727415552566715069675346220752584449560407261446567731711814188836703337365986725429656195275616846543535707364215498980750860746440672050640048215761507774996460985293327604627646056062013419674090094698841792968543317468164175921100038","ur":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","schema_seq_no":1}"#; let claim_json = r#"{ "sex":"male", @@ -951,7 +940,7 @@ mod medium_cases { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); let claim_json = r#"{"claim":{"sex":["male","1"],"age":["28","28"],"name":["Alex","1"],"height":["175","175"]}, - "claim_def_seq_no":10, + "issuer_did":"NcYxiDXkpYi6ov5FcYDi1e", "revoc_reg_seq_no":null, "schema_seq_no":10, "identifier":"did", @@ -973,7 +962,7 @@ mod medium_cases { COMMON_MASTER_SECRET).unwrap(); let claim_json = r#"{"claim":{"sex":["male","1"],"age":["28","28"],"name":["Alex","1"],"height":["175","175"]}, - "claim_def_seq_no":1," + "issuer_did":1," revoc_reg_seq_no":null, "schema_seq_no":1}"#; @@ -1255,7 +1244,7 @@ mod medium_cases { let claim_defs_json = format!(r#"{{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{}}}"#, claim_def); let revoc_regs_jsons = "{}"; - let proof_json = r#"{"proofs":{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{"proof":{"primary_proof":{"eq_proof":"a_prime":"47629821806628155353444789773246165920681315271529392722265555946090524267165563309836167110610840740533588118152308411732923636370660640410661034994521654033599863817144282118006097899736622728860229305231675970853294584911572355833537271010861501353858292189045263114095480601737776505186511389129055847562085611741257601964074827979121349153316235245772819207422031038042586202074331681302501661153569340935741290924699468188826629478130140797677338573924284871118002193526319478550852287453975107498037063076866410320160118555629090040954555043934303307652160345244864713226315470541231435958298648179413077988340","e":"13427639393364185909415877973872458621259927563729922146828001652769380799419438410309469022979920689628523901764614163117469683925816443","v":"852136445143816932026946294488424887907102968158908948827421962603492187508454543239422067899916472317305416590471170842186669606584356963437132366711335927890209765986844538775191207999204354235774464468525274918097404114453069375363594310105209141774763909570100638835926337238009617444858777301355087706167735590386774813901740600054753028260344014744801229032610106838480523182317262113911183640784111960909501662169298536941919854667754097841344375972975021196106884215734228415868248724905018661498061287694439466570946597514142085096419985189064172035527690786158872698717583830848410994616274586162550376126607414773916066374234063208380831144157533076866210628625236440222547584539349936639548061601416341705483504386186280800509889531835172071717956251546280392606775903107774727736794828168898273891724336881907672405328368540895104468091907771325910937575557566831844131159128453840354307814975621978196047820","m":{"age":"1117601261519431120446925325460734824239475567013636538481947258329666056692767097795046086413732472111811628751812987521644198549167671875326968410921589186689138994171774838662","height":"7064132689652704067914104576495132313294680087958177180391515757079548676035445873279966783996928425154050462229933823707574545166617858646442019030600136959459527533262821184869","sex":"16084497853957041205729191269508720470626311156190485518484640641677445098603656354458362520541393995692536218820724164533958162674375198846036330444513484319280148335515891811530"},"m1":"154906224259819061652290487122980839849626068919893070220438585977323162319993111920906032317552959103520053742608858935542877608981244065301675821390065831113115709272412144796159984624494428122971995557415296140268002332169405587907128359886810433617416529821500995701094400375272097687818064435577784795275","m2":"13805395408072590464827983892588030341708765524663545700917462089376137940485022437657208204460048097312372685954050370540389593952001973312378647790917367330461398089529292217752"},"ge_proofs":[{"u":{"1":"7698818972783845439601187851976452936638792889455287252542709653271706844173743185409084669157965935169942655008606334521674712818637940377261656468700786810566551698412412949418","0":"11703047052430512223413711314521545616119146623040600935686474696241801697819280425232876917607198335376453682738553665221410353412906194951254558355994401995990233992518110582450","3":"13210777821918317858818819091924507295018522783042111457450035423463340571245465760486275059291363621513532153389441883097799049597687545496359999443320001567152794884095192951040","2":"15219471780524079156861690098171693383497641272226737821992208834301871102152362116211452788300889697214391366996966539871625433480959011635688106136537800706217506402845296449689"},"r":{"1":"46043242109380749151527145850513330956077996622769158245225343392397735706292106535150958053995712629189143692293204979798837951212291825184346767969751978730000071952944305252032332015837054475531407691352179423131405515518588355918925056889302269768343499864256747177988825578647189563088068257214198650437730618330249172716051559993880468542083352885474175039320848153156858562341041960950299312991459780503345784440261679263045723337629951517601461685539857683027034345542399365706329805317943096391758978877658949910614447086409173234155028671453929715706057153381022697673192590033507204548864311227048268516889390503318015295207078022755834130221198717787608473222789491216667698651180077661375273569115943192","0":"135472587547410377947826119498467634347118057359097899596599164976338466445104141784869016998150489852448547539824768048351359572626675997498079394825940306636285481821620973655797996638210760710325933304918452142858879806106214845499670718704532018129553348815327362843246706518826311676917538452317818631484884032929252959289913274829848084561421467966320595980172006456003183536232790787521924655750157145207798486087511869939940023266736153366338179116840490184005332351004990854691988404031259910319601383696749511809898297656135548118786342107367065232798999979296280467063561892962526945512167505847049907450058650930480352253243357594344686769208712964458923557777584158831146374282687397585726706489164423632","DELTA":"93540839493959971552865423901789226093328763011922445919928571946113703515842729132879472109395228387208764738970926484618949870591214627692618668077375153559192701474693025462226656116549337248146652482501255820930607033869432220667968682424554711616471973627651716863421554516577716366331699848682958681216261888139409101603059124344125075525791543312721162515584942523419876134808829569829529457617639955678189490257208141837196965948342373022812790844435050648360150869293836349223060722858500537182872294143846213258360218898475766641125493477502149553491502593654061863323857297998048614447925371606038801933864960337435890254277043261512846682042139570000962051463878026338583242360548041329046695667868842400","3":"1227675452527605924725300993571504188580051470857656204064614533296779844072852823820754766175236321050062349182891221840452517985644028521499240739391613871973822807731772613052644168369405390658793869751915172749739844553410726807277698347769400977274750672880389943392076308065414059539317340070691852044062594715307024113666759844200606183662256825096857658837519571386467051003466014468855293015652584667669998830524947537781865745830650392641812221679438090257444660715937570193098993118585554478799821072396238689063767016402460690760792908977364175126682041704095200572282644311025594681667826054722587271200221036938804846621444065128275082392082327596239358623150786484106872933657139420542280145197712634108","2":"596248147592834822582469335300585333722415132713749620075902332764163096347819006925876158892694742461036531935093982309708492066217459300117157420442081698140277277546563570823996272914068575482008392971932777453900260626542725308060927710122631763045025742980634216666560934260634907599194353151523256914796667535940073668465664206971169038864484235442207811974981191879443614478897291543702607764944403808380921189291059195014621592027660463072969363556421687131446107696579365265893962197300447027501604372738056016734644378437907931412654753728514905671605635291285742886484416973884856055084605172305967034292646171874483670469193852404511746786039743401185954843446037600121496137915619789351744485264614840070"},"mj":"1117601261519431120446925325460734824239475567013636538481947258329666056692767097795046086413732472111811628751812987521644198549167671875326968410921589186689138994171774838662","alpha":"76727612740067576380015106087224381023260815407331375101920043509817863645705120013304683427627332447210083684516403565749916480947649443674885388155460323163682547865307733144184097845709556309570345707127872162476432029772452433292049079349274445907295491125915363620615679995457134810061392296263970553630102299601689685622244925494554558218277670233361938142224820526392365740420502452466959099546877778248089664282581792213376636587293479012783947088070052463503335266180110771978445892744225891676396288437005847308189508347446490710626231658457908472341606549292437553353163031111068977301305043175839949352742711874426231072729977019365761072816602400121302646283352164756787266537474728685656685493249314400351742964904006326192403855909148605656818024621453179832395687665671245528217931951331393482249182516107670379946496778373","t":{"1":"37203689290881948278188715497642400459048942241931994079434400288578680362970117779048886269388440270597283202033458042171954610700745461571112086648991639439510380585728148682202768590972068041537531136529323260832899360551065706810590032715173070285762675403853992183366951113799098912676809373169763887110420539387555392787590966452796271491986622992160642135480293110112269570862265489120557014181468118619500321000966443141863893743211690388599242584469856365803370202569641902205925191670838354052104480074127555862332399641076324738839120815544432811566503174551735326387678621283249883091766325861497740614317","3":"58486787977689017034592833190899828017343431922483563651969628402499947729293364026001243898136737211851089198526360764391403150763769829047179796728616126204105160762333590343947446892105646111520243793053992399512412375936746396187319527051818920531870855183738837254656664620975569939859368862778444291640228229744805843388153451336792379036403300211151424879060241580540910888241769468335914016289938374111481091198264912969768783884602931940994543804730631920434719776196148182987249363641941951160704928605829395517074202388967815738516252602903999010405305463910751219873354588685197134114358234107748126140977","0":"60771874648036182010335841594233428920565254732600738082343398028553347795361460295011584446745121430144172025428394361648540904134739046923992231536160801306934272250969829886396340824213814702904457884984387666505055153957942221822193548673145705543973635530652570436109428474727638128773540793530691399549837156239786231362112148914687724325416768262058486101761972044802628459748878200584371058300150212485731451700436345975266860685549673168984700174294811561393162860595319582236734968601457003780816977537443267217411297266600994916897237305128142313335280264655603445636393371224354539882875937093696844430903","DELTA":"32816484171372208266594641116109072545171919234551585018140151846920408763078147655907777031259225522515086979967895258126318315788662577171150780535509410112003001556402222994276811926864642497249250763185467678044678144507739529818566125668667424447792097244624010084189629269472698722402896445274092470014229247479740671263651727480322483037149584904549203417226525624083290572692241241259382947122018271686649224741832992966652878170311798126004447080305528487720923103595513611363001766063956060990267107048028416069435287244770875463867263571308182619338433913487209319707428378896314619624990311543563016697299","2":"36428320569485697540634597755814766104888687488985202673924762266313135133244610404742081973550848160712054769198012193456278135847215508952327879544434490828380496286187725750283788811367824465072001959950807751252194618152990469069074061195618692339915840384087350671392595652921761835083158086795163935060896053332506433434451836095710383871272788002621913967538399141417857031787255744141437237474972197102809365346359345477248611632307159641948507043668113827177494748159094045928919209335044052792843664865311991178972383241855607627188111601119780878072683890170539599447876998109080150992209773901144245398001"},"predicate":{"attr_name":"age","p_type":"GE","value":18}}]},"non_revoc_proof":null},"claim_def_seq_no":1,"revoc_reg_seq_no":null}},"aggregated_proof":{"c_hash":"33103550379681684069592829341967479618752165928802550870585275205292715916069","c_list":[[1,121,77,5,144,154,14,192,190,190,145,180,128,71,22,60,168,20,46,163,139,194,71,165,220,188,121,76,25,146,231,114,65,54,69,68,19,200,250,192,47,123,157,132,74,50,28,69,226,195,243,118,45,63,237,197,216,202,206,101,33,56,225,200,128,3,89,12,182,38,113,221,165,119,228,201,156,201,172,136,59,64,51,72,164,198,49,228,223,117,80,64,166,226,37,8,29,146,186,80,210,119,76,252,4,255,62,218,112,163,164,147,247,190,108,76,140,191,76,217,214,184,152,179,193,149,15,70,197,46,90,60,255,247,197,219,252,73,76,0,125,104,114,22,182,161,110,36,162,103,27,42,88,18,161,237,198,43,177,189,181,86,135,207,71,114,0,26,175,12,199,125,25,124,178,87,36,208,251,15,191,127,202,148,152,43,142,92,191,7,89,153,130,195,223,248,176,109,97,164,126,162,181,124,237,130,155,197,66,59,40,197,72,84,32,100,64,55,227,60,214,143,200,200,89,115,236,172,145,56,100,73,20,242,233,95,130,58,112,153,120,115,119,42,199,30,205,88,223,42,196,184,41,19,100,19,244],[1,225,103,238,42,147,91,191,110,69,154,53,57,156,124,43,174,155,76,202,193,98,128,38,207,126,66,70,161,96,109,127,174,44,203,198,177,238,118,117,89,227,170,155,44,251,35,119,219,29,100,173,26,144,95,50,177,4,40,234,117,174,210,192,172,57,160,198,42,199,212,243,240,114,59,91,207,68,57,38,198,2,73,18,16,209,182,145,206,71,17,69,222,49,36,120,72,117,169,107,238,208,235,216,24,183,201,81,15,83,242,45,136,184,166,26,142,136,228,58,229,235,88,169,238,134,205,96,85,9,122,53,147,100,183,114,92,54,125,178,125,75,127,116,50,88,109,152,22,4,121,252,190,18,190,130,143,138,59,231,38,131,176,54,19,194,218,67,144,122,91,43,86,73,233,48,193,30,183,183,191,238,216,167,101,28,185,43,118,64,242,16,62,239,177,27,109,144,67,221,175,202,4,92,130,74,24,20,151,15,227,225,142,71,145,46,192,248,87,57,183,142,253,52,20,56,153,220,234,25,67,116,225,179,211,116,161,37,64,34,48,155,1,1,159,157,37,31,202,19,229,152,23,138,183,126,55],[1,38,181,193,191,72,2,239,34,83,49,36,179,160,82,112,172,98,255,63,60,22,177,249,67,215,220,198,181,7,49,254,133,243,221,214,47,64,229,82,11,94,175,57,86,152,229,192,184,96,136,116,226,123,128,217,23,244,19,204,36,44,123,208,88,24,217,120,145,139,25,233,227,5,119,90,47,147,1,115,92,39,119,194,167,17,229,39,163,167,237,14,116,234,106,252,216,54,33,233,21,54,183,130,144,161,177,142,177,240,51,73,21,202,188,103,244,153,204,219,123,231,139,135,189,155,143,28,4,180,44,148,0,27,103,26,13,203,31,32,166,67,84,87,23,72,234,236,20,1,84,70,86,76,192,164,235,124,86,128,78,230,119,155,95,121,125,20,244,181,121,250,169,9,67,85,213,177,139,111,187,183,114,165,249,177,161,181,175,46,226,66,86,84,124,86,69,143,217,158,161,30,107,133,44,239,89,209,24,150,1,238,122,144,138,179,121,114,90,13,212,209,60,126,37,62,177,180,131,222,168,2,201,156,169,220,224,53,8,203,220,215,163,104,195,184,73,35,241,182,177,80,41,253,230,90,173],[1,32,145,96,219,241,190,19,195,129,219,50,148,152,107,12,189,225,103,171,149,252,193,243,136,132,195,44,19,20,247,140,160,91,230,78,31,242,85,213,65,185,1,91,12,69,118,80,26,135,102,131,4,108,130,230,83,91,176,249,196,56,128,127,82,72,106,49,211,94,133,40,86,72,42,187,199,216,191,223,208,206,121,118,15,167,255,228,57,206,158,217,64,205,212,178,8,248,129,183,221,98,70,54,37,55,47,81,120,59,186,238,165,0,70,173,137,193,232,180,125,211,237,182,249,191,173,107,129,164,148,231,116,225,66,66,71,156,39,248,164,253,234,140,205,177,140,117,47,21,15,242,31,113,118,91,143,89,213,86,143,135,21,46,35,199,214,107,111,65,65,19,26,171,130,16,19,102,145,210,210,61,51,169,148,169,118,182,106,107,253,100,214,232,52,103,180,96,249,254,71,6,11,119,48,129,213,223,205,93,20,117,26,187,32,151,212,137,203,17,237,208,150,72,23,225,235,122,188,34,105,115,0,160,168,251,191,22,242,238,207,74,142,154,66,94,149,191,215,194,134,6,165,244,167,233,241],[1,207,77,250,146,127,242,229,44,172,182,201,183,242,32,242,182,129,233,10,8,180,23,191,163,21,238,158,5,27,216,146,253,173,127,99,95,168,209,132,242,196,242,34,25,25,249,211,51,236,164,153,175,61,65,150,82,251,174,102,186,47,195,82,44,90,252,184,74,89,251,177,254,108,151,136,230,220,93,224,173,247,244,116,132,59,170,215,194,30,87,84,166,147,57,156,201,207,132,203,222,191,253,15,19,228,173,81,156,4,51,121,227,159,50,18,148,129,205,42,42,227,252,138,62,176,115,227,253,52,125,110,178,167,132,244,14,116,195,194,172,44,45,63,38,121,215,136,68,230,21,108,133,159,197,179,94,78,233,107,236,114,92,165,248,22,124,161,23,142,236,224,175,233,134,25,97,150,131,61,220,203,104,154,199,247,146,47,205,56,209,0,133,132,18,103,136,8,202,37,29,100,105,12,232,74,33,6,255,202,96,170,52,229,244,4,235,2,201,125,86,168,179,224,130,81,54,221,185,184,187,141,0,114,98,38,70,225,228,60,157,53,210,238,60,216,215,154,48,73,3,157,192,245,81,170,49],[1,3,244,229,158,71,18,146,198,202,27,2,231,37,13,145,243,84,112,220,61,174,4,175,104,200,64,146,193,20,174,126,42,157,168,76,165,21,50,216,82,211,180,73,244,54,227,200,19,157,25,228,81,37,64,201,19,138,175,50,246,169,11,45,74,194,131,236,127,177,41,242,130,55,112,182,98,22,99,48,153,83,161,250,65,89,3,97,6,5,171,54,223,87,98,103,23,200,212,177,140,155,151,252,125,45,176,55,92,41,56,2,252,32,149,60,3,168,209,193,23,168,230,182,72,193,230,224,5,15,58,63,93,196,33,93,76,188,30,70,31,136,64,204,223,2,230,210,243,255,135,193,52,132,248,160,22,18,164,71,77,80,112,229,120,116,210,225,2,19,139,35,0,214,5,246,9,106,136,204,0,148,97,21,222,153,57,177,162,11,243,252,7,242,34,239,245,50,104,74,221,92,73,13,142,10,184,250,246,167,240,46,230,86,207,181,12,133,81,119,143,164,88,114,223,243,179,208,175,84,161,27,11,225,36,37,177,112,85,81,184,163,223,159,36,9,247,20,13,230,215,108,117,35,99,117,211]]},"requested_proof":{"revealed_attrs":{"attr1_uuid":["claim::277478db-bf57-42c3-8530-b1b13cfe0bfd","Alex","1139481716457488690172217916278103335"]},"unrevealed_attrs":{},"self_attested_attrs":{},"predicates":{"predicate1_uuid":"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd"}}}"#; + let proof_json = r#"{"proofs":{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{"proof":{"primary_proof":{"eq_proof":"a_prime":"47629821806628155353444789773246165920681315271529392722265555946090524267165563309836167110610840740533588118152308411732923636370660640410661034994521654033599863817144282118006097899736622728860229305231675970853294584911572355833537271010861501353858292189045263114095480601737776505186511389129055847562085611741257601964074827979121349153316235245772819207422031038042586202074331681302501661153569340935741290924699468188826629478130140797677338573924284871118002193526319478550852287453975107498037063076866410320160118555629090040954555043934303307652160345244864713226315470541231435958298648179413077988340","e":"13427639393364185909415877973872458621259927563729922146828001652769380799419438410309469022979920689628523901764614163117469683925816443","v":"852136445143816932026946294488424887907102968158908948827421962603492187508454543239422067899916472317305416590471170842186669606584356963437132366711335927890209765986844538775191207999204354235774464468525274918097404114453069375363594310105209141774763909570100638835926337238009617444858777301355087706167735590386774813901740600054753028260344014744801229032610106838480523182317262113911183640784111960909501662169298536941919854667754097841344375972975021196106884215734228415868248724905018661498061287694439466570946597514142085096419985189064172035527690786158872698717583830848410994616274586162550376126607414773916066374234063208380831144157533076866210628625236440222547584539349936639548061601416341705483504386186280800509889531835172071717956251546280392606775903107774727736794828168898273891724336881907672405328368540895104468091907771325910937575557566831844131159128453840354307814975621978196047820","m":{"age":"1117601261519431120446925325460734824239475567013636538481947258329666056692767097795046086413732472111811628751812987521644198549167671875326968410921589186689138994171774838662","height":"7064132689652704067914104576495132313294680087958177180391515757079548676035445873279966783996928425154050462229933823707574545166617858646442019030600136959459527533262821184869","sex":"16084497853957041205729191269508720470626311156190485518484640641677445098603656354458362520541393995692536218820724164533958162674375198846036330444513484319280148335515891811530"},"m1":"154906224259819061652290487122980839849626068919893070220438585977323162319993111920906032317552959103520053742608858935542877608981244065301675821390065831113115709272412144796159984624494428122971995557415296140268002332169405587907128359886810433617416529821500995701094400375272097687818064435577784795275","m2":"13805395408072590464827983892588030341708765524663545700917462089376137940485022437657208204460048097312372685954050370540389593952001973312378647790917367330461398089529292217752"},"ge_proofs":[{"u":{"1":"7698818972783845439601187851976452936638792889455287252542709653271706844173743185409084669157965935169942655008606334521674712818637940377261656468700786810566551698412412949418","0":"11703047052430512223413711314521545616119146623040600935686474696241801697819280425232876917607198335376453682738553665221410353412906194951254558355994401995990233992518110582450","3":"13210777821918317858818819091924507295018522783042111457450035423463340571245465760486275059291363621513532153389441883097799049597687545496359999443320001567152794884095192951040","2":"15219471780524079156861690098171693383497641272226737821992208834301871102152362116211452788300889697214391366996966539871625433480959011635688106136537800706217506402845296449689"},"r":{"1":"46043242109380749151527145850513330956077996622769158245225343392397735706292106535150958053995712629189143692293204979798837951212291825184346767969751978730000071952944305252032332015837054475531407691352179423131405515518588355918925056889302269768343499864256747177988825578647189563088068257214198650437730618330249172716051559993880468542083352885474175039320848153156858562341041960950299312991459780503345784440261679263045723337629951517601461685539857683027034345542399365706329805317943096391758978877658949910614447086409173234155028671453929715706057153381022697673192590033507204548864311227048268516889390503318015295207078022755834130221198717787608473222789491216667698651180077661375273569115943192","0":"135472587547410377947826119498467634347118057359097899596599164976338466445104141784869016998150489852448547539824768048351359572626675997498079394825940306636285481821620973655797996638210760710325933304918452142858879806106214845499670718704532018129553348815327362843246706518826311676917538452317818631484884032929252959289913274829848084561421467966320595980172006456003183536232790787521924655750157145207798486087511869939940023266736153366338179116840490184005332351004990854691988404031259910319601383696749511809898297656135548118786342107367065232798999979296280467063561892962526945512167505847049907450058650930480352253243357594344686769208712964458923557777584158831146374282687397585726706489164423632","DELTA":"93540839493959971552865423901789226093328763011922445919928571946113703515842729132879472109395228387208764738970926484618949870591214627692618668077375153559192701474693025462226656116549337248146652482501255820930607033869432220667968682424554711616471973627651716863421554516577716366331699848682958681216261888139409101603059124344125075525791543312721162515584942523419876134808829569829529457617639955678189490257208141837196965948342373022812790844435050648360150869293836349223060722858500537182872294143846213258360218898475766641125493477502149553491502593654061863323857297998048614447925371606038801933864960337435890254277043261512846682042139570000962051463878026338583242360548041329046695667868842400","3":"1227675452527605924725300993571504188580051470857656204064614533296779844072852823820754766175236321050062349182891221840452517985644028521499240739391613871973822807731772613052644168369405390658793869751915172749739844553410726807277698347769400977274750672880389943392076308065414059539317340070691852044062594715307024113666759844200606183662256825096857658837519571386467051003466014468855293015652584667669998830524947537781865745830650392641812221679438090257444660715937570193098993118585554478799821072396238689063767016402460690760792908977364175126682041704095200572282644311025594681667826054722587271200221036938804846621444065128275082392082327596239358623150786484106872933657139420542280145197712634108","2":"596248147592834822582469335300585333722415132713749620075902332764163096347819006925876158892694742461036531935093982309708492066217459300117157420442081698140277277546563570823996272914068575482008392971932777453900260626542725308060927710122631763045025742980634216666560934260634907599194353151523256914796667535940073668465664206971169038864484235442207811974981191879443614478897291543702607764944403808380921189291059195014621592027660463072969363556421687131446107696579365265893962197300447027501604372738056016734644378437907931412654753728514905671605635291285742886484416973884856055084605172305967034292646171874483670469193852404511746786039743401185954843446037600121496137915619789351744485264614840070"},"mj":"1117601261519431120446925325460734824239475567013636538481947258329666056692767097795046086413732472111811628751812987521644198549167671875326968410921589186689138994171774838662","alpha":"76727612740067576380015106087224381023260815407331375101920043509817863645705120013304683427627332447210083684516403565749916480947649443674885388155460323163682547865307733144184097845709556309570345707127872162476432029772452433292049079349274445907295491125915363620615679995457134810061392296263970553630102299601689685622244925494554558218277670233361938142224820526392365740420502452466959099546877778248089664282581792213376636587293479012783947088070052463503335266180110771978445892744225891676396288437005847308189508347446490710626231658457908472341606549292437553353163031111068977301305043175839949352742711874426231072729977019365761072816602400121302646283352164756787266537474728685656685493249314400351742964904006326192403855909148605656818024621453179832395687665671245528217931951331393482249182516107670379946496778373","t":{"1":"37203689290881948278188715497642400459048942241931994079434400288578680362970117779048886269388440270597283202033458042171954610700745461571112086648991639439510380585728148682202768590972068041537531136529323260832899360551065706810590032715173070285762675403853992183366951113799098912676809373169763887110420539387555392787590966452796271491986622992160642135480293110112269570862265489120557014181468118619500321000966443141863893743211690388599242584469856365803370202569641902205925191670838354052104480074127555862332399641076324738839120815544432811566503174551735326387678621283249883091766325861497740614317","3":"58486787977689017034592833190899828017343431922483563651969628402499947729293364026001243898136737211851089198526360764391403150763769829047179796728616126204105160762333590343947446892105646111520243793053992399512412375936746396187319527051818920531870855183738837254656664620975569939859368862778444291640228229744805843388153451336792379036403300211151424879060241580540910888241769468335914016289938374111481091198264912969768783884602931940994543804730631920434719776196148182987249363641941951160704928605829395517074202388967815738516252602903999010405305463910751219873354588685197134114358234107748126140977","0":"60771874648036182010335841594233428920565254732600738082343398028553347795361460295011584446745121430144172025428394361648540904134739046923992231536160801306934272250969829886396340824213814702904457884984387666505055153957942221822193548673145705543973635530652570436109428474727638128773540793530691399549837156239786231362112148914687724325416768262058486101761972044802628459748878200584371058300150212485731451700436345975266860685549673168984700174294811561393162860595319582236734968601457003780816977537443267217411297266600994916897237305128142313335280264655603445636393371224354539882875937093696844430903","DELTA":"32816484171372208266594641116109072545171919234551585018140151846920408763078147655907777031259225522515086979967895258126318315788662577171150780535509410112003001556402222994276811926864642497249250763185467678044678144507739529818566125668667424447792097244624010084189629269472698722402896445274092470014229247479740671263651727480322483037149584904549203417226525624083290572692241241259382947122018271686649224741832992966652878170311798126004447080305528487720923103595513611363001766063956060990267107048028416069435287244770875463867263571308182619338433913487209319707428378896314619624990311543563016697299","2":"36428320569485697540634597755814766104888687488985202673924762266313135133244610404742081973550848160712054769198012193456278135847215508952327879544434490828380496286187725750283788811367824465072001959950807751252194618152990469069074061195618692339915840384087350671392595652921761835083158086795163935060896053332506433434451836095710383871272788002621913967538399141417857031787255744141437237474972197102809365346359345477248611632307159641948507043668113827177494748159094045928919209335044052792843664865311991178972383241855607627188111601119780878072683890170539599447876998109080150992209773901144245398001"},"predicate":{"attr_name":"age","p_type":"GE","value":18}}]},"non_revoc_proof":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","revoc_reg_seq_no":null}},"aggregated_proof":{"c_hash":"33103550379681684069592829341967479618752165928802550870585275205292715916069","c_list":[[1,121,77,5,144,154,14,192,190,190,145,180,128,71,22,60,168,20,46,163,139,194,71,165,220,188,121,76,25,146,231,114,65,54,69,68,19,200,250,192,47,123,157,132,74,50,28,69,226,195,243,118,45,63,237,197,216,202,206,101,33,56,225,200,128,3,89,12,182,38,113,221,165,119,228,201,156,201,172,136,59,64,51,72,164,198,49,228,223,117,80,64,166,226,37,8,29,146,186,80,210,119,76,252,4,255,62,218,112,163,164,147,247,190,108,76,140,191,76,217,214,184,152,179,193,149,15,70,197,46,90,60,255,247,197,219,252,73,76,0,125,104,114,22,182,161,110,36,162,103,27,42,88,18,161,237,198,43,177,189,181,86,135,207,71,114,0,26,175,12,199,125,25,124,178,87,36,208,251,15,191,127,202,148,152,43,142,92,191,7,89,153,130,195,223,248,176,109,97,164,126,162,181,124,237,130,155,197,66,59,40,197,72,84,32,100,64,55,227,60,214,143,200,200,89,115,236,172,145,56,100,73,20,242,233,95,130,58,112,153,120,115,119,42,199,30,205,88,223,42,196,184,41,19,100,19,244],[1,225,103,238,42,147,91,191,110,69,154,53,57,156,124,43,174,155,76,202,193,98,128,38,207,126,66,70,161,96,109,127,174,44,203,198,177,238,118,117,89,227,170,155,44,251,35,119,219,29,100,173,26,144,95,50,177,4,40,234,117,174,210,192,172,57,160,198,42,199,212,243,240,114,59,91,207,68,57,38,198,2,73,18,16,209,182,145,206,71,17,69,222,49,36,120,72,117,169,107,238,208,235,216,24,183,201,81,15,83,242,45,136,184,166,26,142,136,228,58,229,235,88,169,238,134,205,96,85,9,122,53,147,100,183,114,92,54,125,178,125,75,127,116,50,88,109,152,22,4,121,252,190,18,190,130,143,138,59,231,38,131,176,54,19,194,218,67,144,122,91,43,86,73,233,48,193,30,183,183,191,238,216,167,101,28,185,43,118,64,242,16,62,239,177,27,109,144,67,221,175,202,4,92,130,74,24,20,151,15,227,225,142,71,145,46,192,248,87,57,183,142,253,52,20,56,153,220,234,25,67,116,225,179,211,116,161,37,64,34,48,155,1,1,159,157,37,31,202,19,229,152,23,138,183,126,55],[1,38,181,193,191,72,2,239,34,83,49,36,179,160,82,112,172,98,255,63,60,22,177,249,67,215,220,198,181,7,49,254,133,243,221,214,47,64,229,82,11,94,175,57,86,152,229,192,184,96,136,116,226,123,128,217,23,244,19,204,36,44,123,208,88,24,217,120,145,139,25,233,227,5,119,90,47,147,1,115,92,39,119,194,167,17,229,39,163,167,237,14,116,234,106,252,216,54,33,233,21,54,183,130,144,161,177,142,177,240,51,73,21,202,188,103,244,153,204,219,123,231,139,135,189,155,143,28,4,180,44,148,0,27,103,26,13,203,31,32,166,67,84,87,23,72,234,236,20,1,84,70,86,76,192,164,235,124,86,128,78,230,119,155,95,121,125,20,244,181,121,250,169,9,67,85,213,177,139,111,187,183,114,165,249,177,161,181,175,46,226,66,86,84,124,86,69,143,217,158,161,30,107,133,44,239,89,209,24,150,1,238,122,144,138,179,121,114,90,13,212,209,60,126,37,62,177,180,131,222,168,2,201,156,169,220,224,53,8,203,220,215,163,104,195,184,73,35,241,182,177,80,41,253,230,90,173],[1,32,145,96,219,241,190,19,195,129,219,50,148,152,107,12,189,225,103,171,149,252,193,243,136,132,195,44,19,20,247,140,160,91,230,78,31,242,85,213,65,185,1,91,12,69,118,80,26,135,102,131,4,108,130,230,83,91,176,249,196,56,128,127,82,72,106,49,211,94,133,40,86,72,42,187,199,216,191,223,208,206,121,118,15,167,255,228,57,206,158,217,64,205,212,178,8,248,129,183,221,98,70,54,37,55,47,81,120,59,186,238,165,0,70,173,137,193,232,180,125,211,237,182,249,191,173,107,129,164,148,231,116,225,66,66,71,156,39,248,164,253,234,140,205,177,140,117,47,21,15,242,31,113,118,91,143,89,213,86,143,135,21,46,35,199,214,107,111,65,65,19,26,171,130,16,19,102,145,210,210,61,51,169,148,169,118,182,106,107,253,100,214,232,52,103,180,96,249,254,71,6,11,119,48,129,213,223,205,93,20,117,26,187,32,151,212,137,203,17,237,208,150,72,23,225,235,122,188,34,105,115,0,160,168,251,191,22,242,238,207,74,142,154,66,94,149,191,215,194,134,6,165,244,167,233,241],[1,207,77,250,146,127,242,229,44,172,182,201,183,242,32,242,182,129,233,10,8,180,23,191,163,21,238,158,5,27,216,146,253,173,127,99,95,168,209,132,242,196,242,34,25,25,249,211,51,236,164,153,175,61,65,150,82,251,174,102,186,47,195,82,44,90,252,184,74,89,251,177,254,108,151,136,230,220,93,224,173,247,244,116,132,59,170,215,194,30,87,84,166,147,57,156,201,207,132,203,222,191,253,15,19,228,173,81,156,4,51,121,227,159,50,18,148,129,205,42,42,227,252,138,62,176,115,227,253,52,125,110,178,167,132,244,14,116,195,194,172,44,45,63,38,121,215,136,68,230,21,108,133,159,197,179,94,78,233,107,236,114,92,165,248,22,124,161,23,142,236,224,175,233,134,25,97,150,131,61,220,203,104,154,199,247,146,47,205,56,209,0,133,132,18,103,136,8,202,37,29,100,105,12,232,74,33,6,255,202,96,170,52,229,244,4,235,2,201,125,86,168,179,224,130,81,54,221,185,184,187,141,0,114,98,38,70,225,228,60,157,53,210,238,60,216,215,154,48,73,3,157,192,245,81,170,49],[1,3,244,229,158,71,18,146,198,202,27,2,231,37,13,145,243,84,112,220,61,174,4,175,104,200,64,146,193,20,174,126,42,157,168,76,165,21,50,216,82,211,180,73,244,54,227,200,19,157,25,228,81,37,64,201,19,138,175,50,246,169,11,45,74,194,131,236,127,177,41,242,130,55,112,182,98,22,99,48,153,83,161,250,65,89,3,97,6,5,171,54,223,87,98,103,23,200,212,177,140,155,151,252,125,45,176,55,92,41,56,2,252,32,149,60,3,168,209,193,23,168,230,182,72,193,230,224,5,15,58,63,93,196,33,93,76,188,30,70,31,136,64,204,223,2,230,210,243,255,135,193,52,132,248,160,22,18,164,71,77,80,112,229,120,116,210,225,2,19,139,35,0,214,5,246,9,106,136,204,0,148,97,21,222,153,57,177,162,11,243,252,7,242,34,239,245,50,104,74,221,92,73,13,142,10,184,250,246,167,240,46,230,86,207,181,12,133,81,119,143,164,88,114,223,243,179,208,175,84,161,27,11,225,36,37,177,112,85,81,184,163,223,159,36,9,247,20,13,230,215,108,117,35,99,117,211]]},"requested_proof":{"revealed_attrs":{"attr1_uuid":["claim::277478db-bf57-42c3-8530-b1b13cfe0bfd","Alex","1139481716457488690172217916278103335"]},"unrevealed_attrs":{},"self_attested_attrs":{},"predicates":{"predicate1_uuid":"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd"}}}"#; let res = AnoncredsUtils::verifier_verify_proof(&proof_req_json, &proof_json, @@ -1282,7 +1271,7 @@ mod medium_cases { let claim_defs_json = format!(r#"{{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{}}}"#, claim_def); let revoc_regs_jsons = "{}"; - let proof_json = r#"{"proofs":{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{"proof":{"primary_proof":{"eq_proof":{"revealed_attrs":{"name":"1139481716457488690172217916278103335"},"a_prime":"47629821806628155353444789773246165920681315271529392722265555946090524267165563309836167110610840740533588118152308411732923636370660640410661034994521654033599863817144282118006097899736622728860229305231675970853294584911572355833537271010861501353858292189045263114095480601737776505186511389129055847562085611741257601964074827979121349153316235245772819207422031038042586202074331681302501661153569340935741290924699468188826629478130140797677338573924284871118002193526319478550852287453975107498037063076866410320160118555629090040954555043934303307652160345244864713226315470541231435958298648179413077988340","e":"13427639393364185909415877973872458621259927563729922146828001652769380799419438410309469022979920689628523901764614163117469683925816443","v":"852136445143816932026946294488424887907102968158908948827421962603492187508454543239422067899916472317305416590471170842186669606584356963437132366711335927890209765986844538775191207999204354235774464468525274918097404114453069375363594310105209141774763909570100638835926337238009617444858777301355087706167735590386774813901740600054753028260344014744801229032610106838480523182317262113911183640784111960909501662169298536941919854667754097841344375972975021196106884215734228415868248724905018661498061287694439466570946597514142085096419985189064172035527690786158872698717583830848410994616274586162550376126607414773916066374234063208380831144157533076866210628625236440222547584539349936639548061601416341705483504386186280800509889531835172071717956251546280392606775903107774727736794828168898273891724336881907672405328368540895104468091907771325910937575557566831844131159128453840354307814975621978196047820","m":{"age":"1117601261519431120446925325460734824239475567013636538481947258329666056692767097795046086413732472111811628751812987521644198549167671875326968410921589186689138994171774838662","height":"7064132689652704067914104576495132313294680087958177180391515757079548676035445873279966783996928425154050462229933823707574545166617858646442019030600136959459527533262821184869","sex":"16084497853957041205729191269508720470626311156190485518484640641677445098603656354458362520541393995692536218820724164533958162674375198846036330444513484319280148335515891811530"},"m1":"154906224259819061652290487122980839849626068919893070220438585977323162319993111920906032317552959103520053742608858935542877608981244065301675821390065831113115709272412144796159984624494428122971995557415296140268002332169405587907128359886810433617416529821500995701094400375272097687818064435577784795275","m2":"13805395408072590464827983892588030341708765524663545700917462089376137940485022437657208204460048097312372685954050370540389593952001973312378647790917367330461398089529292217752"},"ge_proofs":[{"u":{"1":"7698818972783845439601187851976452936638792889455287252542709653271706844173743185409084669157965935169942655008606334521674712818637940377261656468700786810566551698412412949418","0":"11703047052430512223413711314521545616119146623040600935686474696241801697819280425232876917607198335376453682738553665221410353412906194951254558355994401995990233992518110582450","3":"13210777821918317858818819091924507295018522783042111457450035423463340571245465760486275059291363621513532153389441883097799049597687545496359999443320001567152794884095192951040","2":"15219471780524079156861690098171693383497641272226737821992208834301871102152362116211452788300889697214391366996966539871625433480959011635688106136537800706217506402845296449689"},"r":{"1":"46043242109380749151527145850513330956077996622769158245225343392397735706292106535150958053995712629189143692293204979798837951212291825184346767969751978730000071952944305252032332015837054475531407691352179423131405515518588355918925056889302269768343499864256747177988825578647189563088068257214198650437730618330249172716051559993880468542083352885474175039320848153156858562341041960950299312991459780503345784440261679263045723337629951517601461685539857683027034345542399365706329805317943096391758978877658949910614447086409173234155028671453929715706057153381022697673192590033507204548864311227048268516889390503318015295207078022755834130221198717787608473222789491216667698651180077661375273569115943192","0":"135472587547410377947826119498467634347118057359097899596599164976338466445104141784869016998150489852448547539824768048351359572626675997498079394825940306636285481821620973655797996638210760710325933304918452142858879806106214845499670718704532018129553348815327362843246706518826311676917538452317818631484884032929252959289913274829848084561421467966320595980172006456003183536232790787521924655750157145207798486087511869939940023266736153366338179116840490184005332351004990854691988404031259910319601383696749511809898297656135548118786342107367065232798999979296280467063561892962526945512167505847049907450058650930480352253243357594344686769208712964458923557777584158831146374282687397585726706489164423632","DELTA":"93540839493959971552865423901789226093328763011922445919928571946113703515842729132879472109395228387208764738970926484618949870591214627692618668077375153559192701474693025462226656116549337248146652482501255820930607033869432220667968682424554711616471973627651716863421554516577716366331699848682958681216261888139409101603059124344125075525791543312721162515584942523419876134808829569829529457617639955678189490257208141837196965948342373022812790844435050648360150869293836349223060722858500537182872294143846213258360218898475766641125493477502149553491502593654061863323857297998048614447925371606038801933864960337435890254277043261512846682042139570000962051463878026338583242360548041329046695667868842400","3":"1227675452527605924725300993571504188580051470857656204064614533296779844072852823820754766175236321050062349182891221840452517985644028521499240739391613871973822807731772613052644168369405390658793869751915172749739844553410726807277698347769400977274750672880389943392076308065414059539317340070691852044062594715307024113666759844200606183662256825096857658837519571386467051003466014468855293015652584667669998830524947537781865745830650392641812221679438090257444660715937570193098993118585554478799821072396238689063767016402460690760792908977364175126682041704095200572282644311025594681667826054722587271200221036938804846621444065128275082392082327596239358623150786484106872933657139420542280145197712634108","2":"596248147592834822582469335300585333722415132713749620075902332764163096347819006925876158892694742461036531935093982309708492066217459300117157420442081698140277277546563570823996272914068575482008392971932777453900260626542725308060927710122631763045025742980634216666560934260634907599194353151523256914796667535940073668465664206971169038864484235442207811974981191879443614478897291543702607764944403808380921189291059195014621592027660463072969363556421687131446107696579365265893962197300447027501604372738056016734644378437907931412654753728514905671605635291285742886484416973884856055084605172305967034292646171874483670469193852404511746786039743401185954843446037600121496137915619789351744485264614840070"},"mj":"1117601261519431120446925325460734824239475567013636538481947258329666056692767097795046086413732472111811628751812987521644198549167671875326968410921589186689138994171774838662","alpha":"76727612740067576380015106087224381023260815407331375101920043509817863645705120013304683427627332447210083684516403565749916480947649443674885388155460323163682547865307733144184097845709556309570345707127872162476432029772452433292049079349274445907295491125915363620615679995457134810061392296263970553630102299601689685622244925494554558218277670233361938142224820526392365740420502452466959099546877778248089664282581792213376636587293479012783947088070052463503335266180110771978445892744225891676396288437005847308189508347446490710626231658457908472341606549292437553353163031111068977301305043175839949352742711874426231072729977019365761072816602400121302646283352164756787266537474728685656685493249314400351742964904006326192403855909148605656818024621453179832395687665671245528217931951331393482249182516107670379946496778373","t":{"1":"37203689290881948278188715497642400459048942241931994079434400288578680362970117779048886269388440270597283202033458042171954610700745461571112086648991639439510380585728148682202768590972068041537531136529323260832899360551065706810590032715173070285762675403853992183366951113799098912676809373169763887110420539387555392787590966452796271491986622992160642135480293110112269570862265489120557014181468118619500321000966443141863893743211690388599242584469856365803370202569641902205925191670838354052104480074127555862332399641076324738839120815544432811566503174551735326387678621283249883091766325861497740614317","3":"58486787977689017034592833190899828017343431922483563651969628402499947729293364026001243898136737211851089198526360764391403150763769829047179796728616126204105160762333590343947446892105646111520243793053992399512412375936746396187319527051818920531870855183738837254656664620975569939859368862778444291640228229744805843388153451336792379036403300211151424879060241580540910888241769468335914016289938374111481091198264912969768783884602931940994543804730631920434719776196148182987249363641941951160704928605829395517074202388967815738516252602903999010405305463910751219873354588685197134114358234107748126140977","0":"60771874648036182010335841594233428920565254732600738082343398028553347795361460295011584446745121430144172025428394361648540904134739046923992231536160801306934272250969829886396340824213814702904457884984387666505055153957942221822193548673145705543973635530652570436109428474727638128773540793530691399549837156239786231362112148914687724325416768262058486101761972044802628459748878200584371058300150212485731451700436345975266860685549673168984700174294811561393162860595319582236734968601457003780816977537443267217411297266600994916897237305128142313335280264655603445636393371224354539882875937093696844430903","DELTA":"32816484171372208266594641116109072545171919234551585018140151846920408763078147655907777031259225522515086979967895258126318315788662577171150780535509410112003001556402222994276811926864642497249250763185467678044678144507739529818566125668667424447792097244624010084189629269472698722402896445274092470014229247479740671263651727480322483037149584904549203417226525624083290572692241241259382947122018271686649224741832992966652878170311798126004447080305528487720923103595513611363001766063956060990267107048028416069435287244770875463867263571308182619338433913487209319707428378896314619624990311543563016697299","2":"36428320569485697540634597755814766104888687488985202673924762266313135133244610404742081973550848160712054769198012193456278135847215508952327879544434490828380496286187725750283788811367824465072001959950807751252194618152990469069074061195618692339915840384087350671392595652921761835083158086795163935060896053332506433434451836095710383871272788002621913967538399141417857031787255744141437237474972197102809365346359345477248611632307159641948507043668113827177494748159094045928919209335044052792843664865311991178972383241855607627188111601119780878072683890170539599447876998109080150992209773901144245398001"},"predicate":{"attr_name":"age","p_type":"GE","value":18}}]},"non_revoc_proof":null},"claim_def_seq_no":1,"revoc_reg_seq_no":null}},"aggregated_proof":{"c_hash":"33103550379681684069592829341967479618752165928802550870585275205292715916069","c_list":[[1,121,77,5,144,154,14,192,190,190,145,180,128,71,22,60,168,20,46,163,139,194,71,165,220,188,121,76,25,146,231,114,65,54,69,68,19,200,250,192,47,123,157,132,74,50,28,69,226,195,243,118,45,63,237,197,216,202,206,101,33,56,225,200,128,3,89,12,182,38,113,221,165,119,228,201,156,201,172,136,59,64,51,72,164,198,49,228,223,117,80,64,166,226,37,8,29,146,186,80,210,119,76,252,4,255,62,218,112,163,164,147,247,190,108,76,140,191,76,217,214,184,152,179,193,149,15,70,197,46,90,60,255,247,197,219,252,73,76,0,125,104,114,22,182,161,110,36,162,103,27,42,88,18,161,237,198,43,177,189,181,86,135,207,71,114,0,26,175,12,199,125,25,124,178,87,36,208,251,15,191,127,202,148,152,43,142,92,191,7,89,153,130,195,223,248,176,109,97,164,126,162,181,124,237,130,155,197,66,59,40,197,72,84,32,100,64,55,227,60,214,143,200,200,89,115,236,172,145,56,100,73,20,242,233,95,130,58,112,153,120,115,119,42,199,30,205,88,223,42,196,184,41,19,100,19,244],[1,225,103,238,42,147,91,191,110,69,154,53,57,156,124,43,174,155,76,202,193,98,128,38,207,126,66,70,161,96,109,127,174,44,203,198,177,238,118,117,89,227,170,155,44,251,35,119,219,29,100,173,26,144,95,50,177,4,40,234,117,174,210,192,172,57,160,198,42,199,212,243,240,114,59,91,207,68,57,38,198,2,73,18,16,209,182,145,206,71,17,69,222,49,36,120,72,117,169,107,238,208,235,216,24,183,201,81,15,83,242,45,136,184,166,26,142,136,228,58,229,235,88,169,238,134,205,96,85,9,122,53,147,100,183,114,92,54,125,178,125,75,127,116,50,88,109,152,22,4,121,252,190,18,190,130,143,138,59,231,38,131,176,54,19,194,218,67,144,122,91,43,86,73,233,48,193,30,183,183,191,238,216,167,101,28,185,43,118,64,242,16,62,239,177,27,109,144,67,221,175,202,4,92,130,74,24,20,151,15,227,225,142,71,145,46,192,248,87,57,183,142,253,52,20,56,153,220,234,25,67,116,225,179,211,116,161,37,64,34,48,155,1,1,159,157,37,31,202,19,229,152,23,138,183,126,55],[1,38,181,193,191,72,2,239,34,83,49,36,179,160,82,112,172,98,255,63,60,22,177,249,67,215,220,198,181,7,49,254,133,243,221,214,47,64,229,82,11,94,175,57,86,152,229,192,184,96,136,116,226,123,128,217,23,244,19,204,36,44,123,208,88,24,217,120,145,139,25,233,227,5,119,90,47,147,1,115,92,39,119,194,167,17,229,39,163,167,237,14,116,234,106,252,216,54,33,233,21,54,183,130,144,161,177,142,177,240,51,73,21,202,188,103,244,153,204,219,123,231,139,135,189,155,143,28,4,180,44,148,0,27,103,26,13,203,31,32,166,67,84,87,23,72,234,236,20,1,84,70,86,76,192,164,235,124,86,128,78,230,119,155,95,121,125,20,244,181,121,250,169,9,67,85,213,177,139,111,187,183,114,165,249,177,161,181,175,46,226,66,86,84,124,86,69,143,217,158,161,30,107,133,44,239,89,209,24,150,1,238,122,144,138,179,121,114,90,13,212,209,60,126,37,62,177,180,131,222,168,2,201,156,169,220,224,53,8,203,220,215,163,104,195,184,73,35,241,182,177,80,41,253,230,90,173],[1,32,145,96,219,241,190,19,195,129,219,50,148,152,107,12,189,225,103,171,149,252,193,243,136,132,195,44,19,20,247,140,160,91,230,78,31,242,85,213,65,185,1,91,12,69,118,80,26,135,102,131,4,108,130,230,83,91,176,249,196,56,128,127,82,72,106,49,211,94,133,40,86,72,42,187,199,216,191,223,208,206,121,118,15,167,255,228,57,206,158,217,64,205,212,178,8,248,129,183,221,98,70,54,37,55,47,81,120,59,186,238,165,0,70,173,137,193,232,180,125,211,237,182,249,191,173,107,129,164,148,231,116,225,66,66,71,156,39,248,164,253,234,140,205,177,140,117,47,21,15,242,31,113,118,91,143,89,213,86,143,135,21,46,35,199,214,107,111,65,65,19,26,171,130,16,19,102,145,210,210,61,51,169,148,169,118,182,106,107,253,100,214,232,52,103,180,96,249,254,71,6,11,119,48,129,213,223,205,93,20,117,26,187,32,151,212,137,203,17,237,208,150,72,23,225,235,122,188,34,105,115,0,160,168,251,191,22,242,238,207,74,142,154,66,94,149,191,215,194,134,6,165,244,167,233,241],[1,207,77,250,146,127,242,229,44,172,182,201,183,242,32,242,182,129,233,10,8,180,23,191,163,21,238,158,5,27,216,146,253,173,127,99,95,168,209,132,242,196,242,34,25,25,249,211,51,236,164,153,175,61,65,150,82,251,174,102,186,47,195,82,44,90,252,184,74,89,251,177,254,108,151,136,230,220,93,224,173,247,244,116,132,59,170,215,194,30,87,84,166,147,57,156,201,207,132,203,222,191,253,15,19,228,173,81,156,4,51,121,227,159,50,18,148,129,205,42,42,227,252,138,62,176,115,227,253,52,125,110,178,167,132,244,14,116,195,194,172,44,45,63,38,121,215,136,68,230,21,108,133,159,197,179,94,78,233,107,236,114,92,165,248,22,124,161,23,142,236,224,175,233,134,25,97,150,131,61,220,203,104,154,199,247,146,47,205,56,209,0,133,132,18,103,136,8,202,37,29,100,105,12,232,74,33,6,255,202,96,170,52,229,244,4,235,2,201,125,86,168,179,224,130,81,54,221,185,184,187,141,0,114,98,38,70,225,228,60,157,53,210,238,60,216,215,154,48,73,3,157,192,245,81,170,49],[1,3,244,229,158,71,18,146,198,202,27,2,231,37,13,145,243,84,112,220,61,174,4,175,104,200,64,146,193,20,174,126,42,157,168,76,165,21,50,216,82,211,180,73,244,54,227,200,19,157,25,228,81,37,64,201,19,138,175,50,246,169,11,45,74,194,131,236,127,177,41,242,130,55,112,182,98,22,99,48,153,83,161,250,65,89,3,97,6,5,171,54,223,87,98,103,23,200,212,177,140,155,151,252,125,45,176,55,92,41,56,2,252,32,149,60,3,168,209,193,23,168,230,182,72,193,230,224,5,15,58,63,93,196,33,93,76,188,30,70,31,136,64,204,223,2,230,210,243,255,135,193,52,132,248,160,22,18,164,71,77,80,112,229,120,116,210,225,2,19,139,35,0,214,5,246,9,106,136,204,0,148,97,21,222,153,57,177,162,11,243,252,7,242,34,239,245,50,104,74,221,92,73,13,142,10,184,250,246,167,240,46,230,86,207,181,12,133,81,119,143,164,88,114,223,243,179,208,175,84,161,27,11,225,36,37,177,112,85,81,184,163,223,159,36,9,247,20,13,230,215,108,117,35,99,117,211]]},"requested_proof":{"revealed_attrs":{"attr1_uuid":["claim::277478db-bf57-42c3-8530-b1b13cfe0bfd","Alex","1139481716457488690172217916278103335"]},"unrevealed_attrs":{},"self_attested_attrs":{},"predicates":{"predicate1_uuid":"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd"}}}"#; + let proof_json = r#"{"proofs":{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{"proof":{"primary_proof":{"eq_proof":{"revealed_attrs":{"name":"1139481716457488690172217916278103335"},"a_prime":"47629821806628155353444789773246165920681315271529392722265555946090524267165563309836167110610840740533588118152308411732923636370660640410661034994521654033599863817144282118006097899736622728860229305231675970853294584911572355833537271010861501353858292189045263114095480601737776505186511389129055847562085611741257601964074827979121349153316235245772819207422031038042586202074331681302501661153569340935741290924699468188826629478130140797677338573924284871118002193526319478550852287453975107498037063076866410320160118555629090040954555043934303307652160345244864713226315470541231435958298648179413077988340","e":"13427639393364185909415877973872458621259927563729922146828001652769380799419438410309469022979920689628523901764614163117469683925816443","v":"852136445143816932026946294488424887907102968158908948827421962603492187508454543239422067899916472317305416590471170842186669606584356963437132366711335927890209765986844538775191207999204354235774464468525274918097404114453069375363594310105209141774763909570100638835926337238009617444858777301355087706167735590386774813901740600054753028260344014744801229032610106838480523182317262113911183640784111960909501662169298536941919854667754097841344375972975021196106884215734228415868248724905018661498061287694439466570946597514142085096419985189064172035527690786158872698717583830848410994616274586162550376126607414773916066374234063208380831144157533076866210628625236440222547584539349936639548061601416341705483504386186280800509889531835172071717956251546280392606775903107774727736794828168898273891724336881907672405328368540895104468091907771325910937575557566831844131159128453840354307814975621978196047820","m":{"age":"1117601261519431120446925325460734824239475567013636538481947258329666056692767097795046086413732472111811628751812987521644198549167671875326968410921589186689138994171774838662","height":"7064132689652704067914104576495132313294680087958177180391515757079548676035445873279966783996928425154050462229933823707574545166617858646442019030600136959459527533262821184869","sex":"16084497853957041205729191269508720470626311156190485518484640641677445098603656354458362520541393995692536218820724164533958162674375198846036330444513484319280148335515891811530"},"m1":"154906224259819061652290487122980839849626068919893070220438585977323162319993111920906032317552959103520053742608858935542877608981244065301675821390065831113115709272412144796159984624494428122971995557415296140268002332169405587907128359886810433617416529821500995701094400375272097687818064435577784795275","m2":"13805395408072590464827983892588030341708765524663545700917462089376137940485022437657208204460048097312372685954050370540389593952001973312378647790917367330461398089529292217752"},"ge_proofs":[{"u":{"1":"7698818972783845439601187851976452936638792889455287252542709653271706844173743185409084669157965935169942655008606334521674712818637940377261656468700786810566551698412412949418","0":"11703047052430512223413711314521545616119146623040600935686474696241801697819280425232876917607198335376453682738553665221410353412906194951254558355994401995990233992518110582450","3":"13210777821918317858818819091924507295018522783042111457450035423463340571245465760486275059291363621513532153389441883097799049597687545496359999443320001567152794884095192951040","2":"15219471780524079156861690098171693383497641272226737821992208834301871102152362116211452788300889697214391366996966539871625433480959011635688106136537800706217506402845296449689"},"r":{"1":"46043242109380749151527145850513330956077996622769158245225343392397735706292106535150958053995712629189143692293204979798837951212291825184346767969751978730000071952944305252032332015837054475531407691352179423131405515518588355918925056889302269768343499864256747177988825578647189563088068257214198650437730618330249172716051559993880468542083352885474175039320848153156858562341041960950299312991459780503345784440261679263045723337629951517601461685539857683027034345542399365706329805317943096391758978877658949910614447086409173234155028671453929715706057153381022697673192590033507204548864311227048268516889390503318015295207078022755834130221198717787608473222789491216667698651180077661375273569115943192","0":"135472587547410377947826119498467634347118057359097899596599164976338466445104141784869016998150489852448547539824768048351359572626675997498079394825940306636285481821620973655797996638210760710325933304918452142858879806106214845499670718704532018129553348815327362843246706518826311676917538452317818631484884032929252959289913274829848084561421467966320595980172006456003183536232790787521924655750157145207798486087511869939940023266736153366338179116840490184005332351004990854691988404031259910319601383696749511809898297656135548118786342107367065232798999979296280467063561892962526945512167505847049907450058650930480352253243357594344686769208712964458923557777584158831146374282687397585726706489164423632","DELTA":"93540839493959971552865423901789226093328763011922445919928571946113703515842729132879472109395228387208764738970926484618949870591214627692618668077375153559192701474693025462226656116549337248146652482501255820930607033869432220667968682424554711616471973627651716863421554516577716366331699848682958681216261888139409101603059124344125075525791543312721162515584942523419876134808829569829529457617639955678189490257208141837196965948342373022812790844435050648360150869293836349223060722858500537182872294143846213258360218898475766641125493477502149553491502593654061863323857297998048614447925371606038801933864960337435890254277043261512846682042139570000962051463878026338583242360548041329046695667868842400","3":"1227675452527605924725300993571504188580051470857656204064614533296779844072852823820754766175236321050062349182891221840452517985644028521499240739391613871973822807731772613052644168369405390658793869751915172749739844553410726807277698347769400977274750672880389943392076308065414059539317340070691852044062594715307024113666759844200606183662256825096857658837519571386467051003466014468855293015652584667669998830524947537781865745830650392641812221679438090257444660715937570193098993118585554478799821072396238689063767016402460690760792908977364175126682041704095200572282644311025594681667826054722587271200221036938804846621444065128275082392082327596239358623150786484106872933657139420542280145197712634108","2":"596248147592834822582469335300585333722415132713749620075902332764163096347819006925876158892694742461036531935093982309708492066217459300117157420442081698140277277546563570823996272914068575482008392971932777453900260626542725308060927710122631763045025742980634216666560934260634907599194353151523256914796667535940073668465664206971169038864484235442207811974981191879443614478897291543702607764944403808380921189291059195014621592027660463072969363556421687131446107696579365265893962197300447027501604372738056016734644378437907931412654753728514905671605635291285742886484416973884856055084605172305967034292646171874483670469193852404511746786039743401185954843446037600121496137915619789351744485264614840070"},"mj":"1117601261519431120446925325460734824239475567013636538481947258329666056692767097795046086413732472111811628751812987521644198549167671875326968410921589186689138994171774838662","alpha":"76727612740067576380015106087224381023260815407331375101920043509817863645705120013304683427627332447210083684516403565749916480947649443674885388155460323163682547865307733144184097845709556309570345707127872162476432029772452433292049079349274445907295491125915363620615679995457134810061392296263970553630102299601689685622244925494554558218277670233361938142224820526392365740420502452466959099546877778248089664282581792213376636587293479012783947088070052463503335266180110771978445892744225891676396288437005847308189508347446490710626231658457908472341606549292437553353163031111068977301305043175839949352742711874426231072729977019365761072816602400121302646283352164756787266537474728685656685493249314400351742964904006326192403855909148605656818024621453179832395687665671245528217931951331393482249182516107670379946496778373","t":{"1":"37203689290881948278188715497642400459048942241931994079434400288578680362970117779048886269388440270597283202033458042171954610700745461571112086648991639439510380585728148682202768590972068041537531136529323260832899360551065706810590032715173070285762675403853992183366951113799098912676809373169763887110420539387555392787590966452796271491986622992160642135480293110112269570862265489120557014181468118619500321000966443141863893743211690388599242584469856365803370202569641902205925191670838354052104480074127555862332399641076324738839120815544432811566503174551735326387678621283249883091766325861497740614317","3":"58486787977689017034592833190899828017343431922483563651969628402499947729293364026001243898136737211851089198526360764391403150763769829047179796728616126204105160762333590343947446892105646111520243793053992399512412375936746396187319527051818920531870855183738837254656664620975569939859368862778444291640228229744805843388153451336792379036403300211151424879060241580540910888241769468335914016289938374111481091198264912969768783884602931940994543804730631920434719776196148182987249363641941951160704928605829395517074202388967815738516252602903999010405305463910751219873354588685197134114358234107748126140977","0":"60771874648036182010335841594233428920565254732600738082343398028553347795361460295011584446745121430144172025428394361648540904134739046923992231536160801306934272250969829886396340824213814702904457884984387666505055153957942221822193548673145705543973635530652570436109428474727638128773540793530691399549837156239786231362112148914687724325416768262058486101761972044802628459748878200584371058300150212485731451700436345975266860685549673168984700174294811561393162860595319582236734968601457003780816977537443267217411297266600994916897237305128142313335280264655603445636393371224354539882875937093696844430903","DELTA":"32816484171372208266594641116109072545171919234551585018140151846920408763078147655907777031259225522515086979967895258126318315788662577171150780535509410112003001556402222994276811926864642497249250763185467678044678144507739529818566125668667424447792097244624010084189629269472698722402896445274092470014229247479740671263651727480322483037149584904549203417226525624083290572692241241259382947122018271686649224741832992966652878170311798126004447080305528487720923103595513611363001766063956060990267107048028416069435287244770875463867263571308182619338433913487209319707428378896314619624990311543563016697299","2":"36428320569485697540634597755814766104888687488985202673924762266313135133244610404742081973550848160712054769198012193456278135847215508952327879544434490828380496286187725750283788811367824465072001959950807751252194618152990469069074061195618692339915840384087350671392595652921761835083158086795163935060896053332506433434451836095710383871272788002621913967538399141417857031787255744141437237474972197102809365346359345477248611632307159641948507043668113827177494748159094045928919209335044052792843664865311991178972383241855607627188111601119780878072683890170539599447876998109080150992209773901144245398001"},"predicate":{"attr_name":"age","p_type":"GE","value":18}}]},"non_revoc_proof":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","revoc_reg_seq_no":null}},"aggregated_proof":{"c_hash":"33103550379681684069592829341967479618752165928802550870585275205292715916069","c_list":[[1,121,77,5,144,154,14,192,190,190,145,180,128,71,22,60,168,20,46,163,139,194,71,165,220,188,121,76,25,146,231,114,65,54,69,68,19,200,250,192,47,123,157,132,74,50,28,69,226,195,243,118,45,63,237,197,216,202,206,101,33,56,225,200,128,3,89,12,182,38,113,221,165,119,228,201,156,201,172,136,59,64,51,72,164,198,49,228,223,117,80,64,166,226,37,8,29,146,186,80,210,119,76,252,4,255,62,218,112,163,164,147,247,190,108,76,140,191,76,217,214,184,152,179,193,149,15,70,197,46,90,60,255,247,197,219,252,73,76,0,125,104,114,22,182,161,110,36,162,103,27,42,88,18,161,237,198,43,177,189,181,86,135,207,71,114,0,26,175,12,199,125,25,124,178,87,36,208,251,15,191,127,202,148,152,43,142,92,191,7,89,153,130,195,223,248,176,109,97,164,126,162,181,124,237,130,155,197,66,59,40,197,72,84,32,100,64,55,227,60,214,143,200,200,89,115,236,172,145,56,100,73,20,242,233,95,130,58,112,153,120,115,119,42,199,30,205,88,223,42,196,184,41,19,100,19,244],[1,225,103,238,42,147,91,191,110,69,154,53,57,156,124,43,174,155,76,202,193,98,128,38,207,126,66,70,161,96,109,127,174,44,203,198,177,238,118,117,89,227,170,155,44,251,35,119,219,29,100,173,26,144,95,50,177,4,40,234,117,174,210,192,172,57,160,198,42,199,212,243,240,114,59,91,207,68,57,38,198,2,73,18,16,209,182,145,206,71,17,69,222,49,36,120,72,117,169,107,238,208,235,216,24,183,201,81,15,83,242,45,136,184,166,26,142,136,228,58,229,235,88,169,238,134,205,96,85,9,122,53,147,100,183,114,92,54,125,178,125,75,127,116,50,88,109,152,22,4,121,252,190,18,190,130,143,138,59,231,38,131,176,54,19,194,218,67,144,122,91,43,86,73,233,48,193,30,183,183,191,238,216,167,101,28,185,43,118,64,242,16,62,239,177,27,109,144,67,221,175,202,4,92,130,74,24,20,151,15,227,225,142,71,145,46,192,248,87,57,183,142,253,52,20,56,153,220,234,25,67,116,225,179,211,116,161,37,64,34,48,155,1,1,159,157,37,31,202,19,229,152,23,138,183,126,55],[1,38,181,193,191,72,2,239,34,83,49,36,179,160,82,112,172,98,255,63,60,22,177,249,67,215,220,198,181,7,49,254,133,243,221,214,47,64,229,82,11,94,175,57,86,152,229,192,184,96,136,116,226,123,128,217,23,244,19,204,36,44,123,208,88,24,217,120,145,139,25,233,227,5,119,90,47,147,1,115,92,39,119,194,167,17,229,39,163,167,237,14,116,234,106,252,216,54,33,233,21,54,183,130,144,161,177,142,177,240,51,73,21,202,188,103,244,153,204,219,123,231,139,135,189,155,143,28,4,180,44,148,0,27,103,26,13,203,31,32,166,67,84,87,23,72,234,236,20,1,84,70,86,76,192,164,235,124,86,128,78,230,119,155,95,121,125,20,244,181,121,250,169,9,67,85,213,177,139,111,187,183,114,165,249,177,161,181,175,46,226,66,86,84,124,86,69,143,217,158,161,30,107,133,44,239,89,209,24,150,1,238,122,144,138,179,121,114,90,13,212,209,60,126,37,62,177,180,131,222,168,2,201,156,169,220,224,53,8,203,220,215,163,104,195,184,73,35,241,182,177,80,41,253,230,90,173],[1,32,145,96,219,241,190,19,195,129,219,50,148,152,107,12,189,225,103,171,149,252,193,243,136,132,195,44,19,20,247,140,160,91,230,78,31,242,85,213,65,185,1,91,12,69,118,80,26,135,102,131,4,108,130,230,83,91,176,249,196,56,128,127,82,72,106,49,211,94,133,40,86,72,42,187,199,216,191,223,208,206,121,118,15,167,255,228,57,206,158,217,64,205,212,178,8,248,129,183,221,98,70,54,37,55,47,81,120,59,186,238,165,0,70,173,137,193,232,180,125,211,237,182,249,191,173,107,129,164,148,231,116,225,66,66,71,156,39,248,164,253,234,140,205,177,140,117,47,21,15,242,31,113,118,91,143,89,213,86,143,135,21,46,35,199,214,107,111,65,65,19,26,171,130,16,19,102,145,210,210,61,51,169,148,169,118,182,106,107,253,100,214,232,52,103,180,96,249,254,71,6,11,119,48,129,213,223,205,93,20,117,26,187,32,151,212,137,203,17,237,208,150,72,23,225,235,122,188,34,105,115,0,160,168,251,191,22,242,238,207,74,142,154,66,94,149,191,215,194,134,6,165,244,167,233,241],[1,207,77,250,146,127,242,229,44,172,182,201,183,242,32,242,182,129,233,10,8,180,23,191,163,21,238,158,5,27,216,146,253,173,127,99,95,168,209,132,242,196,242,34,25,25,249,211,51,236,164,153,175,61,65,150,82,251,174,102,186,47,195,82,44,90,252,184,74,89,251,177,254,108,151,136,230,220,93,224,173,247,244,116,132,59,170,215,194,30,87,84,166,147,57,156,201,207,132,203,222,191,253,15,19,228,173,81,156,4,51,121,227,159,50,18,148,129,205,42,42,227,252,138,62,176,115,227,253,52,125,110,178,167,132,244,14,116,195,194,172,44,45,63,38,121,215,136,68,230,21,108,133,159,197,179,94,78,233,107,236,114,92,165,248,22,124,161,23,142,236,224,175,233,134,25,97,150,131,61,220,203,104,154,199,247,146,47,205,56,209,0,133,132,18,103,136,8,202,37,29,100,105,12,232,74,33,6,255,202,96,170,52,229,244,4,235,2,201,125,86,168,179,224,130,81,54,221,185,184,187,141,0,114,98,38,70,225,228,60,157,53,210,238,60,216,215,154,48,73,3,157,192,245,81,170,49],[1,3,244,229,158,71,18,146,198,202,27,2,231,37,13,145,243,84,112,220,61,174,4,175,104,200,64,146,193,20,174,126,42,157,168,76,165,21,50,216,82,211,180,73,244,54,227,200,19,157,25,228,81,37,64,201,19,138,175,50,246,169,11,45,74,194,131,236,127,177,41,242,130,55,112,182,98,22,99,48,153,83,161,250,65,89,3,97,6,5,171,54,223,87,98,103,23,200,212,177,140,155,151,252,125,45,176,55,92,41,56,2,252,32,149,60,3,168,209,193,23,168,230,182,72,193,230,224,5,15,58,63,93,196,33,93,76,188,30,70,31,136,64,204,223,2,230,210,243,255,135,193,52,132,248,160,22,18,164,71,77,80,112,229,120,116,210,225,2,19,139,35,0,214,5,246,9,106,136,204,0,148,97,21,222,153,57,177,162,11,243,252,7,242,34,239,245,50,104,74,221,92,73,13,142,10,184,250,246,167,240,46,230,86,207,181,12,133,81,119,143,164,88,114,223,243,179,208,175,84,161,27,11,225,36,37,177,112,85,81,184,163,223,159,36,9,247,20,13,230,215,108,117,35,99,117,211]]},"requested_proof":{"revealed_attrs":{"attr1_uuid":["claim::277478db-bf57-42c3-8530-b1b13cfe0bfd","Alex","1139481716457488690172217916278103335"]},"unrevealed_attrs":{},"self_attested_attrs":{},"predicates":{"predicate1_uuid":"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd"}}}"#; let res = AnoncredsUtils::verifier_verify_proof(&proof_req_json, &proof_json, @@ -1308,7 +1297,7 @@ mod medium_cases { let claim_defs_json = format!("{{}}"); let revoc_regs_jsons = "{}"; - let proof_json = r#"{"proofs":{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{"proof":{"primary_proof":{"eq_proof":{"revealed_attrs":{"name":"1139481716457488690172217916278103335"},"a_prime":"47629821806628155353444789773246165920681315271529392722265555946090524267165563309836167110610840740533588118152308411732923636370660640410661034994521654033599863817144282118006097899736622728860229305231675970853294584911572355833537271010861501353858292189045263114095480601737776505186511389129055847562085611741257601964074827979121349153316235245772819207422031038042586202074331681302501661153569340935741290924699468188826629478130140797677338573924284871118002193526319478550852287453975107498037063076866410320160118555629090040954555043934303307652160345244864713226315470541231435958298648179413077988340","e":"13427639393364185909415877973872458621259927563729922146828001652769380799419438410309469022979920689628523901764614163117469683925816443","v":"852136445143816932026946294488424887907102968158908948827421962603492187508454543239422067899916472317305416590471170842186669606584356963437132366711335927890209765986844538775191207999204354235774464468525274918097404114453069375363594310105209141774763909570100638835926337238009617444858777301355087706167735590386774813901740600054753028260344014744801229032610106838480523182317262113911183640784111960909501662169298536941919854667754097841344375972975021196106884215734228415868248724905018661498061287694439466570946597514142085096419985189064172035527690786158872698717583830848410994616274586162550376126607414773916066374234063208380831144157533076866210628625236440222547584539349936639548061601416341705483504386186280800509889531835172071717956251546280392606775903107774727736794828168898273891724336881907672405328368540895104468091907771325910937575557566831844131159128453840354307814975621978196047820","m":{"age":"1117601261519431120446925325460734824239475567013636538481947258329666056692767097795046086413732472111811628751812987521644198549167671875326968410921589186689138994171774838662","height":"7064132689652704067914104576495132313294680087958177180391515757079548676035445873279966783996928425154050462229933823707574545166617858646442019030600136959459527533262821184869","sex":"16084497853957041205729191269508720470626311156190485518484640641677445098603656354458362520541393995692536218820724164533958162674375198846036330444513484319280148335515891811530"},"m1":"154906224259819061652290487122980839849626068919893070220438585977323162319993111920906032317552959103520053742608858935542877608981244065301675821390065831113115709272412144796159984624494428122971995557415296140268002332169405587907128359886810433617416529821500995701094400375272097687818064435577784795275","m2":"13805395408072590464827983892588030341708765524663545700917462089376137940485022437657208204460048097312372685954050370540389593952001973312378647790917367330461398089529292217752"},"ge_proofs":[{"u":{"1":"7698818972783845439601187851976452936638792889455287252542709653271706844173743185409084669157965935169942655008606334521674712818637940377261656468700786810566551698412412949418","0":"11703047052430512223413711314521545616119146623040600935686474696241801697819280425232876917607198335376453682738553665221410353412906194951254558355994401995990233992518110582450","3":"13210777821918317858818819091924507295018522783042111457450035423463340571245465760486275059291363621513532153389441883097799049597687545496359999443320001567152794884095192951040","2":"15219471780524079156861690098171693383497641272226737821992208834301871102152362116211452788300889697214391366996966539871625433480959011635688106136537800706217506402845296449689"},"r":{"1":"46043242109380749151527145850513330956077996622769158245225343392397735706292106535150958053995712629189143692293204979798837951212291825184346767969751978730000071952944305252032332015837054475531407691352179423131405515518588355918925056889302269768343499864256747177988825578647189563088068257214198650437730618330249172716051559993880468542083352885474175039320848153156858562341041960950299312991459780503345784440261679263045723337629951517601461685539857683027034345542399365706329805317943096391758978877658949910614447086409173234155028671453929715706057153381022697673192590033507204548864311227048268516889390503318015295207078022755834130221198717787608473222789491216667698651180077661375273569115943192","0":"135472587547410377947826119498467634347118057359097899596599164976338466445104141784869016998150489852448547539824768048351359572626675997498079394825940306636285481821620973655797996638210760710325933304918452142858879806106214845499670718704532018129553348815327362843246706518826311676917538452317818631484884032929252959289913274829848084561421467966320595980172006456003183536232790787521924655750157145207798486087511869939940023266736153366338179116840490184005332351004990854691988404031259910319601383696749511809898297656135548118786342107367065232798999979296280467063561892962526945512167505847049907450058650930480352253243357594344686769208712964458923557777584158831146374282687397585726706489164423632","DELTA":"93540839493959971552865423901789226093328763011922445919928571946113703515842729132879472109395228387208764738970926484618949870591214627692618668077375153559192701474693025462226656116549337248146652482501255820930607033869432220667968682424554711616471973627651716863421554516577716366331699848682958681216261888139409101603059124344125075525791543312721162515584942523419876134808829569829529457617639955678189490257208141837196965948342373022812790844435050648360150869293836349223060722858500537182872294143846213258360218898475766641125493477502149553491502593654061863323857297998048614447925371606038801933864960337435890254277043261512846682042139570000962051463878026338583242360548041329046695667868842400","3":"1227675452527605924725300993571504188580051470857656204064614533296779844072852823820754766175236321050062349182891221840452517985644028521499240739391613871973822807731772613052644168369405390658793869751915172749739844553410726807277698347769400977274750672880389943392076308065414059539317340070691852044062594715307024113666759844200606183662256825096857658837519571386467051003466014468855293015652584667669998830524947537781865745830650392641812221679438090257444660715937570193098993118585554478799821072396238689063767016402460690760792908977364175126682041704095200572282644311025594681667826054722587271200221036938804846621444065128275082392082327596239358623150786484106872933657139420542280145197712634108","2":"596248147592834822582469335300585333722415132713749620075902332764163096347819006925876158892694742461036531935093982309708492066217459300117157420442081698140277277546563570823996272914068575482008392971932777453900260626542725308060927710122631763045025742980634216666560934260634907599194353151523256914796667535940073668465664206971169038864484235442207811974981191879443614478897291543702607764944403808380921189291059195014621592027660463072969363556421687131446107696579365265893962197300447027501604372738056016734644378437907931412654753728514905671605635291285742886484416973884856055084605172305967034292646171874483670469193852404511746786039743401185954843446037600121496137915619789351744485264614840070"},"mj":"1117601261519431120446925325460734824239475567013636538481947258329666056692767097795046086413732472111811628751812987521644198549167671875326968410921589186689138994171774838662","alpha":"76727612740067576380015106087224381023260815407331375101920043509817863645705120013304683427627332447210083684516403565749916480947649443674885388155460323163682547865307733144184097845709556309570345707127872162476432029772452433292049079349274445907295491125915363620615679995457134810061392296263970553630102299601689685622244925494554558218277670233361938142224820526392365740420502452466959099546877778248089664282581792213376636587293479012783947088070052463503335266180110771978445892744225891676396288437005847308189508347446490710626231658457908472341606549292437553353163031111068977301305043175839949352742711874426231072729977019365761072816602400121302646283352164756787266537474728685656685493249314400351742964904006326192403855909148605656818024621453179832395687665671245528217931951331393482249182516107670379946496778373","t":{"1":"37203689290881948278188715497642400459048942241931994079434400288578680362970117779048886269388440270597283202033458042171954610700745461571112086648991639439510380585728148682202768590972068041537531136529323260832899360551065706810590032715173070285762675403853992183366951113799098912676809373169763887110420539387555392787590966452796271491986622992160642135480293110112269570862265489120557014181468118619500321000966443141863893743211690388599242584469856365803370202569641902205925191670838354052104480074127555862332399641076324738839120815544432811566503174551735326387678621283249883091766325861497740614317","3":"58486787977689017034592833190899828017343431922483563651969628402499947729293364026001243898136737211851089198526360764391403150763769829047179796728616126204105160762333590343947446892105646111520243793053992399512412375936746396187319527051818920531870855183738837254656664620975569939859368862778444291640228229744805843388153451336792379036403300211151424879060241580540910888241769468335914016289938374111481091198264912969768783884602931940994543804730631920434719776196148182987249363641941951160704928605829395517074202388967815738516252602903999010405305463910751219873354588685197134114358234107748126140977","0":"60771874648036182010335841594233428920565254732600738082343398028553347795361460295011584446745121430144172025428394361648540904134739046923992231536160801306934272250969829886396340824213814702904457884984387666505055153957942221822193548673145705543973635530652570436109428474727638128773540793530691399549837156239786231362112148914687724325416768262058486101761972044802628459748878200584371058300150212485731451700436345975266860685549673168984700174294811561393162860595319582236734968601457003780816977537443267217411297266600994916897237305128142313335280264655603445636393371224354539882875937093696844430903","DELTA":"32816484171372208266594641116109072545171919234551585018140151846920408763078147655907777031259225522515086979967895258126318315788662577171150780535509410112003001556402222994276811926864642497249250763185467678044678144507739529818566125668667424447792097244624010084189629269472698722402896445274092470014229247479740671263651727480322483037149584904549203417226525624083290572692241241259382947122018271686649224741832992966652878170311798126004447080305528487720923103595513611363001766063956060990267107048028416069435287244770875463867263571308182619338433913487209319707428378896314619624990311543563016697299","2":"36428320569485697540634597755814766104888687488985202673924762266313135133244610404742081973550848160712054769198012193456278135847215508952327879544434490828380496286187725750283788811367824465072001959950807751252194618152990469069074061195618692339915840384087350671392595652921761835083158086795163935060896053332506433434451836095710383871272788002621913967538399141417857031787255744141437237474972197102809365346359345477248611632307159641948507043668113827177494748159094045928919209335044052792843664865311991178972383241855607627188111601119780878072683890170539599447876998109080150992209773901144245398001"},"predicate":{"attr_name":"age","p_type":"GE","value":18}}]},"non_revoc_proof":null},"claim_def_seq_no":1,"revoc_reg_seq_no":null}},"aggregated_proof":{"c_hash":"33103550379681684069592829341967479618752165928802550870585275205292715916069","c_list":[[1,121,77,5,144,154,14,192,190,190,145,180,128,71,22,60,168,20,46,163,139,194,71,165,220,188,121,76,25,146,231,114,65,54,69,68,19,200,250,192,47,123,157,132,74,50,28,69,226,195,243,118,45,63,237,197,216,202,206,101,33,56,225,200,128,3,89,12,182,38,113,221,165,119,228,201,156,201,172,136,59,64,51,72,164,198,49,228,223,117,80,64,166,226,37,8,29,146,186,80,210,119,76,252,4,255,62,218,112,163,164,147,247,190,108,76,140,191,76,217,214,184,152,179,193,149,15,70,197,46,90,60,255,247,197,219,252,73,76,0,125,104,114,22,182,161,110,36,162,103,27,42,88,18,161,237,198,43,177,189,181,86,135,207,71,114,0,26,175,12,199,125,25,124,178,87,36,208,251,15,191,127,202,148,152,43,142,92,191,7,89,153,130,195,223,248,176,109,97,164,126,162,181,124,237,130,155,197,66,59,40,197,72,84,32,100,64,55,227,60,214,143,200,200,89,115,236,172,145,56,100,73,20,242,233,95,130,58,112,153,120,115,119,42,199,30,205,88,223,42,196,184,41,19,100,19,244],[1,225,103,238,42,147,91,191,110,69,154,53,57,156,124,43,174,155,76,202,193,98,128,38,207,126,66,70,161,96,109,127,174,44,203,198,177,238,118,117,89,227,170,155,44,251,35,119,219,29,100,173,26,144,95,50,177,4,40,234,117,174,210,192,172,57,160,198,42,199,212,243,240,114,59,91,207,68,57,38,198,2,73,18,16,209,182,145,206,71,17,69,222,49,36,120,72,117,169,107,238,208,235,216,24,183,201,81,15,83,242,45,136,184,166,26,142,136,228,58,229,235,88,169,238,134,205,96,85,9,122,53,147,100,183,114,92,54,125,178,125,75,127,116,50,88,109,152,22,4,121,252,190,18,190,130,143,138,59,231,38,131,176,54,19,194,218,67,144,122,91,43,86,73,233,48,193,30,183,183,191,238,216,167,101,28,185,43,118,64,242,16,62,239,177,27,109,144,67,221,175,202,4,92,130,74,24,20,151,15,227,225,142,71,145,46,192,248,87,57,183,142,253,52,20,56,153,220,234,25,67,116,225,179,211,116,161,37,64,34,48,155,1,1,159,157,37,31,202,19,229,152,23,138,183,126,55],[1,38,181,193,191,72,2,239,34,83,49,36,179,160,82,112,172,98,255,63,60,22,177,249,67,215,220,198,181,7,49,254,133,243,221,214,47,64,229,82,11,94,175,57,86,152,229,192,184,96,136,116,226,123,128,217,23,244,19,204,36,44,123,208,88,24,217,120,145,139,25,233,227,5,119,90,47,147,1,115,92,39,119,194,167,17,229,39,163,167,237,14,116,234,106,252,216,54,33,233,21,54,183,130,144,161,177,142,177,240,51,73,21,202,188,103,244,153,204,219,123,231,139,135,189,155,143,28,4,180,44,148,0,27,103,26,13,203,31,32,166,67,84,87,23,72,234,236,20,1,84,70,86,76,192,164,235,124,86,128,78,230,119,155,95,121,125,20,244,181,121,250,169,9,67,85,213,177,139,111,187,183,114,165,249,177,161,181,175,46,226,66,86,84,124,86,69,143,217,158,161,30,107,133,44,239,89,209,24,150,1,238,122,144,138,179,121,114,90,13,212,209,60,126,37,62,177,180,131,222,168,2,201,156,169,220,224,53,8,203,220,215,163,104,195,184,73,35,241,182,177,80,41,253,230,90,173],[1,32,145,96,219,241,190,19,195,129,219,50,148,152,107,12,189,225,103,171,149,252,193,243,136,132,195,44,19,20,247,140,160,91,230,78,31,242,85,213,65,185,1,91,12,69,118,80,26,135,102,131,4,108,130,230,83,91,176,249,196,56,128,127,82,72,106,49,211,94,133,40,86,72,42,187,199,216,191,223,208,206,121,118,15,167,255,228,57,206,158,217,64,205,212,178,8,248,129,183,221,98,70,54,37,55,47,81,120,59,186,238,165,0,70,173,137,193,232,180,125,211,237,182,249,191,173,107,129,164,148,231,116,225,66,66,71,156,39,248,164,253,234,140,205,177,140,117,47,21,15,242,31,113,118,91,143,89,213,86,143,135,21,46,35,199,214,107,111,65,65,19,26,171,130,16,19,102,145,210,210,61,51,169,148,169,118,182,106,107,253,100,214,232,52,103,180,96,249,254,71,6,11,119,48,129,213,223,205,93,20,117,26,187,32,151,212,137,203,17,237,208,150,72,23,225,235,122,188,34,105,115,0,160,168,251,191,22,242,238,207,74,142,154,66,94,149,191,215,194,134,6,165,244,167,233,241],[1,207,77,250,146,127,242,229,44,172,182,201,183,242,32,242,182,129,233,10,8,180,23,191,163,21,238,158,5,27,216,146,253,173,127,99,95,168,209,132,242,196,242,34,25,25,249,211,51,236,164,153,175,61,65,150,82,251,174,102,186,47,195,82,44,90,252,184,74,89,251,177,254,108,151,136,230,220,93,224,173,247,244,116,132,59,170,215,194,30,87,84,166,147,57,156,201,207,132,203,222,191,253,15,19,228,173,81,156,4,51,121,227,159,50,18,148,129,205,42,42,227,252,138,62,176,115,227,253,52,125,110,178,167,132,244,14,116,195,194,172,44,45,63,38,121,215,136,68,230,21,108,133,159,197,179,94,78,233,107,236,114,92,165,248,22,124,161,23,142,236,224,175,233,134,25,97,150,131,61,220,203,104,154,199,247,146,47,205,56,209,0,133,132,18,103,136,8,202,37,29,100,105,12,232,74,33,6,255,202,96,170,52,229,244,4,235,2,201,125,86,168,179,224,130,81,54,221,185,184,187,141,0,114,98,38,70,225,228,60,157,53,210,238,60,216,215,154,48,73,3,157,192,245,81,170,49],[1,3,244,229,158,71,18,146,198,202,27,2,231,37,13,145,243,84,112,220,61,174,4,175,104,200,64,146,193,20,174,126,42,157,168,76,165,21,50,216,82,211,180,73,244,54,227,200,19,157,25,228,81,37,64,201,19,138,175,50,246,169,11,45,74,194,131,236,127,177,41,242,130,55,112,182,98,22,99,48,153,83,161,250,65,89,3,97,6,5,171,54,223,87,98,103,23,200,212,177,140,155,151,252,125,45,176,55,92,41,56,2,252,32,149,60,3,168,209,193,23,168,230,182,72,193,230,224,5,15,58,63,93,196,33,93,76,188,30,70,31,136,64,204,223,2,230,210,243,255,135,193,52,132,248,160,22,18,164,71,77,80,112,229,120,116,210,225,2,19,139,35,0,214,5,246,9,106,136,204,0,148,97,21,222,153,57,177,162,11,243,252,7,242,34,239,245,50,104,74,221,92,73,13,142,10,184,250,246,167,240,46,230,86,207,181,12,133,81,119,143,164,88,114,223,243,179,208,175,84,161,27,11,225,36,37,177,112,85,81,184,163,223,159,36,9,247,20,13,230,215,108,117,35,99,117,211]]},"requested_proof":{"revealed_attrs":{"attr1_uuid":["claim::277478db-bf57-42c3-8530-b1b13cfe0bfd","Alex","1139481716457488690172217916278103335"]},"unrevealed_attrs":{},"self_attested_attrs":{},"predicates":{"predicate1_uuid":"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd"}}}"#; + let proof_json = r#"{"proofs":{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{"proof":{"primary_proof":{"eq_proof":{"revealed_attrs":{"name":"1139481716457488690172217916278103335"},"a_prime":"47629821806628155353444789773246165920681315271529392722265555946090524267165563309836167110610840740533588118152308411732923636370660640410661034994521654033599863817144282118006097899736622728860229305231675970853294584911572355833537271010861501353858292189045263114095480601737776505186511389129055847562085611741257601964074827979121349153316235245772819207422031038042586202074331681302501661153569340935741290924699468188826629478130140797677338573924284871118002193526319478550852287453975107498037063076866410320160118555629090040954555043934303307652160345244864713226315470541231435958298648179413077988340","e":"13427639393364185909415877973872458621259927563729922146828001652769380799419438410309469022979920689628523901764614163117469683925816443","v":"852136445143816932026946294488424887907102968158908948827421962603492187508454543239422067899916472317305416590471170842186669606584356963437132366711335927890209765986844538775191207999204354235774464468525274918097404114453069375363594310105209141774763909570100638835926337238009617444858777301355087706167735590386774813901740600054753028260344014744801229032610106838480523182317262113911183640784111960909501662169298536941919854667754097841344375972975021196106884215734228415868248724905018661498061287694439466570946597514142085096419985189064172035527690786158872698717583830848410994616274586162550376126607414773916066374234063208380831144157533076866210628625236440222547584539349936639548061601416341705483504386186280800509889531835172071717956251546280392606775903107774727736794828168898273891724336881907672405328368540895104468091907771325910937575557566831844131159128453840354307814975621978196047820","m":{"age":"1117601261519431120446925325460734824239475567013636538481947258329666056692767097795046086413732472111811628751812987521644198549167671875326968410921589186689138994171774838662","height":"7064132689652704067914104576495132313294680087958177180391515757079548676035445873279966783996928425154050462229933823707574545166617858646442019030600136959459527533262821184869","sex":"16084497853957041205729191269508720470626311156190485518484640641677445098603656354458362520541393995692536218820724164533958162674375198846036330444513484319280148335515891811530"},"m1":"154906224259819061652290487122980839849626068919893070220438585977323162319993111920906032317552959103520053742608858935542877608981244065301675821390065831113115709272412144796159984624494428122971995557415296140268002332169405587907128359886810433617416529821500995701094400375272097687818064435577784795275","m2":"13805395408072590464827983892588030341708765524663545700917462089376137940485022437657208204460048097312372685954050370540389593952001973312378647790917367330461398089529292217752"},"ge_proofs":[{"u":{"1":"7698818972783845439601187851976452936638792889455287252542709653271706844173743185409084669157965935169942655008606334521674712818637940377261656468700786810566551698412412949418","0":"11703047052430512223413711314521545616119146623040600935686474696241801697819280425232876917607198335376453682738553665221410353412906194951254558355994401995990233992518110582450","3":"13210777821918317858818819091924507295018522783042111457450035423463340571245465760486275059291363621513532153389441883097799049597687545496359999443320001567152794884095192951040","2":"15219471780524079156861690098171693383497641272226737821992208834301871102152362116211452788300889697214391366996966539871625433480959011635688106136537800706217506402845296449689"},"r":{"1":"46043242109380749151527145850513330956077996622769158245225343392397735706292106535150958053995712629189143692293204979798837951212291825184346767969751978730000071952944305252032332015837054475531407691352179423131405515518588355918925056889302269768343499864256747177988825578647189563088068257214198650437730618330249172716051559993880468542083352885474175039320848153156858562341041960950299312991459780503345784440261679263045723337629951517601461685539857683027034345542399365706329805317943096391758978877658949910614447086409173234155028671453929715706057153381022697673192590033507204548864311227048268516889390503318015295207078022755834130221198717787608473222789491216667698651180077661375273569115943192","0":"135472587547410377947826119498467634347118057359097899596599164976338466445104141784869016998150489852448547539824768048351359572626675997498079394825940306636285481821620973655797996638210760710325933304918452142858879806106214845499670718704532018129553348815327362843246706518826311676917538452317818631484884032929252959289913274829848084561421467966320595980172006456003183536232790787521924655750157145207798486087511869939940023266736153366338179116840490184005332351004990854691988404031259910319601383696749511809898297656135548118786342107367065232798999979296280467063561892962526945512167505847049907450058650930480352253243357594344686769208712964458923557777584158831146374282687397585726706489164423632","DELTA":"93540839493959971552865423901789226093328763011922445919928571946113703515842729132879472109395228387208764738970926484618949870591214627692618668077375153559192701474693025462226656116549337248146652482501255820930607033869432220667968682424554711616471973627651716863421554516577716366331699848682958681216261888139409101603059124344125075525791543312721162515584942523419876134808829569829529457617639955678189490257208141837196965948342373022812790844435050648360150869293836349223060722858500537182872294143846213258360218898475766641125493477502149553491502593654061863323857297998048614447925371606038801933864960337435890254277043261512846682042139570000962051463878026338583242360548041329046695667868842400","3":"1227675452527605924725300993571504188580051470857656204064614533296779844072852823820754766175236321050062349182891221840452517985644028521499240739391613871973822807731772613052644168369405390658793869751915172749739844553410726807277698347769400977274750672880389943392076308065414059539317340070691852044062594715307024113666759844200606183662256825096857658837519571386467051003466014468855293015652584667669998830524947537781865745830650392641812221679438090257444660715937570193098993118585554478799821072396238689063767016402460690760792908977364175126682041704095200572282644311025594681667826054722587271200221036938804846621444065128275082392082327596239358623150786484106872933657139420542280145197712634108","2":"596248147592834822582469335300585333722415132713749620075902332764163096347819006925876158892694742461036531935093982309708492066217459300117157420442081698140277277546563570823996272914068575482008392971932777453900260626542725308060927710122631763045025742980634216666560934260634907599194353151523256914796667535940073668465664206971169038864484235442207811974981191879443614478897291543702607764944403808380921189291059195014621592027660463072969363556421687131446107696579365265893962197300447027501604372738056016734644378437907931412654753728514905671605635291285742886484416973884856055084605172305967034292646171874483670469193852404511746786039743401185954843446037600121496137915619789351744485264614840070"},"mj":"1117601261519431120446925325460734824239475567013636538481947258329666056692767097795046086413732472111811628751812987521644198549167671875326968410921589186689138994171774838662","alpha":"76727612740067576380015106087224381023260815407331375101920043509817863645705120013304683427627332447210083684516403565749916480947649443674885388155460323163682547865307733144184097845709556309570345707127872162476432029772452433292049079349274445907295491125915363620615679995457134810061392296263970553630102299601689685622244925494554558218277670233361938142224820526392365740420502452466959099546877778248089664282581792213376636587293479012783947088070052463503335266180110771978445892744225891676396288437005847308189508347446490710626231658457908472341606549292437553353163031111068977301305043175839949352742711874426231072729977019365761072816602400121302646283352164756787266537474728685656685493249314400351742964904006326192403855909148605656818024621453179832395687665671245528217931951331393482249182516107670379946496778373","t":{"1":"37203689290881948278188715497642400459048942241931994079434400288578680362970117779048886269388440270597283202033458042171954610700745461571112086648991639439510380585728148682202768590972068041537531136529323260832899360551065706810590032715173070285762675403853992183366951113799098912676809373169763887110420539387555392787590966452796271491986622992160642135480293110112269570862265489120557014181468118619500321000966443141863893743211690388599242584469856365803370202569641902205925191670838354052104480074127555862332399641076324738839120815544432811566503174551735326387678621283249883091766325861497740614317","3":"58486787977689017034592833190899828017343431922483563651969628402499947729293364026001243898136737211851089198526360764391403150763769829047179796728616126204105160762333590343947446892105646111520243793053992399512412375936746396187319527051818920531870855183738837254656664620975569939859368862778444291640228229744805843388153451336792379036403300211151424879060241580540910888241769468335914016289938374111481091198264912969768783884602931940994543804730631920434719776196148182987249363641941951160704928605829395517074202388967815738516252602903999010405305463910751219873354588685197134114358234107748126140977","0":"60771874648036182010335841594233428920565254732600738082343398028553347795361460295011584446745121430144172025428394361648540904134739046923992231536160801306934272250969829886396340824213814702904457884984387666505055153957942221822193548673145705543973635530652570436109428474727638128773540793530691399549837156239786231362112148914687724325416768262058486101761972044802628459748878200584371058300150212485731451700436345975266860685549673168984700174294811561393162860595319582236734968601457003780816977537443267217411297266600994916897237305128142313335280264655603445636393371224354539882875937093696844430903","DELTA":"32816484171372208266594641116109072545171919234551585018140151846920408763078147655907777031259225522515086979967895258126318315788662577171150780535509410112003001556402222994276811926864642497249250763185467678044678144507739529818566125668667424447792097244624010084189629269472698722402896445274092470014229247479740671263651727480322483037149584904549203417226525624083290572692241241259382947122018271686649224741832992966652878170311798126004447080305528487720923103595513611363001766063956060990267107048028416069435287244770875463867263571308182619338433913487209319707428378896314619624990311543563016697299","2":"36428320569485697540634597755814766104888687488985202673924762266313135133244610404742081973550848160712054769198012193456278135847215508952327879544434490828380496286187725750283788811367824465072001959950807751252194618152990469069074061195618692339915840384087350671392595652921761835083158086795163935060896053332506433434451836095710383871272788002621913967538399141417857031787255744141437237474972197102809365346359345477248611632307159641948507043668113827177494748159094045928919209335044052792843664865311991178972383241855607627188111601119780878072683890170539599447876998109080150992209773901144245398001"},"predicate":{"attr_name":"age","p_type":"GE","value":18}}]},"non_revoc_proof":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","revoc_reg_seq_no":null}},"aggregated_proof":{"c_hash":"33103550379681684069592829341967479618752165928802550870585275205292715916069","c_list":[[1,121,77,5,144,154,14,192,190,190,145,180,128,71,22,60,168,20,46,163,139,194,71,165,220,188,121,76,25,146,231,114,65,54,69,68,19,200,250,192,47,123,157,132,74,50,28,69,226,195,243,118,45,63,237,197,216,202,206,101,33,56,225,200,128,3,89,12,182,38,113,221,165,119,228,201,156,201,172,136,59,64,51,72,164,198,49,228,223,117,80,64,166,226,37,8,29,146,186,80,210,119,76,252,4,255,62,218,112,163,164,147,247,190,108,76,140,191,76,217,214,184,152,179,193,149,15,70,197,46,90,60,255,247,197,219,252,73,76,0,125,104,114,22,182,161,110,36,162,103,27,42,88,18,161,237,198,43,177,189,181,86,135,207,71,114,0,26,175,12,199,125,25,124,178,87,36,208,251,15,191,127,202,148,152,43,142,92,191,7,89,153,130,195,223,248,176,109,97,164,126,162,181,124,237,130,155,197,66,59,40,197,72,84,32,100,64,55,227,60,214,143,200,200,89,115,236,172,145,56,100,73,20,242,233,95,130,58,112,153,120,115,119,42,199,30,205,88,223,42,196,184,41,19,100,19,244],[1,225,103,238,42,147,91,191,110,69,154,53,57,156,124,43,174,155,76,202,193,98,128,38,207,126,66,70,161,96,109,127,174,44,203,198,177,238,118,117,89,227,170,155,44,251,35,119,219,29,100,173,26,144,95,50,177,4,40,234,117,174,210,192,172,57,160,198,42,199,212,243,240,114,59,91,207,68,57,38,198,2,73,18,16,209,182,145,206,71,17,69,222,49,36,120,72,117,169,107,238,208,235,216,24,183,201,81,15,83,242,45,136,184,166,26,142,136,228,58,229,235,88,169,238,134,205,96,85,9,122,53,147,100,183,114,92,54,125,178,125,75,127,116,50,88,109,152,22,4,121,252,190,18,190,130,143,138,59,231,38,131,176,54,19,194,218,67,144,122,91,43,86,73,233,48,193,30,183,183,191,238,216,167,101,28,185,43,118,64,242,16,62,239,177,27,109,144,67,221,175,202,4,92,130,74,24,20,151,15,227,225,142,71,145,46,192,248,87,57,183,142,253,52,20,56,153,220,234,25,67,116,225,179,211,116,161,37,64,34,48,155,1,1,159,157,37,31,202,19,229,152,23,138,183,126,55],[1,38,181,193,191,72,2,239,34,83,49,36,179,160,82,112,172,98,255,63,60,22,177,249,67,215,220,198,181,7,49,254,133,243,221,214,47,64,229,82,11,94,175,57,86,152,229,192,184,96,136,116,226,123,128,217,23,244,19,204,36,44,123,208,88,24,217,120,145,139,25,233,227,5,119,90,47,147,1,115,92,39,119,194,167,17,229,39,163,167,237,14,116,234,106,252,216,54,33,233,21,54,183,130,144,161,177,142,177,240,51,73,21,202,188,103,244,153,204,219,123,231,139,135,189,155,143,28,4,180,44,148,0,27,103,26,13,203,31,32,166,67,84,87,23,72,234,236,20,1,84,70,86,76,192,164,235,124,86,128,78,230,119,155,95,121,125,20,244,181,121,250,169,9,67,85,213,177,139,111,187,183,114,165,249,177,161,181,175,46,226,66,86,84,124,86,69,143,217,158,161,30,107,133,44,239,89,209,24,150,1,238,122,144,138,179,121,114,90,13,212,209,60,126,37,62,177,180,131,222,168,2,201,156,169,220,224,53,8,203,220,215,163,104,195,184,73,35,241,182,177,80,41,253,230,90,173],[1,32,145,96,219,241,190,19,195,129,219,50,148,152,107,12,189,225,103,171,149,252,193,243,136,132,195,44,19,20,247,140,160,91,230,78,31,242,85,213,65,185,1,91,12,69,118,80,26,135,102,131,4,108,130,230,83,91,176,249,196,56,128,127,82,72,106,49,211,94,133,40,86,72,42,187,199,216,191,223,208,206,121,118,15,167,255,228,57,206,158,217,64,205,212,178,8,248,129,183,221,98,70,54,37,55,47,81,120,59,186,238,165,0,70,173,137,193,232,180,125,211,237,182,249,191,173,107,129,164,148,231,116,225,66,66,71,156,39,248,164,253,234,140,205,177,140,117,47,21,15,242,31,113,118,91,143,89,213,86,143,135,21,46,35,199,214,107,111,65,65,19,26,171,130,16,19,102,145,210,210,61,51,169,148,169,118,182,106,107,253,100,214,232,52,103,180,96,249,254,71,6,11,119,48,129,213,223,205,93,20,117,26,187,32,151,212,137,203,17,237,208,150,72,23,225,235,122,188,34,105,115,0,160,168,251,191,22,242,238,207,74,142,154,66,94,149,191,215,194,134,6,165,244,167,233,241],[1,207,77,250,146,127,242,229,44,172,182,201,183,242,32,242,182,129,233,10,8,180,23,191,163,21,238,158,5,27,216,146,253,173,127,99,95,168,209,132,242,196,242,34,25,25,249,211,51,236,164,153,175,61,65,150,82,251,174,102,186,47,195,82,44,90,252,184,74,89,251,177,254,108,151,136,230,220,93,224,173,247,244,116,132,59,170,215,194,30,87,84,166,147,57,156,201,207,132,203,222,191,253,15,19,228,173,81,156,4,51,121,227,159,50,18,148,129,205,42,42,227,252,138,62,176,115,227,253,52,125,110,178,167,132,244,14,116,195,194,172,44,45,63,38,121,215,136,68,230,21,108,133,159,197,179,94,78,233,107,236,114,92,165,248,22,124,161,23,142,236,224,175,233,134,25,97,150,131,61,220,203,104,154,199,247,146,47,205,56,209,0,133,132,18,103,136,8,202,37,29,100,105,12,232,74,33,6,255,202,96,170,52,229,244,4,235,2,201,125,86,168,179,224,130,81,54,221,185,184,187,141,0,114,98,38,70,225,228,60,157,53,210,238,60,216,215,154,48,73,3,157,192,245,81,170,49],[1,3,244,229,158,71,18,146,198,202,27,2,231,37,13,145,243,84,112,220,61,174,4,175,104,200,64,146,193,20,174,126,42,157,168,76,165,21,50,216,82,211,180,73,244,54,227,200,19,157,25,228,81,37,64,201,19,138,175,50,246,169,11,45,74,194,131,236,127,177,41,242,130,55,112,182,98,22,99,48,153,83,161,250,65,89,3,97,6,5,171,54,223,87,98,103,23,200,212,177,140,155,151,252,125,45,176,55,92,41,56,2,252,32,149,60,3,168,209,193,23,168,230,182,72,193,230,224,5,15,58,63,93,196,33,93,76,188,30,70,31,136,64,204,223,2,230,210,243,255,135,193,52,132,248,160,22,18,164,71,77,80,112,229,120,116,210,225,2,19,139,35,0,214,5,246,9,106,136,204,0,148,97,21,222,153,57,177,162,11,243,252,7,242,34,239,245,50,104,74,221,92,73,13,142,10,184,250,246,167,240,46,230,86,207,181,12,133,81,119,143,164,88,114,223,243,179,208,175,84,161,27,11,225,36,37,177,112,85,81,184,163,223,159,36,9,247,20,13,230,215,108,117,35,99,117,211]]},"requested_proof":{"revealed_attrs":{"attr1_uuid":["claim::277478db-bf57-42c3-8530-b1b13cfe0bfd","Alex","1139481716457488690172217916278103335"]},"unrevealed_attrs":{},"self_attested_attrs":{},"predicates":{"predicate1_uuid":"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd"}}}"#; let res = AnoncredsUtils::verifier_verify_proof(&proof_req_json, &proof_json, diff --git a/tests/demo.rs b/tests/demo.rs index d3ee9a6282..cc58c88a09 100644 --- a/tests/demo.rs +++ b/tests/demo.rs @@ -194,7 +194,8 @@ fn anoncreds_demo_works() { // // let err = sovrin_issuer_create_and_store_revoc_reg(issuer_create_and_store_revoc_reg_command_handle, // wallet_handle, - // claim_def_seq_no, + // issuer_did, + // schema_seq_no, // max_claim_num, // issuer_create_and_store_revoc_reg_callback); // assert_eq!(ErrorCode::Success, err); From 7ac616041d5279a118bd6fa35d9cdc4312f5a790 Mon Sep 17 00:00:00 2001 From: Evgeniy Razinkov Date: Wed, 5 Jul 2017 18:21:40 +0300 Subject: [PATCH 13/23] removed unnecessary field --- tests/utils/anoncreds.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/utils/anoncreds.rs b/tests/utils/anoncreds.rs index 3c736dd121..907d98929b 100644 --- a/tests/utils/anoncreds.rs +++ b/tests/utils/anoncreds.rs @@ -465,7 +465,6 @@ impl AnoncredsUtils { "ur":null }, "issuer_did":"NcYxiDXkpYi6ov5FcYDi1e", - "claim_def_seq_no":1, "schema_seq_no":1 }"#.to_string() } From b2874de3bc8af5bb990b5f8a0a522282af2316e4 Mon Sep 17 00:00:00 2001 From: Evgeniy Razinkov Date: Thu, 6 Jul 2017 10:55:37 +0300 Subject: [PATCH 14/23] fix verifier's tests --- tests/anoncreds.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/anoncreds.rs b/tests/anoncreds.rs index f60b35f494..6b0905a2c4 100644 --- a/tests/anoncreds.rs +++ b/tests/anoncreds.rs @@ -673,7 +673,7 @@ mod high_cases { "requested_predicates":{{"predicate1_uuid":{{"attr_name":"age","p_type":"GE","value":18}}}} }}"#); - let claim_def = r#"{"ref":1,"signature_type":"CL", "data":{"primary":{"n":"94759924268422840873493186881483285628376767714620627055233230078254863658476446487556117977593248501523199451418346650764648601684276437772084327637083000213497377603495837360299641742248892290843802071224822481683143989223918276185323177379400413928352871249494885563503003839960930062341074783742062464846448855510814252519824733234277681749977392772900212293652238651538092092030867161752390937372967233462027620699196724949212432236376627703446877808405786247217818975482797381180714523093913559060716447170497587855871901716892114835713057965087473682457896508094049813280368069805661739141591558517233009123957","s":"3589207374161609293256840431433442367968556468254553005135697551692970564853243905310862234226531556373974144223993822323573625466428920716249949819187529684239371465431718456502388533731367046146704547241076626874082510133130124364613881638153345624380195335138152993132904167470515345775215584510356780117368593105284564368954871044494967246738070895990267205643985529060025311535539534155086912661927003271053443110788963970349858709526217650537936123121324492871282397691771309596632805099306241616501610166028401599243350835158479028294769235556557248339060399322556412171888114265194198405765574333538019124846","rms":"57150374376895616256492932008792437185713712934712117819417607831438470701645904776986426606717466732609284990796923331049549544903261623636958698296956103821068569714644825742048584174696465882627177060166162341112552851798863535031243458188976013190131935905789786836375734914391914349188643340535242562896244661798678234667651641013894284156416773868299435641426810968290584996112925365638881750944407842890875840705650290814965768221299488400872767679122749231050406680432079499973527780212310700022178178822528199576164498116369689770884051691678056831493476045361227274839673581033532995523269047577973637307053","r":{"age":"94304485801056920773231824603827244147437820123357994068540328541540143488826838939836897544389872126768239056314698953816072289663428273075648246498659039419931054256171488371404693243192741923382499918184822032756852725234903892700640856294525441486319095181804549558538523888770076173572615957495813339649470619615099181648313548341951673407624414494737018574238782648822189142664108450534642272145962844003886059737965854042074083374478426875684184904488545593139633653407062308621502392373426120986761417580127895634822264744063122368296502161439648408926687989964483291459079738447940651025900007635890755686910","sex":"29253365609829921413347591854991689007250272038394995372767401325848195298844802462252851926995846503104090589196060683329875231216529049681648909174047403783834364995363938741001507091534282239210301727771803410513303526378812888571225762557471133950393342500638551458868147905023198508660460641434022020257614450354085808398293279060446966692082427506909617283562394303716193372887306176319841941848888379308208426966697446699225783646634631703732019477632822374479322570142967559738439193417309205283438893083349863592921249218168590490390313109776446516881569691499831380592661740653935515397472059631417493981532","name":"25134437486609445980011967476486104706321061312022352268621323694861467756181853100693555519614894168921947814126694858839278103549577703105305116890325322098078409416441750313062396467567140699008203113519528887729951138845002409659317083029073793314514377377412805387401717457417895322600145580639449003584446356048213839274172751441145076183734269045919984853749007476629365146654240675320041155618450449041510280560040162429566008590065069477149918088087715269037925211599101597422023202484497946662159070023999719865939258557778022770035320019440597702090334486792710436579355608406897769514395306079855023848170","height":"59326960517737425423547279838932030505937927873589489863081026714907925093402287263487670945897247474465655528290016645774365383046524346223348261262488616342337864633104758662753452450299389775751012589698563659277683974188553993694220606310980581680471280640591973543996299789038056921309016983827578247477799948667666717056420270448516049047961099547588510086600581628091290215485826514170097211360599793229701811672966818089371089216189744274422526431130783428589346341196561742409198605034972210917502326180305735092988639850309253190875578501020679137562856724998821945605494355779034135306337094344532980411836"},"rctxt":"9641986614889199796257508700106896585587271615330980339636468819377346498767697681332046156705231986464570206666984343024200482683981302064613556104594051003956610353281701880542337665385482309134369756144345334575765116656633321636736946947493150642615481313285221467998414924865943067790561494301461899025374692884841352282256044388512875752628313052128404892424405230961678931620525106856624692942373538946467902799339061714326383378018581568876147181355325663707572429090278505823900491548970098691127791086305310899642155499128171811034581730190877600697624903963241473287185133286356124371104261592694271730029","z":"77594127026421654059198621152153180600664927707984020918609426112642522289621323453889995053400171879296098965678384769043918218957929606187082395048777546641833348694470081024386996548890150355901703252426977094536933434556202865213941384425538749866521536494046548509344678288447175898173634381514948562261015286492185924659638474376885655055568341574638453213864956407243206035973349529545863886325462867413885904072942842465859476940638839087894582648849969332663627779378998245133055807038199937421971988505911494931665143822588532097754480882750243126847177560978100527491344463525107644125030963904001009159559"},"revocation":null}}"#; + let claim_def = r#"{"ref":1,"signature_type":"CL","origin":"NcYxiDXkpYi6ov5FcYDi1e", "data":{"primary":{"n":"94759924268422840873493186881483285628376767714620627055233230078254863658476446487556117977593248501523199451418346650764648601684276437772084327637083000213497377603495837360299641742248892290843802071224822481683143989223918276185323177379400413928352871249494885563503003839960930062341074783742062464846448855510814252519824733234277681749977392772900212293652238651538092092030867161752390937372967233462027620699196724949212432236376627703446877808405786247217818975482797381180714523093913559060716447170497587855871901716892114835713057965087473682457896508094049813280368069805661739141591558517233009123957","s":"3589207374161609293256840431433442367968556468254553005135697551692970564853243905310862234226531556373974144223993822323573625466428920716249949819187529684239371465431718456502388533731367046146704547241076626874082510133130124364613881638153345624380195335138152993132904167470515345775215584510356780117368593105284564368954871044494967246738070895990267205643985529060025311535539534155086912661927003271053443110788963970349858709526217650537936123121324492871282397691771309596632805099306241616501610166028401599243350835158479028294769235556557248339060399322556412171888114265194198405765574333538019124846","rms":"57150374376895616256492932008792437185713712934712117819417607831438470701645904776986426606717466732609284990796923331049549544903261623636958698296956103821068569714644825742048584174696465882627177060166162341112552851798863535031243458188976013190131935905789786836375734914391914349188643340535242562896244661798678234667651641013894284156416773868299435641426810968290584996112925365638881750944407842890875840705650290814965768221299488400872767679122749231050406680432079499973527780212310700022178178822528199576164498116369689770884051691678056831493476045361227274839673581033532995523269047577973637307053","r":{"age":"94304485801056920773231824603827244147437820123357994068540328541540143488826838939836897544389872126768239056314698953816072289663428273075648246498659039419931054256171488371404693243192741923382499918184822032756852725234903892700640856294525441486319095181804549558538523888770076173572615957495813339649470619615099181648313548341951673407624414494737018574238782648822189142664108450534642272145962844003886059737965854042074083374478426875684184904488545593139633653407062308621502392373426120986761417580127895634822264744063122368296502161439648408926687989964483291459079738447940651025900007635890755686910","sex":"29253365609829921413347591854991689007250272038394995372767401325848195298844802462252851926995846503104090589196060683329875231216529049681648909174047403783834364995363938741001507091534282239210301727771803410513303526378812888571225762557471133950393342500638551458868147905023198508660460641434022020257614450354085808398293279060446966692082427506909617283562394303716193372887306176319841941848888379308208426966697446699225783646634631703732019477632822374479322570142967559738439193417309205283438893083349863592921249218168590490390313109776446516881569691499831380592661740653935515397472059631417493981532","name":"25134437486609445980011967476486104706321061312022352268621323694861467756181853100693555519614894168921947814126694858839278103549577703105305116890325322098078409416441750313062396467567140699008203113519528887729951138845002409659317083029073793314514377377412805387401717457417895322600145580639449003584446356048213839274172751441145076183734269045919984853749007476629365146654240675320041155618450449041510280560040162429566008590065069477149918088087715269037925211599101597422023202484497946662159070023999719865939258557778022770035320019440597702090334486792710436579355608406897769514395306079855023848170","height":"59326960517737425423547279838932030505937927873589489863081026714907925093402287263487670945897247474465655528290016645774365383046524346223348261262488616342337864633104758662753452450299389775751012589698563659277683974188553993694220606310980581680471280640591973543996299789038056921309016983827578247477799948667666717056420270448516049047961099547588510086600581628091290215485826514170097211360599793229701811672966818089371089216189744274422526431130783428589346341196561742409198605034972210917502326180305735092988639850309253190875578501020679137562856724998821945605494355779034135306337094344532980411836"},"rctxt":"9641986614889199796257508700106896585587271615330980339636468819377346498767697681332046156705231986464570206666984343024200482683981302064613556104594051003956610353281701880542337665385482309134369756144345334575765116656633321636736946947493150642615481313285221467998414924865943067790561494301461899025374692884841352282256044388512875752628313052128404892424405230961678931620525106856624692942373538946467902799339061714326383378018581568876147181355325663707572429090278505823900491548970098691127791086305310899642155499128171811034581730190877600697624903963241473287185133286356124371104261592694271730029","z":"77594127026421654059198621152153180600664927707984020918609426112642522289621323453889995053400171879296098965678384769043918218957929606187082395048777546641833348694470081024386996548890150355901703252426977094536933434556202865213941384425538749866521536494046548509344678288447175898173634381514948562261015286492185924659638474376885655055568341574638453213864956407243206035973349529545863886325462867413885904072942842465859476940638839087894582648849969332663627779378998245133055807038199937421971988505911494931665143822588532097754480882750243126847177560978100527491344463525107644125030963904001009159559"},"revocation":null}}"#; let schemas_json = format!(r#"{{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{}}}"#, AnoncredsUtils::get_gvt_schema_json(1)); let claim_defs_json = format!(r#"{{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{}}}"#, claim_def); @@ -729,7 +729,7 @@ mod high_cases { "requested_predicates":{{"predicate1_uuid":{{"attr_name":"age","p_type":"GE","value":18}}}} }}"#); - let claim_def = r#"{"ref":1,"signature_type":"CL", "data":{"primary":{"n":"94759924268422840873493186881483285628376767714620627055233230078254863658476446487556117977593248501523199451418346650764648601684276437772084327637083000213497377603495837360299641742248892290843802071224822481683143989223918276185323177379400413928352871249494885563503003839960930062341074783742062464846448855510814252519824733234277681749977392772900212293652238651538092092030867161752390937372967233462027620699196724949212432236376627703446877808405786247217818975482797381180714523093913559060716447170497587855871901716892114835713057965087473682457896508094049813280368069805661739141591558517233009123957","s":"3589207374161609293256840431433442367968556468254553005135697551692970564853243905310862234226531556373974144223993822323573625466428920716249949819187529684239371465431718456502388533731367046146704547241076626874082510133130124364613881638153345624380195335138152993132904167470515345775215584510356780117368593105284564368954871044494967246738070895990267205643985529060025311535539534155086912661927003271053443110788963970349858709526217650537936123121324492871282397691771309596632805099306241616501610166028401599243350835158479028294769235556557248339060399322556412171888114265194198405765574333538019124846","rms":"57150374376895616256492932008792437185713712934712117819417607831438470701645904776986426606717466732609284990796923331049549544903261623636958698296956103821068569714644825742048584174696465882627177060166162341112552851798863535031243458188976013190131935905789786836375734914391914349188643340535242562896244661798678234667651641013894284156416773868299435641426810968290584996112925365638881750944407842890875840705650290814965768221299488400872767679122749231050406680432079499973527780212310700022178178822528199576164498116369689770884051691678056831493476045361227274839673581033532995523269047577973637307053","r":{"age":"94304485801056920773231824603827244147437820123357994068540328541540143488826838939836897544389872126768239056314698953816072289663428273075648246498659039419931054256171488371404693243192741923382499918184822032756852725234903892700640856294525441486319095181804549558538523888770076173572615957495813339649470619615099181648313548341951673407624414494737018574238782648822189142664108450534642272145962844003886059737965854042074083374478426875684184904488545593139633653407062308621502392373426120986761417580127895634822264744063122368296502161439648408926687989964483291459079738447940651025900007635890755686910","sex":"29253365609829921413347591854991689007250272038394995372767401325848195298844802462252851926995846503104090589196060683329875231216529049681648909174047403783834364995363938741001507091534282239210301727771803410513303526378812888571225762557471133950393342500638551458868147905023198508660460641434022020257614450354085808398293279060446966692082427506909617283562394303716193372887306176319841941848888379308208426966697446699225783646634631703732019477632822374479322570142967559738439193417309205283438893083349863592921249218168590490390313109776446516881569691499831380592661740653935515397472059631417493981532","name":"25134437486609445980011967476486104706321061312022352268621323694861467756181853100693555519614894168921947814126694858839278103549577703105305116890325322098078409416441750313062396467567140699008203113519528887729951138845002409659317083029073793314514377377412805387401717457417895322600145580639449003584446356048213839274172751441145076183734269045919984853749007476629365146654240675320041155618450449041510280560040162429566008590065069477149918088087715269037925211599101597422023202484497946662159070023999719865939258557778022770035320019440597702090334486792710436579355608406897769514395306079855023848170","height":"59326960517737425423547279838932030505937927873589489863081026714907925093402287263487670945897247474465655528290016645774365383046524346223348261262488616342337864633104758662753452450299389775751012589698563659277683974188553993694220606310980581680471280640591973543996299789038056921309016983827578247477799948667666717056420270448516049047961099547588510086600581628091290215485826514170097211360599793229701811672966818089371089216189744274422526431130783428589346341196561742409198605034972210917502326180305735092988639850309253190875578501020679137562856724998821945605494355779034135306337094344532980411836"},"rctxt":"9641986614889199796257508700106896585587271615330980339636468819377346498767697681332046156705231986464570206666984343024200482683981302064613556104594051003956610353281701880542337665385482309134369756144345334575765116656633321636736946947493150642615481313285221467998414924865943067790561494301461899025374692884841352282256044388512875752628313052128404892424405230961678931620525106856624692942373538946467902799339061714326383378018581568876147181355325663707572429090278505823900491548970098691127791086305310899642155499128171811034581730190877600697624903963241473287185133286356124371104261592694271730029","z":"77594127026421654059198621152153180600664927707984020918609426112642522289621323453889995053400171879296098965678384769043918218957929606187082395048777546641833348694470081024386996548890150355901703252426977094536933434556202865213941384425538749866521536494046548509344678288447175898173634381514948562261015286492185924659638474376885655055568341574638453213864956407243206035973349529545863886325462867413885904072942842465859476940638839087894582648849969332663627779378998245133055807038199937421971988505911494931665143822588532097754480882750243126847177560978100527491344463525107644125030963904001009159559"},"revocation":null}}"#; + let claim_def = r#"{"ref":1,"signature_type":"CL","origin":"NcYxiDXkpYi6ov5FcYDi1e", "data":{"primary":{"n":"94759924268422840873493186881483285628376767714620627055233230078254863658476446487556117977593248501523199451418346650764648601684276437772084327637083000213497377603495837360299641742248892290843802071224822481683143989223918276185323177379400413928352871249494885563503003839960930062341074783742062464846448855510814252519824733234277681749977392772900212293652238651538092092030867161752390937372967233462027620699196724949212432236376627703446877808405786247217818975482797381180714523093913559060716447170497587855871901716892114835713057965087473682457896508094049813280368069805661739141591558517233009123957","s":"3589207374161609293256840431433442367968556468254553005135697551692970564853243905310862234226531556373974144223993822323573625466428920716249949819187529684239371465431718456502388533731367046146704547241076626874082510133130124364613881638153345624380195335138152993132904167470515345775215584510356780117368593105284564368954871044494967246738070895990267205643985529060025311535539534155086912661927003271053443110788963970349858709526217650537936123121324492871282397691771309596632805099306241616501610166028401599243350835158479028294769235556557248339060399322556412171888114265194198405765574333538019124846","rms":"57150374376895616256492932008792437185713712934712117819417607831438470701645904776986426606717466732609284990796923331049549544903261623636958698296956103821068569714644825742048584174696465882627177060166162341112552851798863535031243458188976013190131935905789786836375734914391914349188643340535242562896244661798678234667651641013894284156416773868299435641426810968290584996112925365638881750944407842890875840705650290814965768221299488400872767679122749231050406680432079499973527780212310700022178178822528199576164498116369689770884051691678056831493476045361227274839673581033532995523269047577973637307053","r":{"age":"94304485801056920773231824603827244147437820123357994068540328541540143488826838939836897544389872126768239056314698953816072289663428273075648246498659039419931054256171488371404693243192741923382499918184822032756852725234903892700640856294525441486319095181804549558538523888770076173572615957495813339649470619615099181648313548341951673407624414494737018574238782648822189142664108450534642272145962844003886059737965854042074083374478426875684184904488545593139633653407062308621502392373426120986761417580127895634822264744063122368296502161439648408926687989964483291459079738447940651025900007635890755686910","sex":"29253365609829921413347591854991689007250272038394995372767401325848195298844802462252851926995846503104090589196060683329875231216529049681648909174047403783834364995363938741001507091534282239210301727771803410513303526378812888571225762557471133950393342500638551458868147905023198508660460641434022020257614450354085808398293279060446966692082427506909617283562394303716193372887306176319841941848888379308208426966697446699225783646634631703732019477632822374479322570142967559738439193417309205283438893083349863592921249218168590490390313109776446516881569691499831380592661740653935515397472059631417493981532","name":"25134437486609445980011967476486104706321061312022352268621323694861467756181853100693555519614894168921947814126694858839278103549577703105305116890325322098078409416441750313062396467567140699008203113519528887729951138845002409659317083029073793314514377377412805387401717457417895322600145580639449003584446356048213839274172751441145076183734269045919984853749007476629365146654240675320041155618450449041510280560040162429566008590065069477149918088087715269037925211599101597422023202484497946662159070023999719865939258557778022770035320019440597702090334486792710436579355608406897769514395306079855023848170","height":"59326960517737425423547279838932030505937927873589489863081026714907925093402287263487670945897247474465655528290016645774365383046524346223348261262488616342337864633104758662753452450299389775751012589698563659277683974188553993694220606310980581680471280640591973543996299789038056921309016983827578247477799948667666717056420270448516049047961099547588510086600581628091290215485826514170097211360599793229701811672966818089371089216189744274422526431130783428589346341196561742409198605034972210917502326180305735092988639850309253190875578501020679137562856724998821945605494355779034135306337094344532980411836"},"rctxt":"9641986614889199796257508700106896585587271615330980339636468819377346498767697681332046156705231986464570206666984343024200482683981302064613556104594051003956610353281701880542337665385482309134369756144345334575765116656633321636736946947493150642615481313285221467998414924865943067790561494301461899025374692884841352282256044388512875752628313052128404892424405230961678931620525106856624692942373538946467902799339061714326383378018581568876147181355325663707572429090278505823900491548970098691127791086305310899642155499128171811034581730190877600697624903963241473287185133286356124371104261592694271730029","z":"77594127026421654059198621152153180600664927707984020918609426112642522289621323453889995053400171879296098965678384769043918218957929606187082395048777546641833348694470081024386996548890150355901703252426977094536933434556202865213941384425538749866521536494046548509344678288447175898173634381514948562261015286492185924659638474376885655055568341574638453213864956407243206035973349529545863886325462867413885904072942842465859476940638839087894582648849969332663627779378998245133055807038199937421971988505911494931665143822588532097754480882750243126847177560978100527491344463525107644125030963904001009159559"},"revocation":null}}"#; let schemas_json = format!(r#"{{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{}}}"#, AnoncredsUtils::get_gvt_schema_json(1)); let claim_defs_json = format!(r#"{{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{}}}"#, claim_def); From ec2c4378cdce0cd8a6a3703050515a9aaee2a088 Mon Sep 17 00:00:00 2001 From: Evgeniy Razinkov Date: Thu, 6 Jul 2017 11:07:19 +0300 Subject: [PATCH 15/23] changes for wallet_set_seq_no_for_value --- tests/utils/wallet.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/utils/wallet.rs b/tests/utils/wallet.rs index 0036d15777..b788aeb9ed 100644 --- a/tests/utils/wallet.rs +++ b/tests/utils/wallet.rs @@ -143,7 +143,7 @@ impl WalletUtils { Ok(wallet_handle) } - pub fn wallet_set_seq_no_for_value(wallet_handle: i32, claim_def_uuid: &str, claim_def_seq_no: i32) -> Result<(), ErrorCode> { + pub fn wallet_set_seq_no_for_value(wallet_handle: i32, value: &str, seq_no: i32) -> Result<(), ErrorCode> { let (sender, receiver) = channel(); @@ -153,13 +153,13 @@ impl WalletUtils { let (command_handle, cb) = CallbackUtils::closure_to_wallet_set_seq_no_for_value_cb(cb); - let claim_def_uuid = CString::new(claim_def_uuid).unwrap(); + let value = CString::new(value).unwrap(); let err = sovrin_wallet_set_seq_no_for_value(command_handle, wallet_handle, - claim_def_uuid.as_ptr(), - claim_def_seq_no, + value.as_ptr(), + seq_no, cb); if err != ErrorCode::Success { From a34cb187f57965662f16a36f163e0dc89539dc93 Mon Sep 17 00:00:00 2001 From: Evgeniy Razinkov Date: Thu, 6 Jul 2017 15:47:48 +0300 Subject: [PATCH 16/23] added get_claim_def_id function --- src/commands/anoncreds/issuer.rs | 18 +++++++----------- src/commands/anoncreds/prover.rs | 17 +++++++---------- src/services/anoncreds/helpers.rs | 4 ++++ tests/anoncreds.rs | 11 ++++------- tests/utils/anoncreds.rs | 4 ++++ 5 files changed, 26 insertions(+), 28 deletions(-) diff --git a/src/commands/anoncreds/issuer.rs b/src/commands/anoncreds/issuer.rs index 18a2cf528f..f91ebb04a1 100644 --- a/src/commands/anoncreds/issuer.rs +++ b/src/commands/anoncreds/issuer.rs @@ -19,6 +19,7 @@ use services::anoncreds::types::{ RevocationRegistryPrivate, Schema }; +use services::anoncreds::helpers::get_claim_def_id; use std::rc::Rc; use std::collections::HashMap; use utils::json::{JsonDecodable, JsonEncodable}; @@ -115,10 +116,8 @@ impl IssuerCommandExecutor { .map_err(map_err_trace!()) .map_err(|err| CommonError::InvalidStructure(format!("Invalid schema json: {}", err.to_string())))?; - let claim_def_id = issuer_did.to_string() + ":" + &schema.seq_no.to_string(); - let (claim_definition, claim_definition_private) = - self.anoncreds_service.issuer.generate_claim_definition(issuer_did, schema, signature_type, create_non_revoc)?; + self.anoncreds_service.issuer.generate_claim_definition(issuer_did, schema.clone(), signature_type, create_non_revoc)?; let claim_definition_json = ClaimDefinition::to_json(&claim_definition) .map_err(map_err_trace!()) @@ -128,8 +127,8 @@ impl IssuerCommandExecutor { .map_err(map_err_trace!()) .map_err(|err| CommonError::InvalidState(format!("Invalid claim definition private json: {}", err.to_string())))?; - self.wallet_service.set(wallet_handle, &format!("claim_definition::{}", &claim_def_id), &claim_definition_json)?; - self.wallet_service.set(wallet_handle, &format!("claim_definition_private::{}", &claim_def_id), &claim_definition_private_json)?; + self.wallet_service.set(wallet_handle, &format!("claim_definition::{}", &get_claim_def_id(issuer_did, schema.seq_no)), &claim_definition_json)?; + self.wallet_service.set(wallet_handle, &format!("claim_definition_private::{}", &get_claim_def_id(issuer_did, schema.seq_no)), &claim_definition_private_json)?; Ok(claim_definition_json) } @@ -150,8 +149,7 @@ impl IssuerCommandExecutor { schema_seq_no: i32, max_claim_num: i32) -> Result<(String, String), SovrinError> { - let claim_def_id = issuer_did.to_string() + ":" + &schema_seq_no.to_string(); - let claim_def_json = self.wallet_service.get(wallet_handle, &format!("claim_definition::{}", &claim_def_id))?; + let claim_def_json = self.wallet_service.get(wallet_handle, &format!("claim_definition::{}", &get_claim_def_id(issuer_did, schema_seq_no)))?; let claim_def = ClaimDefinition::from_json(&claim_def_json) .map_err(map_err_trace!()) .map_err(|err| CommonError::InvalidState(format!("Invalid claim definition json: {}", err.to_string())))?; @@ -205,10 +203,8 @@ impl IssuerCommandExecutor { .map_err(map_err_trace!()) .map_err(|err| CommonError::InvalidStructure(format!("Invalid claim_req_json: {}", err.to_string())))?; - let claim_def_id = claim_req_json.issuer_did.clone() + ":" + &claim_req_json.schema_seq_no.to_string(); - - let claim_def_json = self.wallet_service.get(wallet_handle, &format!("claim_definition::{}", &claim_def_id))?; - let claim_def_private_json = self.wallet_service.get(wallet_handle, &format!("claim_definition_private::{}", &claim_def_id))?; + let claim_def_json = self.wallet_service.get(wallet_handle, &format!("claim_definition::{}", &get_claim_def_id(&claim_req_json.issuer_did.clone(), claim_req_json.schema_seq_no)))?; + let claim_def_private_json = self.wallet_service.get(wallet_handle, &format!("claim_definition_private::{}", &get_claim_def_id(&claim_req_json.issuer_did.clone(), claim_req_json.schema_seq_no)))?; let claim_def = ClaimDefinition::from_json(&claim_def_json) .map_err(map_err_trace!()) diff --git a/src/commands/anoncreds/prover.rs b/src/commands/anoncreds/prover.rs index 64740390d8..b7569bc132 100644 --- a/src/commands/anoncreds/prover.rs +++ b/src/commands/anoncreds/prover.rs @@ -11,6 +11,7 @@ use services::pool::PoolService; use utils::json::{JsonDecodable, JsonEncodable}; use services::wallet::WalletService; use std::rc::Rc; +use services::anoncreds::helpers::get_claim_def_id; use services::anoncreds::types::{ ClaimDefinition, Schema, @@ -270,10 +271,8 @@ impl ProverCommandExecutor { claim_def.data.public_key_revocation, master_secret, prover_did)?; - let claim_def_id = claim_offer.issuer_did.clone() + ":" + &claim_offer.schema_seq_no.to_string(); - self.wallet_service.set(wallet_handle, - &format!("claim_definition::{}", &claim_def_id), + &format!("claim_definition::{}", &get_claim_def_id(&claim_offer.issuer_did.clone(), claim_offer.schema_seq_no)), &claim_def_json)?; let primary_claim_init_data_json = ClaimInitData::to_json(&primary_claim_init_data) @@ -281,7 +280,7 @@ impl ProverCommandExecutor { .map_err(|err| CommonError::InvalidState(format!("Invalid primary_claim_init_data: {}", err.to_string())))?; self.wallet_service.set(wallet_handle, - &format!("primary_claim_init_data::{}", &claim_def_id), + &format!("primary_claim_init_data::{}", &get_claim_def_id(&claim_offer.issuer_did.clone(), claim_offer.schema_seq_no)), &primary_claim_init_data_json)?; if let Some(data) = revocation_claim_init_data { @@ -290,7 +289,7 @@ impl ProverCommandExecutor { .map_err(|err| CommonError::InvalidState(format!("Invalid data: {}", err.to_string())))?; self.wallet_service.set(wallet_handle, - &format!("revocation_claim_init_data::{}", &claim_def_id), + &format!("revocation_claim_init_data::{}", &get_claim_def_id(&claim_offer.issuer_did.clone(), claim_offer.schema_seq_no)), &revocation_claim_init_data_json)?; } @@ -314,8 +313,6 @@ impl ProverCommandExecutor { .map_err(map_err_trace!()) .map_err(|err| CommonError::InvalidStructure(format!("Invalid claim_json: {}", err.to_string())))?; - let claim_def_id = claim_json.issuer_did.clone() + ":" + &claim_json.schema_seq_no.to_string(); - let (revocation_registry, revocation_claim_init_data) = match claim_json.revoc_reg_seq_no { Some(seq_no) => { let revocation_registry_uuid = self.wallet_service.get(wallet_handle, &format!("seq_no::{}", &seq_no))?; @@ -327,7 +324,7 @@ impl ProverCommandExecutor { .map_err(|err| CommonError::InvalidState(format!("Invalid revocation_registry_json: {}", err.to_string())))?; let revocation_claim_init_data_json = self.wallet_service.get(wallet_handle, - &format!("revocation_claim_init_data::{}", &claim_def_id))?; + &format!("revocation_claim_init_data::{}", &get_claim_def_id(&claim_json.issuer_did.clone(), claim_json.schema_seq_no)))?; let revocation_claim_init_data = RevocationClaimInitData::from_json(&revocation_claim_init_data_json) .map_err(map_err_trace!()) .map_err(|err| CommonError::InvalidState(format!("Invalid revocation_claim_init_data_json: {}", err.to_string())))?; @@ -338,13 +335,13 @@ impl ProverCommandExecutor { }; let primary_claim_init_data_json = self.wallet_service.get(wallet_handle, - &format!("primary_claim_init_data::{}", &claim_def_id))?; + &format!("primary_claim_init_data::{}", &get_claim_def_id(&claim_json.issuer_did.clone(), claim_json.schema_seq_no)))?; let primary_claim_init_data = ClaimInitData::from_json(&primary_claim_init_data_json) .map_err(map_err_trace!()) .map_err(|err| CommonError::InvalidState(format!("Invalid primary_claim_init_data_json: {}", err.to_string())))?; let claim_def_json = self.wallet_service.get(wallet_handle, - &format!("claim_definition::{}", &claim_def_id))?; + &format!("claim_definition::{}", &get_claim_def_id(&claim_json.issuer_did.clone(), claim_json.schema_seq_no)))?; let claim_def = ClaimDefinition::from_json(&claim_def_json) .map_err(map_err_trace!()) .map_err(|err| CommonError::InvalidState(format!("Invalid claim_def_json: {}", err.to_string())))?; diff --git a/src/services/anoncreds/helpers.rs b/src/services/anoncreds/helpers.rs index 39ae940b0c..cf3393a502 100644 --- a/src/services/anoncreds/helpers.rs +++ b/src/services/anoncreds/helpers.rs @@ -121,6 +121,10 @@ pub fn bignum_to_group_element(num: &BigNumber) -> Result String { + issuer_did.to_string() + ":" + &schema_seq_no.to_string() +} + #[cfg(test)] mod tests { use super::*; diff --git a/tests/anoncreds.rs b/tests/anoncreds.rs index 21c9b6a709..be0d007fa3 100644 --- a/tests/anoncreds.rs +++ b/tests/anoncreds.rs @@ -28,7 +28,6 @@ use utils::types::{ use sovrin::api::ErrorCode; - mod high_cases { use super::*; @@ -1742,23 +1741,21 @@ mod demos { //3. Issuer create claim definition by gvt schema let gvt_schema_seq_no = 1; - let claim_def_id = issuer_did.to_string() + ":" + &gvt_schema_seq_no.to_string(); let gvt_schema = AnoncredsUtils::get_gvt_schema_json(gvt_schema_seq_no); let gvt_claim_def_json = AnoncredsUtils::issuer_create_claim_definition(issuer_wallet_handle, &issuer_did, &gvt_schema, None, false).unwrap(); schemas.insert(gvt_schema_seq_no, gvt_schema.clone()); - claim_defs.insert(claim_def_id, gvt_claim_def_json.clone()); + claim_defs.insert(AnoncredsUtils::get_claim_def_id(issuer_did, gvt_schema_seq_no), gvt_claim_def_json.clone()); //4. Issuer create claim definition by xyz schema let xyz_schema_seq_no = 2; - let claim_def_id = issuer_did.to_string() + ":" + &xyz_schema_seq_no.to_string(); let xyz_schema = AnoncredsUtils::get_xyz_schema_json(xyz_schema_seq_no); let xyz_claim_def_json = AnoncredsUtils::issuer_create_claim_definition(issuer_wallet_handle, &issuer_did, &xyz_schema, None, false).unwrap(); schemas.insert(xyz_schema_seq_no, xyz_schema.clone()); - claim_defs.insert(claim_def_id, xyz_claim_def_json.clone()); + claim_defs.insert(AnoncredsUtils::get_claim_def_id(issuer_did, xyz_schema_seq_no), xyz_claim_def_json.clone()); //5. Prover create Master Secret for Issuer1 let master_secret_name = "prover_master_secret_issuer"; @@ -1874,8 +1871,8 @@ mod demos { unique_claims[1].claim_uuid, schemas.get(&unique_claims[1].schema_seq_no).unwrap()); - let claim_def_id1 = unique_claims[0].issuer_did.to_string() + ":" + &unique_claims[0].schema_seq_no.to_string(); - let claim_def_id2 = unique_claims[1].issuer_did.to_string() + ":" + &unique_claims[1].schema_seq_no.to_string(); + let claim_def_id1 = AnoncredsUtils::get_claim_def_id(&unique_claims[0].issuer_did, unique_claims[0].schema_seq_no); + let claim_def_id2 = AnoncredsUtils::get_claim_def_id(&unique_claims[1].issuer_did, unique_claims[1].schema_seq_no); let claim_defs_json = format!(r#"{{"{}":{},"{}":{}}}"#, unique_claims[0].claim_uuid, diff --git a/tests/utils/anoncreds.rs b/tests/utils/anoncreds.rs index 907d98929b..e431095f49 100644 --- a/tests/utils/anoncreds.rs +++ b/tests/utils/anoncreds.rs @@ -392,6 +392,10 @@ impl AnoncredsUtils { Ok(valid) } + pub fn get_claim_def_id(issuer_did: &str, schema_seq_no: i32) -> String { + issuer_did.to_string() + ":" + &schema_seq_no.to_string() + } + pub fn get_gvt_schema_json(schema_seq_no: i32) -> String { format!(r#"{{ "seqNo":{}, From 98734bf8ea022f14941e05b52a8776114470ce6c Mon Sep 17 00:00:00 2001 From: Evgeniy Razinkov Date: Thu, 6 Jul 2017 18:00:11 +0300 Subject: [PATCH 17/23] added ISSUER_DID const --- src/services/anoncreds/issuer.rs | 12 ++-- src/services/anoncreds/prover.rs | 12 ++-- tests/anoncreds.rs | 104 +++++++++++++++---------------- tests/utils/anoncreds.rs | 17 ++--- 4 files changed, 71 insertions(+), 74 deletions(-) diff --git a/src/services/anoncreds/issuer.rs b/src/services/anoncreds/issuer.rs index 3487a4169c..19e840156f 100644 --- a/src/services/anoncreds/issuer.rs +++ b/src/services/anoncreds/issuer.rs @@ -480,7 +480,7 @@ mod tests { #[test] fn generate_keys_works() { let issuer = Issuer::new(); - let (claim_definition, claim_definition_private) = issuer.generate_claim_definition("NcYxiDXkpYi6ov5FcYDi1e", mocks::get_gvt_schema(), None, false).unwrap(); + let (claim_definition, claim_definition_private) = issuer.generate_claim_definition(mocks::ISSUER_DID, mocks::get_gvt_schema(), None, false).unwrap(); assert_eq!(claim_definition, mocks::get_claim_definition()); assert_eq!(claim_definition_private, mocks::get_claim_definition_private()); } @@ -498,7 +498,7 @@ mod tests { let signature_type = None; let create_non_revoc = false; - let result = issuer.generate_claim_definition("NcYxiDXkpYi6ov5FcYDi1e", schema, signature_type, create_non_revoc); + let result = issuer.generate_claim_definition(mocks::ISSUER_DID, schema, signature_type, create_non_revoc); assert!(result.is_ok()); let (claim_definition, claim_definition_private) = result.unwrap(); @@ -515,7 +515,7 @@ mod tests { let signature_type = None; let create_non_revoc = true; - let result = issuer.generate_claim_definition("NcYxiDXkpYi6ov5FcYDi1e", schema, signature_type, create_non_revoc); + let result = issuer.generate_claim_definition(mocks::ISSUER_DID, schema, signature_type, create_non_revoc); assert!(result.is_ok()); let (claim_definition, claim_definition_private) = result.unwrap(); @@ -533,7 +533,7 @@ mod tests { let signature_type = None; let create_non_revoc = false; - let result = issuer.generate_claim_definition("NcYxiDXkpYi6ov5FcYDi1e", schema, signature_type, create_non_revoc); + let result = issuer.generate_claim_definition(mocks::ISSUER_DID, schema, signature_type, create_non_revoc); assert!(result.is_err()); } @@ -571,6 +571,8 @@ pub mod mocks { use super::*; use services::anoncreds::types::SchemaData; + pub const ISSUER_DID: &'static str = "NcYxiDXkpYi6ov5FcYDi1e"; + pub fn get_claim_definition() -> ClaimDefinition { let mut r: HashMap = HashMap::new(); r.insert("sex".to_string(), BigNumber::from_dec("58606710922154038918005745652863947546479611221487923871520854046018234465128105585608812090213473225037875788462225679336791123783441657062831589984290779844020407065450830035885267846722229953206567087435754612694085258455822926492275621650532276267042885213400704012011608869094703483233081911010530256094461587809601298503874283124334225428746479707531278882536314925285434699376158578239556590141035593717362562548075653598376080466948478266094753818404986494459240364648986755479857098110402626477624280802323635285059064580583239726433768663879431610261724430965980430886959304486699145098822052003020688956471").unwrap()); @@ -586,7 +588,7 @@ pub mod mocks { BigNumber::from_dec("58606710922154038918005745652863947546479611221487923871520854046018234465128105585608812090213473225037875788462225679336791123783441657062831589984290779844020407065450830035885267846722229953206567087435754612694085258455822926492275621650532276267042885213400704012011608869094703483233081911010530256094461587809601298503874283124334225428746479707531278882536314925285434699376158578239556590141035593717362562548075653598376080466948478266094753818404986494459240364648986755479857098110402626477624280802323635285059064580583239726433768663879431610261724430965980430886959304486699145098822052003020688956471").unwrap() ); let claim_def_data = ClaimDefinitionData::new(public_key, None); - ClaimDefinition::new(1, "NcYxiDXkpYi6ov5FcYDi1e".to_string(), SignatureTypes::CL, claim_def_data) + ClaimDefinition::new(1, ISSUER_DID.to_string(), SignatureTypes::CL, claim_def_data) } pub fn get_claim_definition_private() -> ClaimDefinitionPrivate { diff --git a/src/services/anoncreds/prover.rs b/src/services/anoncreds/prover.rs index 7cb6606b27..597d960d91 100644 --- a/src/services/anoncreds/prover.rs +++ b/src/services/anoncreds/prover.rs @@ -1549,17 +1549,17 @@ pub mod mocks { pub fn get_gvt_claim_info() -> ClaimInfo { let attrs = issuer::mocks::get_gvt_row_attributes(); - ClaimInfo::new("1".to_string(), attrs, None, 1, "NcYxiDXkpYi6ov5FcYDi1e".to_string()) + ClaimInfo::new("1".to_string(), attrs, None, 1, issuer::mocks::ISSUER_DID.to_string()) } pub fn get_xyz_claim_info() -> ClaimInfo { let attrs = issuer::mocks::get_xyz_row_attributes(); - ClaimInfo::new("2".to_string(), attrs, None, 2, "NcYxiDXkpYi6ov5FcYDi1e".to_string()) + ClaimInfo::new("2".to_string(), attrs, None, 2, issuer::mocks::ISSUER_DID.to_string()) } pub fn get_abc_claim_info() -> ClaimInfo { let attrs = issuer::mocks::get_gvt_row_attributes(); - ClaimInfo::new("3".to_string(), attrs, None, 1, "NcYxiDXkpYi6ov5FcYDi1e".to_string()) + ClaimInfo::new("3".to_string(), attrs, None, 1, issuer::mocks::ISSUER_DID.to_string()) } pub fn get_proof_req_json() -> ProofRequestJson { @@ -1587,7 +1587,7 @@ pub mod mocks { let claim_def_data = ClaimDefinitionData::new(issuer::mocks::get_pk(), None); ClaimDefinition { schema_seq_no: 1, - issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), + issuer_did: issuer::mocks::ISSUER_DID.to_string(), signature_type: SignatureTypes::CL, data: claim_def_data } @@ -1597,7 +1597,7 @@ pub mod mocks { let claim_def_data = ClaimDefinitionData::new(issuer::mocks::get_pk(), None); ClaimDefinition { schema_seq_no: 2, - issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), + issuer_did: issuer::mocks::ISSUER_DID.to_string(), signature_type: SignatureTypes::CL, data: claim_def_data } @@ -1605,7 +1605,7 @@ pub mod mocks { pub fn get_revocation_registry() -> RevocationRegistry { RevocationRegistry { - issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), + issuer_did: issuer::mocks::ISSUER_DID.to_string(), schema_seq_no: 1, accumulator: mocks::get_accumulator(), acc_pk: verifier::mocks::get_accum_publick_key() diff --git a/tests/anoncreds.rs b/tests/anoncreds.rs index be0d007fa3..8c351ecee1 100644 --- a/tests/anoncreds.rs +++ b/tests/anoncreds.rs @@ -12,6 +12,7 @@ extern crate log; mod utils; use utils::wallet::WalletUtils; +use utils::anoncreds::ISSUER_DID; use utils::anoncreds::AnoncredsUtils; use utils::anoncreds::COMMON_MASTER_SECRET; use utils::test::TestUtils; @@ -38,10 +39,9 @@ mod high_cases { fn issuer_create_and_store_claim_def_works() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let issuer_did = "NcYxiDXkpYi6ov5FcYDi1e"; let schema = AnoncredsUtils::get_gvt_schema_json(1); - let claim_def_json = AnoncredsUtils::issuer_create_claim_definition(wallet_handle, issuer_did, &schema, None, false).unwrap(); + let claim_def_json = AnoncredsUtils::issuer_create_claim_definition(wallet_handle, &ISSUER_DID, &schema, None, false).unwrap(); let claim_def: ClaimDefinition = serde_json::from_str(&claim_def_json).unwrap(); @@ -57,11 +57,10 @@ mod high_cases { fn issuer_create_and_store_claim_def_works_for_invalid_wallet() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let issuer_did = "NcYxiDXkpYi6ov5FcYDi1e"; let schema = AnoncredsUtils::get_gvt_schema_json(1); let invalid_wallet_handle = wallet_handle + 1; - let res = AnoncredsUtils::issuer_create_claim_definition(invalid_wallet_handle, &issuer_did, &schema, None, false); + let res = AnoncredsUtils::issuer_create_claim_definition(invalid_wallet_handle, &ISSUER_DID, &schema, None, false); assert_eq!(res.unwrap_err(), ErrorCode::WalletInvalidHandle); } } @@ -73,7 +72,7 @@ mod high_cases { fn prover_store_claim_offer_works() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1); + let claim_offer_json = AnoncredsUtils::get_claim_offer(&ISSUER_DID, 1); AnoncredsUtils::prover_store_claim_offer(wallet_handle, &claim_offer_json).unwrap(); } @@ -82,7 +81,7 @@ mod high_cases { fn prover_store_claim_offer_works_for_invalid_json() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_offer_json = r#"{"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e"}"#; + let claim_offer_json = format!(r#"{{"issuer_did":"{}"}}"#, ISSUER_DID); let res = AnoncredsUtils::prover_store_claim_offer(wallet_handle, &claim_offer_json); assert_eq!(res.unwrap_err(), ErrorCode::CommonInvalidStructure); @@ -92,7 +91,7 @@ mod high_cases { fn prover_store_claim_offer_works_for_invalid_wallet() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1); + let claim_offer_json = AnoncredsUtils::get_claim_offer(&ISSUER_DID, 1); let invalid_wallet_handle = wallet_handle + 1; let res = AnoncredsUtils::prover_store_claim_offer(invalid_wallet_handle, &claim_offer_json); @@ -117,12 +116,12 @@ mod high_cases { fn prover_get_claim_offers_works_for_filter_by_issuer() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_offers = AnoncredsUtils::prover_get_claim_offers(wallet_handle, r#"{"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e"}"#).unwrap(); + let claim_offers = AnoncredsUtils::prover_get_claim_offers(wallet_handle, &format!(r#"{{"issuer_did":"{}"}}"#, ISSUER_DID)).unwrap(); let claim_offers: Vec = serde_json::from_str(&claim_offers).unwrap(); assert_eq!(claim_offers.len(), 2); - assert!(claim_offers.contains(&ClaimOffer { issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), schema_seq_no: 1 })); - assert!(claim_offers.contains(&ClaimOffer { issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), schema_seq_no: 2 })); + assert!(claim_offers.contains(&ClaimOffer { issuer_did: ISSUER_DID.to_string(), schema_seq_no: 1 })); + assert!(claim_offers.contains(&ClaimOffer { issuer_did: ISSUER_DID.to_string(), schema_seq_no: 2 })); } #[test] @@ -133,7 +132,7 @@ mod high_cases { let claim_offers: Vec = serde_json::from_str(&claim_offers).unwrap(); assert_eq!(claim_offers.len(), 2); - assert!(claim_offers.contains(&ClaimOffer { issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), schema_seq_no: 2 })); + assert!(claim_offers.contains(&ClaimOffer { issuer_did: ISSUER_DID.to_string(), schema_seq_no: 2 })); assert!(claim_offers.contains(&ClaimOffer { issuer_did: "CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW".to_string(), schema_seq_no: 2 })); } @@ -141,11 +140,11 @@ mod high_cases { fn prover_get_claim_offers_works_for_filter_by_issuer_and_schema() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_offers = AnoncredsUtils::prover_get_claim_offers(wallet_handle, r#"{"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","schema_seq_no":1}"#).unwrap(); + let claim_offers = AnoncredsUtils::prover_get_claim_offers(wallet_handle, &format!(r#"{{"issuer_did":"{}","schema_seq_no":1}}"#, ISSUER_DID)).unwrap(); let claim_offers: Vec = serde_json::from_str(&claim_offers).unwrap(); assert_eq!(claim_offers.len(), 1); - assert!(claim_offers.contains(&ClaimOffer { issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), schema_seq_no: 1 })); + assert!(claim_offers.contains(&ClaimOffer { issuer_did: ISSUER_DID.to_string(), schema_seq_no: 1 })); } #[test] @@ -194,10 +193,8 @@ mod high_cases { #[test] fn prover_create_and_store_claim_req_works() { let (wallet_handle, claim_def) = AnoncredsUtils::init_common_wallet(); - - let issuer_did = "NcYxiDXkpYi6ov5FcYDi1e"; let schema_seq_no = 1; - let claim_offer_json = AnoncredsUtils::get_claim_offer(issuer_did, schema_seq_no); + let claim_offer_json = AnoncredsUtils::get_claim_offer(ISSUER_DID, schema_seq_no); let claim_req_json = AnoncredsUtils::prover_create_and_store_claim_req(wallet_handle, "CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW", @@ -207,7 +204,7 @@ mod high_cases { let claim_req: ClaimRequestJson = serde_json::from_str(&claim_req_json).unwrap(); assert_eq!(claim_req.schema_seq_no, schema_seq_no); - assert_eq!(claim_req.issuer_did, issuer_did); + assert_eq!(claim_req.issuer_did, ISSUER_DID); assert!(claim_req.blinded_ms.u.len() > 0); } @@ -215,7 +212,7 @@ mod high_cases { fn prover_create_and_store_claim_req_works_for_invalid_wallet() { let (wallet_handle, claim_def) = AnoncredsUtils::init_common_wallet(); - let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1); + let claim_offer_json = AnoncredsUtils::get_claim_offer(ISSUER_DID, 1); let invalid_wallet_handle = wallet_handle + 1; let res = AnoncredsUtils::prover_create_and_store_claim_req(invalid_wallet_handle, @@ -244,7 +241,7 @@ mod high_cases { fn prover_create_and_store_claim_req_works_for_claim_def_does_not_correspond_offer_different_schema_seq_no() { let (wallet_handle, claim_def) = AnoncredsUtils::init_common_wallet(); - let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 2); + let claim_offer_json = AnoncredsUtils::get_claim_offer(ISSUER_DID, 2); let res = AnoncredsUtils::prover_create_and_store_claim_req(wallet_handle, "CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW", @@ -262,7 +259,7 @@ mod high_cases { fn issuer_create_claim_works() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_req = r#"{"blinded_ms":{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"54172737564529332710724213139048941083013176891644677117322321823630308734620627329227591845094100636256829761959157314784293939045176621327154990908459072821826818718739696323299787928173535529024556540323709578850706993294234966440826690899266872682790228513973999212370574548239877108511283629423807338632435431097339875665075453785141722989098387895970395982432709011505864533727415552566715069675346220752584449560407261446567731711814188836703337365986725429656195275616846543535707364215498980750860746440672050640048215761507774996460985293327604627646056062013419674090094698841792968543317468164175921100038","ur":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","schema_seq_no":1}"#; + let claim_req = format!(r#"{{"blinded_ms":{{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"54172737564529332710724213139048941083013176891644677117322321823630308734620627329227591845094100636256829761959157314784293939045176621327154990908459072821826818718739696323299787928173535529024556540323709578850706993294234966440826690899266872682790228513973999212370574548239877108511283629423807338632435431097339875665075453785141722989098387895970395982432709011505864533727415552566715069675346220752584449560407261446567731711814188836703337365986725429656195275616846543535707364215498980750860746440672050640048215761507774996460985293327604627646056062013419674090094698841792968543317468164175921100038","ur":null}},"issuer_did":"{}","schema_seq_no":1}}"#, ISSUER_DID); let claim_json = AnoncredsUtils::get_gvt_claim_json(); @@ -278,7 +275,7 @@ mod high_cases { fn issuer_create_claim_works_for_claim_does_not_correspond_to_claim_req() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_req = r#"{"blinded_ms"{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"78642009183061519681642949186511883517561213024253007693605674585288964920641017651779407190325620073544451273313223865970730324882004218654708785143702626337327148875137393101464687794953218753005927492179012286511197396945795208681795313939767499444933139277315113356530041684437761038663276793040349557294620223093906897574215436647703667891052762523022326049857738264833807472302707972331207200720216038057270470116611478516211732505056236404960175670287081433670657644042478872537481050085523491110773623684416797190117083084618649667528194409150615774512701755156055570554349550169869411668543258825800016015079","ur":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","schema_seq_no":1}"#; + let claim_req = format!(r#"{{"blinded_ms"{{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"78642009183061519681642949186511883517561213024253007693605674585288964920641017651779407190325620073544451273313223865970730324882004218654708785143702626337327148875137393101464687794953218753005927492179012286511197396945795208681795313939767499444933139277315113356530041684437761038663276793040349557294620223093906897574215436647703667891052762523022326049857738264833807472302707972331207200720216038057270470116611478516211732505056236404960175670287081433670657644042478872537481050085523491110773623684416797190117083084618649667528194409150615774512701755156055570554349550169869411668543258825800016015079","ur":null}},"issuer_did":"{}","schema_seq_no":1}}"#, ISSUER_DID); let claim_json = AnoncredsUtils::get_xyz_claim_json(); @@ -290,7 +287,7 @@ mod high_cases { fn issuer_create_claim_works_for_for_invalid_wallet_handle() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_req = r#"{"blinded_ms":{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"54172737564529332710724213139048941083013176891644677117322321823630308734620627329227591845094100636256829761959157314784293939045176621327154990908459072821826818718739696323299787928173535529024556540323709578850706993294234966440826690899266872682790228513973999212370574548239877108511283629423807338632435431097339875665075453785141722989098387895970395982432709011505864533727415552566715069675346220752584449560407261446567731711814188836703337365986725429656195275616846543535707364215498980750860746440672050640048215761507774996460985293327604627646056062013419674090094698841792968543317468164175921100038","ur":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","schema_seq_no":1}"#; + let claim_req = format!(r#"{{"blinded_ms":{{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"54172737564529332710724213139048941083013176891644677117322321823630308734620627329227591845094100636256829761959157314784293939045176621327154990908459072821826818718739696323299787928173535529024556540323709578850706993294234966440826690899266872682790228513973999212370574548239877108511283629423807338632435431097339875665075453785141722989098387895970395982432709011505864533727415552566715069675346220752584449560407261446567731711814188836703337365986725429656195275616846543535707364215498980750860746440672050640048215761507774996460985293327604627646056062013419674090094698841792968543317468164175921100038","ur":null}},"issuer_did":"{}","schema_seq_no":1}}"#, ISSUER_DID); let claim_json = AnoncredsUtils::get_gvt_claim_json(); @@ -307,7 +304,7 @@ mod high_cases { fn prover_store_claim_works() { let (wallet_handle, claim_def_json) = AnoncredsUtils::init_common_wallet(); - let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1); + let claim_offer_json = AnoncredsUtils::get_claim_offer(ISSUER_DID, 1); let claim_req = AnoncredsUtils::prover_create_and_store_claim_req(wallet_handle, "CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW", @@ -325,7 +322,7 @@ mod high_cases { fn prover_store_claim_works_for_invalid_wallet_handle() { let (wallet_handle, claim_def_json) = AnoncredsUtils::init_common_wallet(); - let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1); + let claim_offer_json = AnoncredsUtils::get_claim_offer(ISSUER_DID, 1); let claim_req = AnoncredsUtils::prover_create_and_store_claim_req(wallet_handle, "CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW", @@ -359,7 +356,7 @@ mod high_cases { fn prover_get_claims_works_for_filter_by_issuer_did() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claims = AnoncredsUtils::prover_get_claims(wallet_handle, r#"{"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e"}"#).unwrap(); + let claims = AnoncredsUtils::prover_get_claims(wallet_handle, &format!(r#"{{"issuer_did":"{}"}}"#, ISSUER_DID)).unwrap(); let claims: Vec = serde_json::from_str(&claims).unwrap(); assert_eq!(claims.len(), 1); @@ -369,7 +366,7 @@ mod high_cases { fn prover_get_claims_works_for_filter_by_issuer_did_and_schema_seq_no() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claims = AnoncredsUtils::prover_get_claims(wallet_handle, r#"{"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e", "schema_seq_no":1}"#).unwrap(); + let claims = AnoncredsUtils::prover_get_claims(wallet_handle, &format!(r#"{{"issuer_did":"{}", "schema_seq_no":1}}"#, ISSUER_DID)).unwrap(); let claims: Vec = serde_json::from_str(&claims).unwrap(); assert_eq!(claims.len(), 1); @@ -671,7 +668,7 @@ mod high_cases { "requested_predicates":{{"predicate1_uuid":{{"attr_name":"age","p_type":"GE","value":18}}}} }}"#); - let claim_def = r#"{"ref":1,"signature_type":"CL","origin":"NcYxiDXkpYi6ov5FcYDi1e", "data":{"primary":{"n":"94759924268422840873493186881483285628376767714620627055233230078254863658476446487556117977593248501523199451418346650764648601684276437772084327637083000213497377603495837360299641742248892290843802071224822481683143989223918276185323177379400413928352871249494885563503003839960930062341074783742062464846448855510814252519824733234277681749977392772900212293652238651538092092030867161752390937372967233462027620699196724949212432236376627703446877808405786247217818975482797381180714523093913559060716447170497587855871901716892114835713057965087473682457896508094049813280368069805661739141591558517233009123957","s":"3589207374161609293256840431433442367968556468254553005135697551692970564853243905310862234226531556373974144223993822323573625466428920716249949819187529684239371465431718456502388533731367046146704547241076626874082510133130124364613881638153345624380195335138152993132904167470515345775215584510356780117368593105284564368954871044494967246738070895990267205643985529060025311535539534155086912661927003271053443110788963970349858709526217650537936123121324492871282397691771309596632805099306241616501610166028401599243350835158479028294769235556557248339060399322556412171888114265194198405765574333538019124846","rms":"57150374376895616256492932008792437185713712934712117819417607831438470701645904776986426606717466732609284990796923331049549544903261623636958698296956103821068569714644825742048584174696465882627177060166162341112552851798863535031243458188976013190131935905789786836375734914391914349188643340535242562896244661798678234667651641013894284156416773868299435641426810968290584996112925365638881750944407842890875840705650290814965768221299488400872767679122749231050406680432079499973527780212310700022178178822528199576164498116369689770884051691678056831493476045361227274839673581033532995523269047577973637307053","r":{"age":"94304485801056920773231824603827244147437820123357994068540328541540143488826838939836897544389872126768239056314698953816072289663428273075648246498659039419931054256171488371404693243192741923382499918184822032756852725234903892700640856294525441486319095181804549558538523888770076173572615957495813339649470619615099181648313548341951673407624414494737018574238782648822189142664108450534642272145962844003886059737965854042074083374478426875684184904488545593139633653407062308621502392373426120986761417580127895634822264744063122368296502161439648408926687989964483291459079738447940651025900007635890755686910","sex":"29253365609829921413347591854991689007250272038394995372767401325848195298844802462252851926995846503104090589196060683329875231216529049681648909174047403783834364995363938741001507091534282239210301727771803410513303526378812888571225762557471133950393342500638551458868147905023198508660460641434022020257614450354085808398293279060446966692082427506909617283562394303716193372887306176319841941848888379308208426966697446699225783646634631703732019477632822374479322570142967559738439193417309205283438893083349863592921249218168590490390313109776446516881569691499831380592661740653935515397472059631417493981532","name":"25134437486609445980011967476486104706321061312022352268621323694861467756181853100693555519614894168921947814126694858839278103549577703105305116890325322098078409416441750313062396467567140699008203113519528887729951138845002409659317083029073793314514377377412805387401717457417895322600145580639449003584446356048213839274172751441145076183734269045919984853749007476629365146654240675320041155618450449041510280560040162429566008590065069477149918088087715269037925211599101597422023202484497946662159070023999719865939258557778022770035320019440597702090334486792710436579355608406897769514395306079855023848170","height":"59326960517737425423547279838932030505937927873589489863081026714907925093402287263487670945897247474465655528290016645774365383046524346223348261262488616342337864633104758662753452450299389775751012589698563659277683974188553993694220606310980581680471280640591973543996299789038056921309016983827578247477799948667666717056420270448516049047961099547588510086600581628091290215485826514170097211360599793229701811672966818089371089216189744274422526431130783428589346341196561742409198605034972210917502326180305735092988639850309253190875578501020679137562856724998821945605494355779034135306337094344532980411836"},"rctxt":"9641986614889199796257508700106896585587271615330980339636468819377346498767697681332046156705231986464570206666984343024200482683981302064613556104594051003956610353281701880542337665385482309134369756144345334575765116656633321636736946947493150642615481313285221467998414924865943067790561494301461899025374692884841352282256044388512875752628313052128404892424405230961678931620525106856624692942373538946467902799339061714326383378018581568876147181355325663707572429090278505823900491548970098691127791086305310899642155499128171811034581730190877600697624903963241473287185133286356124371104261592694271730029","z":"77594127026421654059198621152153180600664927707984020918609426112642522289621323453889995053400171879296098965678384769043918218957929606187082395048777546641833348694470081024386996548890150355901703252426977094536933434556202865213941384425538749866521536494046548509344678288447175898173634381514948562261015286492185924659638474376885655055568341574638453213864956407243206035973349529545863886325462867413885904072942842465859476940638839087894582648849969332663627779378998245133055807038199937421971988505911494931665143822588532097754480882750243126847177560978100527491344463525107644125030963904001009159559"},"revocation":null}}"#; + let claim_def = format!(r#"{{"ref":1,"signature_type":"CL","origin":"{}", "data":{{"primary":{{"n":"94759924268422840873493186881483285628376767714620627055233230078254863658476446487556117977593248501523199451418346650764648601684276437772084327637083000213497377603495837360299641742248892290843802071224822481683143989223918276185323177379400413928352871249494885563503003839960930062341074783742062464846448855510814252519824733234277681749977392772900212293652238651538092092030867161752390937372967233462027620699196724949212432236376627703446877808405786247217818975482797381180714523093913559060716447170497587855871901716892114835713057965087473682457896508094049813280368069805661739141591558517233009123957","s":"3589207374161609293256840431433442367968556468254553005135697551692970564853243905310862234226531556373974144223993822323573625466428920716249949819187529684239371465431718456502388533731367046146704547241076626874082510133130124364613881638153345624380195335138152993132904167470515345775215584510356780117368593105284564368954871044494967246738070895990267205643985529060025311535539534155086912661927003271053443110788963970349858709526217650537936123121324492871282397691771309596632805099306241616501610166028401599243350835158479028294769235556557248339060399322556412171888114265194198405765574333538019124846","rms":"57150374376895616256492932008792437185713712934712117819417607831438470701645904776986426606717466732609284990796923331049549544903261623636958698296956103821068569714644825742048584174696465882627177060166162341112552851798863535031243458188976013190131935905789786836375734914391914349188643340535242562896244661798678234667651641013894284156416773868299435641426810968290584996112925365638881750944407842890875840705650290814965768221299488400872767679122749231050406680432079499973527780212310700022178178822528199576164498116369689770884051691678056831493476045361227274839673581033532995523269047577973637307053","r":{{"age":"94304485801056920773231824603827244147437820123357994068540328541540143488826838939836897544389872126768239056314698953816072289663428273075648246498659039419931054256171488371404693243192741923382499918184822032756852725234903892700640856294525441486319095181804549558538523888770076173572615957495813339649470619615099181648313548341951673407624414494737018574238782648822189142664108450534642272145962844003886059737965854042074083374478426875684184904488545593139633653407062308621502392373426120986761417580127895634822264744063122368296502161439648408926687989964483291459079738447940651025900007635890755686910","sex":"29253365609829921413347591854991689007250272038394995372767401325848195298844802462252851926995846503104090589196060683329875231216529049681648909174047403783834364995363938741001507091534282239210301727771803410513303526378812888571225762557471133950393342500638551458868147905023198508660460641434022020257614450354085808398293279060446966692082427506909617283562394303716193372887306176319841941848888379308208426966697446699225783646634631703732019477632822374479322570142967559738439193417309205283438893083349863592921249218168590490390313109776446516881569691499831380592661740653935515397472059631417493981532","name":"25134437486609445980011967476486104706321061312022352268621323694861467756181853100693555519614894168921947814126694858839278103549577703105305116890325322098078409416441750313062396467567140699008203113519528887729951138845002409659317083029073793314514377377412805387401717457417895322600145580639449003584446356048213839274172751441145076183734269045919984853749007476629365146654240675320041155618450449041510280560040162429566008590065069477149918088087715269037925211599101597422023202484497946662159070023999719865939258557778022770035320019440597702090334486792710436579355608406897769514395306079855023848170","height":"59326960517737425423547279838932030505937927873589489863081026714907925093402287263487670945897247474465655528290016645774365383046524346223348261262488616342337864633104758662753452450299389775751012589698563659277683974188553993694220606310980581680471280640591973543996299789038056921309016983827578247477799948667666717056420270448516049047961099547588510086600581628091290215485826514170097211360599793229701811672966818089371089216189744274422526431130783428589346341196561742409198605034972210917502326180305735092988639850309253190875578501020679137562856724998821945605494355779034135306337094344532980411836"}},"rctxt":"9641986614889199796257508700106896585587271615330980339636468819377346498767697681332046156705231986464570206666984343024200482683981302064613556104594051003956610353281701880542337665385482309134369756144345334575765116656633321636736946947493150642615481313285221467998414924865943067790561494301461899025374692884841352282256044388512875752628313052128404892424405230961678931620525106856624692942373538946467902799339061714326383378018581568876147181355325663707572429090278505823900491548970098691127791086305310899642155499128171811034581730190877600697624903963241473287185133286356124371104261592694271730029","z":"77594127026421654059198621152153180600664927707984020918609426112642522289621323453889995053400171879296098965678384769043918218957929606187082395048777546641833348694470081024386996548890150355901703252426977094536933434556202865213941384425538749866521536494046548509344678288447175898173634381514948562261015286492185924659638474376885655055568341574638453213864956407243206035973349529545863886325462867413885904072942842465859476940638839087894582648849969332663627779378998245133055807038199937421971988505911494931665143822588532097754480882750243126847177560978100527491344463525107644125030963904001009159559"}},"revocation":null}}}}"#, ISSUER_DID); let schemas_json = format!(r#"{{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{}}}"#, AnoncredsUtils::get_gvt_schema_json(1)); let claim_defs_json = format!(r#"{{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{}}}"#, claim_def); @@ -727,7 +724,7 @@ mod high_cases { "requested_predicates":{{"predicate1_uuid":{{"attr_name":"age","p_type":"GE","value":18}}}} }}"#); - let claim_def = r#"{"ref":1,"signature_type":"CL","origin":"NcYxiDXkpYi6ov5FcYDi1e", "data":{"primary":{"n":"94759924268422840873493186881483285628376767714620627055233230078254863658476446487556117977593248501523199451418346650764648601684276437772084327637083000213497377603495837360299641742248892290843802071224822481683143989223918276185323177379400413928352871249494885563503003839960930062341074783742062464846448855510814252519824733234277681749977392772900212293652238651538092092030867161752390937372967233462027620699196724949212432236376627703446877808405786247217818975482797381180714523093913559060716447170497587855871901716892114835713057965087473682457896508094049813280368069805661739141591558517233009123957","s":"3589207374161609293256840431433442367968556468254553005135697551692970564853243905310862234226531556373974144223993822323573625466428920716249949819187529684239371465431718456502388533731367046146704547241076626874082510133130124364613881638153345624380195335138152993132904167470515345775215584510356780117368593105284564368954871044494967246738070895990267205643985529060025311535539534155086912661927003271053443110788963970349858709526217650537936123121324492871282397691771309596632805099306241616501610166028401599243350835158479028294769235556557248339060399322556412171888114265194198405765574333538019124846","rms":"57150374376895616256492932008792437185713712934712117819417607831438470701645904776986426606717466732609284990796923331049549544903261623636958698296956103821068569714644825742048584174696465882627177060166162341112552851798863535031243458188976013190131935905789786836375734914391914349188643340535242562896244661798678234667651641013894284156416773868299435641426810968290584996112925365638881750944407842890875840705650290814965768221299488400872767679122749231050406680432079499973527780212310700022178178822528199576164498116369689770884051691678056831493476045361227274839673581033532995523269047577973637307053","r":{"age":"94304485801056920773231824603827244147437820123357994068540328541540143488826838939836897544389872126768239056314698953816072289663428273075648246498659039419931054256171488371404693243192741923382499918184822032756852725234903892700640856294525441486319095181804549558538523888770076173572615957495813339649470619615099181648313548341951673407624414494737018574238782648822189142664108450534642272145962844003886059737965854042074083374478426875684184904488545593139633653407062308621502392373426120986761417580127895634822264744063122368296502161439648408926687989964483291459079738447940651025900007635890755686910","sex":"29253365609829921413347591854991689007250272038394995372767401325848195298844802462252851926995846503104090589196060683329875231216529049681648909174047403783834364995363938741001507091534282239210301727771803410513303526378812888571225762557471133950393342500638551458868147905023198508660460641434022020257614450354085808398293279060446966692082427506909617283562394303716193372887306176319841941848888379308208426966697446699225783646634631703732019477632822374479322570142967559738439193417309205283438893083349863592921249218168590490390313109776446516881569691499831380592661740653935515397472059631417493981532","name":"25134437486609445980011967476486104706321061312022352268621323694861467756181853100693555519614894168921947814126694858839278103549577703105305116890325322098078409416441750313062396467567140699008203113519528887729951138845002409659317083029073793314514377377412805387401717457417895322600145580639449003584446356048213839274172751441145076183734269045919984853749007476629365146654240675320041155618450449041510280560040162429566008590065069477149918088087715269037925211599101597422023202484497946662159070023999719865939258557778022770035320019440597702090334486792710436579355608406897769514395306079855023848170","height":"59326960517737425423547279838932030505937927873589489863081026714907925093402287263487670945897247474465655528290016645774365383046524346223348261262488616342337864633104758662753452450299389775751012589698563659277683974188553993694220606310980581680471280640591973543996299789038056921309016983827578247477799948667666717056420270448516049047961099547588510086600581628091290215485826514170097211360599793229701811672966818089371089216189744274422526431130783428589346341196561742409198605034972210917502326180305735092988639850309253190875578501020679137562856724998821945605494355779034135306337094344532980411836"},"rctxt":"9641986614889199796257508700106896585587271615330980339636468819377346498767697681332046156705231986464570206666984343024200482683981302064613556104594051003956610353281701880542337665385482309134369756144345334575765116656633321636736946947493150642615481313285221467998414924865943067790561494301461899025374692884841352282256044388512875752628313052128404892424405230961678931620525106856624692942373538946467902799339061714326383378018581568876147181355325663707572429090278505823900491548970098691127791086305310899642155499128171811034581730190877600697624903963241473287185133286356124371104261592694271730029","z":"77594127026421654059198621152153180600664927707984020918609426112642522289621323453889995053400171879296098965678384769043918218957929606187082395048777546641833348694470081024386996548890150355901703252426977094536933434556202865213941384425538749866521536494046548509344678288447175898173634381514948562261015286492185924659638474376885655055568341574638453213864956407243206035973349529545863886325462867413885904072942842465859476940638839087894582648849969332663627779378998245133055807038199937421971988505911494931665143822588532097754480882750243126847177560978100527491344463525107644125030963904001009159559"},"revocation":null}}"#; + let claim_def = format!(r#"{{"ref":1,"signature_type":"CL","origin":"{}", "data":{{"primary":{{"n":"94759924268422840873493186881483285628376767714620627055233230078254863658476446487556117977593248501523199451418346650764648601684276437772084327637083000213497377603495837360299641742248892290843802071224822481683143989223918276185323177379400413928352871249494885563503003839960930062341074783742062464846448855510814252519824733234277681749977392772900212293652238651538092092030867161752390937372967233462027620699196724949212432236376627703446877808405786247217818975482797381180714523093913559060716447170497587855871901716892114835713057965087473682457896508094049813280368069805661739141591558517233009123957","s":"3589207374161609293256840431433442367968556468254553005135697551692970564853243905310862234226531556373974144223993822323573625466428920716249949819187529684239371465431718456502388533731367046146704547241076626874082510133130124364613881638153345624380195335138152993132904167470515345775215584510356780117368593105284564368954871044494967246738070895990267205643985529060025311535539534155086912661927003271053443110788963970349858709526217650537936123121324492871282397691771309596632805099306241616501610166028401599243350835158479028294769235556557248339060399322556412171888114265194198405765574333538019124846","rms":"57150374376895616256492932008792437185713712934712117819417607831438470701645904776986426606717466732609284990796923331049549544903261623636958698296956103821068569714644825742048584174696465882627177060166162341112552851798863535031243458188976013190131935905789786836375734914391914349188643340535242562896244661798678234667651641013894284156416773868299435641426810968290584996112925365638881750944407842890875840705650290814965768221299488400872767679122749231050406680432079499973527780212310700022178178822528199576164498116369689770884051691678056831493476045361227274839673581033532995523269047577973637307053","r":{{"age":"94304485801056920773231824603827244147437820123357994068540328541540143488826838939836897544389872126768239056314698953816072289663428273075648246498659039419931054256171488371404693243192741923382499918184822032756852725234903892700640856294525441486319095181804549558538523888770076173572615957495813339649470619615099181648313548341951673407624414494737018574238782648822189142664108450534642272145962844003886059737965854042074083374478426875684184904488545593139633653407062308621502392373426120986761417580127895634822264744063122368296502161439648408926687989964483291459079738447940651025900007635890755686910","sex":"29253365609829921413347591854991689007250272038394995372767401325848195298844802462252851926995846503104090589196060683329875231216529049681648909174047403783834364995363938741001507091534282239210301727771803410513303526378812888571225762557471133950393342500638551458868147905023198508660460641434022020257614450354085808398293279060446966692082427506909617283562394303716193372887306176319841941848888379308208426966697446699225783646634631703732019477632822374479322570142967559738439193417309205283438893083349863592921249218168590490390313109776446516881569691499831380592661740653935515397472059631417493981532","name":"25134437486609445980011967476486104706321061312022352268621323694861467756181853100693555519614894168921947814126694858839278103549577703105305116890325322098078409416441750313062396467567140699008203113519528887729951138845002409659317083029073793314514377377412805387401717457417895322600145580639449003584446356048213839274172751441145076183734269045919984853749007476629365146654240675320041155618450449041510280560040162429566008590065069477149918088087715269037925211599101597422023202484497946662159070023999719865939258557778022770035320019440597702090334486792710436579355608406897769514395306079855023848170","height":"59326960517737425423547279838932030505937927873589489863081026714907925093402287263487670945897247474465655528290016645774365383046524346223348261262488616342337864633104758662753452450299389775751012589698563659277683974188553993694220606310980581680471280640591973543996299789038056921309016983827578247477799948667666717056420270448516049047961099547588510086600581628091290215485826514170097211360599793229701811672966818089371089216189744274422526431130783428589346341196561742409198605034972210917502326180305735092988639850309253190875578501020679137562856724998821945605494355779034135306337094344532980411836"}},"rctxt":"9641986614889199796257508700106896585587271615330980339636468819377346498767697681332046156705231986464570206666984343024200482683981302064613556104594051003956610353281701880542337665385482309134369756144345334575765116656633321636736946947493150642615481313285221467998414924865943067790561494301461899025374692884841352282256044388512875752628313052128404892424405230961678931620525106856624692942373538946467902799339061714326383378018581568876147181355325663707572429090278505823900491548970098691127791086305310899642155499128171811034581730190877600697624903963241473287185133286356124371104261592694271730029","z":"77594127026421654059198621152153180600664927707984020918609426112642522289621323453889995053400171879296098965678384769043918218957929606187082395048777546641833348694470081024386996548890150355901703252426977094536933434556202865213941384425538749866521536494046548509344678288447175898173634381514948562261015286492185924659638474376885655055568341574638453213864956407243206035973349529545863886325462867413885904072942842465859476940638839087894582648849969332663627779378998245133055807038199937421971988505911494931665143822588532097754480882750243126847177560978100527491344463525107644125030963904001009159559"}},"revocation":null}}}}"#, ISSUER_DID); let schemas_json = format!(r#"{{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{}}}"#, AnoncredsUtils::get_gvt_schema_json(1)); let claim_defs_json = format!(r#"{{"claim::277478db-bf57-42c3-8530-b1b13cfe0bfd":{}}}"#, claim_def); @@ -757,7 +754,7 @@ mod medium_cases { let schema = r#"{"seqNo":1, "name":"name","version":"1.0", "keys":[]}"#; - let res = AnoncredsUtils::issuer_create_claim_definition(wallet_handle, "NcYxiDXkpYi6ov5FcYDi1e", &schema, None, false); + let res = AnoncredsUtils::issuer_create_claim_definition(wallet_handle, ISSUER_DID, &schema, None, false); assert_eq!(res.unwrap_err(), ErrorCode::CommonInvalidStructure); } @@ -767,7 +764,7 @@ mod medium_cases { let schema = r#"{"seqNo":1, "data":{"name":"name","version":"1.0","keys":[]}}"#; - let res = AnoncredsUtils::issuer_create_claim_definition(wallet_handle, &schema, "NcYxiDXkpYi6ov5FcYDi1e", None, false); + let res = AnoncredsUtils::issuer_create_claim_definition(wallet_handle, &schema, ISSUER_DID, None, false); assert_eq!(res.unwrap_err(), ErrorCode::CommonInvalidStructure); } @@ -777,7 +774,7 @@ mod medium_cases { let schema = AnoncredsUtils::get_gvt_schema_json(1); - let res = AnoncredsUtils::issuer_create_claim_definition(wallet_handle, &schema, "NcYxiDXkpYi6ov5FcYDi1e", Some("some_type"), false); + let res = AnoncredsUtils::issuer_create_claim_definition(wallet_handle, &schema, ISSUER_DID, Some("some_type"), false); assert_eq!(res.unwrap_err(), ErrorCode::CommonInvalidStructure); } } @@ -814,19 +811,19 @@ mod medium_cases { let wallet_handle_1 = WalletUtils::create_and_open_wallet("pool1", "wallet1", "default").unwrap(); let wallet_handle_2 = WalletUtils::create_and_open_wallet("pool1", "wallet2", "default").unwrap(); - let claim_offer_json_1 = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1); - let claim_offer_json_2 = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 2); + let claim_offer_json_1 = AnoncredsUtils::get_claim_offer(ISSUER_DID, 1); + let claim_offer_json_2 = AnoncredsUtils::get_claim_offer(ISSUER_DID, 2); let claim_offer_json_3 = AnoncredsUtils::get_claim_offer("CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW", 2); AnoncredsUtils::prover_store_claim_offer(wallet_handle_1, &claim_offer_json_1).unwrap(); AnoncredsUtils::prover_store_claim_offer(wallet_handle_2, &claim_offer_json_2).unwrap(); AnoncredsUtils::prover_store_claim_offer(wallet_handle_2, &claim_offer_json_3).unwrap(); - let claim_offers = AnoncredsUtils::prover_get_claim_offers(wallet_handle_2, r#"{"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e"}"#).unwrap(); + let claim_offers = AnoncredsUtils::prover_get_claim_offers(wallet_handle_2, &format!(r#"{{"issuer_did":"{}"}}"#, ISSUER_DID)).unwrap(); let claim_offers: Vec = serde_json::from_str(&claim_offers).unwrap(); assert_eq!(claim_offers.len(), 1); - assert!(claim_offers.contains(&ClaimOffer { issuer_did: "NcYxiDXkpYi6ov5FcYDi1e".to_string(), schema_seq_no: 2 })); + assert!(claim_offers.contains(&ClaimOffer { issuer_did: ISSUER_DID.to_string(), schema_seq_no: 2 })); } } @@ -864,7 +861,7 @@ mod medium_cases { fn prover_create_and_store_claim_req_works_for_invalid_claim_def() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1); + let claim_offer_json = AnoncredsUtils::get_claim_offer(ISSUER_DID, 1); let claim_def = r#"{ "schema_seq_no":1, "signature_type":"CL", @@ -886,7 +883,7 @@ mod medium_cases { fn prover_create_and_store_claim_req_works_for_invalid_master_secret() { let (wallet_handle, claim_def) = AnoncredsUtils::init_common_wallet(); - let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1); + let claim_offer_json = AnoncredsUtils::get_claim_offer(ISSUER_DID, 1); let res = AnoncredsUtils::prover_create_and_store_claim_req(wallet_handle, "CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW", @@ -904,7 +901,7 @@ mod medium_cases { fn issuer_create_claim_works_for_for_invalid_claim_req_json() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_req = r#"{"blinded_ms"{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW"","ur":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","schema_seq_no":1}"#; + let claim_req = format!(r#"{{"blinded_ms"{{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW"","ur":null}},"issuer_did":"{}","schema_seq_no":1}}"#, ISSUER_DID); let claim_json = AnoncredsUtils::get_gvt_claim_json(); @@ -916,7 +913,7 @@ mod medium_cases { fn issuer_create_claim_works_for_for_invalid_claim_json() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_req = r#"{"blinded_ms":{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"54172737564529332710724213139048941083013176891644677117322321823630308734620627329227591845094100636256829761959157314784293939045176621327154990908459072821826818718739696323299787928173535529024556540323709578850706993294234966440826690899266872682790228513973999212370574548239877108511283629423807338632435431097339875665075453785141722989098387895970395982432709011505864533727415552566715069675346220752584449560407261446567731711814188836703337365986725429656195275616846543535707364215498980750860746440672050640048215761507774996460985293327604627646056062013419674090094698841792968543317468164175921100038","ur":null},"issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","issuer_did":"NcYxiDXkpYi6ov5FcYDi1e","schema_seq_no":1}"#; + let claim_req = format!(r#"{{"blinded_ms":{{"prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW","u":"54172737564529332710724213139048941083013176891644677117322321823630308734620627329227591845094100636256829761959157314784293939045176621327154990908459072821826818718739696323299787928173535529024556540323709578850706993294234966440826690899266872682790228513973999212370574548239877108511283629423807338632435431097339875665075453785141722989098387895970395982432709011505864533727415552566715069675346220752584449560407261446567731711814188836703337365986725429656195275616846543535707364215498980750860746440672050640048215761507774996460985293327604627646056062013419674090094698841792968543317468164175921100038","ur":null}},"issuer_did":"{}","schema_seq_no":1}}"#, ISSUER_DID); let claim_json = r#"{ "sex":"male", @@ -937,12 +934,12 @@ mod medium_cases { fn prover_store_claim_works_without_claim_req() { let (wallet_handle, _) = AnoncredsUtils::init_common_wallet(); - let claim_json = r#"{"claim":{"sex":["male","1"],"age":["28","28"],"name":["Alex","1"],"height":["175","175"]}, - "issuer_did":"NcYxiDXkpYi6ov5FcYDi1e", + let claim_json = format!(r#"{{"claim":{{"sex":["male","1"],"age":["28","28"],"name":["Alex","1"],"height":["175","175"]}}, + "issuer_did":"{}", "revoc_reg_seq_no":null, "schema_seq_no":10, "identifier":"did", - "claims_signature":{"primary_claim":{"m2":"1","a":"1","e":"2","v":"3"},"non_revocation_claim":null}}"#; + "claims_signature":{{"primary_claim":{{"m2":"1","a":"1","e":"2","v":"3"}},"non_revocation_claim":null}}}}"#, ISSUER_DID); let res = AnoncredsUtils::prover_store_claim(wallet_handle, &claim_json); assert_eq!(res.unwrap_err(), ErrorCode::WalletNotFoundError); @@ -952,7 +949,7 @@ mod medium_cases { fn prover_store_claim_works_for_invalid_claim_json() { let (wallet_handle, claim_def_json) = AnoncredsUtils::init_common_wallet(); - let claim_offer_json = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 1); + let claim_offer_json = AnoncredsUtils::get_claim_offer(ISSUER_DID, 1); AnoncredsUtils::prover_create_and_store_claim_req(wallet_handle, "CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW", &claim_offer_json, @@ -1318,11 +1315,10 @@ mod demos { let wallet_handle = WalletUtils::create_and_open_wallet("pool1", "wallet1", "default").unwrap(); //2. Issuer create claim definition - let issuer_did = "NcYxiDXkpYi6ov5FcYDi1e"; let schema_seq_no = 1; let schema = AnoncredsUtils::get_gvt_schema_json(schema_seq_no); - let claim_def_json = AnoncredsUtils::issuer_create_claim_definition(wallet_handle, &issuer_did, &schema, None, false).unwrap(); + let claim_def_json = AnoncredsUtils::issuer_create_claim_definition(wallet_handle, &ISSUER_DID, &schema, None, false).unwrap(); //3. Prover create Master Secret let master_secret_name = "prover_master_secret"; @@ -1331,7 +1327,7 @@ mod demos { //4. Prover create Claim Request let prover_did = "BzfFCYk"; - let claim_offer_json = AnoncredsUtils::get_claim_offer(issuer_did, schema_seq_no); + let claim_offer_json = AnoncredsUtils::get_claim_offer(ISSUER_DID, schema_seq_no); let claim_req = AnoncredsUtils::prover_create_and_store_claim_req(wallet_handle, prover_did, &claim_offer_json, @@ -1416,11 +1412,10 @@ mod demos { let prover_wallet_handle = WalletUtils::create_and_open_wallet(pool_name, prover_wallet_name, xtype).unwrap(); //3. Issuer create claim definition - let issuer_did = "NcYxiDXkpYi6ov5FcYDi1e"; let schema_seq_no = 1; let schema = AnoncredsUtils::get_gvt_schema_json(schema_seq_no); - let claim_def_json = AnoncredsUtils::issuer_create_claim_definition(issuer_wallet_handle, &issuer_did, &schema, None, false).unwrap(); + let claim_def_json = AnoncredsUtils::issuer_create_claim_definition(issuer_wallet_handle, &ISSUER_DID, &schema, None, false).unwrap(); //4. Prover create Master Secret let master_secret_name = "prover_master_secret"; @@ -1428,12 +1423,12 @@ mod demos { AnoncredsUtils::prover_create_master_secret(prover_wallet_handle, master_secret_name).unwrap(); //5. Prover store Claim Offer received from Issuer - let claim_offer_json = AnoncredsUtils::get_claim_offer(issuer_did, schema_seq_no); + let claim_offer_json = AnoncredsUtils::get_claim_offer(ISSUER_DID, schema_seq_no); AnoncredsUtils::prover_store_claim_offer(prover_wallet_handle, &claim_offer_json).unwrap(); //6. Prover get Claim Offers - let filter_json = format!(r#"{{"issuer_did":"{}"}}"#, issuer_did); + let filter_json = format!(r#"{{"issuer_did":"{}"}}"#, ISSUER_DID); let claim_offers_json = AnoncredsUtils::prover_get_claim_offers(prover_wallet_handle, &filter_json).unwrap(); @@ -1521,7 +1516,6 @@ mod demos { fn anoncreds_works_for_multiply_issuer_single_prover() { TestUtils::cleanup_storage(); - let issuer1_did = "NcYxiDXkpYi6ov5FcYDi1e"; let issuer2_did = "CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW"; let prover_did = "BzfFCYk"; @@ -1547,10 +1541,10 @@ mod demos { let gvt_schema_seq_no = 1; let gvt_schema = AnoncredsUtils::get_gvt_schema_json(gvt_schema_seq_no); - let gvt_claim_def_json = AnoncredsUtils::issuer_create_claim_definition(issuer_gvt_wallet_handle, &issuer1_did, &gvt_schema, None, false).unwrap(); + let gvt_claim_def_json = AnoncredsUtils::issuer_create_claim_definition(issuer_gvt_wallet_handle, &ISSUER_DID, &gvt_schema, None, false).unwrap(); schemas.insert(gvt_schema_seq_no, gvt_schema.clone()); - claim_defs.insert(issuer1_did.to_string(), gvt_claim_def_json.clone()); + claim_defs.insert(ISSUER_DID.to_string(), gvt_claim_def_json.clone()); //5. Issuer1 create claim definition by xyz schema @@ -1573,7 +1567,7 @@ mod demos { AnoncredsUtils::prover_create_master_secret(prover_wallet_handle, master_secret_name_2).unwrap(); //8. Prover store Claim Offer received from Issuer1 - let issuer1_claim_offer_json = AnoncredsUtils::get_claim_offer(issuer1_did, gvt_schema_seq_no); + let issuer1_claim_offer_json = AnoncredsUtils::get_claim_offer(ISSUER_DID, gvt_schema_seq_no); AnoncredsUtils::prover_store_claim_offer(prover_wallet_handle, &issuer1_claim_offer_json).unwrap(); @@ -1597,7 +1591,7 @@ mod demos { let claim_offer_2_json = serde_json::to_string(&claim_offer_2).unwrap(); //11. Prover create Claim Request for gvt claim offer - let claim_offer = if claim_offer_1.issuer_did == issuer1_did { claim_offer_1_json.clone() } else { claim_offer_2_json.clone() }; + let claim_offer = if claim_offer_1.issuer_did == ISSUER_DID { claim_offer_1_json.clone() } else { claim_offer_2_json.clone() }; let gvt_claim_req = AnoncredsUtils::prover_create_and_store_claim_req(prover_wallet_handle, prover_did, diff --git a/tests/utils/anoncreds.rs b/tests/utils/anoncreds.rs index e431095f49..7d8bbfaf5d 100644 --- a/tests/utils/anoncreds.rs +++ b/tests/utils/anoncreds.rs @@ -34,6 +34,7 @@ pub struct AnoncredsUtils {} static mut WALLET_HANDLE: i32 = 0; static mut CLAIM_DEF_JSON: &'static str = ""; +pub const ISSUER_DID: &'static str = "NcYxiDXkpYi6ov5FcYDi1e"; impl AnoncredsUtils { pub fn issuer_create_claim_definition(wallet_handle: i32, issuer_did: &str, schema: &str, signature_type: Option<&str>, create_non_revoc: bool) -> Result { @@ -462,15 +463,15 @@ impl AnoncredsUtils { } pub fn get_gvt_claim_req() -> String { - r#"{ - "blinded_ms":{ + format!(r#"{{ + "blinded_ms":{{ "prover_did":"CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW", "u":"72052674960029442327236458752017934128206007798774128392572211954456711136771871346204637748253860917837147111221378456345006764308173447177933384497678611527908801900335623480700015849806575534757455484512742315652166882850683721692964547448843598104385874050447011820051099399087175505815748958014671544911179795524159951193233504921329404534187047046492036161628814022862661479869322137573048331473599346645871295570237032991261433025344456232326409789544299441933427561947291495434188942844516539974096858281005872862193803356400358925349350554630231733687344283622639185011395343616612151755685912869590344206893", "ur":null - }, - "issuer_did":"NcYxiDXkpYi6ov5FcYDi1e", + }}, + "issuer_did":"{}", "schema_seq_no":1 - }"#.to_string() + }}"#, ISSUER_DID) } pub fn get_unique_claims(proof_claims: &ProofClaimsJson) -> Vec { @@ -510,14 +511,14 @@ impl AnoncredsUtils { //2. Create GVT ClaimDefinition let schema = AnoncredsUtils::get_gvt_schema_json(COMMON_SCHEMA_SEQ_NO); //TODO Fix it.....Convert String to &'static str - let claim_def_json = AnoncredsUtils::issuer_create_claim_definition(WALLET_HANDLE, "NcYxiDXkpYi6ov5FcYDi1e", &schema, None, false).unwrap(); + let claim_def_json = AnoncredsUtils::issuer_create_claim_definition(WALLET_HANDLE, ISSUER_DID, &schema, None, false).unwrap(); let res = mem::transmute(&claim_def_json as &str); mem::forget(claim_def_json); CLAIM_DEF_JSON = res; //3. Store three claim offers - let claim_offer_json_1 = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", COMMON_SCHEMA_SEQ_NO); - let claim_offer_json_2 = AnoncredsUtils::get_claim_offer("NcYxiDXkpYi6ov5FcYDi1e", 2); + let claim_offer_json_1 = AnoncredsUtils::get_claim_offer(ISSUER_DID, COMMON_SCHEMA_SEQ_NO); + let claim_offer_json_2 = AnoncredsUtils::get_claim_offer(ISSUER_DID, 2); let claim_offer_json_3 = AnoncredsUtils::get_claim_offer("CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW", 2); AnoncredsUtils::prover_store_claim_offer(WALLET_HANDLE, &claim_offer_json_1).unwrap(); From 1a59f282ce90c9bd2c58289d7d40a4f906b92418 Mon Sep 17 00:00:00 2001 From: Sergej Pupykin Date: Thu, 6 Jul 2017 18:59:39 +0300 Subject: [PATCH 18/23] add rpm build scripts --- ci/indy-sdk.spec.in | 73 +++++++++++++++++++++++++++++++++++++++++++++ ci/rpm-build.sh | 15 ++++++++++ 2 files changed, 88 insertions(+) create mode 100644 ci/indy-sdk.spec.in create mode 100755 ci/rpm-build.sh diff --git a/ci/indy-sdk.spec.in b/ci/indy-sdk.spec.in new file mode 100644 index 0000000000..c83ca19cb0 --- /dev/null +++ b/ci/indy-sdk.spec.in @@ -0,0 +1,73 @@ +%global commit @commit@ + +Summary: Official SDK for Hyperledger Indy +Name: indy-sdk +Version: @version@.%{commit} +Release: 1%{?dist} +License: Apache License 2.0 +Group: System Environment/Libraries +Source: https://github.com/hyperledger/indy-sdk/archive/%{commit}.tar.gz +URL: https://github.com/hyperledger/indy-sdk/ +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildRequires: openssl-devel + +%description +This is the official SDK for Hyperledger Indy, which provides a +distributed-ledger-based foundation for self-sovereign identity. +The major artifact of the SDK is a c-callable library; there are +also convenience wrappers for various programming languages. + +All bugs, stories, and backlog for this project are managed through +Hyperledger's Jira in project IS (note that regular Indy tickets are +in the INDY project instead...). Also, join us on Jira's Rocket.Chat +at #indy-sdk to discuss. + +%package devel +Summary: Development files for Hyperledger Indy +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} +Requires: pkgconfig + +%description devel +This is the official SDK for Hyperledger Indy, which provides a +distributed-ledger-based foundation for self-sovereign identity. +The major artifact of the SDK is a c-callable library; there are +also convenience wrappers for various programming languages. + +All bugs, stories, and backlog for this project are managed through +Hyperledger's Jira in project IS (note that regular Indy tickets are +in the INDY project instead...). Also, join us on Jira's Rocket.Chat +at #indy-sdk to discuss. + +%prep +%autosetup -n %{name}-%{commit} + +%build +cargo build --release + +%install +rm -rf ${RPM_BUILD_ROOT} + +install -dm0755 $RPM_BUILD_ROOT/%{_includedir}/sovrin +install -dm0755 $RPM_BUILD_ROOT/%{_libdir} +cp -a include/*.h $RPM_BUILD_ROOT/%{_includedir}/sovrin/ +install -Dm0644 target/release/libsovrin.a $RPM_BUILD_ROOT/%{_libdir}/libsovrin.a +install -Dm0644 target/release/libsovrin.so $RPM_BUILD_ROOT/%{_libdir}/libsovrin.so + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%files +%defattr(-,root,root) +%{_libdir}/libsovrin.so* + +%files devel +%defattr(-,root,root) +%{_libdir}/libsovrin.a +%{_includedir}/sovrin/*.h + +%changelog diff --git a/ci/rpm-build.sh b/ci/rpm-build.sh new file mode 100755 index 0000000000..c98dc2f8f4 --- /dev/null +++ b/ci/rpm-build.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +commit=$1 +version=$(wget -q https://raw.githubusercontent.com/hyperledger/indy-sdk/$commit/Cargo.toml -O - | grep -E '^version =' | head -n1 | cut -f2 -d= | tr -d '" ') + +[ -z $version ] && exit 1 +[ -z $commit ] && exit 2 + +sed \ + -e "s|@commit@|$commit|g" \ + -e "s|@version@|$version.$commit|g" \ + indy-sdk.spec.in >indy-sdk.spec + +spectool -g -R indy-sdk.spec || exit 3 +rpmbuild -ba indy-sdk.spec || exit 4 From a37bdab04e7ee107b41743773723f2c6329ec6de Mon Sep 17 00:00:00 2001 From: Sergej Pupykin Date: Thu, 6 Jul 2017 19:27:22 +0300 Subject: [PATCH 19/23] fix dependencies --- ci/indy-sdk.spec.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/indy-sdk.spec.in b/ci/indy-sdk.spec.in index c83ca19cb0..b3dc7a0887 100644 --- a/ci/indy-sdk.spec.in +++ b/ci/indy-sdk.spec.in @@ -9,7 +9,8 @@ Group: System Environment/Libraries Source: https://github.com/hyperledger/indy-sdk/archive/%{commit}.tar.gz URL: https://github.com/hyperledger/indy-sdk/ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildRequires: openssl-devel +Requires: sqlite openssl libsodium +BuildRequires: sqlite-devel openssl-devel libsodium-devel %description This is the official SDK for Hyperledger Indy, which provides a @@ -26,7 +27,6 @@ at #indy-sdk to discuss. Summary: Development files for Hyperledger Indy Group: Development/Libraries Requires: %{name} = %{version}-%{release} -Requires: pkgconfig %description devel This is the official SDK for Hyperledger Indy, which provides a From 60e4f73d71c341a431ec7dfa0ee6dff9ec9f56fc Mon Sep 17 00:00:00 2001 From: "artem.ivanov" Date: Fri, 7 Jul 2017 09:35:14 +0300 Subject: [PATCH 20/23] Renamed claim_signatire and identifier fields --- src/services/anoncreds/types.rs | 3 -- tests/anoncreds.rs | 60 ++++++++++++++++----------------- tests/demo.rs | 2 +- tests/utils/types.rs | 2 -- 4 files changed, 31 insertions(+), 36 deletions(-) diff --git a/src/services/anoncreds/types.rs b/src/services/anoncreds/types.rs index fb486cc68d..2978c04228 100644 --- a/src/services/anoncreds/types.rs +++ b/src/services/anoncreds/types.rs @@ -359,9 +359,7 @@ pub struct ClaimJson { pub claim: HashMap>, pub revoc_reg_seq_no: Option, pub schema_seq_no: i32, - #[serde(rename = "claims_signature")] pub signature: ClaimSignature, - #[serde(rename = "identifier")] pub issuer_did: String } @@ -912,7 +910,6 @@ pub struct ProofRequestJson { pub nonce: BigNumber, pub name: String, pub version: String, - #[serde(rename = "verifiableAttributes")] pub requested_attrs: HashMap, pub requested_predicates: HashMap } diff --git a/tests/anoncreds.rs b/tests/anoncreds.rs index 8c351ecee1..750d7d4962 100644 --- a/tests/anoncreds.rs +++ b/tests/anoncreds.rs @@ -402,7 +402,7 @@ mod high_cases { let proof_req = r#"{"nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, + "requested_attrs":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, "requested_predicates":{} }"#; @@ -424,7 +424,7 @@ mod high_cases { let proof_req = r#"{"nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{"attr1_uuid":{"schema_seq_no":1, "name":"some_attr"}}, + "requested_attrs":{"attr1_uuid":{"schema_seq_no":1, "name":"some_attr"}}, "requested_predicates":{} }"#; @@ -446,7 +446,7 @@ mod high_cases { let proof_req = r#"{"nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{}, + "requested_attrs":{}, "requested_predicates":{"predicate1_uuid":{"attr_name":"age","p_type":"GE","value":18}} }"#; @@ -468,7 +468,7 @@ mod high_cases { let proof_req = r#"{"nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{}, + "requested_attrs":{}, "requested_predicates":{"predicate1_uuid":{"attr_name":"age","p_type":"GE","value":58}} }"#; @@ -490,7 +490,7 @@ mod high_cases { let proof_req = r#"{"nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{ + "requested_attrs":{ "attr1_uuid":{"schema_seq_no":1, "name":"name"}, "attr2_uuid":{"schema_seq_no":1, "name":"sex"} }, @@ -526,7 +526,7 @@ mod high_cases { let proof_req = r#"{"nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{}, + "requested_attrs":{}, "requested_predicates":{"predicate1_uuid":{"attr_name":"age","p_type":"GE","value":58}} }"#; @@ -547,7 +547,7 @@ mod high_cases { let proof_req = r#"{"nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, + "requested_attrs":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, "requested_predicates":{"predicate1_uuid":{"attr_name":"age","p_type":"GE","value":18}} }"#; @@ -590,7 +590,7 @@ mod high_cases { let proof_req = r#"{"nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{"attr1_uuid":{"schema_seq_no":1, "name":"some_attr"}}, + "requested_attrs":{"attr1_uuid":{"schema_seq_no":1, "name":"some_attr"}}, "requested_predicates":{} }"#; @@ -621,7 +621,7 @@ mod high_cases { let proof_req = r#"{"nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, + "requested_attrs":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, "requested_predicates":{} }"#; @@ -664,7 +664,7 @@ mod high_cases { "nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{{"attr1_uuid":{{"schema_seq_no":1,"name":"name"}}}}, + "requested_attrs":{{"attr1_uuid":{{"schema_seq_no":1,"name":"name"}}}}, "requested_predicates":{{"predicate1_uuid":{{"attr_name":"age","p_type":"GE","value":18}}}} }}"#); @@ -692,7 +692,7 @@ mod high_cases { "nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{{"attr1_uuid":{{"schema_seq_no":1,"name":"sex"}}}}, + "requested_attrs":{{"attr1_uuid":{{"schema_seq_no":1,"name":"sex"}}}}, "requested_predicates":{{"predicate1_uuid":{{"attr_name":"height","p_type":"GE","value":180}}}} }}"#); @@ -720,7 +720,7 @@ mod high_cases { "nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{{"attr1_uuid":{{"schema_seq_no":1,"name":"name"}}}}, + "requested_attrs":{{"attr1_uuid":{{"schema_seq_no":1,"name":"name"}}}}, "requested_predicates":{{"predicate1_uuid":{{"attr_name":"age","p_type":"GE","value":18}}}} }}"#); @@ -938,8 +938,8 @@ mod medium_cases { "issuer_did":"{}", "revoc_reg_seq_no":null, "schema_seq_no":10, - "identifier":"did", - "claims_signature":{{"primary_claim":{{"m2":"1","a":"1","e":"2","v":"3"}},"non_revocation_claim":null}}}}"#, ISSUER_DID); + "issuer_did":"did", + "signature":{{"primary_claim":{{"m2":"1","a":"1","e":"2","v":"3"}},"non_revocation_claim":null}}}}"#, ISSUER_DID); let res = AnoncredsUtils::prover_store_claim(wallet_handle, &claim_json); assert_eq!(res.unwrap_err(), ErrorCode::WalletNotFoundError); @@ -988,7 +988,7 @@ mod medium_cases { let proof_req = r#"{"nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{}, + "requested_attrs":{}, "requested_predicates":{} }"#; @@ -1021,7 +1021,7 @@ mod medium_cases { let proof_req = r#"{"nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{"attr1_uuid":{"schema_seq_no":2, "name":"name"}}, + "requested_attrs":{"attr1_uuid":{"schema_seq_no":2, "name":"name"}}, "requested_predicates":{} }"#; @@ -1043,7 +1043,7 @@ mod medium_cases { let proof_req = r#"{"nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{}, + "requested_attrs":{}, "requested_predicates":{"predicate1_uuid":{"attr_name":"age"}} }"#; @@ -1058,7 +1058,7 @@ mod medium_cases { let proof_req = r#"{"nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{}, + "requested_attrs":{}, "requested_predicates":{"predicate1_uuid":{"attr_name":"age","p_type":"LE","value":58}} }"#; @@ -1077,7 +1077,7 @@ mod medium_cases { let proof_req = r#"{"nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, + "requested_attrs":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, "requested_predicates":{} }"#; @@ -1114,7 +1114,7 @@ mod medium_cases { let proof_req = r#"{"nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, + "requested_attrs":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, "requested_predicates":{} }"#; @@ -1151,7 +1151,7 @@ mod medium_cases { let proof_req = r#"{"nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, + "requested_attrs":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, "requested_predicates":{} }"#; @@ -1188,7 +1188,7 @@ mod medium_cases { let proof_req = r#"{"nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, + "requested_attrs":{"attr1_uuid":{"schema_seq_no":1, "name":"name"}}, "requested_predicates":{} }"#; @@ -1230,7 +1230,7 @@ mod medium_cases { "nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{{"attr1_uuid":{{"schema_seq_no":1,"name":"name"}}}}, + "requested_attrs":{{"attr1_uuid":{{"schema_seq_no":1,"name":"name"}}}}, "requested_predicates":{{"predicate1_uuid":{{"attr_name":"age","p_type":"GE","value":18}}}} }}"#); @@ -1257,7 +1257,7 @@ mod medium_cases { "nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{{"attr1_uuid":{{"schema_seq_no":1,"name":"name"}}}}, + "requested_attrs":{{"attr1_uuid":{{"schema_seq_no":1,"name":"name"}}}}, "requested_predicates":{{"predicate1_uuid":{{"attr_name":"age","p_type":"GE","value":18}}}} }}"#); @@ -1284,7 +1284,7 @@ mod medium_cases { "nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{{"attr1_uuid":{{"schema_seq_no":1,"name":"name"}}}}, + "requested_attrs":{{"attr1_uuid":{{"schema_seq_no":1,"name":"name"}}}}, "requested_predicates":{{"predicate1_uuid":{{"attr_name":"age","p_type":"GE","value":18}}}} }}"#); @@ -1348,7 +1348,7 @@ mod demos { "nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{{"attr1_uuid":{{"schema_seq_no":{},"name":"name"}}}}, + "requested_attrs":{{"attr1_uuid":{{"schema_seq_no":{},"name":"name"}}}}, "requested_predicates":{{}} }}"#, schema_seq_no); @@ -1382,7 +1382,7 @@ mod demos { "nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{{"attr1_uuid":{{"schema_seq_no":{},"name":"name"}}}}, + "requested_attrs":{{"attr1_uuid":{{"schema_seq_no":{},"name":"name"}}}}, "requested_predicates":{{"predicate1_uuid":{{"attr_name":"age","p_type":"GE","value":18}}}} }}"#, schema_seq_no); @@ -1458,7 +1458,7 @@ mod demos { "nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{{"attr1_uuid":{{"schema_seq_no":{},"name":"name"}}, + "requested_attrs":{{"attr1_uuid":{{"schema_seq_no":{},"name":"name"}}, "attr2_uuid":{{"schema_seq_no":{},"name":"sex"}}}}, "requested_predicates":{{"predicate1_uuid":{{"attr_name":"age","p_type":"GE","value":18}}}} }}"#, schema_seq_no, schema_seq_no); @@ -1630,7 +1630,7 @@ mod demos { "nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{{"attr1_uuid":{{"schema_seq_no":{},"name":"name"}}, + "requested_attrs":{{"attr1_uuid":{{"schema_seq_no":{},"name":"name"}}, "attr2_uuid":{{"schema_seq_no":{},"name":"status"}}}}, "requested_predicates":{{"predicate1_uuid":{{"attr_name":"age","p_type":"GE","value":18}}, "predicate2_uuid":{{"attr_name":"period","p_type":"GE","value":5}}}} @@ -1821,7 +1821,7 @@ mod demos { "nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{{"attr1_uuid":{{"schema_seq_no":{},"name":"name"}}}}, + "requested_attrs":{{"attr1_uuid":{{"schema_seq_no":{},"name":"name"}}}}, "requested_predicates":{{"predicate1_uuid":{{"attr_name":"age","p_type":"GE","value":18}}, "predicate2_uuid":{{"attr_name":"period","p_type":"GE","value":5}}}} }}"#, gvt_schema_seq_no); diff --git a/tests/demo.rs b/tests/demo.rs index e41f98fcf1..bacc76d597 100644 --- a/tests/demo.rs +++ b/tests/demo.rs @@ -281,7 +281,7 @@ fn anoncreds_demo_works() { "nonce":"123432421212", "name":"proof_req_1", "version":"0.1", - "verifiableAttributes":{{"attr1_uuid":{{"schema_seq_no":{},"name":"name"}}}}, + "requested_attrs":{{"attr1_uuid":{{"schema_seq_no":{},"name":"name"}}}}, "requested_predicates":{{"predicate1_uuid":{{"attr_name":"age","p_type":"GE","value":18}}}} }}"#, schema_seq_no); diff --git a/tests/utils/types.rs b/tests/utils/types.rs index 0ae03e6c04..9e3ea7be4f 100644 --- a/tests/utils/types.rs +++ b/tests/utils/types.rs @@ -168,9 +168,7 @@ pub struct ClaimJson { pub claim: HashMap>, pub revoc_reg_seq_no: Option, pub schema_seq_no: i32, - #[serde(rename = "claims_signature")] pub signature: ClaimSignature, - #[serde(rename = "identifier")] pub issuer_did: String } From d79396b8cb51556ea1fda75868893dec482aa326 Mon Sep 17 00:00:00 2001 From: Evgeniy Razinkov Date: Fri, 7 Jul 2017 10:55:41 +0300 Subject: [PATCH 21/23] fix for test --- tests/anoncreds.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/anoncreds.rs b/tests/anoncreds.rs index 750d7d4962..fbdb0750ac 100644 --- a/tests/anoncreds.rs +++ b/tests/anoncreds.rs @@ -938,7 +938,6 @@ mod medium_cases { "issuer_did":"{}", "revoc_reg_seq_no":null, "schema_seq_no":10, - "issuer_did":"did", "signature":{{"primary_claim":{{"m2":"1","a":"1","e":"2","v":"3"}},"non_revocation_claim":null}}}}"#, ISSUER_DID); let res = AnoncredsUtils::prover_store_claim(wallet_handle, &claim_json); From 5c1c449242b17eb15efaa818b834af0fb3140d85 Mon Sep 17 00:00:00 2001 From: Evgeniy Razinkov Date: Fri, 7 Jul 2017 13:27:50 +0300 Subject: [PATCH 22/23] fix for headers --- include/sovrin_anoncreds.h | 8 ++++---- include/sovrin_ledger.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/sovrin_anoncreds.h b/include/sovrin_anoncreds.h index f3674aa5d5..4247cb765c 100644 --- a/include/sovrin_anoncreds.h +++ b/include/sovrin_anoncreds.h @@ -7,19 +7,20 @@ extern "C" { extern sovrin_error_t sovrin_issuer_create_and_store_claim_def(sovrin_handle_t command_handle, sovrin_handle_t wallet_handle, + const char * issuer_did, const char * schema_json, const char * signature_type, sovrin_bool_t create_non_revoc, void (*cb)(sovrin_handle_t xcommand_handle, sovrin_error_t err, - const char* clain_def_json, - const char* claim_def_uuid) + const char* clain_def_json) ); extern sovrin_error_t sovrin_issuer_create_and_store_revoc_reg(sovrin_handle_t command_handle, sovrin_handle_t wallet_handle, - sovrin_i32_t claim_def_seq_no, + const char * issuer_did, + sovrin_i32_t schema_seq_no, sovrin_i32_t max_claim_num, void (*cb)(sovrin_handle_t xcommand_handle, @@ -44,7 +45,6 @@ extern "C" { extern sovrin_error_t sovrin_issuer_revoke_claim(sovrin_handle_t command_handle, sovrin_handle_t wallet_handle, - sovrin_i32_t claim_def_seq_no, sovrin_i32_t revoc_reg_seq_no, sovrin_i32_t user_revoc_index, diff --git a/include/sovrin_ledger.h b/include/sovrin_ledger.h index 9352087db3..d3054592c4 100644 --- a/include/sovrin_ledger.h +++ b/include/sovrin_ledger.h @@ -342,7 +342,7 @@ extern "C" { extern sovrin_error_t sovrin_build_get_txn_request(sovrin_handle_t command_handle, const char * submitter_did, - i32 data, + sovrin_i32_t data, void (*cb)(sovrin_handle_t xcommand_handle, sovrin_error_t err, From 0e5a909fca0535989321179d1350104ac57ebdc7 Mon Sep 17 00:00:00 2001 From: Symon Rottem Date: Fri, 7 Jul 2017 13:25:24 +0200 Subject: [PATCH 23/23] Pool.closePoolLedger method did not use correct C-callable sdk function. --- .../java/src/main/java/org/hyperledger/indy/sdk/pool/Pool.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wrappers/java/src/main/java/org/hyperledger/indy/sdk/pool/Pool.java b/wrappers/java/src/main/java/org/hyperledger/indy/sdk/pool/Pool.java index f2475ae3eb..06b395c45b 100644 --- a/wrappers/java/src/main/java/org/hyperledger/indy/sdk/pool/Pool.java +++ b/wrappers/java/src/main/java/org/hyperledger/indy/sdk/pool/Pool.java @@ -141,7 +141,7 @@ public void callback(int xcommand_handle, int err) { } }; - int result = LibSovrin.api.sovrin_refresh_pool_ledger( + int result = LibSovrin.api.sovrin_close_pool_ledger( FIXED_COMMAND_HANDLE, handle, callback);