krb5_deprecated(3)
β¨ NAME β¨
krb5_deprecated β Heimdal Kerberos 5 deprecated functions
okay so bestie, you've wandered into krb5_deprecated(3) from the Heimdal Kerberos 5 library, and this whole page is basically a β¨nostalgia museumβ¨. it's the land of the deprecated β the functions that Heimdal still keeps around so your old code doesn't just combust π. almost every single one of them is stamped with KRB5_DEPRECATED_FUNCTION('Use X instead'), which is the compiler's way of saying "girl, please move on". (the two ...set_error_string ones are the exception, no tag on those, we love a plot twist π«Ά)
no cap, everything here still has its full signature listed so you can see exactly what the old shape was. periodt.
π SYNOPSIS π
πΈ Functions πΈ
okay so here's the full roster, every single one, in order, with the signatures copied exactly as they live in the header. don't skip, there's a quiz later (there is no quiz. but still). π
krb5_change_passwordβ the password-changer, and yes it's wearing the deprecated tag π
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_change_password
(krb5_context context, krb5_creds *creds, const char *newpw, int
*result_code, krb5_data *result_code_string, krb5_data
*result_string) KRB5_DEPRECATED_FUNCTION('Use X instead')
krb5_config_parse_string_multiβ parses a config string into akrb5_config_section **, deprecated vibes only β¨
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
krb5_config_parse_string_multi (krb5_context context, const char
*string, krb5_config_section **res) KRB5_DEPRECATED_FUNCTION('Use X
instead')
krb5_keytype_to_enctypesβ keytype in, enctypes out, deprecated tag attached πΈ
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_keytype_to_enctypes
(krb5_context context, krb5_keytype keytype, unsigned *len,
krb5_enctype **val) KRB5_DEPRECATED_FUNCTION('Use X instead')
krb5_enctypes_compatible_keysβ returns akrb5_boolean, so it's giving yes/no energy, and it's deprecated π¦
KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL
krb5_enctypes_compatible_keys (krb5_context context, krb5_enctype
etype1, krb5_enctype etype2) KRB5_DEPRECATED_FUNCTION('Use X
instead')
krb5_free_data_contentsβvoidreturn, so it just frees and leaves, no questions asked π deprecated tho
KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_data_contents
(krb5_context context, krb5_data *data)
KRB5_DEPRECATED_FUNCTION('Use X instead')
krb5_keytype_to_enctypes_defaultβ the default flavour of the keytype-to-enctypes situation, also deprecated β
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
krb5_keytype_to_enctypes_default (krb5_context context, krb5_keytype
keytype, unsigned *len, krb5_enctype **val)
KRB5_DEPRECATED_FUNCTION('Use X instead')
krb5_keytype_to_stringβ keytype βchar **string, deprecated bestie π
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_keytype_to_string
(krb5_context context, krb5_keytype keytype, char **string)
KRB5_DEPRECATED_FUNCTION('Use X instead')
krb5_string_to_keytypeβ the reverse trip:const char *stringβkrb5_keytype *keytype, deprecated π
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_string_to_keytype
(krb5_context context, const char *string, krb5_keytype *keytype)
KRB5_DEPRECATED_FUNCTION('Use X instead')
krb5_password_key_procβ note theKRB5_CALLCONVon this one, it's fancy, and it's deprecated π₯
KRB5_LIB_FUNCTION krb5_error_code KRB5_CALLCONV krb5_password_key_proc
(krb5_context context, krb5_enctype type, krb5_salt salt,
krb5_const_pointer keyseed, krb5_keyblock **key)
KRB5_DEPRECATED_FUNCTION('Use X instead')
krb5_get_in_tkt_with_passwordβ the whole nine yards of args, deprecated, slay π
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
krb5_get_in_tkt_with_password (krb5_context context, krb5_flags
options, krb5_addresses *addrs, const krb5_enctype *etypes, const
krb5_preauthtype *pre_auth_types, const char *password, krb5_ccache
ccache, krb5_creds *creds, krb5_kdc_rep *ret_as_reply)
KRB5_DEPRECATED_FUNCTION('Use X instead')
krb5_get_in_tkt_with_skeyβ same shape as above but with aconst krb5_keyblock *keyinstead of a password, deprecated π
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
krb5_get_in_tkt_with_skey (krb5_context context, krb5_flags options,
krb5_addresses *addrs, const krb5_enctype *etypes, const
krb5_preauthtype *pre_auth_types, const krb5_keyblock *key,
krb5_ccache ccache, krb5_creds *creds, krb5_kdc_rep *ret_as_reply)
KRB5_DEPRECATED_FUNCTION('Use X instead')
krb5_keytab_key_procβ anotherKRB5_CALLCONVicon, deprecated π
KRB5_LIB_FUNCTION krb5_error_code KRB5_CALLCONV krb5_keytab_key_proc
(krb5_context context, krb5_enctype enctype, krb5_salt salt,
krb5_const_pointer keyseed, krb5_keyblock **key)
KRB5_DEPRECATED_FUNCTION('Use X instead')
krb5_get_in_tkt_with_keytabβ and here's the keytab version of the in_tkt family, deprecated π
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
krb5_get_in_tkt_with_keytab (krb5_context context, krb5_flags
options, krb5_addresses *addrs, const krb5_enctype *etypes, const
krb5_preauthtype *pre_auth_types, krb5_keytab keytab, krb5_ccache
ccache, krb5_creds *creds, krb5_kdc_rep *ret_as_reply)
KRB5_DEPRECATED_FUNCTION('Use X instead')
krb5_princ_realmβ returns akrb5_realm *, deprecated π
KRB5_LIB_FUNCTION krb5_realm *KRB5_LIB_CALL krb5_princ_realm
(krb5_context context, krb5_principal principal)
KRB5_DEPRECATED_FUNCTION('Use X instead')
krb5_princ_set_realmβvoidreturn, takes akrb5_realm *realm, deprecated π
KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_princ_set_realm (krb5_context
context, krb5_principal principal, krb5_realm *realm)
KRB5_DEPRECATED_FUNCTION('Use X instead')
krb5_free_creds_contentsβ frees the contents, mind you, deprecated β¨
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_creds_contents
(krb5_context context, krb5_creds *c) KRB5_DEPRECATED_FUNCTION('Use
X instead')
krb5_free_error_stringβvoid, takes achar *str, deprecated π¦
KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_error_string
(krb5_context context, char *str) KRB5_DEPRECATED_FUNCTION('Use X
instead')
krb5_set_error_stringβ variadic,fmt,..., and the attribute line is literally cut off mid-paren like that in the source. no, we're not fixing it. we're respecting it. π«
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_error_string
(krb5_context context, const char *fmt,...)
__attribute__((__format__(__printf__
krb5_vset_error_stringβ theva_list argssibling of the one above, same unfinished attribute energy π
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_vset_error_string
(krb5_context context, const char *fmt, va_list args)
__attribute__((__format__(__printf__
krb5_clear_error_stringβvoid, deprecated, clears the vibe π
KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_clear_error_string
(krb5_context context) KRB5_DEPRECATED_FUNCTION('Use X instead')
krb5_get_cred_from_kdc_optβ the one with the extrakrb5_flags flagsat the end, deprecated π
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
krb5_get_cred_from_kdc_opt (krb5_context context, krb5_ccache
ccache, krb5_creds *in_creds, krb5_creds **out_creds, krb5_creds
***ret_tgts, krb5_flags flags) KRB5_DEPRECATED_FUNCTION('Use X
instead')
krb5_get_cred_from_kdcβ same family, noflags, still deprecated πΈ
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_cred_from_kdc
(krb5_context context, krb5_ccache ccache, krb5_creds *in_creds,
krb5_creds **out_creds, krb5_creds ***ret_tgts)
KRB5_DEPRECATED_FUNCTION('Use X instead')
krb5_free_unparsed_nameβ frees an unparsed name, deprecated, we love a specific queen π
KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_unparsed_name
(krb5_context context, char *str) KRB5_DEPRECATED_FUNCTION('Use X
instead')
krb5_generate_subkeyβ takes aconst krb5_keyblock *key, hands back akrb5_keyblock **subkey, deprecated π
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_generate_subkey
(krb5_context context, const krb5_keyblock *key, krb5_keyblock
**subkey) KRB5_DEPRECATED_FUNCTION('Use X instead')
krb5_auth_getremoteseqnumberβ remote seq number,int32_t *seqnumber, deprecated β
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
krb5_auth_getremoteseqnumber (krb5_context context,
krb5_auth_context auth_context, int32_t *seqnumber)
KRB5_DEPRECATED_FUNCTION('Use X instead')
krb5_get_init_creds_opt_initβvoid, takes justkrb5_get_init_creds_opt *opt, deprecated π
KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_get_init_creds_opt_init
(krb5_get_init_creds_opt *opt) KRB5_DEPRECATED_FUNCTION('Use X
instead')
krb5_get_init_creds_opt_get_errorβ pulls out aKRB_ERROR **error, deprecated π
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
krb5_get_init_creds_opt_get_error (krb5_context context,
krb5_get_init_creds_opt *opt, KRB_ERROR **error)
KRB5_DEPRECATED_FUNCTION('Use X instead')
krb5_c_enctype_compareβ comparese1ande2into akrb5_boolean *similar, deprecated π
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_c_enctype_compare
(krb5_context context, krb5_enctype e1, krb5_enctype e2,
krb5_boolean *similar) KRB5_DEPRECATED_FUNCTION('Use X instead')
π Detailed Description π
so likeβ¦ that's it. that's the whole section in the original. no body text, no paragraphs, no nothing β it just says Detailed Description and dips, main character exit πͺπ¨
we're not done though bestie, there's more page coming in the next part, so stay perched π§
π Function Documentation π
okay bestie, this is the part where we go through every single deprecated function in this library one by one. signature, deprecation tea, params, returns β nothing gets skipped, no cap. grab a snack π because there's like a whole roster here.
π¦ krb5_auth_getremoteseqnumber
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_auth_getremoteseqnumber(krb5_context context, krb5_auth_context auth_context, int32_t *seqnumber)
π« Deprecated: use krb5_auth_con_getremoteseqnumber()
β¨ krb5_c_enctype_compare
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_c_enctype_compare(krb5_context context, krb5_enctype e1, krb5_enctype e2, krb5_boolean *similar)
π« Deprecated: keytypes doesn't exists, they are really enctypes.
likeβ¦ the docs said it themselves and they did not soften it one bit π
π krb5_change_password
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_change_password(krb5_context context, krb5_creds * creds, const char * newpw, int * result_code, krb5_data * result_code_string, krb5_data * result_string)
π« Deprecated:krb5_change_password()is deprecated, usekrb5_set_password().
Parameters
contextβ a Kerberos contextcredsβ (no description, the docs left us on read π)newpwβ (no description)result_codeβ (no description)result_code_stringβ (no description)result_stringβ (no description)
Returns
On success the password is changed.
and then there's just a lone @ sitting at the bottom of this entry, no explanation, no context. iconic honestly π
πΈ krb5_clear_error_string
KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_clear_error_string(krb5_context context)
Clears the error message that krb5_get_error_string() handed you back. bye bye error text π
π« Deprecated: use krb5_clear_error_message()
Parameters
contextβ Kerberos context
π«Ά krb5_config_parse_string_multi
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_config_parse_string_multi(krb5_context context, const char * string, krb5_config_section ** res)
π« Deprecated: configuration files are not strings
short, blunt, devastating. periodt.
π§ krb5_enctypes_compatible_keys
KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_enctypes_compatible_keys(krb5_context context, krb5_enctype etype1, krb5_enctype etype2)
π« Deprecated: keytypes doesn't exists, they are really enctypes.
π krb5_free_creds_contents
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_creds_contents(krb5_context context, krb5_creds * c)
π« Deprecated: use krb5_free_cred_contents()
(one little s away from the cool version, we've all been there π)
π krb5_free_data_contents
KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_data_contents(krb5_context context, krb5_data * data)
Same as krb5_data_free(). MIT compat.
π« Deprecated: use krb5_data_free().
Parameters
contextβ Kerberos 5 context.dataβkrb5_datato free.
β krb5_free_error_string
KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_error_string(krb5_context context, char * str)
Frees the error message that krb5_get_error_string() gave you.
π« Deprecated: use krb5_free_error_message()
Parameters
contextβ Kerberos contextstrβ error message to free
π krb5_free_unparsed_name
KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_unparsed_name(krb5_context context, char * str)
π« Deprecated: use krb5_xfree().
π krb5_generate_subkey
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_generate_subkey(krb5_context context, const krb5_keyblock * key, krb5_keyblock ** subkey)
π« Deprecated: use krb5_generate_subkey_extended()
π¦ krb5_get_cred_from_kdc
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_cred_from_kdc(krb5_context context, krb5_ccache ccache, krb5_creds * in_creds, krb5_creds ** out_creds, krb5_creds *** ret_tgts)
π« Deprecated: use krb5_get_credentials_with_flags().
(that triple-pointer ret_tgts is giving chaos energy and honestly? respect π«‘)
π krb5_get_cred_from_kdc_opt
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_cred_from_kdc_opt(krb5_context context, krb5_ccache ccache, krb5_creds * in_creds, krb5_creds ** out_creds, krb5_creds *** ret_tgts, krb5_flags flags)
π« Deprecated: use krb5_get_credentials_with_flags().
β¨ krb5_get_in_tkt_with_keytab
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_in_tkt_with_keytab(krb5_context context, krb5_flags options, krb5_addresses * addrs, const krb5_enctype * etypes, const krb5_preauthtype * pre_auth_types, krb5_keytab keytab, krb5_ccache ccache, krb5_creds * creds, krb5_kdc_rep * ret_as_reply)
π« Deprecated: use krb5_get_init_creds() and friends.
"and friends" bestie the docs are being so casual about it π
π krb5_get_in_tkt_with_password
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_in_tkt_with_password(krb5_context context, krb5_flags options, krb5_addresses * addrs, const krb5_enctype * etypes, const krb5_preauthtype * pre_auth_types, const char * password, krb5_ccache ccache, krb5_creds * creds, krb5_kdc_rep * ret_as_reply)
π« Deprecated: use krb5_get_init_creds() and friends.
πΈ krb5_get_in_tkt_with_skey
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_in_tkt_with_skey(krb5_context context, krb5_flags options, krb5_addresses * addrs, const krb5_enctype * etypes, const krb5_preauthtype * pre_auth_types, const krb5_keyblock * key, krb5_ccache ccache, krb5_creds * creds, krb5_kdc_rep * ret_as_reply)
π« Deprecated: use krb5_get_init_creds() and friends.
π«Ά krb5_get_init_creds_opt_get_error
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_init_creds_opt_get_error(krb5_context context, krb5_get_init_creds_opt * opt, KRB_ERROR ** error)
π« Deprecated: use the newkrb5_init_creds_init()andkrb5_init_creds_get_error().
π§ krb5_get_init_creds_opt_init
KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_get_init_creds_opt_init(krb5_get_init_creds_opt * opt)
π« Deprecated: use krb5_get_init_creds_opt_alloc().
The reason krb5_get_init_creds_opt_init() is deprecated is that krb5_get_init_creds_opt is a static structure and for ABI reason it can't grow, ie can't add new functionality.
so basically it's trapped in its own shape forever, no glow-up possible, tragic fr π
π krb5_keytab_key_proc
KRB5_LIB_FUNCTION krb5_error_code KRB5_CALLCONV krb5_keytab_key_proc(krb5_context context, krb5_enctype enctype, krb5_salt salt, krb5_const_pointer keyseed, krb5_keyblock ** key)
π« Deprecated: use krb5_get_init_creds() and friends.
π krb5_keytype_to_enctypes
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_keytype_to_enctypes(krb5_context context, krb5_keytype keytype, unsigned * len, krb5_enctype ** val)
π« Deprecated: keytypes doesn't exists, they are really enctypes.
β krb5_keytype_to_enctypes_default
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_keytype_to_enctypes_default(krb5_context context, krb5_keytype keytype, unsigned * len, krb5_enctype ** val)
π« Deprecated: keytypes doesn't exists, they are really enctypes.
π krb5_keytype_to_string
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_keytype_to_string(krb5_context context, krb5_keytype keytype, char ** string)
π« Deprecated: keytypes doesn't exists, they are really enctypes in most cases, use krb5_enctype_to_string().
"in most cases" β love a confident maybe π
π krb5_password_key_proc
KRB5_LIB_FUNCTION krb5_error_code KRB5_CALLCONV krb5_password_key_proc(krb5_context context, krb5_enctype type, krb5_salt salt, krb5_const_pointer keyseed, krb5_keyblock ** key)
π« Deprecated: use krb5_get_init_creds() and friends.
π¦ krb5_princ_realm
KRB5_LIB_FUNCTION krb5_realm* KRB5_LIB_CALL krb5_princ_realm(krb5_context context, krb5_principal principal)
π« Deprecated: use krb5_principal_get_realm()
π krb5_princ_set_realm
KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_princ_set_realm(krb5_context context, krb5_principal principal, krb5_realm * realm)
π« Deprecated: use krb5_principal_set_realm()
β¨ krb5_set_error_string
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_error_string(krb5_context context, const char * fmt, ...)
Sets the error message that krb5_get_error_string() returns.
π« Deprecated: use krb5_get_error_message()
Parameters
contextβ Kerberos contextfmtβ error message to free
Returns
Return an error code or 0.
π krb5_string_to_keytype
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_string_to_keytype(krb5_context context, const char * string, krb5_keytype * keytype)
π« Deprecated: keytypes doesn't exists, they are really enctypes in most cases, use krb5_string_to_enctype().
πΈ krb5_vset_error_string
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_vset_error_string(krb5_context context, const char * fmt, va_list args)
Sets the error message that krb5_get_error_string() returns, deprecated, use krb5_set_error_message().
π« Deprecated: use krb5_vset_error_message()
Parameters
contextβ Kerberos contextfmtβ error message to freeargsβ variable argument list vector
Returns
Return an error code or 0.
π Author π
Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code.
okay bestie that's the whole roster π«Ά every single deprecated baby accounted for, nothing left behind. this page is from Version 7.8.0, dated Tue Nov 15 2022, and it lives at krb5_deprecated(3) β so if you're citing it, that's the receipt π
β¨ go forth and use the non-deprecated versions, ily, bye π
π¦ where this page comes from
- alpine 3.22: heimdal-doc 7.8.0-r4 Β· BSD-3-Clause
- alpine 3.23: heimdal-doc 7.8.0-r5 Β· BSD-3-Clause
- alpine 3.24: heimdal-doc 7.8.0-r5 Β· BSD-3-Clause
- epel 10: heimdal-devel 7.8.0-26.el10_2 Β· BSD-2-Clause AND BSD-3-Clause AND HPND-export-US AND HPND-export2-US AND LicenseRef-Fedora-Public-Domain
- epel 9: heimdal-devel 7.8.0-5.el9 Β· BSD and MIT
- fedora 43: heimdal-devel 7.8.0-26.fc43 Β· BSD-2-Clause AND BSD-3-Clause AND HPND-export-US AND HPND-export2-US AND LicenseRef-Fedora-Public-Domain
- fedora 43: heimdal-devel 7.8.0-26.fc43 Β· BSD-2-Clause AND BSD-3-Clause AND HPND-export-US AND HPND-export2-US AND LicenseRef-Fedora-Public-Domain
- fedora 44: heimdal-devel 7.8.0-26.fc43 Β· BSD-2-Clause AND BSD-3-Clause AND HPND-export-US AND HPND-export2-US AND LicenseRef-Fedora-Public-Domain
- fedora 44: heimdal-devel 7.8.0-26.fc43 Β· BSD-2-Clause AND BSD-3-Clause AND HPND-export-US AND HPND-export2-US AND LicenseRef-Fedora-Public-Domain
- fedora 44: heimdal-devel 7.8.0-28.fc44 Β· BSD-2-Clause AND BSD-3-Clause AND HPND-export-US AND HPND-export2-US AND LicenseRef-Fedora-Public-Domain
- fedora 44: heimdal-devel 7.8.0-28.fc44 Β· BSD-2-Clause AND BSD-3-Clause AND HPND-export-US AND HPND-export2-US AND LicenseRef-Fedora-Public-Domain
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms