Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- print("\n\n\n======================================")
- print("|| Part C ||")
- print("======================================")
- print("== Sunil setup ==")
- print("------------------------------")
- sunil = {
- 'name': 'Sunil',
- 'wallet_config': json.dumps({'id': 'sunil_wallet'}),
- 'wallet_credentials': json.dumps({'key': 'sunil_wallet_key'}),
- 'pool': pool_['handle'],
- }
- await create_wallet(sunil)
- (sunil['did'], sunil['key']) = await did.create_and_store_my_did(sunil['wallet'], "{}")
- print("\"Sunil\" -> Create and store \"Sunil\" Master Secret in Wallet")
- sunil['master_secret_id'] = await anoncreds.prover_create_master_secret(sunil['wallet'], None)
- # ------------------------------------------------------------
- # Sunil getting PropertyDetails from Government
- # University creates transcript credential offer
- print("==============================")
- print("=== Getting PropertyDetails with Government ==")
- print("==============================")
- print("\"Government\" -> Create \"PropertyDetails\" Credential Offer for Sunil")
- government['propertyDetails_cred_offer'] = \
- await anoncreds.issuer_create_credential_offer(government['wallet'], government['propertyDetails_cred_def_id'])
- print("\"Government\" -> Send \"PropertyDetails\" Credential Offer to Alice")
- # Over Network
- sunil['propertyDetails_cred_offer'] = government['propertyDetails_cred_offer']
- print(sunil['propertyDetails_cred_offer'])
- # Alice prepares a transcript credential request
- propertyDetails_cred_offer_object = json.loads(sunil['propertyDetails_cred_offer'])
- sunil['propertyDetails_schema_id'] = propertyDetails_cred_offer_object['schema_id']
- sunil['propertyDetails_cred_def_id'] = propertyDetails_cred_offer_object['cred_def_id']
- print("\"Sunil\" -> Get \"Sunil PropertyDetails\" Credential Definition from Ledger")
- (sunil['government_propertyDetails_cred_def_id'], sunil['government_propertyDetails_cred_def']) = \
- await get_cred_def(sunil['pool'], sunil['did'], sunil['propertyDetails_cred_def_id'])
- print("\"Sunil\" -> Create \"PropertyDetails\" Credential Request for Government")
- (sunil['propertyDetails_cred_request'], sunil['propertyDetails_cred_request_metadata']) = \
- await anoncreds.prover_create_credential_req(sunil['wallet'], sunil['did'],
- sunil['propertyDetails_cred_offer'],
- sunil['government_propertyDetails_cred_def'],
- sunil['master_secret_id'])
- print("\"Sunil\" -> Send \"PropertyDetails\" Credential Request to Government")
- # Over Network
- government['propertyDetails_cred_request'] = sunil['propertyDetails_cred_request']
- # University issues credential to alice ----------------
- print("\"Government\" -> Create \"PropertyDetails\" Credential for Sunil")
- government['sunil_propertyDetails_cred_values'] = json.dumps({
- "owner_first_name": {"raw": "Sunil", "encoded": "1139481716457488690172217916278103335"},
- "owner_last_name": {"raw": "Dey", "encoded": "5321642780241790123587902456789123452"},
- "address_of_property": {"raw": "M G Road, Chennai", "encoded": "5321642780241790123587902456789123454"},
- "owner_since_year": {"raw": "2005", "encoded": "2005"},
- "property_value_estimate": {"raw": "1000000", "encoded": "1000000"}
- })
- government['propertyDetails_cred'], _, _ = \
- await anoncreds.issuer_create_credential(government['wallet'], government['propertyDetails_cred_offer'],
- government['propertyDetails_cred_request'],
- government['sunil_propertyDetails_cred_values'], None, None)
- print("\"Government\" -> Send \"PropertyDetails\" Credential to Sunil")
- print(government['propertyDetails_cred'])
- # Over the network
- sunil['propertyDetails_cred'] = government['propertyDetails_cred']
- print("\"Sunil\" -> Store \"PropertyDetails\" Credential from Government")
- _, sunil['propertyDetails_cred_def'] = await get_cred_def(sunil['pool'], sunil['did'],
- sunil['propertyDetails_cred_def_id'])
- await anoncreds.prover_store_credential(sunil['wallet'], None, sunil['propertyDetails_cred_request_metadata'],
- sunil['propertyDetails_cred'], sunil['propertyDetails_cred_def'], None)
- # ------------------------------------------------------------
- # Sunil getting BonafideStudent from IIT Kharagpur
- # University creates transcript credential offer
- print("==============================")
- print("=== Getting BonafideStudent with IIT Kharagpur ==")
- print("==============================")
- print("\"IIT Kharagpur\" -> Create \"BonafideStudent\" Credential Offer for Sunil")
- iitkgp['bonafideStudent_cred_offer'] = \
- await anoncreds.issuer_create_credential_offer(iitkgp['wallet'], iitkgp['bonafideStudent_cred_def_id'])
- print("\"IIT Kharagpur\" -> Send \"BonafideStudent\" Credential Offer to Alice")
- # Over Network
- sunil['bonafideStudent_cred_offer'] = iitkgp['bonafideStudent_cred_offer']
- print(sunil['bonafideStudent_cred_offer'])
- # Alice prepares a transcript credential request
- bonafideStudent_cred_offer_object = json.loads(sunil['bonafideStudent_cred_offer'])
- sunil['bonafideStudent_schema_id'] = bonafideStudent_cred_offer_object['schema_id']
- sunil['bonafideStudent_cred_def_id'] = bonafideStudent_cred_offer_object['cred_def_id']
- print("\"Sunil\" -> Get \"IIT Kharagpur BonafideStudent\" Credential Definition from Ledger")
- (sunil['iitkgp_bonafideStudent_cred_def_id'], sunil['iitkgp_bonafideStudent_cred_def']) = \
- await get_cred_def(sunil['pool'], sunil['did'], sunil['bonafideStudent_cred_def_id'])
- print("\"Sunil\" -> Create \"BonafideStudent\" Credential Request for IIT Kharagpur")
- (sunil['bonafideStudent_cred_request'], sunil['bonafideStudent_cred_request_metadata']) = \
- await anoncreds.prover_create_credential_req(sunil['wallet'], sunil['did'],
- sunil['bonafideStudent_cred_offer'],
- sunil['iitkgp_bonafideStudent_cred_def'],
- sunil['master_secret_id'])
- print("\"Sunil\" -> Send \"BonafideStudent\" Credential Request to IIT Kharagpur")
- # Over Network
- iitkgp['bonafideStudent_cred_request'] = sunil['bonafideStudent_cred_request']
- # University issues credential to alice ----------------
- print("\"IIT Kharagpur\" -> Create \"BonafideStudent\" Credential for Sunil")
- iitkgp['sunil_bonafideStudent_cred_values'] = json.dumps({
- "student_first_name": {"raw": "Sunil", "encoded": "1139481716457488690172217916278103335"},
- "student_last_name": {"raw": "Dey", "encoded": "5321642780241790123587902456789123452"},
- "student_since_year": {"raw": "2021", "encoded": "2021"},
- "department": {"raw": "Computer Science and Engineering", "encoded": "53216427802417901235879024567891234521212"},
- "course_name": {"raw": "Mtech", "encoded": "53216427802417901235879024567891"}
- })
- iitkgp['bonafideStudent_cred'], _, _ = \
- await anoncreds.issuer_create_credential(iitkgp['wallet'], iitkgp['bonafideStudent_cred_offer'],
- iitkgp['bonafideStudent_cred_request'],
- iitkgp['sunil_bonafideStudent_cred_values'], None, None)
- print("\"IIT Kharagpur\" -> Send \"BonafideStudent\" Credential to Sunil")
- print(iitkgp['bonafideStudent_cred'])
- # Over the network
- sunil['bonafideStudent_cred'] = iitkgp['bonafideStudent_cred']
- print("\"Sunil\" -> Store \"BonafideStudent\" Credential from IIT Kharagpur")
- _, sunil['bonafideStudent_cred_def'] = await get_cred_def(sunil['pool'], sunil['did'],
- sunil['bonafideStudent_cred_def_id'])
- await anoncreds.prover_store_credential(sunil['wallet'], None, sunil['bonafideStudent_cred_request_metadata'],
- sunil['bonafideStudent_cred'], sunil['bonafideStudent_cred_def'], None)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement