verifiablesoftware / vsw

Core project of VerifiableSoftware
Apache License 2.0
1 stars 0 forks source link

"vsw verify" requested value outputs #110

Closed wenjing closed 3 years ago

wenjing commented 3 years ago

The verfify.json file contains two parts of fields. (1) specified values that must match (i.e. search fields) (2) specified values that must return/retrieve - these values are to be returned to the verifier and displayed for the user to examine

Currently, it seems all fields are treated as (1).

Let me illustrate this issue with an example. User A wants to install software "vsw". Before installation, she wants to make sure that the download link can be trusted (the file had not been hacked), and the software is from the true developer X. X is a well known software developer whose public DID is known to everyone. She also decides to use version 0.0.10 that contains an important bug fix she needs. She can do so by this verify.json:

{ "requested_attributes": [ { "schema_id": "UyDtaEFuTySAV9VZDykHkh:2:softwareCertificate:0.3", "issuer_did": "3EgDXzVZ2grXvYXp5MEBnV", "attr::softwarename::value": "vsw", "attr::softwareversion::value": "0.0.10", "attr::softwareurl::value": "https://files.pythonhosted.org/packages/ee/d3/bf2b994670dc77d29c657ffdf1fc763207502c5b95a308dac7db50c3a050/vsw-0.0.10.tar.gz" } ] }

In this example, the repo uses softwareName, softwareVersion, softwareUrl to find a matching credential, and returns softwareHash value. The verifier compares the returned softwareHash with the Hash calculated from the downloaded tar.gz. If they match, return positive.

Note that even though the softwareHash field is not explicitly requested, it is implied. The attr::softwarehash::value is treated as requested.

