Send text data to a server using a verifiable desktop runtime, public key, and strong encryption.
- create an account with username/password (only for users accepting submissions; submitters do so without an account)
- generate new public/private RSA 512 key pair
- a) display public key for sharing
- b) encrypt private key with password using AES 256
- c) display encrypted private key for local storage (requires password to use)
- encrypt new message with public key and send to server
- decrypt message using decrypted private key
Questions:
- is it safe to decrypt private key and store in memory while app is being used?
- is it better to decrypt on demand (would require storing password in memory anyway)
- is there are more effective method of storing keys and using them in a simple way?
- should a different, second, password be used solely for key storage?
- maybe integrate with something like keybase for key storage?