File: //usr/include/dovecot/sasl-common.h
#ifndef SASL_COMMON_H
#define SASL_COMMON_H
/*
* Absolute limits
*/
#define SASL_MAX_MESSAGE_SIZE (64 * 1024)
#define SASL_MAX_AUTHID_SIZE 1024
/*
* Mechanism security flags
*/
enum sasl_mech_security_flags {
/* Don't advertise this as available SASL mechanism (eg. APOP) */
SASL_MECH_SEC_PRIVATE = 0x0001,
/* Anonymous authentication */
SASL_MECH_SEC_ANONYMOUS = 0x0002,
/* Transfers plaintext passwords */
SASL_MECH_SEC_PLAINTEXT = 0x0004,
/* Subject to passive (dictionary) attack */
SASL_MECH_SEC_DICTIONARY = 0x0008,
/* Subject to active (non-dictionary) attack */
SASL_MECH_SEC_ACTIVE = 0x0010,
/* Provides forward secrecy between sessions */
SASL_MECH_SEC_FORWARD_SECRECY = 0x0020,
/* Provides mutual authentication */
SASL_MECH_SEC_MUTUAL_AUTH = 0x0040,
/* Allow NULs in input data */
SASL_MECH_SEC_ALLOW_NULS = 0x0080,
/* Requires channel binding */
SASL_MECH_SEC_CHANNEL_BINDING = 0x0100,
};
/*
* Mechanism names
*/
#define SASL_MECH_NAME_ANONYMOUS "ANONYMOUS"
#define SASL_MECH_NAME_CRAM_MD5 "CRAM-MD5"
#define SASL_MECH_NAME_DIGEST_MD5 "DIGEST-MD5"
#define SASL_MECH_NAME_EXTERNAL "EXTERNAL"
#define SASL_MECH_NAME_GSSAPI "GSSAPI"
#define SASL_MECH_NAME_GSS_SPNEGO "GSS-SPNEGO"
#define SASL_MECH_NAME_LOGIN "LOGIN"
#define SASL_MECH_NAME_OAUTHBEARER "OAUTHBEARER"
#define SASL_MECH_NAME_OTP "OTP"
#define SASL_MECH_NAME_PLAIN "PLAIN"
#define SASL_MECH_NAME_SCRAM_SHA_1 "SCRAM-SHA-1"
#define SASL_MECH_NAME_SCRAM_SHA_1_PLUS "SCRAM-SHA-1-PLUS"
#define SASL_MECH_NAME_SCRAM_SHA_256 "SCRAM-SHA-256"
#define SASL_MECH_NAME_SCRAM_SHA_256_PLUS "SCRAM-SHA-256-PLUS"
#define SASL_MECH_NAME_NTLM "NTLM"
#define SASL_MECH_NAME_XOAUTH2 "XOAUTH2"
#endif