javascript S3 uploader with client side encryption

Job ID: 32730067

Budget: €250 – €750 EUR

Dear, the purpose of this project is to upload files from a browser to an S3 bucket using client side encryption (AES).

You can use/modify this already existing scripts:
- GUI:
https://github.com/lian-yue/vue-upload-component
- ENCRYPTION:
tinyurl.com/4wazhmch
- UPLOAD:
https://github.com/TTLabs/EvaporateJS
or https://github.com/aws/aws-sdk-js-v3

so I need:

1- a webpage to choose, encrypt & upload files to an S3 bucket with:
---- a field to enter the encryption password
-------- password field normalization UTF8
-------- password derivation PBKDF2 derivation with 10000 iterations of SHA256 hashing + 128bit SALT
---- multipart uploading with encryption (using Webcrypto API / AES 256 GCM authenticated mode)
---- support uploading file of 100gb
---- parallel S3's multipart uploads with pause/retry/stop
---- support upload multiples files and folders (recursive)
---- preserve directory tree
---- progress bar
---- encrypted file & folder name on the bucket

PS. client side encryption have to be done at the same time as upload (parts encryption)

2- Webpage to download & un-crypt file
---- field to enter the password
---- list to select files to download/uncrypt presents in the bucket
---- download from S3 & uncrypt in the same time

you will have a full access to a VPS to install your scripts and a S3 bucket

your code have to be commented/documented !

thx, please contact me if you need any more informations.