Subject: | Replacing Windows KRBV4W32.DLL with KRB4_32.DLL |
For KfW 3.0, one of the goals is to replace KRBV4W32.DLL with
KRB4_32.DLL built from the Krb5 distribution. As part of the migration
strategy we will want to build a replacement KRBV4W32.DLL which forwards
most if not all calls to KRB4_32.DLL or KRB5_32.DLL.
Attached is a file "krb4-differences.txt" which enumerates the public
API of both KRBV4W32.DLL and KRB4_32.DLL. There are three categories:
* only in KRBV4W32.DLL
* only in KRB4_32.DLL
* in both
For the purposes of this migration we can ignore those functions which
exist solely in KRB4_32.DLL as they will remain untouched.
For those functions which exist in both of the DLLs we need to ensure
that the functionality of both functions is identical. If they are not
we need to decide how they should be merged or document what the
functional changes will be.
For those functions which exist solely in KRBV4W32.DLL we need to decide
how to handle them. Possible options are:
* remove the function entirely
* implement the function as a stub which does nothing
* add the missing functionality to KRB4_32.DLL
* export a previously unexported function from KRB4_32.DLL
KRB4_32.DLL built from the Krb5 distribution. As part of the migration
strategy we will want to build a replacement KRBV4W32.DLL which forwards
most if not all calls to KRB4_32.DLL or KRB5_32.DLL.
Attached is a file "krb4-differences.txt" which enumerates the public
API of both KRBV4W32.DLL and KRB4_32.DLL. There are three categories:
* only in KRBV4W32.DLL
* only in KRB4_32.DLL
* in both
For the purposes of this migration we can ignore those functions which
exist solely in KRB4_32.DLL as they will remain untouched.
For those functions which exist in both of the DLLs we need to ensure
that the functionality of both functions is identical. If they are not
we need to decide how they should be merged or document what the
functional changes will be.
For those functions which exist solely in KRBV4W32.DLL we need to decide
how to handle them. Possible options are:
* remove the function entirely
* implement the function as a stub which does nothing
* add the missing functionality to KRB4_32.DLL
* export a previously unexported function from KRB4_32.DLL
KRBV4W32.DLL has but KRB4_32 does not
================================
afs_string_to_key (exported from KRB5_32)
* DES functions * (exported from KRB5_32)
DllMain (inits CCache and registers MITPasswordControl)
get_cred (Leash compat. krb_get_cred - remove)
get_krb_err_txt (remove)
get_krb_err_txt_entry (remove)
GetKRBDLLVersionFlags (remove)
gettimeofday (remove)
hGetTimeZone (remove - private)
hQKrbInst (remove - private)
initialize_kadm_error_table (remove)
initialize_krb_error_func (remove)
k_decomp_ticket (remove - private)
k_gethostname (remove - private)
k_isinst (remove - private)
k_isname (remove - private)
k_isrealm (remove - private)
kadm_change_your_password (remove - private for Leash compat)
krb_atime_to_life (add to KRB4_32?)
krb_check_serv (add to KRB4_32?)
krb_get_in_tkt (export from KRB4_32?)
krb_get_krbconf (add stub to KRB4_32?)
krb_get_krbconf2 (add stub to KRB4_32?)
krb_get_krbrealm (add stub to KRB4_32?)
krb_get_krbrealm2 (add stub to KRB4_32?)
krb_life_to_atime (add to KRB4_32?)
krb_life_to_time (export from KRB4_32?)
krb_net_read (add stub to KRB4_32?)
krb_net_write (add stub to KRB4_32?)
krb_sendauth (export from KRB4_32?)
krb_sendauth_udp (add to KRB4_32?)
krb_sendauth_udpchk (add to KRB4_32?)
krb_set_lifetime (export from KRB4_32?)
krb_set_tkt_string (export from KRB4_32?)
krb_time_to_life (export from KRB4_32?)
LocalHostAddr (remove)
* Leash compatibility functions * (remove)
set_krb_ap_req_debug (remove)
set_krb_debug (remove)
tf_close (export from KRB4_32?)
tf_get_cred (export from KRB4_32?)
tf_get_pinst (export from KRB4_32?)
tf_get_pname (export from KRB4_32?)
tf_init (export from KRB4_32?)
tkt_string (export from KRB4_32?)
unix_time_gmt_unixsec (export from KRB4_32?)
KRB4_32.DLL has but KRBV4W32 does not
================================
get_service_key
in_tkt
krb_check_auth
krb_get_default_user
krb_get_err_text
krb_get_krbhst
krb_get_ticket_for_service
krb_mk_auth
krb_mk_err
krb_rd_err
krb_recvauth
krb_set_default_user
put_svc_key
read_service_key
In both
================================
dest_tkt
kname_parse
krb_get_admhst
krb_get_cred
krb_get_lrealm
krb_get_phost
krb_get_pw_in_tkt
krb_get_pw_in_tkt_preauth
krb_get_svc_in_tkt
krb_get_tf_fullname
krb_get_tf_realm
krb_in_tkt
krb_mk_priv
krb_mk_req
krb_mk_safe
krb_rd_priv
krb_rd_req
krb_rd_safe
krb_realmofhost
krb_save_credentials
================================
afs_string_to_key (exported from KRB5_32)
* DES functions * (exported from KRB5_32)
DllMain (inits CCache and registers MITPasswordControl)
get_cred (Leash compat. krb_get_cred - remove)
get_krb_err_txt (remove)
get_krb_err_txt_entry (remove)
GetKRBDLLVersionFlags (remove)
gettimeofday (remove)
hGetTimeZone (remove - private)
hQKrbInst (remove - private)
initialize_kadm_error_table (remove)
initialize_krb_error_func (remove)
k_decomp_ticket (remove - private)
k_gethostname (remove - private)
k_isinst (remove - private)
k_isname (remove - private)
k_isrealm (remove - private)
kadm_change_your_password (remove - private for Leash compat)
krb_atime_to_life (add to KRB4_32?)
krb_check_serv (add to KRB4_32?)
krb_get_in_tkt (export from KRB4_32?)
krb_get_krbconf (add stub to KRB4_32?)
krb_get_krbconf2 (add stub to KRB4_32?)
krb_get_krbrealm (add stub to KRB4_32?)
krb_get_krbrealm2 (add stub to KRB4_32?)
krb_life_to_atime (add to KRB4_32?)
krb_life_to_time (export from KRB4_32?)
krb_net_read (add stub to KRB4_32?)
krb_net_write (add stub to KRB4_32?)
krb_sendauth (export from KRB4_32?)
krb_sendauth_udp (add to KRB4_32?)
krb_sendauth_udpchk (add to KRB4_32?)
krb_set_lifetime (export from KRB4_32?)
krb_set_tkt_string (export from KRB4_32?)
krb_time_to_life (export from KRB4_32?)
LocalHostAddr (remove)
* Leash compatibility functions * (remove)
set_krb_ap_req_debug (remove)
set_krb_debug (remove)
tf_close (export from KRB4_32?)
tf_get_cred (export from KRB4_32?)
tf_get_pinst (export from KRB4_32?)
tf_get_pname (export from KRB4_32?)
tf_init (export from KRB4_32?)
tkt_string (export from KRB4_32?)
unix_time_gmt_unixsec (export from KRB4_32?)
KRB4_32.DLL has but KRBV4W32 does not
================================
get_service_key
in_tkt
krb_check_auth
krb_get_default_user
krb_get_err_text
krb_get_krbhst
krb_get_ticket_for_service
krb_mk_auth
krb_mk_err
krb_rd_err
krb_recvauth
krb_set_default_user
put_svc_key
read_service_key
In both
================================
dest_tkt
kname_parse
krb_get_admhst
krb_get_cred
krb_get_lrealm
krb_get_phost
krb_get_pw_in_tkt
krb_get_pw_in_tkt_preauth
krb_get_svc_in_tkt
krb_get_tf_fullname
krb_get_tf_realm
krb_in_tkt
krb_mk_priv
krb_mk_req
krb_mk_safe
krb_rd_priv
krb_rd_req
krb_rd_safe
krb_realmofhost
krb_save_credentials