The PGPKeyRingGenerator constructor takes in a passphrase to encrypt the private key. What is the algorithm that it uses to do this? It has a field called encAlgorithm, but I couldn't find any documentation explaining what these algorithms are.
By default, PGP uses IDEA (Refer this).
The other algorithms can be defined in encAlgorithm and following are supported by OpenPGP,
public interface SymmetricKeyAlgorithmTags
{
public static final int NULL = 0; // Plaintext or unencrypted data
public static final int IDEA = 1; // IDEA [IDEA]
public static final int TRIPLE_DES = 2; // Triple-DES (DES-EDE, as per spec -168 bit key derived from 192)
public static final int CAST5 = 3; // CAST5 (128 bit key, as per RFC 2144)
public static final int BLOWFISH = 4; // Blowfish (128 bit key, 16 rounds) [BLOWFISH]
public static final int SAFER = 5; // SAFER-SK128 (13 rounds) [SAFER]
public static final int DES = 6; // Reserved for DES/SK
public static final int AES_128 = 7; // Reserved for AES with 128-bit key
public static final int AES_192 = 8; // Reserved for AES with 192-bit key
public static final int AES_256 = 9; // Reserved for AES with 256-bit key
public static final int TWOFISH = 10; // Reserved for Twofish
}
They all use CFB mode with no padding.