Now, consider the second example. User B wants to have the same assurance as User A, but also wants to know from which source code repository the "vsw" software v0.0.10 is derived from. He would like to do a source code audit himself, for instance. So, he is asking repo to return a correct value for a field (not to compare with something he already knows, he doesn't know.) He also wants to review how the developer built it. This is essentially a query of the authentic database. He can do so by:

{ "requested_attributes": [ { "schema_id": "UyDtaEFuTySAV9VZDykHkh:2:softwareCertificate:0.3", "issuer_did": "3EgDXzVZ2grXvYXp5MEBnV", "attr::softwarename::value": "vsw", "attr::softwareversion::value": "0.0.10", "attr::softwareurl::value": "https://files.pythonhosted.org/packages/ee/d3/bf2b994670dc77d29c657ffdf1fc763207502c5b95a308dac7db50c3a050/vsw-0.0.10.tar.gz" "attr::sourceurl::value": "", "attr::sourcedid::value": "", "attr::sourcehash::value": "", "attr::buildertooldidlist::value": "", "attr::dependencydidlist::value": "", "attr::buildlog::value": "", "attr::builderdid::value": "" } ] }

Here the empty string value implies a query. The repo should return their values from a matching credential.

In summary, here are to issues to fix:

(i) Support "" string as a request to return its value. {ii) The verify command should always print out returned value (in json is ok).

wenjing commented 3 years ago

Another way to look at it from this json structure of a presentation. The names are all the info to be returned. The verify.json file list is only the constrain part to match: 'presentation_request': { 'name': 'Proof of Software Certificate', 'version': '1.0', 'requested_attributes': { '0_software_certificate_uuid': { 'names': [ 'softwarename', 'softwareversion', 'developerdid', 'softwaredid', 'softwarehash', 'softwareurl', 'mediatype', 'sourcedid', 'sourceurl', 'sourcehash', 'buildertooldidlist', 'dependencydidlist', 'buildlog', 'builderdid' ], 'non_revoked': {'from': 0, 'to': 1622584411}, 'restrictions': [ { 'schema_id': 'UyDtaEFuTySAV9VZDykHkh:2:softwareCertificate:0.3', 'issuer_did': '3EgDXzVZ2grXvYXp5MEBnV', 'attr::softwarename::value': 'vsw', 'attr::softwareversion::value': '0.0.11', 'attr::softwareurl::value': 'https://files.pythonhosted.org/packages/af/a2/269b2 d19a6b9fd6dc2b504f91c7562fe9878b6edfecdc4a23407b0e9f872/vsw-0.0.11-py3-none-any.whl' } ] } }, 'requested_predicates': {}, 'nonce': '685348358638459761284423' },

wenjing commented 3 years ago

The same applies to "testCertificate" as well. 'presentation_request': { 'name': 'Proof of Software Certificate', 'version': '1.0', 'requested_attributes': { '1_test_certificate_uuid': { 'names': [ 'testerdid', 'testspecdid', 'testspecurl', 'testspechash', 'testresult', 'testresultdetaildid', 'testresultdetailurl', 'testresultdetailhash', 'comments', 'softwaredid', 'ranking' ], 'non_revoked': {'from': 0, 'to': 1622588371}, 'restrictions': [ { 'schema_id': 'UyDtaEFuTySAV9VZDykHkh:2:testCertificate:0.1', 'attr::testerdid::value': '3EgDXzVZ2grXvYXp5MEBnV', 'attr::softwaredid::value': 'Nmks4aByuqBfbhn1fGY5ew', 'attr::testspecurl::value': 'https://github.com/verifiablesoftware/vsw-repo/tree/master/tests', 'attr::testresult::value': 'Pass', 'attr::testresultdetailurl::value': 'https://github.com/verifiablesoftware/vsw-repo/actions' } ] } }, 'requested_predicates': {}, 'nonce': '228765495686007038593549' },

wenjing commented 3 years ago

The information is in the Presentation object (similar to "vsw list -p"). Print the sub-object: "requested_proof". Here is an example:

'requested_proof': { 'revealed_attrs': {}, 'revealed_attr_groups': { '0_software_certificate_uuid': { 'sub_proof_index': 0, 'values': { 'buildertooldidlist': { 'raw': '', 'encoded': '102987336249554097029535212322581322789799900648198034993379397001115665086549' }, 'softwarehash': { 'raw': 'z2d9pM8uz5CPu3tZ7xmyyNPVVWyMLzNLdXSRuHfhd5EiVB1VVey2hR3UaGQ9PhAx1Wh4yuMPc6zsE1LiJDNVdxSy5N', 'encoded': '12780441039413763077642702532216248602998773634090724917978692605609708690275' }, 'softwareurl': { 'raw': 'https://files.pythonhosted.org/packages/af/a2/269b2d19a6b9fd6dc2b504f91c7562fe9878b6e dfecdc4a23407b0e9f872/vsw-0.0.11-py3-none-any.whl', 'encoded': '53230171557720878823425978075631286588242450595207158701464928539381187189366' }, 'mediatype': { 'raw': '', 'encoded': '102987336249554097029535212322581322789799900648198034993379397001115665086549' }, 'softwarename': { 'raw': 'vsw', 'encoded': '27794724627924760946003145822168634251007853441043319696617228984540219434388' }, 'softwareversion': { 'raw': '0.0.11', 'encoded': '49513725895899689054064142250869158943483354144004310839609766134835162879760' }, 'sourceurl': { 'raw': 'https://files.pythonhosted.org/packages/7e/27/300a61d019fec87cc9104da199262bd01d15298dc8c21c79b0cb5ffddd5a/vsw-0.0.11.tar.gz', 'encoded': '94264147059808493236756018673486502755283721132118570832757932210166881055505' }, 'sourcehash': { 'raw': 'z2d9pM8uz5CPu3tZ7xmyyNPVVWyMLzNLdXSRuHfhd5EiVB1VVey2hR3UaGQ9PhAx1Wh4yuMPc6zsE1LiJDNVdxSy5N', 'encoded': '12780441039413763077642702532216248602998773634090724917978692605609708690275' }, 'builderdid': { 'raw': '', 'encoded': '102987336249554097029535212322581322789799900648198034993379397001115665086549' }, 'buildlog': { 'raw': 'Built on June 1, 2021.', 'encoded': '5630553555394944591009829812101555317731893293410240315677649807810830571333' }, 'dependencydidlist': { 'raw': '', 'encoded': '102987336249554097029535212322581322789799900648198034993379397001115665086549' }, 'softwaredid': { 'raw': 'Nmks4aByuqBfbhn1fGY5ew', 'encoded': '76013642476819247146339315223781028117232435365836418238299305449858832467544' }, 'developerdid': { 'raw': '3EgDXzVZ2grXvYXp5MEBnV', 'encoded': '16157738920236083153047542515358586549872689129205945393527671259156367213967' }, 'sourcedid': { 'raw': '', 'encoded': '102987336249554097029535212322581322789799900648198034993379397001115665086549' } } } }, 'self_attested_attrs': {}, 'unrevealed_attrs': {}, 'predicates': {} },

wenjing commented 3 years ago

v0.0.18

Printing presentation has wrong JSON format.

root@4d7cb3cff4ff:/# vsw list -p | python3 -c 'import json,sys;obj=json.load(sys.stdin);print(obj)' Traceback (most recent call last): File "", line 1, in File "/usr/lib/python3.6/json/init.py", line 299, in load parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw) File "/usr/lib/python3.6/json/init.py", line 354, in loads return _default_decoder.decode(s) File "/usr/lib/python3.6/json/decoder.py", line 339, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.6/json/decoder.py", line 355, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Invalid control character at: line 12 column 114 (char 1253) root@4d7cb3cff4ff:/#

wenjing commented 3 years ago

This printout is in INFO. Please use normal prints, and use consistent JSON format like in "vsw list -w".

2021-06-03 22:58:37 vsw.commands.verify INFO /usr/local/lib/python3.6/dist-packages/vsw/commands/verify.py {"trace": false, "updated_at": "2021-06-03 22:58:37.869231Z", "thread_id": "5fa0495f-9aec-4d11-9e2b-40075b8da319", "verified": "true", "role": "verifier", "auto_present": false, "presentation_request": {"name": "Proof of Software Certificate", "version": "1.0", "requested_attributes": {"0_software_certificate_uuid": {"names": ["softwarename", "softwareversion", "developerdid", "softwaredid", "softwarehash", "softwareurl", "mediatype", "sourcedid", "sourceurl", "sourcehash", "buildertooldidlist", "dependencydidlist", "buildlog", "builderdid"], "non_revoked": {"from": 0, "to": 1622761114}, "restrictions": [{"schema_id": "UyDtaEFuTySAV9VZDykHkh:2:softwareCertificate:0.3", "issuer_did": "A9cEertJWkV6zKDTwcuEho", "attr::softwarename::value": "vsw", "attr::softwareversion::value": "0.0.12"}]}}, "requested_predicates": {}, "nonce": "5703766220822152927377"}, "created_at": "2021-06-03 22:58:34.350400Z", "presentation_request_dict": {"@type": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/present-proof/1.0/request-presentation", "@id": "5fa0495f-9aec-4d11-9e2b-40075b8da319", "request_presentations~attach": [{"@id": "libindy-request-presentation-0", "mime-type": "application/json", "data": {"base64": "eyJuYW1lIjogIlByb29mIG9mIFNvZnR3YXJlIENlcnRpZmljYXRlIiwgInZlcnNpb24iOiAiMS4wIiwgInJlcXVlc3RlZF9hdHRyaWJ1dGVzIjogeyIwX3NvZnR3YXJlX2NlcnRpZmljYXRlX3V1aWQiOiB7Im5hbWVzIjogWyJzb2Z0d2FyZW5hbWUiLCAic29mdHdhcmV2ZXJzaW9uIiwgImRldmVsb3BlcmRpZCIsICJzb2Z0d2FyZWRpZCIsICJzb2Z0d2FyZWhhc2giLCAic29mdHdhcmV1cmwiLCAibWVkaWF0eXBlIiwgInNvdXJjZWRpZCIsICJzb3VyY2V1cmwiLCAic291cmNlaGFzaCIsICJidWlsZGVydG9vbGRpZGxpc3QiLCAiZGVwZW5kZW5jeWRpZGxpc3QiLCAiYnVpbGRsb2ciLCAiYnVpbGRlcmRpZCJdLCAibm9uX3Jldm9rZWQiOiB7ImZyb20iOiAwLCAidG8iOiAxNjIyNzYxMTE0fSwgInJlc3RyaWN0aW9ucyI6IFt7InNjaGVtYV9pZCI6ICJVeUR0YUVGdVR5U0FWOVZaRHlrSGtoOjI6c29mdHdhcmVDZXJ0aWZpY2F0ZTowLjMiLCAiaXNzdWVyX2RpZCI6ICJBOWNFZXJ0SldrVjZ6S0RUd2N1RWhvIiwgImF0dHI6OnNvZnR3YXJlbmFtZTo6dmFsdWUiOiAidnN3IiwgImF0dHI6OnNvZnR3YXJldmVyc2lvbjo6dmFsdWUiOiAiMC4wLjEyIn1dfX0sICJyZXF1ZXN0ZWRfcHJlZGljYXRlcyI6IHt9LCAibm9uY2UiOiAiNTcwMzc2NjIyMDgyMjE1MjkyNzM3NyJ9"}}]}, "presentation": {"proof": {"proofs": [{"primary_proof": {"eq_proof": {"revealed_attrs": {"builderdid": "102987336249554097029535212322581322789799900648198034993379397001115665086549", "buildertooldidlist": "102987336249554097029535212322581322789799900648198034993379397001115665086549", "buildlog": "102987336249554097029535212322581322789799900648198034993379397001115665086549", "dependencydidlist": "102987336249554097029535212322581322789799900648198034993379397001115665086549", "developerdid": "49051138543240507531368224277066083221192240786160112780064605078737594528486", "mediatype": "102987336249554097029535212322581322789799900648198034993379397001115665086549", "softwaredid": "66794652378837012922532538839058369512494939019242473904555000669312869534124", "softwarehash": "12780441039413763077642702532216248602998773634090724917978692605609708690275", "softwarename": "27794724627924760946003145822168634251007853441043319696617228984540219434388", "softwareurl": "73062683522278597819001841450292147778658666029279859967682915439666294026933", "softwareversion": "53030131449725474853382894513262274346541636975091994549159809983838174897814", "sourcedid": "102987336249554097029535212322581322789799900648198034993379397001115665086549", "sourcehash": "12780441039413763077642702532216248602998773634090724917978692605609708690275", "sourceurl": "72707425625350121263488093498172576649202434780715695018733508815247585250985"}, "a_prime": "79427822444658711937992134948470791791095296950818499744687802586067041718947464982531802386519362771968848864233375478837498852845423244454909483204731621390745097630791242453267619249268634417074271407851285394105722922108808078411457375788251821666138524143935107610510020536133198133828103095684611868824828753891361310418677418697169152011116839709993222600103948325416552399542577160774181373387686444148259374842504064784429996981478549227280570559285310366770867655241802147043622918093721353436452523520598064478170614735555458542661835631341806060841266381635266777743018325319292288964511864802116731427416", "e": "132241614739090055675467193818441778575698177672487084699243451010686118387329195301720424741678479063421726427128843571738148264496929676", "v": "485933262185993225423137735413123240629399601516903846050588255876870540368145951708004308270868019987270281260066021625317427477175077712475559872806585279449818645766430759824040360082564540291343757863932340036354175088468591244737390406557951346609805231021982707181433775758084641238823493371490118435508591986023555667797061824956799240960773493261693729614538820759191066407425522784954376723872945263395258532319652541285212533783617904216378573078926157973513843422573486196889713422080023819964594008566020796113613378198147013407410361479137537307778513185890018872762317636469278835085733967199087911301455080065523368384898097793555053033830542089317426620155742212248571656186005890837042054596855850691889487774499612622699104665028897205287473524640693489244458596290400733176534930602405379057440990873940082025621099973194827740650439544743186391933768433296906337553255408021323987134086461836839069319", "m": {"master_secret": "9494926294210729533757860841579114741084846666621243517670057368504280080272953031735844543045656648334017055379177682472421709352580078643817003138801338101084075604678733927643"}, "m2": "788049235699637068794194603901705557827509666894262178940422166367086363108493568542833991770026986927102681324371924269304144948398891751948420364120708"}, "ge_proofs": []}, "non_revoc_proof": {"x_list": {"rho": "1508AE55DB8B205E348D5D697057BE91C07D9597EE02E5FD25948AA52B699C14", "r": "05A7F3CCC1E49CA7A3B477122D98DABAC0885A20169DABA82A0596B657EFF98F", "r_prime": "1597DDCA0EBD62210537D03FF8D633975BCA300DDE118A6983E8A5ED1C68291F", "r_prime_prime": "154D8409A38FD737F5374B9311E685C12B2B161AAF048495AB21E57F82F19995", "r_prime_prime_prime": "0ACE3B7C2AB799C14AB80B60D01E4BB3F8160DB03DB8C048496B9D70680C04E2", "o": "0A7DA2D754DD0CBFC3DDA69E2C9EE8BF5B8CFE1654EC93D3A9C3808C199A1160", "o_prime": "09474A6963E55244E0D27DD4603152678D3B829E1B191D1F5D3D2198E057D7E0", "m": "1AAD2E05BAE74EADA978A7A53AE91558DC046B9E2916C898E6D37045F2773183", "m_prime": "0FF88B5DD32AABA622850DC2C57ED33E6FE781CB00C2B31DC6DA36BA24B4D22F", "t": "146A8FFF9F41263E0AFD0CDE9B77B2C914673996E045B74BE567D44A21B5AD41", "t_prime": "111D08DAFEE447BBA62A3D916D23DE8640AB36A470ABE2989C60BECD10BF127E", "m2": "014D750FA0878C09277DF9107A41203509866ED123308BBE25E8CB68DD632A9E", "s": "0ECB932BBE23C5F10661CC617107335C0564368EA40FA2A411E9B337EA361255", "c": "222753BC0884A54EF85E1C4D037E50F1980663104A89D52E03F0BCB68DC9D2CD"}, "c_list": {"e": "6 3A4F0A795E5700581A3AEF5E15D530F3FB582596EA90328E829B3C5F95C3446A 4 210EB9423AE58B86EC45D29CEB76F7FE25B31CCAA42B4E41621B45EB839DB6BC 4 4105242748413DF105C41508D0E6E3A76CFD328998763982FFEC8FB7A821800D", "d": "6 4FB459B4C1E5AC7F032466E79001C21DCCFF27CDBD41D069FC31C26EF6A474D6 4 1C19CC764DD944AD068CBE5F3BEA78D47B713919892CC3C8E09D351E322C8238 4 349A1E52D35C11E510A236281D0DC0D93C637EFA825E3515A168D92AA9458761", "a": "6 54F18C5C39C3750D865FC24565AF00B21283F6943AC7A6A918088C5DD8FC49C1 4 31A1BB2F1ED49D9B27708E2B7CC51B79C1D46D72817337DB9D89C6B5B0BFC0A7 4 43A7CFAD66DD49853757C1472E8A7493CA28736B06C8F087BF543A26CD0D469D", "g": "6 67AFD09390F66C2CA3AEC739E71491D54442681BA2E67AC3A1B2C5196DCF8CA6 4 0B62CD3995BF3D42AD24BF20ACA4BD5DB30CDAC26BE6E9DFFE0FFD2E3398DE23 4 3D6D6D4A4929162140DDC6F96CE6F9C212F59B8F64256FCC658060C38BB9983A", "w": "21 12AD56BADACAFC6E7458C9015D46C55F752FE41A8684AB8169B07ED69BF76065F 21 12A84A63D645C6593B4AEA3F5E31A9BC195B15A5605EA759365C570A3971D19EC 6 502D24EE803525317E95C8463E0FBCF1977C8F54305DDBAD65F077CD95ED1210 4 373A22FEBD1FF38B3119251FC17126B138F53E9A1DB04FD7C0D2D9E7A74A77F1 6 830EFAA08E0FCD49F2215C3CC45E02B339CF645720D53D706D40FDD02038116A 4 24608CFBECD0ACAD28FB9594A30E96B6DA8708C10FD2090423BB395F9F370988", "s": "21 126C887740A2FEBAB769A9D4487CE3415E9839ED5C07F4DCA44C1DED2E75B6C0B 21 13476DBBC1E40EFDAA8F4C6D16D6430ECFC8EA69B6FBDDE2A478D95FD7557DFA9 6 6B91EE3D9351B88F1B417E2822F342285E5BCC64E46DE324B8BEE0C78F38AF44 4 1E5D867072F782C828B41956CF049C4B0DC4CF0D9BC42D46B68154BE3DBCA1E0 6 6A61AE9AF1AB31BECA91D95866C85FA9280B9893BF26D08BA60B284E634C8719 4 2D3217A2CCA813F43FE4130483BE837A517A5CD2669EBF8A67086956EDA4BE76", "u": "21 1140422B4509A3CF1D7C165B76299E31295B0333C01EC519A74ADAD7CD499A4AC 21 13D7CF17E5540358075142C83AA3D482AE01370619D2A861F262103F94E0135D0 6 7A81ECF5C1F18A80A8C9574C1B01F8069A9D5B20A6C8D44C611F012B1FEFA8AB 4 1A106DD6C66005927E611F11AF70B12E54F695460A51718F60D1ED81D8EBEFAA 6 83D3C60AC3A348E64F241CBB57C2BFAB164696A64BA39ABD411F8C3CDE09E916 4 0E0BE004E2A33337F4E49DC3CAD58E52763C0FFA6E0611B96546157CD899810F"}}}], "aggregated_proof": {"c_hash": "8699805319426161695799293724440839741584921820565508267564184619316585839026", "c_list": [[4, 37, 26, 215, 227, 154, 198, 209, 164, 77, 64, 63, 219, 162, 231, 238, 175, 139, 151, 195, 71, 1, 161, 117, 64, 35, 230, 208, 54, 234, 173, 201, 173, 21, 205, 241, 93, 38, 82, 194, 67, 82, 31, 193, 8, 136, 176, 212, 112, 125, 130, 32, 108, 20, 67, 148, 150, 6, 32, 190, 49, 32, 228, 237, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [4, 31, 171, 128, 234, 172, 66, 2, 30, 24, 27, 67, 17, 166, 24, 194, 18, 117, 175, 254, 226, 99, 75, 198, 157, 230, 138, 190, 17, 48, 95, 143, 231, 31, 172, 28, 62, 139, 204, 100, 122, 41, 174, 107, 47, 150, 6, 114, 227, 110, 17, 216, 50, 207, 108, 82, 190, 251, 129, 50, 237, 94, 149, 57, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [4, 22, 247, 81, 8, 208, 44, 229, 98, 153, 172, 113, 116, 44, 27, 50, 38, 196, 73, 243, 207, 33, 125, 82, 188, 147, 123, 186, 63, 154, 245, 18, 250, 31, 20, 125, 30, 157, 163, 57, 52, 32, 188, 11, 123, 129, 181, 136, 209, 28, 148, 26, 251, 247, 33, 73, 181, 64, 51, 50, 203, 0, 110, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [4, 18, 84, 133, 172, 134, 191, 219, 197, 67, 126, 116, 129, 213, 33, 23, 178, 252, 114, 155, 161, 183, 130, 42, 149, 42, 181, 192, 246, 34, 225, 144, 229, 2, 255, 115, 216, 198, 31, 220, 195, 81, 177, 194, 226, 114, 244, 126, 76, 249, 211, 37, 201, 216, 231, 105, 82, 84, 35, 193, 117, 215, 129, 211, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 167, 193, 145, 237, 7, 81, 164, 20, 114, 94, 234, 190, 5, 22, 133, 170, 181, 83, 203, 148, 116, 69, 11, 86, 216, 14, 217, 57, 243, 68, 43, 15, 224, 212, 174, 172, 233, 9, 78, 196, 218, 163, 119, 216, 24, 145, 201, 218, 169, 163, 61, 9, 124, 32, 54, 170, 232, 231, 42, 189, 242, 21, 159, 2, 199, 10, 6, 223, 217, 187, 86, 249, 59, 3, 255, 37, 165, 18, 185, 109, 127, 19, 70, 194, 129, 59, 181, 205, 177, 68, 28, 43, 92, 79, 12, 26, 138, 228, 217, 69, 172, 235, 123, 87, 55, 141, 107, 32, 2, 41, 94, 185, 198, 119, 109, 214, 107, 165, 39, 73, 134, 167, 7, 48, 134, 39, 175], [2, 182, 35, 27, 201, 54, 52, 27, 243, 185, 58, 211, 74, 133, 7, 90, 89, 38, 125, 53, 22, 52, 248, 95, 192, 148, 186, 14, 227, 238, 139, 31, 19, 140, 60, 247, 177, 187, 235, 216, 50, 13, 56, 91, 12, 253, 1, 111, 18, 170, 190, 123, 111, 90, 64, 70, 53, 245, 95, 85, 165, 107, 236, 215, 10, 251, 185, 184, 191, 59, 84, 63, 170, 45, 183, 185, 81, 159, 173, 39, 200, 9, 177, 227, 114, 235, 49, 208, 65, 83, 1, 15, 8, 94, 92, 77, 29, 155, 112, 91, 166, 50, 169, 49, 163, 156, 39, 154, 207, 139, 204, 156, 31, 218, 247, 245, 69, 27, 69, 80, 39, 157, 1, 59, 83, 184, 126, 146], [24, 59, 245, 38, 15, 253, 132, 5, 131, 10, 29, 186, 247, 43, 234, 2, 252, 172, 57, 125, 53, 8, 198, 184, 10, 20, 187, 130, 184, 186, 6, 45, 32, 117, 145, 190, 83, 235, 58, 11, 21, 242, 194, 152, 219, 65, 184, 70, 3, 255, 171, 18, 134, 54, 253, 71, 80, 123, 213, 16, 96, 84, 147, 191, 26, 130, 6, 154, 78, 160, 121, 187, 247, 149, 245, 142, 23, 102, 28, 63, 24, 188, 175, 199, 184, 198, 79, 111, 27, 172, 116, 188, 136, 86, 36, 153, 32, 131, 146, 237, 115, 185, 107, 119, 49, 209, 250, 7, 25, 231, 55, 44, 103, 225, 66, 75, 187, 163, 246, 199, 23, 69, 219, 211, 164, 56, 52, 53], [2, 117, 48, 134, 109, 68, 158, 157, 17, 108, 166, 5, 152, 149, 130, 15, 115, 126, 6, 254, 158, 154, 105, 86, 204, 135, 106, 47, 6, 20, 234, 207, 132, 36, 232, 16, 184, 242, 248, 130, 188, 8, 179, 150, 179, 33, 3, 116, 251, 219, 201, 215, 200, 158, 60, 140, 78, 232, 38, 166, 197, 248, 243, 180, 131, 33, 173, 244, 102, 109, 172, 153, 214, 24, 247, 164, 31, 76, 46, 196, 128, 52, 206, 101, 31, 190, 167, 214, 101, 243, 54, 6, 132, 60, 12, 19, 0, 129, 162, 135, 172, 127, 11, 140, 237, 15, 208, 16, 103, 200, 103, 235, 133, 160, 93, 70, 29, 49, 250, 40, 22, 204, 249, 212, 99, 206, 95, 34, 88, 167, 242, 75, 248, 38, 4, 118, 11, 222, 37, 1, 79, 11, 251, 47, 101, 106, 4, 7, 38, 62, 190, 79, 185, 116, 109, 181, 107, 80, 31, 89, 166, 106, 133, 44, 89, 210, 232, 81, 120, 45, 255, 30, 199, 50, 77, 153, 156, 249, 194, 81, 110, 241, 252, 26, 113, 209, 98, 42, 221, 52, 105, 29, 37, 18, 168, 9, 252, 232, 85, 59, 136, 35, 250, 79, 77, 208, 89, 229, 92, 11, 223, 46, 61, 102, 179, 56, 77, 206, 44, 190, 253, 46, 157, 53, 94, 162, 28, 223, 47, 65, 183, 98, 98, 97, 20, 100, 40, 150, 175, 32, 141, 74, 153, 102, 250, 180, 138, 234, 88, 36, 102, 206, 172, 107, 228, 90, 88]]}}, "requested_proof": {"revealed_attrs": {}, "revealed_attr_groups": {"0_software_certificate_uuid": {"sub_proof_index": 0, "values": {"dependencydidlist": {"raw": "", "encoded": "102987336249554097029535212322581322789799900648198034993379397001115665086549"}, "mediatype": {"raw": "", "encoded": "102987336249554097029535212322581322789799900648198034993379397001115665086549"}, "sourcehash": {"raw": "z2d9pM8uz5CPu3tZ7xmyyNPVVWyMLzNLdXSRuHfhd5EiVB1VVey2hR3UaGQ9PhAx1Wh4yuMPc6zsE1LiJDNVdxSy5N", "encoded": "12780441039413763077642702532216248602998773634090724917978692605609708690275"}, "builderdid": {"raw": "", "encoded": "102987336249554097029535212322581322789799900648198034993379397001115665086549"}, "softwarehash": {"raw": "z2d9pM8uz5CPu3tZ7xmyyNPVVWyMLzNLdXSRuHfhd5EiVB1VVey2hR3UaGQ9PhAx1Wh4yuMPc6zsE1LiJDNVdxSy5N", "encoded": "12780441039413763077642702532216248602998773634090724917978692605609708690275"}, "softwareurl": {"raw": "https://files.pythonhosted.org/packages/fb/1e/fc094758b2222b8510c17ff10b1e78fa4c4a84dd552b51c3ee48ccc03dbc/vsw-0.0.12-py3-none-any.whl", "encoded": "73062683522278597819001841450292147778658666029279859967682915439666294026933"}, "softwaredid": {"raw": "P9VxHNTAmn8LHnbXP95i4q", "encoded": "66794652378837012922532538839058369512494939019242473904555000669312869534124"}, "softwarename": {"raw": "vsw", "encoded": "27794724627924760946003145822168634251007853441043319696617228984540219434388"}, "softwareversion": {"raw": "0.0.12", "encoded": "53030131449725474853382894513262274346541636975091994549159809983838174897814"}, "developerdid": {"raw": "A9cEertJWkV6zKDTwcuEho", "encoded": "49051138543240507531368224277066083221192240786160112780064605078737594528486"}, "sourceurl": {"raw": "https://files.pythonhosted.org/packages/18/1f/a216dee58ac60805accce2e98d21af0e41255d2ef5311a730f1c084a4ebe/vsw-0.0.12.tar.gz", "encoded": "72707425625350121263488093498172576649202434780715695018733508815247585250985"}, "sourcedid": {"raw": "", "encoded": "102987336249554097029535212322581322789799900648198034993379397001115665086549"}, "buildertooldidlist": {"raw": "", "encoded": "102987336249554097029535212322581322789799900648198034993379397001115665086549"}, "buildlog": {"raw": "", "encoded": "102987336249554097029535212322581322789799900648198034993379397001115665086549"}}}}, "self_attested_attrs": {}, "unrevealed_attrs": {}, "predicates": {}}, "identifiers": [{"schema_id": "UyDtaEFuTySAV9VZDykHkh:2:softwareCertificate:0.3", "cred_def_id": "A9cEertJWkV6zKDTwcuEho:3:CL:3733:default", "rev_reg_id": "A9cEertJWkV6zKDTwcuEho:4:A9cEertJWkV6zKDTwcuEho:3:CL:3733:default:CL_ACCUM:48d46f9b-34dd-4ab1-8c25-02c4437ccfb4", "timestamp": 1622753831}]}, "connection_id": "3314afd8-16a2-447d-817a-7019d6ffb3f2", "initiator": "self", "state": "verified", "presentation_exchange_id": "d280c020-4dcc-4c3d-b040-94f13d970652"}

wenjing commented 3 years ago

verified in 0.0.20