Credentials owner that can proof and partially disclose the credentials to verifier.
Creates a master secret.
use indy_crypto::cl::prover::Prover;
let _master_secret = Prover::new_master_secret().unwrap();
Creates blinded master secret for given issuer key and master secret.
credential_pub_key
- Credential public keys.
credential_key_correctness_proof
- Credential key correctness proof.
credential_values
- Credential values.
credential_nonce
- Nonce used for creation of blinded_credential_secrets_correctness_proof.
use indy_crypto::cl::new_nonce;
use indy_crypto::cl::issuer::Issuer;
use indy_crypto::cl::prover::Prover;
let mut credential_schema_builder = Issuer::new_credential_schema_builder().unwrap();
credential_schema_builder.add_attr("sex").unwrap();
let credential_schema = credential_schema_builder.finalize().unwrap();
let mut non_credential_schema_builder = Issuer::new_non_credential_schema_builder().unwrap();
non_credential_schema_builder.add_attr("master_secret").unwrap();
let non_credential_schema_elements = non_credential_schema_builder.finalize().unwrap();
let (credential_pub_key, _credential_priv_key, cred_key_correctness_proof) = Issuer::new_credential_def(&credential_schema, &non_credential_schema_elements, false).unwrap();
let master_secret = Prover::new_master_secret().unwrap();
let credential_nonce = new_nonce().unwrap();
let mut credential_values_builder = Issuer::new_credential_values_builder().unwrap();
credential_values_builder.add_value_hidden("master_secret", &master_secret.value().unwrap()).unwrap();
let cred_values = credential_values_builder.finalize().unwrap();
let (_blinded_credential_secrets, _credential_secrets_blinding_factors, _blinded_credential_secrets_correctness_proof) =
Prover::blind_credential_secrets(&credential_pub_key,
&cred_key_correctness_proof,
&cred_values,
&credential_nonce).unwrap();
Updates the credential signature by a master secret blinding data.
credential_signature
- Credential signature generated by Issuer.
credential_values
- Credential values.
signature_correctness_proof
- Credential signature correctness proof.
credential_secrets_blinding_factors
- Master secret blinding data.
credential_pub_key
- Credential public key.
nonce
- Nonce was used by Issuer for the creation of signature_correctness_proof.
rev_key_pub
- (Optional) Revocation registry public key.
rev_reg
- (Optional) Revocation registry.
witness
- (Optional) Witness.
use indy_crypto::cl::new_nonce;
use indy_crypto::cl::issuer::Issuer;
use indy_crypto::cl::prover::Prover;
let mut credential_schema_builder = Issuer::new_credential_schema_builder().unwrap();
credential_schema_builder.add_attr("sex").unwrap();
let credential_schema = credential_schema_builder.finalize().unwrap();
let mut non_credential_schema_builder = Issuer::new_non_credential_schema_builder().unwrap();
non_credential_schema_builder.add_attr("master_secret").unwrap();
let non_credential_schema = non_credential_schema_builder.finalize().unwrap();
let (credential_pub_key, credential_priv_key, cred_key_correctness_proof) = Issuer::new_credential_def(&credential_schema, &non_credential_schema, false).unwrap();
let master_secret = Prover::new_master_secret().unwrap();
let credential_nonce = new_nonce().unwrap();
let mut credential_values_builder = Issuer::new_credential_values_builder().unwrap();
credential_values_builder.add_value_hidden("master_secret", &master_secret.value().unwrap()).unwrap();
credential_values_builder.add_dec_known("sex", "5944657099558967239210949258394887428692050081607692519917050011144233115103").unwrap();
let credential_values = credential_values_builder.finalize().unwrap();
let (blinded_credential_secrets, credential_secrets_blinding_factors, blinded_credential_secrets_correctness_proof) =
Prover::blind_credential_secrets(&credential_pub_key, &cred_key_correctness_proof, &credential_values, &credential_nonce).unwrap();
let credential_issuance_nonce = new_nonce().unwrap();
let (mut credential_signature, signature_correctness_proof) =
Issuer::sign_credential("CnEDk9HrMnmiHXEV1WFgbVCRteYnPqsJwrTdcZaNhFVW",
&blinded_credential_secrets,
&blinded_credential_secrets_correctness_proof,
&credential_nonce,
&credential_issuance_nonce,
&credential_values,
&credential_pub_key,
&credential_priv_key).unwrap();
Prover::process_credential_signature(&mut credential_signature,
&credential_values,
&signature_correctness_proof,
&credential_secrets_blinding_factors,
&credential_pub_key,
&credential_issuance_nonce,
None, None, None).unwrap();
Creates and returns proof builder.
The purpose of proof builder is building of proof entity according to the given request .
use indy_crypto::cl::prover::Prover;
let _proof_builder = Prover::new_proof_builder();
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
🔬 This is a nightly-only experimental API. (get_type_id
)
this method will likely be replaced by an associated static