WebAssembly Module for Video Decryption
Budget: $10 – $150 USD
I am looking for a skilled developer with experience in Rust, WebAssembly, and AES encryption to help integrate video decryption in the browser using WebAssembly. Below are the details of the task:
Current Setup:
I have a Rust-based video encoding script that:
Generates encryption keys (AES-128) for video files.
Encrypts video segments (.ts files) using ffmpeg with AES-128 encryption.
Stores encryption keys in a MySQL database.
Converts the video into HLS format (.m3u8) for streaming in browsers.
The encryption keys and initialization vectors (IV) are generated and managed in the backend. The videos are encoded in various resolutions and stored for playback in the browser.
Required Task:
I need to extend this setup by creating a WebAssembly (Wasm) module that will:
Decrypt the encrypted video segments (.ts files) in the browser using the AES-128 encryption key and IV.
The decryption logic must be written in Rust and compiled to WebAssembly (Wasm).
The JavaScript part of the browser will:
Fetch the encrypted video chunks from the server.
Decrypt them using the Wasm module.
Feed the decrypted video segments into an HTML5 video player for playback.
Obfuscation Requirement:
After the entire system is functional, I would like the final code to be obfuscated to make it difficult to reverse-engineer. The obfuscation should apply to both the WebAssembly module and JavaScript code to protect the decryption logic.
Technical Details:
The encryption keys are currently stored in a MySQL database and served via HTTPS.
Video chunks are served as .ts files in HLS format.
I expect the decryption to be done in real-time as the video is streamed.
Skills Required:
Experience in Rust programming and compiling Rust to WebAssembly.
Familiarity with AES encryption and ffmpeg for video encoding.
Proficiency in JavaScript for client-side video playback.
Understanding of HLS video streaming and decryption in the browser.
Knowledge of integrating WebAssembly modules with JavaScript.
Experience with code obfuscation to protect sensitive decryption logic.
Deliverables:
A WebAssembly module compiled from Rust for AES decryption.
JavaScript code that integrates with the Wasm module for video decryption and playback.
Integration of the decrypted video with the HTML5 video player.
Obfuscated final code (both Wasm and JavaScript) to prevent reverse engineering.
Documentation of the steps and how the solution works.
Current Setup:
I have a Rust-based video encoding script that:
Generates encryption keys (AES-128) for video files.
Encrypts video segments (.ts files) using ffmpeg with AES-128 encryption.
Stores encryption keys in a MySQL database.
Converts the video into HLS format (.m3u8) for streaming in browsers.
The encryption keys and initialization vectors (IV) are generated and managed in the backend. The videos are encoded in various resolutions and stored for playback in the browser.
Required Task:
I need to extend this setup by creating a WebAssembly (Wasm) module that will:
Decrypt the encrypted video segments (.ts files) in the browser using the AES-128 encryption key and IV.
The decryption logic must be written in Rust and compiled to WebAssembly (Wasm).
The JavaScript part of the browser will:
Fetch the encrypted video chunks from the server.
Decrypt them using the Wasm module.
Feed the decrypted video segments into an HTML5 video player for playback.
Obfuscation Requirement:
After the entire system is functional, I would like the final code to be obfuscated to make it difficult to reverse-engineer. The obfuscation should apply to both the WebAssembly module and JavaScript code to protect the decryption logic.
Technical Details:
The encryption keys are currently stored in a MySQL database and served via HTTPS.
Video chunks are served as .ts files in HLS format.
I expect the decryption to be done in real-time as the video is streamed.
Skills Required:
Experience in Rust programming and compiling Rust to WebAssembly.
Familiarity with AES encryption and ffmpeg for video encoding.
Proficiency in JavaScript for client-side video playback.
Understanding of HLS video streaming and decryption in the browser.
Knowledge of integrating WebAssembly modules with JavaScript.
Experience with code obfuscation to protect sensitive decryption logic.
Deliverables:
A WebAssembly module compiled from Rust for AES decryption.
JavaScript code that integrates with the Wasm module for video decryption and playback.
Integration of the decrypted video with the HTML5 video player.
Obfuscated final code (both Wasm and JavaScript) to prevent reverse engineering.
Documentation of the steps and how the solution works.