Advertisement
grapheo12

PartC_BC

Nov 7th, 2021
295
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 8.53 KB | None | 0 0
  1.     print("\n\n\n======================================")
  2.     print("||               Part C             ||")
  3.     print("======================================")
  4.  
  5.     print("== Sunil setup ==")
  6.     print("------------------------------")
  7.  
  8.     sunil = {
  9.         'name': 'Sunil',
  10.         'wallet_config': json.dumps({'id': 'sunil_wallet'}),
  11.         'wallet_credentials': json.dumps({'key': 'sunil_wallet_key'}),
  12.         'pool': pool_['handle'],
  13.     }
  14.     await create_wallet(sunil)
  15.     (sunil['did'], sunil['key']) = await did.create_and_store_my_did(sunil['wallet'], "{}")
  16.    
  17.     print("\"Sunil\" -> Create and store \"Sunil\" Master Secret in Wallet")
  18.     sunil['master_secret_id'] = await anoncreds.prover_create_master_secret(sunil['wallet'], None)
  19.  
  20.     # ------------------------------------------------------------
  21.     #  Sunil getting PropertyDetails from Government
  22.  
  23.     # University creates transcript credential offer
  24.  
  25.     print("==============================")
  26.     print("=== Getting PropertyDetails with Government ==")
  27.     print("==============================")
  28.    
  29.     print("\"Government\" -> Create \"PropertyDetails\" Credential Offer for Sunil")
  30.     government['propertyDetails_cred_offer'] = \
  31.         await anoncreds.issuer_create_credential_offer(government['wallet'], government['propertyDetails_cred_def_id'])
  32.  
  33.     print("\"Government\" -> Send \"PropertyDetails\" Credential Offer to Alice")
  34.    
  35.     # Over Network
  36.     sunil['propertyDetails_cred_offer'] = government['propertyDetails_cred_offer']
  37.  
  38.     print(sunil['propertyDetails_cred_offer'])
  39.  
  40.     # Alice prepares a transcript credential request
  41.  
  42.     propertyDetails_cred_offer_object = json.loads(sunil['propertyDetails_cred_offer'])
  43.  
  44.     sunil['propertyDetails_schema_id'] = propertyDetails_cred_offer_object['schema_id']
  45.     sunil['propertyDetails_cred_def_id'] = propertyDetails_cred_offer_object['cred_def_id']
  46.  
  47.  
  48.     print("\"Sunil\" -> Get \"Sunil PropertyDetails\" Credential Definition from Ledger")
  49.     (sunil['government_propertyDetails_cred_def_id'], sunil['government_propertyDetails_cred_def']) = \
  50.         await get_cred_def(sunil['pool'], sunil['did'], sunil['propertyDetails_cred_def_id'])
  51.  
  52.     print("\"Sunil\" -> Create \"PropertyDetails\" Credential Request for Government")
  53.     (sunil['propertyDetails_cred_request'], sunil['propertyDetails_cred_request_metadata']) = \
  54.         await anoncreds.prover_create_credential_req(sunil['wallet'], sunil['did'],
  55.                                                      sunil['propertyDetails_cred_offer'],
  56.                                                      sunil['government_propertyDetails_cred_def'],
  57.                                                      sunil['master_secret_id'])
  58.  
  59.     print("\"Sunil\" -> Send \"PropertyDetails\" Credential Request to Government")
  60.  
  61.     # Over Network
  62.     government['propertyDetails_cred_request'] = sunil['propertyDetails_cred_request']
  63.  
  64.  
  65.     # University issues credential to alice ----------------
  66.     print("\"Government\" -> Create \"PropertyDetails\" Credential for Sunil")
  67.     government['sunil_propertyDetails_cred_values'] = json.dumps({
  68.         "owner_first_name": {"raw": "Sunil", "encoded": "1139481716457488690172217916278103335"},
  69.         "owner_last_name": {"raw": "Dey", "encoded": "5321642780241790123587902456789123452"},
  70.         "address_of_property": {"raw": "M G Road, Chennai", "encoded": "5321642780241790123587902456789123454"},
  71.         "owner_since_year": {"raw": "2005", "encoded": "2005"},
  72.         "property_value_estimate": {"raw": "1000000", "encoded": "1000000"}
  73.     })
  74.     government['propertyDetails_cred'], _, _ = \
  75.         await anoncreds.issuer_create_credential(government['wallet'], government['propertyDetails_cred_offer'],
  76.                                                  government['propertyDetails_cred_request'],
  77.                                                  government['sunil_propertyDetails_cred_values'], None, None)
  78.  
  79.     print("\"Government\" -> Send \"PropertyDetails\" Credential to Sunil")
  80.     print(government['propertyDetails_cred'])
  81.     # Over the network
  82.     sunil['propertyDetails_cred'] = government['propertyDetails_cred']
  83.  
  84.     print("\"Sunil\" -> Store \"PropertyDetails\" Credential from Government")
  85.     _, sunil['propertyDetails_cred_def'] = await get_cred_def(sunil['pool'], sunil['did'],
  86.                                                          sunil['propertyDetails_cred_def_id'])
  87.  
  88.     await anoncreds.prover_store_credential(sunil['wallet'], None, sunil['propertyDetails_cred_request_metadata'],
  89.                                             sunil['propertyDetails_cred'], sunil['propertyDetails_cred_def'], None)
  90.  
  91.    
  92.     # ------------------------------------------------------------
  93.     #  Sunil getting BonafideStudent from IIT Kharagpur
  94.  
  95.     # University creates transcript credential offer
  96.  
  97.     print("==============================")
  98.     print("=== Getting BonafideStudent with IIT Kharagpur ==")
  99.     print("==============================")
  100.    
  101.     print("\"IIT Kharagpur\" -> Create \"BonafideStudent\" Credential Offer for Sunil")
  102.     iitkgp['bonafideStudent_cred_offer'] = \
  103.         await anoncreds.issuer_create_credential_offer(iitkgp['wallet'], iitkgp['bonafideStudent_cred_def_id'])
  104.  
  105.     print("\"IIT Kharagpur\" -> Send \"BonafideStudent\" Credential Offer to Alice")
  106.    
  107.     # Over Network
  108.     sunil['bonafideStudent_cred_offer'] = iitkgp['bonafideStudent_cred_offer']
  109.  
  110.     print(sunil['bonafideStudent_cred_offer'])
  111.  
  112.     # Alice prepares a transcript credential request
  113.  
  114.     bonafideStudent_cred_offer_object = json.loads(sunil['bonafideStudent_cred_offer'])
  115.  
  116.     sunil['bonafideStudent_schema_id'] = bonafideStudent_cred_offer_object['schema_id']
  117.     sunil['bonafideStudent_cred_def_id'] = bonafideStudent_cred_offer_object['cred_def_id']
  118.  
  119.  
  120.     print("\"Sunil\" -> Get \"IIT Kharagpur BonafideStudent\" Credential Definition from Ledger")
  121.     (sunil['iitkgp_bonafideStudent_cred_def_id'], sunil['iitkgp_bonafideStudent_cred_def']) = \
  122.         await get_cred_def(sunil['pool'], sunil['did'], sunil['bonafideStudent_cred_def_id'])
  123.  
  124.     print("\"Sunil\" -> Create \"BonafideStudent\" Credential Request for IIT Kharagpur")
  125.     (sunil['bonafideStudent_cred_request'], sunil['bonafideStudent_cred_request_metadata']) = \
  126.         await anoncreds.prover_create_credential_req(sunil['wallet'], sunil['did'],
  127.                                                      sunil['bonafideStudent_cred_offer'],
  128.                                                      sunil['iitkgp_bonafideStudent_cred_def'],
  129.                                                      sunil['master_secret_id'])
  130.  
  131.     print("\"Sunil\" -> Send \"BonafideStudent\" Credential Request to IIT Kharagpur")
  132.  
  133.     # Over Network
  134.     iitkgp['bonafideStudent_cred_request'] = sunil['bonafideStudent_cred_request']
  135.  
  136.  
  137.     # University issues credential to alice ----------------
  138.     print("\"IIT Kharagpur\" -> Create \"BonafideStudent\" Credential for Sunil")
  139.     iitkgp['sunil_bonafideStudent_cred_values'] = json.dumps({
  140.         "student_first_name": {"raw": "Sunil", "encoded": "1139481716457488690172217916278103335"},
  141.         "student_last_name": {"raw": "Dey", "encoded": "5321642780241790123587902456789123452"},
  142.         "student_since_year": {"raw": "2021", "encoded": "2021"},
  143.         "department": {"raw": "Computer Science and Engineering", "encoded": "53216427802417901235879024567891234521212"},
  144.         "course_name": {"raw": "Mtech", "encoded": "53216427802417901235879024567891"}
  145.     })
  146.     iitkgp['bonafideStudent_cred'], _, _ = \
  147.         await anoncreds.issuer_create_credential(iitkgp['wallet'], iitkgp['bonafideStudent_cred_offer'],
  148.                                                  iitkgp['bonafideStudent_cred_request'],
  149.                                                  iitkgp['sunil_bonafideStudent_cred_values'], None, None)
  150.  
  151.     print("\"IIT Kharagpur\" -> Send \"BonafideStudent\" Credential to Sunil")
  152.     print(iitkgp['bonafideStudent_cred'])
  153.     # Over the network
  154.     sunil['bonafideStudent_cred'] = iitkgp['bonafideStudent_cred']
  155.  
  156.     print("\"Sunil\" -> Store \"BonafideStudent\" Credential from IIT Kharagpur")
  157.     _, sunil['bonafideStudent_cred_def'] = await get_cred_def(sunil['pool'], sunil['did'],
  158.                                                          sunil['bonafideStudent_cred_def_id'])
  159.  
  160.     await anoncreds.prover_store_credential(sunil['wallet'], None, sunil['bonafideStudent_cred_request_metadata'],
  161.                                             sunil['bonafideStudent_cred'], sunil['bonafideStudent_cred_def'], None)
  162.    
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement