{ "info": { "author": "Finema Co., Ltd.", "author_email": "hi@finema.co", "bugtrack_url": null, "classifiers": [ "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# Example Signer Usage\n\n```python\nfrom IDINSDK import IDINSigner, IDINVerifier\n\nsigner = IDINSigner(\"\"\"-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIO+qNUJs2qNN2seIUsXuIYJtg1cw4kY7F2SGl+ovvItQoAoGCCqGSM49\nAwEHoUQDQgAE4PU/X1iUmtSlV0tBIA7rwz3wYkhXEGhraj69x0oG0l7GCgH+orX6\nNYoaA5oG9Dme+qMl0xsXYOgyrRdatEQQzw==\n-----END EC PRIVATE KEY-----\"\"\", key_format='pem')\n\nsigner = IDINSigner()\nprint('Private Key - PEM')\nprint(signer.to_pem())\nprint()\n\nprint('Private Key - HEX')\nprint(signer.to_hex())\nprint()\n\nprint('Sign data - hello')\nsignature = signer.sign(b'hello')\nprint(signature)\nprint()\n\nverifier = signer.get_verifier()\nprint('Public Key - PEM')\nprint(verifier.to_pem())\nprint()\n\nprint('Public Key - HEX')\nprint(verifier.to_hex())\nprint()\n\nprint('Verify data - hello')\nprint(verifier.verify(signature, 'hello'))\nprint()\n\nprint('Verify data - hello2')\nprint(verifier.verify(signature, 'hello2'))\nprint()\n\nverifier = IDINVerifier(verifier.to_hex(), key_format='hex')\nprint('Public Key - PEM')\nprint(verifier.to_pem())\nprint()\n\nprint('Public Key - HEX')\nprint(verifier.to_hex())\nprint()\n\nprint('Verify data - hello')\nprint(verifier.verify(signature, 'hello'))\nprint()\n\nprint('Verify data - hello2')\nprint(verifier.verify(signature, 'hello2'))\nprint()\n```\n\n# Example API usage\n\n```python\nfrom IDINSDK import IDINAPI, IDINSigner\nimport pprint, time\n\n# API\napi = IDINAPI(debug=True)\n\nprint('### Generate keypair')\nsigner = IDINSigner()\nprint('[+] Private Key - HEX')\nprint(signer.to_hex())\nverifier = signer.get_verifier()\nprint('[+] Public Key - HEX')\nprint(verifier.to_hex())\nprint()\n\n\nprint('### Create DID')\ndid_address = api.did_create(signer)\nprint('[+] api.did_create() => DID address')\nprint(did_address)\nprint()\n\n\nprint('### Generate new keypair')\nsigner2 = IDINSigner()\nprint('[+] Private Key - HEX')\nprint(signer2.to_hex())\nverifier2 = signer2.get_verifier()\nprint('[+] Public Key 2 - HEX')\nprint(verifier2.to_hex())\nprint()\n\n\nprint('### Add new keypair to DID')\npublic_key_to_add = verifier2.to_hex()\nprint('[+] api.did_add_public_key_sign() => tx body hex')\nsignature_of_public_key_to_add = api.did_add_public_key_sign(did_address, signer2)\ntx_hash = api.did_add_public_key(did_address, signer, public_key_to_add, signature_of_public_key_to_add, async_tx=False)\nprint('[+] api.did_add_public_key() => transaction hash')\nprint(tx_hash)\n\nprint('[+] Waiting for block to be commited')\ntime.sleep(5)\n\nprint('### List active public key of DID')\nprint('[+] api.did_list_public_keys() => json')\npprint.pprint(api.did_list_public_keys(did_address))\n\n\nprint('### Get public key detail of DID')\nprint('[+] api.did_get_public_key_detail() => json')\npprint.pprint(api.did_get_public_key_detail(did_address, public_key_to_add))\n\n\nprint('### Remove public key from DID')\nprint('[+] api.did_remove_public_key() => transaction hash')\npprint.pprint(api.did_remove_public_key(did_address, signer, public_key_to_add))\n\n\nprint('### Register DID recovery')\nprint('[#] Generate keypair for recovery DID test')\nsigner2 = IDINSigner()\nprint('[+] Private Key - HEX')\nprint(signer2.to_hex())\nverifier2 = signer2.get_verifier()\nprint('[+] Public Key - HEX')\nprint(verifier2.to_hex())\n\nprint('[#] Create DID for recovery DID test')\ndid_address2 = api.did_create(signer2)\nprint('[+] api.did_create() => DID address')\nprint(did_address2)\n\nprint('[#] Sign and do recovery registration')\nprint('[+] api.did_recovery_register_sign() => tx body json')\narray_of_payload = []\narray_of_payload.append(api.did_recovery_register_sign(did_address2, signer2, did_address))\npprint.pprint(array_of_payload)\nprint('[+] api.did_recovery_register() => transaction hash')\ntx_hash = api.did_recovery_register(did_address, signer, array_of_payload, async_tx=False)\nprint(tx_hash)\n\n\nprint('### DID recovery')\nprint('[#] Generate new keypair for recovery DID')\nsigner3 = IDINSigner()\nprint('[+] Private Key - HEX')\nprint(signer3.to_hex())\nverifier3 = signer3.get_verifier()\nprint('[+] Public Key - HEX')\nprint(verifier3.to_hex())\n\nprint('[#] Sign and do recovery')\nprint('[+] api.did_recovery_sign() => tx body json')\narray_of_payload = []\narray_of_payload.append(api.did_recovery_sign(verifier3.to_hex(), signer2, did_address2, did_address))\npprint.pprint(array_of_payload)\nprint('[+] api.did_recovery() => transaction hash')\ntx_hash = api.did_recovery(did_address, signer3, array_of_payload)\nprint(tx_hash)\n\n\nprint('### VC Register')\nprint('[+] api.vc_register() => transaction hash')\ntx_hash = api.vc_register(did_address, signer, '9ac2281f433f7354af0d873a696e1b1c11756f5c05d251e44117525dbb09aa65')\nprint(tx_hash)\n\n\nprint('### VC Revoke')\nprint('[+] api.vc_revoke() => transaction hash')\ntx_hash = api.vc_revoke(did_address, signer, '9ac2281f433f7354af0d873a696e1b1c11756f5c05d251e44117525dbb09aa65')\nprint(tx_hash)\n\n# Warning - this is a mock data\nprint('### VC Verify')\nprint('[+] api.vc_verify() => True/False')\nvc = \"\"\"{\n \"data\": \"eyJAY29udGV4dCI6IFsiaHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMvdjEiXSwgImNyZWRlbnRpYWxTdWJqZWN0IjogeyJjYW1wdXNfbmFtZSI6ICJcdTBlMDJcdTBlMmRcdTBlMTlcdTBlNDFcdTBlMDFcdTBlNDhcdTBlMTkiLCAiZmFjdWx0eV9uYW1lIjogIlx1MGUwNFx1MGUxM1x1MGUzMFx1MGUyYVx1MGUxNlx1MGUzMlx1MGUxYlx1MGUzMVx1MGUxNVx1MGUyMlx1MGUwMVx1MGUyM1x1MGUyM1x1MGUyMVx1MGUyOFx1MGUzMlx1MGUyYVx1MGUxNVx1MGUyM1x1MGU0YyIsICJmaXJzdF9uYW1lX2VuIjogIkRlbW8iLCAiZmlyc3RfbmFtZV90aCI6ICJcdTBlMTdcdTBlMTRcdTBlMmFcdTBlMmRcdTBlMWEiLCAiaWQiOiAiZGlkOmlkaW46aW9VZ3NFVVUyQzJvNkoyMnhpemppeFRXZEZNQXhjZnZzMyIsICJsYXN0X25hbWVfZW4iOiAiU3lzdGVtIiwgImxhc3RfbmFtZV90aCI6ICJcdTBlMjNcdTBlMzBcdTBlMWFcdTBlMWEiLCAibWFqb3JfbmFtZSI6ICJcdTBlMmFcdTBlMTZcdTBlMzJcdTBlMWJcdTBlMzFcdTBlMTVcdTBlMjJcdTBlMDFcdTBlMjNcdTBlMjNcdTBlMjFcdTBlMjhcdTBlMzJcdTBlMmFcdTBlMTVcdTBlMjNcdTBlMWFcdTBlMzFcdTBlMTNcdTBlMTFcdTBlMzRcdTBlMTUiLCAic3R1ZGVudF9pZCI6ICI5OTk5OTk5OTk5IiwgInRpdGxlX2VuIjogIk1yLiIsICJ0aXRsZV90aCI6ICJcdTBlMTlcdTBlMzJcdTBlMjIifSwgImV4cGlyYXRpb25EYXRlIjogIjIwMjMtMDktMThUMDk6NTE6MDErMDc6MDAiLCAiaWQiOiAiMjA4OTUxODQwM2U3OWYzOTBmMDJlN2VjNTM0ZGRlNDA3MThlNWI0ZmMwYzBiMDM0Mjg5NjE2Mjk5NGM1MzNiNyIsICJpc3N1YW5jZURhdGUiOiAiMjAxOS0wOS0xOVQwOTo1MTowMSswNzowMCIsICJpc3N1ZXIiOiAiZGlkOmlkaW46aWJ2OGVUcUhyR1ZtNkY1aXY0dFhoUjRRZkJKUHg5aWFoWCIsICJ0eXBlIjogWyJLS1UgSUQgQ2FyZCJdfQ==\",\n \"proof\": {\n \"created\": \"2019-09-19T09:51:01+07:00\",\n \"type\": \"Secp256r1Signature2018\",\n \"proofPurpose\": \"assertionMethod\",\n \"verificationMethod\": \"did:idin:ibv8eTqHrGVm6F5iv4tXhR4QfBJPx9iahX\",\n \"signature\": \"82c879fbc60f8c0b3e7de7858a551bbbe2b9e8e95ba9491a6140fcca2d070d1989003b6b6d3e80b2e526e529f6858c7a68d08219ec11c9a08ee6506abfe134de\"\n }\n}\"\"\"\nresult = api.vc_verify(vc)\nprint(result)\n\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://git.finema.co/finema/idinsdk-python", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "IDINSDK", "package_url": "https://pypi.org/project/IDINSDK/", "platform": "", "project_url": "https://pypi.org/project/IDINSDK/", "project_urls": { "Homepage": "https://git.finema.co/finema/idinsdk-python" }, "release_url": "https://pypi.org/project/IDINSDK/0.0.2/", "requires_dist": null, "requires_python": ">=3.6", "summary": "Python SDK for IDIN Blockchain API", "version": "0.0.2" }, "last_serial": 5943794, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "1238a0c26570ddea133a765c2bd10d4e", "sha256": "ee340dd7d658133450c0527417e4471b2916b112b5ba9bc54013ffa5f47898cb" }, "downloads": -1, "filename": "IDINSDK-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "1238a0c26570ddea133a765c2bd10d4e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 5621, "upload_time": "2019-10-04T11:33:28", "url": "https://files.pythonhosted.org/packages/e5/3f/4ec1bae46c0e817b59d6c17b0219f58b55c6513f3d5af80e3667f3683713/IDINSDK-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0f00f1f5ace6b5634ab0191bcf5bcde5", "sha256": "c00515b0a1d690af38205d31cef703b17a6a1b27a1268535ad8e90f3c3bf706f" }, "downloads": -1, "filename": "IDINSDK-0.0.1.tar.gz", "has_sig": false, "md5_digest": "0f00f1f5ace6b5634ab0191bcf5bcde5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5723, "upload_time": "2019-10-04T11:33:31", "url": "https://files.pythonhosted.org/packages/71/c4/b98bd384307c769e34be694fc61b0baa8123f92ebafbb10764132dace7b1/IDINSDK-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "ccfe2cb52a9d4b93616be247b1f46def", "sha256": "e39c32a06fe0186de6226059ba50bb646a24310b22f4d201f9a4c88b8c2ed269" }, "downloads": -1, "filename": "IDINSDK-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ccfe2cb52a9d4b93616be247b1f46def", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 5726, "upload_time": "2019-10-08T09:17:17", "url": "https://files.pythonhosted.org/packages/a6/8d/79809cff1df9fd8d1f1635336526aadfc4b4253f374a8da86b12c57f4fb8/IDINSDK-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "61e6325a2f09507bac76726f68cc299c", "sha256": "35bd33b088573efc794d065b3d197869948fb9628c28e8438f448e0410c368ff" }, "downloads": -1, "filename": "IDINSDK-0.0.2.tar.gz", "has_sig": false, "md5_digest": "61e6325a2f09507bac76726f68cc299c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5813, "upload_time": "2019-10-08T09:17:20", "url": "https://files.pythonhosted.org/packages/e2/1e/7bc41e9fdebaa5847ccd45d045011c412309f8eb28e8476fa3658a7b9009/IDINSDK-0.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ccfe2cb52a9d4b93616be247b1f46def", "sha256": "e39c32a06fe0186de6226059ba50bb646a24310b22f4d201f9a4c88b8c2ed269" }, "downloads": -1, "filename": "IDINSDK-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ccfe2cb52a9d4b93616be247b1f46def", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 5726, "upload_time": "2019-10-08T09:17:17", "url": "https://files.pythonhosted.org/packages/a6/8d/79809cff1df9fd8d1f1635336526aadfc4b4253f374a8da86b12c57f4fb8/IDINSDK-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "61e6325a2f09507bac76726f68cc299c", "sha256": "35bd33b088573efc794d065b3d197869948fb9628c28e8438f448e0410c368ff" }, "downloads": -1, "filename": "IDINSDK-0.0.2.tar.gz", "has_sig": false, "md5_digest": "61e6325a2f09507bac76726f68cc299c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5813, "upload_time": "2019-10-08T09:17:20", "url": "https://files.pythonhosted.org/packages/e2/1e/7bc41e9fdebaa5847ccd45d045011c412309f8eb28e8476fa3658a7b9009/IDINSDK-0.0.2.tar.gz" } ] }