All Projects → whs → ipfs-encrypted-share

whs / ipfs-encrypted-share

Licence: MIT license
IPFS Encrypted Share

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Labels

Projects that are alternatives of or similar to ipfs-encrypted-share

tevere
🏞 Decentralized DB over IPFS
Stars: ✭ 57 (+307.14%)
Mutual labels:  ipfs
dtinyurl
Dcentralized url shortening service base on ipfs
Stars: ✭ 19 (+35.71%)
Mutual labels:  ipfs
vocdoni-node
A set of libraries and tools for the Vocdoni decentralized backend infrastructure, the main ground of our universally verifiable, privacy-centric and scalable digital voting protocol
Stars: ✭ 58 (+314.29%)
Mutual labels:  ipfs
good-karma-kit
😇 A Docker Compose bundle to run on servers with spare CPU, RAM, disk, and bandwidth to help the world. Includes Tor, ArchiveWarrior, BOINC, and more...
Stars: ✭ 238 (+1600%)
Mutual labels:  ipfs
Starlog
Starlog: Metadata Blockchain based on Substrate
Stars: ✭ 32 (+128.57%)
Mutual labels:  ipfs
js-ipfs-mfs
[ARCHIVED] now part of the https://github.com/ipfs/js-ipfs repo
Stars: ✭ 27 (+92.86%)
Mutual labels:  ipfs
typescript-eth-starter
🔌 Ethereum Dapp Basic Typescript Starter
Stars: ✭ 125 (+792.86%)
Mutual labels:  ipfs
js-ipfs-utils
IPFS utils
Stars: ✭ 17 (+21.43%)
Mutual labels:  ipfs
ipfs-md-wiki
a decentered wiki system by ipfs and markdown
Stars: ✭ 99 (+607.14%)
Mutual labels:  ipfs
pop
Run a point-of-presence within Myel, the community powered content delivery network.
Stars: ✭ 28 (+100%)
Mutual labels:  ipfs
drive
Fission Drive 🗄
Stars: ✭ 21 (+50%)
Mutual labels:  ipfs
ipfs-companion
Browser extension that simplifies access to IPFS resources on the web
Stars: ✭ 1,745 (+12364.29%)
Mutual labels:  ipfs
go-multiverse
Decentralized Version Control System
Stars: ✭ 76 (+442.86%)
Mutual labels:  ipfs
demo-ipfs-id-qr-codes
Generates a QR Code of your IPNS URL and Public Key
Stars: ✭ 21 (+50%)
Mutual labels:  ipfs
ipfs-browser-gateway
An IPFS gateway without server, by utilizing service worker.
Stars: ✭ 31 (+121.43%)
Mutual labels:  ipfs
rsync2ipfs-cluster
No description or website provided.
Stars: ✭ 16 (+14.29%)
Mutual labels:  ipfs
lucky
Proof of luck Intel SGX and IPFS based blockchain.
Stars: ✭ 70 (+400%)
Mutual labels:  ipfs
go-ipfs-recovery
Data recovery for IPFS protocol.
Stars: ✭ 16 (+14.29%)
Mutual labels:  ipfs
advanced-react-native-boilerplate
[DEPRECATED] React Native boilerplate including react-navigation, redux, and sagas with example Textile management.
Stars: ✭ 20 (+42.86%)
Mutual labels:  ipfs
filecoin-box
Filecoin flavored Ganache Truffle box
Stars: ✭ 23 (+64.29%)
Mutual labels:  ipfs

IPFS Encrypted Share

Current version: 1.0.0

Encrypted file uploader for IPFS, similar to Mega

Security

This use libsodium, so it should be quite safe to use. However, I'm not a cryptography expert and this code is not audited, so use it at your own risk.

Technical details

Encryption

Files are encrypted with libsodium stream encryption. The encryption key are randomly generated every time and stored as urlsafe unpadded base64 in URL fragment (not transmitted to gateway or IPFS).

Metadata

File metadata is stored at /metadata.json. It contains 2 keys:

  • header: Stream header (from crypto_secretstream_xchacha20poly1305_init_push), base64 encoded without padding.
  • encryptedMetadata: Encrypted metadata, base64 encoded without padding.

The encrypted metadata is the first message in the stream. It is a JSON with the following keys:

  • filename: Original filename
  • size: File size in bytes
  • pieces: Number of file pieces

This message has the tag crypto_secretstream_xchacha20poly1305_TAG_FINAL.

File pieces

The file are splitted to pieces, each 5MB in size. (limited by libsodium.js heap size) They are encrypted and stored at /pieces/chunkId. ChunkID starts at 0 to encryptedMetadata.pieces - 1. File pieces share the same encryption stream with the metadata.

The final piece has the tag crypto_secretstream_xchacha20poly1305_TAG_FINAL. All other pieces has the tag 0.

License

Licensed under the MIT License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].