# This file is processed by gen-libcrypt-map to produce the versions
# map file for libxcrypt.
# symbol default_version compat_version [compat_version ...]

# Actively supported POSIX interfaces; in GNU libc since 2.0
crypt			XCRYPT_2.0	GLIBC_2.0
crypt_r			XCRYPT_2.0	GLIBC_2.0

# Actively supported Openwall extensions; never actually added to
# upstream GNU libc, but present in at least Openwall, ALT, and SUSE
# Linux distributions with one or more of these symbol versions
crypt_rn		XCRYPT_2.0	GLIBC_2.0:owl:suse	GLIBC_2.2.1:alt
crypt_gensalt		XCRYPT_2.0	GLIBC_2.0:owl:suse	GLIBC_2.2.1:alt     OW_CRYPT_1.0:suse
crypt_gensalt_rn	XCRYPT_2.0	GLIBC_2.0:owl:suse	GLIBC_2.2.1:alt     OW_CRYPT_1.0:suse

crypt_ra		XCRYPT_2.0	GLIBC_2.0:owl:suse	GLIBC_2.2.2:alt
crypt_gensalt_ra	XCRYPT_2.0	GLIBC_2.0:owl:suse	GLIBC_2.2.2:alt     OW_CRYPT_1.0:suse

# Actively supported interfaces from libxcrypt.
crypt_checksalt		XCRYPT_4.3
crypt_preferred_method	XCRYPT_4.4

# Interfaces for code compatibility with libxcrypt v3.1.1 and earlier.
# No longer available to new binaries.
crypt_gensalt_r		-		XCRYPT_2.0
xcrypt			-		XCRYPT_2.0
xcrypt_r		-		XCRYPT_2.0
xcrypt_gensalt		-		XCRYPT_2.0
xcrypt_gensalt_r	-		XCRYPT_2.0

# Deprecated interfaces, POSIX and otherwise; also present in GNU libc
# since 2.0
encrypt			-		GLIBC_2.0
encrypt_r		-		GLIBC_2.0
setkey			-		GLIBC_2.0
setkey_r		-		GLIBC_2.0
fcrypt			-		GLIBC_2.0

# This determines the ordering of the version chain.  Each symbol
# version that appears above must also appear in this list, and to
# simplify gen-libcrypt-map, so must all of the versions listed in
# libcrypt.minver.  The ordering is left to right, top to bottom.
%chain GLIBC_2.0 GLIBC_2.2 GLIBC_2.2.1 GLIBC_2.2.2 GLIBC_2.2.5 GLIBC_2.2.6
%chain GLIBC_2.3 GLIBC_2.4 GLIBC_2.12 GLIBC_2.16 GLIBC_2.17 GLIBC_2.18
%chain GLIBC_2.21 GLIBC_2.27 GLIBC_2.29 GLIBC_2.32 GLIBC_2.33 GLIBC_2.35
%chain GLIBC_2.36
%chain OW_CRYPT_1.0 XCRYPT_2.0 XCRYPT_4.3 XCRYPT_4.4
