-/* authentication types */
-#define A_ANY 0 /* use the first method that works */
-#define A_PASSWORD 1 /* password authentication */
-#define A_NTLM 2 /* Microsoft NTLM protocol */
-#define A_CRAM_MD5 3 /* CRAM-MD5 shrouding (RFC2195) */
-#define A_OTP 4 /* One-time password (RFC1508) */
-#define A_KERBEROS_V4 5 /* authenticate w/ Kerberos V4 */
-#define A_KERBEROS_V5 6 /* authenticate w/ Kerberos V5 */
-#define A_GSSAPI 7 /* authenticate with GSSAPI */
-#define A_SSH 8 /* authentication at session level */
-#define A_MSN 9 /* same as NTLM with keyword MSN */
-#define A_EXTERNAL 10 /* external authentication (client cert) */
+/** authentication types */
+enum authenticators {
+ A_ANY = 0 /**< use the first method that works */,
+ A_PASSWORD /** password authentication */,
+ A_NTLM /** Microsoft NTLM protocol */,
+ A_CRAM_MD5 /** CRAM-MD5 shrouding (RFC2195) */,
+ A_OTP /** One-time password (RFC1508) */,
+ A_APOP /** POP3 APOP */,
+ A_KERBEROS_V5 /** authenticate w/ Kerberos V5 */,
+ A_GSSAPI /** authenticate with GSSAPI */,
+ A_SSH /** authentication at session level */,
+ A_MSN /** same as NTLM with keyword MSN */,
+ A_EXTERNAL /** external authentication (client cert) */
+};