Skip to main content

Python SDK allows python developers to securely upload and download a file to IPFS, end-to-end encrypting data with keys from NuCypher network

Project description

NuCypher IPFS

This Python SDK allows python developer experiment NuCypher network to securely upload and download your files to IPFS.

Installation

install with pip:

pip install nucypher-ipfs 

If runs into connect module issue, it may cause of duplicate dependencies, fix by

pip uninstall ipfs-api ipfsapi
pip install ipfsapi

Usage

To use this, you must first import it and specify host name and port of a runnning instance of Ursula:

>>> import nucypher_ipfs

>>> client = nucypher_ipfs.connect_ursula("https://localhost:9151")

This current version connects to public IPFS gateway of Infura through API thus no need to setup additional IPFS host.

Now that you have a client instance, you can make requests and process responses from the service. To begin we apparently need to get a public key of our recipient or we can generate a new one from following:

>>> recipient_privkeys, recipient_pubkeys = client.generate_recipient_keys()

Policy public keys will be required for the data owner to encrypt the data that belongs to the policy:

>>> policy_pubkey = client.generate_owner_policy_public_key(max_days=5)

Specify the file to be uploaded to IPFS network, the hash of our encrypted file will be returned when it finish.

>>> filename = "test.txt"

>>> receipt = client.uploadFile(filename=filename , policy_pubkey=policy_pubkey)
{'data_source_public_key': ..., 'hash_key': 'Qmd9RNRiyT6SUMPpxWJoRmZMVGEEMcBaPRKY6EdUGTvaLk'}

We can then take a look to our encrypted data by opening:

https://gateway.ipfs.io/ipfs/<your hash here>

A recipient can be deligated by provide their public key:

>>> policy_info = client.authorize(recipient_pubkeys=recipient_pubkeys, max_days=5)

Once eveything is ready, the recipient can now able to decrypt the file and download to the local machine:

>>> client.downloadFile(downloadFilename="downloadFile.txt",
        recipient_privkeys=recipient_privkeys, 
        receipt=receipt, 
        policy_info=policy_info)

Documentation

More detailed information on NuCypher:

https://github.com/nucypher/nucypher

License

This code is distributed under the terms of the MIT license. Details can be found in the file LICENSE in this repository.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nucypher-ipfs-0.0.5.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

nucypher_ipfs-0.0.5-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file nucypher-ipfs-0.0.5.tar.gz.

File metadata

  • Download URL: nucypher-ipfs-0.0.5.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2

File hashes

Hashes for nucypher-ipfs-0.0.5.tar.gz
Algorithm Hash digest
SHA256 e6c1b8624434e14a9c7e761828378146e7b322f0e3b0975a44bc1f1b347113c4
MD5 a0ede99acfe518d4680d9f5258df6a1b
BLAKE2b-256 0720b8358f602234bf0f2f5800930ef95960968b3cfd6a6d4347af3fc76cb073

See more details on using hashes here.

File details

Details for the file nucypher_ipfs-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: nucypher_ipfs-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 5.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2

File hashes

Hashes for nucypher_ipfs-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 aac4501dc982295282b9da45776e436c9242d166614fd1017b53fc4f31b1e573
MD5 30dc83a6698bb63d6f6712465c23524a
BLAKE2b-256 dd51a658d6dd961d4f17a556dcb1413bda5346a4e7c80b7db50adc40f83f221c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page