This seems fairly well-specified already, but just to confirm:
- 2 simple HTML pages as portrayed in the OP, allowing drag-and-drop file selection (along with traditional menu-based selection), text input of private key or received signature (with an option to generate a new private key), and finally display of the signature or signee address (if valid) respectively.
- JS code performing the following functionality:
1. Accept an arbitrary file.
2. Append the characters "\x18Bitcoin Signed Message:\n".
3. Twice SHA256-hash the resulting data and then sign the digest with the provided/generated private key.
4. Display the signature encoded in Base64.
5. Verify signatures created in this format, using this page, calculating the signee address for a valid signature.
Note that there will probably be practical filesize limits due to speed.
For that I bid 4 BTC, escrowed through anyone reasonable.