Estoy tratando de entender el formato de archivo del archivo secring.gpg. Realmente no pude encontrar ninguna documentación oficial del formato de archivo, así que decidí crear un nuevo par de claves y usar la función S2K (cadena a clave) simple S2K, lo que básicamente significa que la frase de contraseña ingresada solo se procesa una vez con el algoritmo de resumen del mensaje especificado. Así que creé el nuevo par de claves usando el comando:
gpg --gen-key --s2k-digest-algo MD5 --s2k-mode 0
Pude verificar que la clave se creó con las especificaciones correctas utilizando:
gpg --list-packets secring.pgp
La salida parcial es:
:secret key packet:
version 4, algo 1, created 1397496587, expires 0
skey[0]: [1024 bits]
skey[1]: [17 bits]
simple S2K, algo: 3, SHA1 protection, hash: 1
protect IV: 06 8a d3 02 e9 df 49 8a
encrypted stuff follows
El 'hash: 1' debe significar que se usa MD5 y S2K simple significa hash una vez, sin sal. Puede encontrar esta información en la RFC 4880 Sección 3.7 .
Utilicé la frase de contraseña "prueba" que debería resultar en el hash MD5 '098f ... b4f6'. El problema es que no puedo encontrar este hash en el archivo secring.gpg. Usé un HexViewer y pude encontrar la cadena FE 03 00 01, lo que significa (siguiendo el RFC):
FE = inicia las especificaciones de algo
03 = cifrado simétrico (CAST5)
00 = S2K simple
01 = MD5
Lo que también confirma que se utiliza la especificación correcta. Algo que me hizo sentir curiosidad es que encontré esta cadena dos veces (para el maestro y la subclave, creo). Pero todavía debería haber en algún lugar mi frase de contraseña hash.
¿No entiendo algo? ¿O estoy buscando en el lugar equivocado?