Actualmente estoy intentando construir un administrador de contraseñas pequeño y seguro. A partir de ahora, he implementado el cifrado. Cada sitio web tiene su propio archivo y cada archivo tiene varios campos (lo más común es que el nombre de usuario y la contraseña). Estoy usando serpent 256 para cifrar los archivos, y uso una clave aleatoria (creada Crypto.Random en python) que se cifra con GPG, con una clave de 4k. Pregunta secundaria: la clave es sha256 hash para poder ingresar el tamaño que desees (porque sha256 siempre tiene un resultado de 256 bits), ¿pierdo alguna entropía / seguridad / etc.?
Mi pregunta principal es cómo puedo transferir de forma segura los datos descifrados de mi programa a, digamos, un campo de texto del navegador o un terminal. Me preocupan los keyloggers. Entonces, el portapapeles está fuera, la escritura virtual está fuera.
No sé qué buscar en Google, por lo que las sugerencias de términos de búsqueda también son bienvenidas. Estoy trabajando en Linux (no me importan otros sistemas operativos) con python.
El código hasta ahora: enlace