summaryrefslogtreecommitdiffstats
path: root/doc/api
diff options
context:
space:
mode:
Diffstat (limited to 'doc/api')
-rw-r--r--doc/api/ChangeLog12
-rw-r--r--doc/api/ccache.tex60
-rw-r--r--doc/api/free.tex265
-rw-r--r--doc/api/keytab.tex62
-rw-r--r--doc/api/rcache.tex35
5 files changed, 395 insertions, 39 deletions
diff --git a/doc/api/ChangeLog b/doc/api/ChangeLog
index fd43aaf45..831c3f270 100644
--- a/doc/api/ChangeLog
+++ b/doc/api/ChangeLog
@@ -1,6 +1,16 @@
+Sun Apr 30 15:37:31 1995 Ezra Peisach <epeisach@kangaroo.mit.edu>
+
+ * rcache.tex: Update to current API specs.
+
+ * ccache.tex: Update to current API specs.
+
+ * keytab.tex: Update to current API specs.
+
+ * free.tex: Finished first version.
+
Tue Apr 18 10:42:03 1995 Ezra Peisach <epeisach@kangaroo.mit.edu>
- * intro.tex spell checked
+ * intro.tex: spell checked
Tue Apr 11 14:21:21 1995 Ezra Peisach (epeisach@kangaroo.mit.edu)
diff --git a/doc/api/ccache.tex b/doc/api/ccache.tex
index e85a77444..8f2fd25ca 100644
--- a/doc/api/ccache.tex
+++ b/doc/api/ccache.tex
@@ -3,7 +3,9 @@ specific types of credentials caches) deal with storing credentials
(tickets, session keys, and other identifying information) in a
semi-permanent store for later use by different programs.
-\begin{funcdecl}{krb5_cc_resolve}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_cc_resolve}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcin
\funcarg{char *}{string_name}
\funcout
\funcarg{krb5_ccache *}{id}
@@ -15,7 +17,9 @@ the name in \funcparam{string_name}.
Requires that \funcparam{string_name} be of the form ``type:residual'' and
``type'' is a type known to the library.
-\begin{funcdecl}{krb5_cc_generate_new}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_cc_generate_new}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcin
\funcarg{krb5_cc_ops *}{ops}
\funcout
\funcarg{krb5_ccache *}{id}
@@ -25,7 +29,9 @@ Requires that \funcparam{string_name} be of the form ``type:residual'' and
Fills in \funcparam{id} with a unique ccache identifier of a type defined by
\funcparam{ops}. The cache is left unopened.
-\begin{funcdecl}{krb5_cc_register}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_cc_register}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcin
\funcarg{krb5_cc_ops *}{ops}
\funcarg{krb5_boolean}{override}
\end{funcdecl}
@@ -35,19 +41,24 @@ the set recognized by \funcname{krb5_cc_resolve}.
If \funcparam{override} is FALSE, a ticket cache type named
\funcparam{ops{\ptsto}prefix} must not be known.
-\begin{funcdecl}{krb5_cc_get_name}{char *}{\funcin}
+\begin{funcdecl}{krb5_cc_get_name}{char *}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcin
\funcarg{krb5_ccache}{id}
\end{funcdecl}
Returns the name of the ccache denoted by \funcparam{id}.
-\begin{funcdecl}{krb5_cc_default_name}{char *}{\funcvoid}
+\begin{funcdecl}{krb5_cc_default_name}{char *}{\funcinout}
+\funcarg{krb5_context}{context}
\end{funcdecl}
Returns the name of the default credentials cache; this may be equivalent to
\funcnamenoparens{getenv}({\tt "KRB5CCACHE"}) with an appropriate fallback.
-\begin{funcdecl}{krb5_cc_default}{krb5_error_code}{\funcout}
+\begin{funcdecl}{krb5_cc_default}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcout
\funcarg{krb5_ccache *}{ccache}
\end{funcdecl}
@@ -56,6 +67,7 @@ Equivalent to
\funcparam{ccache}).
\begin{funcdecl}{krb5_cc_initialize}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
\funcarg{krb5_ccache}{id}
\funcin
\funcarg{krb5_principal}{primary_principal}
@@ -69,7 +81,8 @@ Errors: permission errors, system errors.
Modifies: cache identified by \funcparam{id}.
-\begin{funcdecl}{krb5_cc_destroy}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_cc_destroy}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
\funcarg{krb5_ccache}{id}
\end{funcdecl}
@@ -83,6 +96,7 @@ it is first reinitialized using \funcname{krb5_cc_resolve} or
Errors: permission errors.
\begin{funcdecl}{krb5_cc_close}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
\funcarg{krb5_ccache}{id}
\end{funcdecl}
@@ -94,7 +108,9 @@ acquired during use of the credentials cache. Requires that
\funcname{krb5_cc_resolve} or \funcname{krb5_cc_generate_new}.
-\begin{funcdecl}{krb5_cc_store_cred}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_cc_store_cred}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcin
\funcarg{krb5_ccache}{id}
\funcarg{krb5_creds *}{creds}
\end{funcdecl}
@@ -105,7 +121,9 @@ Requires that \funcparam{id} identifies a valid credentials cache.
Errors: permission errors, storage failure errors.
-\begin{funcdecl}{krb5_cc_retrieve_cred}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_cc_retrieve_cred}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcin
\funcarg{krb5_ccache}{id}
\funcarg{krb5_flags}{whichfields}
\funcarg{krb5_creds *}{mcreds}
@@ -125,7 +143,9 @@ returned in \funcparam{*creds}. The credentials should be freed using
Errors: error code if no matches found.
-\begin{funcdecl}{krb5_cc_get_principal}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_cc_get_principal}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcin
\funcarg{krb5_ccache}{id}
\funcarg{krb5_principal *}{principal}
\end{funcdecl}
@@ -138,7 +158,8 @@ should release this memory by calling \funcname{krb5_free_principal} on
Requires that \funcparam{id} identifies a valid credentials cache.
-\begin{funcdecl}{krb5_cc_start_seq_get}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_cc_start_seq_get}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
\funcarg{krb5_ccache}{id}
\funcout
\funcarg{krb5_cc_cursor *}{cursor}
@@ -148,7 +169,8 @@ Prepares to sequentially read every set of cached credentials.
\funcparam{cursor} is filled in with a cursor to be used in calls to
\funcname{krb5_cc_next_cred}.
-\begin{funcdecl}{krb5_cc_next_cred}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_cc_next_cred}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
\funcarg{krb5_ccache}{id}
\funcout
\funcarg{krb5_creds *}{creds}
@@ -165,7 +187,8 @@ Requires that \funcparam{id} identifies a valid credentials cache and
Errors: error code if no more cache entries.
-\begin{funcdecl}{krb5_cc_end_seq_get}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_cc_end_seq_get}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
\funcarg{krb5_ccache}{id}
\funcarg{krb5_cc_cursor *}{cursor}
\end{funcdecl}
@@ -181,7 +204,9 @@ Requires that \funcparam{id} identifies a valid credentials cache and
Errors: may return error code if \funcparam{*cursor} is invalid.
-\begin{funcdecl}{krb5_cc_remove_cred}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_cc_remove_cred}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcin
\funcarg{krb5_ccache}{id}
\funcarg{krb5_flags}{which}
\funcarg{krb5_creds *}{cred}
@@ -195,12 +220,15 @@ Requires that \funcparam{id} identifies a valid credentials cache.
Errors: returns error code if nothing matches; returns error code if
couldn't delete.
-\begin{funcdecl}{krb5_cc_set_flags}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_cc_set_flags}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
\funcarg{krb5_ccache}{id}
+\funcin
\funcarg{krb5_flags}{flags}
\end{funcdecl}
Sets the flags on the cache \funcparam{id} to \funcparam{flags}. Useful
-flags are defined in {\tt <krb5/ccache.h>}.
+flags are defined in {\tt <krb5.h>}.
+
diff --git a/doc/api/free.tex b/doc/api/free.tex
new file mode 100644
index 000000000..da0b85e75
--- /dev/null
+++ b/doc/api/free.tex
@@ -0,0 +1,265 @@
+The free functions deal with deallocation of memory that has been
+allocated by various routines. It is recommended that the developer use
+these routines as they will know about the contents of the structures.
+
+\begin{funcdecl}{krb5_auth_con_free}{krb5_auth_con_free}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_auth_context *}{auth_context}
+\end{funcdecl}
+
+Frees the auth_context \funcparam{auth_context} returned by
+\funcname{krb5_auth_con_init}.
+
+\begin{funcdecl}{krb5_free_context}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\end{funcdecl}
+
+Frees the context returned by \funcname{krb5_init_context}. Internally
+calls \funcname{krb5_os_free_context}.
+
+\begin{funcdecl}{krb5_free_princial}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_principal}{val}
+\end{funcdecl}
+
+Frees the pwd_data \funcparam{val} that has been allocated from
+\funcname{krb5_copy_principal}.
+
+\begin{funcdecl}{krb5_free_authenticator}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_authenticator *}{val}
+\end{funcdecl}
+
+Frees the authenticator \funcparam{val}, including the pointer
+\funcparam{val}.
+
+\begin{funcdecl}{krb5_free_authenticator_contents}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_authenticator *}{val}
+\end{funcdecl}
+
+Frees the authenticator contents of \funcparam{val}. The pointer
+\funcparam{val} is not freed.
+
+
+\begin{funcdecl}{krb5_free_addresses}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_address **}{val}
+\end{funcdecl}
+
+Frees the series of addresses \funcparam{*val} that have been allocated from
+\funcname{krb5_copy_addresses}.
+
+\begin{funcdecl}{krb5_free_address}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_address *}{val}
+\end{funcdecl}
+
+Frees the address \funcparam{val}.
+
+\begin{funcdecl}{krb5_free_authdata}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_authdata **}{val}
+\end{funcdecl}
+
+Frees the authdata structure pointed to by \funcparam{val} that has been
+allocated from
+\funcname{krb5_copy_authdata}.
+
+\begin{funcdecl}{krb5_free_enc_tkt_part}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_enc_tkt_part *}{val}
+\end{funcdecl}
+
+Frees \funcparam{val} that has been allocated from
+\funcname{krb5_enc_tkt_part} and \funcname{krb5_decrypt_tkt_part}.
+
+\begin{funcdecl}{krb5_free_ticket}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_ticket *}{val}
+\end{funcdecl}
+
+Frees the ticket \funcparam{val} that has been allocated from
+\funcname{krb5_copy_ticket} and other routines.
+
+\begin{funcdecl}{krb5_free_tickets}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_ticket **}{val}
+\end{funcdecl}
+
+Frees the tickets pointed to by \funcparam{val}.
+
+\begin{funcdecl}{krb5_free_kdc_req}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_kdc_req *}{val}
+\end{funcdecl}
+
+Frees the kdc_req \funcparam{val} and all substructures. The pointer
+\funcparam{val} is freed as well.
+
+\begin{funcdecl}{krb5_free_kdc_rep}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_kdc_rep *}{val}
+\end{funcdecl}
+
+Frees the kdc_rep \funcparam{val} that has been allocated from
+\funcname{krb5_get_in_tkt}.
+
+\begin{funcdecl}{krb5_free_kdc_rep_part}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_enc_kdc_rep_part *}{val}
+\end{funcdecl}
+
+Frees the kdc_rep_part \funcparam{val}.
+
+\begin{funcdecl}{krb5_free_error}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_error *}{val}
+\end{funcdecl}
+
+Frees the error \funcparam{val} that has been allocated from
+\funcname{krb5_read_error} or \funcname{krb5_sendauth}.
+
+\begin{funcdecl}{krb5_free_ap_req}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_ap_req *}{val}
+\end{funcdecl}
+
+Frees the ap_req \funcparam{val}.
+
+\begin{funcdecl}{krb5_free_ap_rep}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_ap_rep *}{val}
+\end{funcdecl}
+
+Frees the ap_rep \funcparam{val}.
+
+\begin{funcdecl}{krb5_free_safe}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_safe *}{val}
+\end{funcdecl}
+
+Frees the safe application data \funcparam{val} that is allocated with
+\funcparam{decode_krb5_safe}.
+
+
+\begin{funcdecl}{krb5_free_priv}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_priv *}{val}
+\end{funcdecl}
+
+Frees the private data \funcparam{val} that has been allocated from
+\funcname{decode_krb5_priv}.
+
+\begin{funcdecl}{krb5_free_priv_enc_part}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_priv_enc_part *}{val}
+\end{funcdecl}
+
+Frees the private encoded part \funcparam{val} that has been allocated from
+\funcname{decode_krb5_enc_priv_part}.
+
+\begin{funcdecl}{krb5_free_cred}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_cred *}{val}
+\end{funcdecl}
+
+Frees the credential \funcparam{val}.
+
+\begin{funcdecl}{krb5_free_creds}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_creds *}{val}
+\end{funcdecl}
+
+Calls \funcname{krb5_free_cred_contents} with \funcparam{val} as the
+argument. \funcparam{val} is freed as well.
+
+\begin{funcdecl}{krb5_free_cred_contents}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_creds *}{val}
+\end{funcdecl}
+
+The function zeros out the session key stored in the credential and then
+frees the credentials structures. The argument \funcparam{val} is
+{\bf not} freed.
+
+
+\begin{funcdecl}{krb5_free_cred_enc_part}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_cred_enc_part *}{val}
+\end{funcdecl}
+
+Frees the addresses and ticket_info elements of
+\funcparam{val}. \funcparam{val} is {\bf not} freed by this routine.
+
+\begin{funcdecl}{krb5_free_checksum}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_checksum *}{val}
+\end{funcdecl}
+
+The checksum and the pointer \funcparam{val} are both freed.
+
+\begin{funcdecl}{krb5_free_keyblock}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_keyblock *}{val}
+\end{funcdecl}
+
+The keyblock contents of \funcparam{val} are zeroed and the memory
+freed. The pointer \funcparam{val} is freed as well.
+
+\begin{funcdecl}{krb5_free_pa_data}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_pa_data **}{val}
+\end{funcdecl}
+
+Frees the contents of \funcparam{*val}. \funcparam{val} is freed as
+well.
+
+\begin{funcdecl}{krb5_free_ap_rep_enc_part}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_ap_rep_enc_part *}{val}
+\end{funcdecl}
+
+Frees the subkey keyblock (if set) as well as \funcparam{val} that has
+been allocated from \funcname{krb5_rd_rep} or \funcname{krb5_send_auth}.
+
+\begin{funcdecl}{krb5_free_tkt_authent}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_tkt_authent *}{val}
+\end{funcdecl}
+
+Frees the ticket and authenticator portions of \funcparam{val}. The
+pointer \funcparam{val} is freed as well.
+
+\begin{funcdecl}{krb5_free_pwd_data}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{passwd_pwd_data *}{val}
+\end{funcdecl}
+
+Frees the pwd_data \funcparam{val} that has been allocated from
+\funcname{decode_krb5_pwd_data}.
+
+\begin{funcdecl}{krb5_free_pwd_sequences}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{passwd_phrase_element **}{val}
+\end{funcdecl}
+
+Frees the passwd_phrase_element \funcparam{val}. This is usually called
+from \funcname{krb5_free_pwd_data}.
+
+\begin{funcdecl}{krb5_free_realm_tree}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_principal *}{realms}
+\end{funcdecl}
+
+Frees the realms tree \funcparam{realms} returned by
+\funcname{krb5_walk_realm_tree}.
+
+\begin{funcdecl}{krb5_free_tgt_creds}{void}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcarg{krb5_creds **}{tgts}
+\end{funcdecl}
+
+Frees the TGT credentials \funcparam{tgts} returned by
+\funcname{krb5_get_cred_from_kdc}.
+
diff --git a/doc/api/keytab.tex b/doc/api/keytab.tex
index c642b17eb..740c9de07 100644
--- a/doc/api/keytab.tex
+++ b/doc/api/keytab.tex
@@ -14,7 +14,9 @@ abnormally, a close routine, \funcname{krb5_kt_free_entry}, is provided
for freeing resources, etc. People should use the close routine when
they are finished.
-\begin{funcdecl}{krb5_kt_register}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_kt_register}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcin
\funcarg{krb5_kt_ops *}{ops}
\end{funcdecl}
@@ -26,7 +28,9 @@ yet known.
An error is returned if \funcparam{ops{\ptsto}prefix} is already known.
-\begin{funcdecl}{krb5_kt_resolve}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_kt_resolve}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcin
\funcarg{const char *}{string_name}
\funcout
\funcarg{krb5_keytab *}{id}
@@ -39,7 +43,9 @@ Requires that \funcparam{string_name} be of the form ``type:residual'' and
Errors: badly formatted name.
-\begin{funcdecl}{krb5_kt_default_name}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_kt_default_name}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcin
\funcarg{char *}{name}
\funcarg{int}{namesize}
\end{funcdecl}
@@ -50,13 +56,17 @@ If the name is shorter than \funcparam{namesize}, then the remainder of
\funcparam{name} will be zeroed.
-\begin{funcdecl}{krb5_kt_default}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_kt_default}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcin
\funcarg{krb5_keytab *}{id}
\end{funcdecl}
-Fills in \funcparam{id} with a handle identifying the default keytab.
+Fills in \funcparam{id} with a handle identifying the default keytab.
-\begin{funcdecl}{krb5_kt_read_service_key}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_kt_read_service_key}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcin
\funcarg{krb5_pointer}{keyprocarg}
\funcarg{krb5_principal}{principal}
\funcarg{krb5_kvno}{vno}
@@ -65,9 +75,6 @@ Fills in \funcparam{id} with a handle identifying the default keytab.
\funcarg{krb5_keyblock **}{key}
\end{funcdecl}
-This function is suitable for use as a parameter to
-\funcname{krb5_rd_req}.
-
If \funcname{keyprocarg} is not NULL, it is taken to be a
\datatype{char *} denoting the name of a keytab. Otherwise, the default
keytab will be used.
@@ -81,7 +88,9 @@ the caller is finished with the key.
Returns an error code if the entry is not found.
-\begin{funcdecl}{krb5_kt_add_entry}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_kt_add_entry}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcin
\funcarg{krb5_keytab}{id}
\funcarg{krb5_keytab_entry *}{entry}
\end{funcdecl}
@@ -90,7 +99,9 @@ Calls the keytab-specific add routine \funcname{krb5_kt_add_internal}
with the same function arguments. If this routine is not available,
then KRB5_KT_NOWRITE is returned.
-\begin{funcdecl}{krb5_kt_remove_entry}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_kt_remove_entry}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcin
\funcarg{krb5_keytab}{id}
\funcarg{krb5_keytab_entry *}{entry}
\end{funcdecl}
@@ -99,7 +110,8 @@ Calls the keytab-specific remove routine
\funcname{krb5_kt_remove_internal} with the same function arguments.
If this routine is not available, then KRB5_KT_NOWRITE is returned.
-\begin{funcdecl}{krb5_kt_get_name}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_kt_get_name}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
\funcarg{krb5_keytab}{id}
\funcout
\funcarg{char *}{name}
@@ -112,7 +124,8 @@ the name of the keytab identified by \funcname{id}.
If the name is shorter than \funcparam{namesize}, then \funcarg{name}
will be null-terminated.
-\begin{funcdecl}{krb5_kt_close}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_kt_close}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
\funcarg{krb5_keytab}{id}
\end{funcdecl}
@@ -120,10 +133,12 @@ Closes the keytab identified by \funcparam{id} and invalidates
\funcparam{id}, and releases any other resources acquired during use of
the key table.
-Requires that \funcparam{id} identifies a valid credentials cache.
+Requires that \funcparam{id} identifies a keytab.
-\begin{funcdecl}{krb5_kt_get_entry}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_kt_get_entry}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
\funcarg{krb5_keytab}{id}
+\funcin
\funcarg{krb5_principal}{principal}
\funcarg{krb5_kvno}{vno}
\funcarg{krb5_keytype}{keytype}
@@ -131,11 +146,13 @@ Requires that \funcparam{id} identifies a valid credentials cache.
\funcarg{krb5_keytab_entry *}{entry}
\end{funcdecl}
+\begin{sloppypar}
Searches the keytab identified by \funcparam{id} for an entry whose
principal matches \funcparam{principal}, whose keytype matches
\funcparam{keytype}, and
whose key version number matches \funcparam{vno}. If \funcparam{vno} is
zero, the first entry whose principal matches is returned.
+\end{sloppypar}
Returns an error code if no suitable entry is found. If an entry is
found, the entry is returned in \funcparam{*entry}; its contents should
@@ -143,6 +160,7 @@ be deallocated by calling \funcname{krb5_kt_free_entry} when no longer
needed.
\begin{funcdecl}{krb5_kt_free_entry}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
\funcarg{krb5_keytab_entry *}{entry}
\end{funcdecl}
@@ -150,7 +168,8 @@ Releases all storage allocated for \funcparam{entry}, which must point
to a structure previously filled in by \funcname{krb5_kt_get_entry} or
\funcname{krb5_kt_next_entry}.
-\begin{funcdecl}{krb5_kt_start_seq_get}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_kt_start_seq_get}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
\funcarg{krb5_keytab}{id}
\funcout
\funcarg{krb5_kt_cursor *}{cursor}
@@ -161,7 +180,8 @@ Prepares to read sequentially every key in the keytab identified by
\funcparam{cursor} is filled in with a cursor to be used in calls to
\funcname{krb5_kt_next_entry}.
-\begin{funcdecl}{krb5_kt_next_entry}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_kt_next_entry}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
\funcarg{krb5_keytab}{id}
\funcout
\funcarg{krb5_keytab_entry *}{entry}
@@ -175,14 +195,15 @@ request. If the keytab changes during the sequential get, an error is
guaranteed. \funcparam{*entry} should be freed after use by calling
\funcname{krb5_kt_free_entry}.
-Requires that \funcparam{id} identifies a valid credentials cache. and
+Requires that \funcparam{id} identifies a valid keytab. and
\funcparam{*cursor} be a cursor returned by
\funcname{krb5_kt_start_seq_get} or a subsequent call to
\funcname{krb5_kt_next_entry}.
Errors: error code if no more cache entries or if the keytab changes.
-\begin{funcdecl}{krb5_kt_end_seq_get}{krb5_error_code}{\funcin}
+\begin{funcdecl}{krb5_kt_end_seq_get}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
\funcarg{krb5_keytab}{id}
\funcarg{krb5_kt_cursor *}{cursor}
\end{funcdecl}
@@ -190,10 +211,11 @@ Errors: error code if no more cache entries or if the keytab changes.
Finishes sequential processing mode and invalidates \funcparam{cursor},
which must never be re-used after this call.
-Requires that \funcparam{id} identifies a valid credentials cache. and
+Requires that \funcparam{id} identifies a valid keytab and
\funcparam{*cursor} be a cursor returned by
\funcname{krb5_kt_start_seq_get} or a subsequent call to
\funcname{krb5_kt_next_entry}.
May return error code if \funcparam{cursor} is invalid.
+
diff --git a/doc/api/rcache.tex b/doc/api/rcache.tex
index b9ef1977a..55347cb7c 100644
--- a/doc/api/rcache.tex
+++ b/doc/api/rcache.tex
@@ -8,16 +8,31 @@ file-based things, it would be a cache file name). The
caching strategy uses non-volatile storage so that replay
integrity can be maintained across system failures.
+\begin{funcdecl}{krb5_auth_to_rep}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
+\funcin
+\funcarg{krb5_tkt_authent *}{auth}
+\funcout
+\funcarg{krb5_donot_replay *}{rep}
+\end{funcdecl}
+Extract the relevant parts of \funcparam{auth} and fill them into the
+structure pointed to by \funcparam{rep}. \funcparam{rep{\ptsto}client}
+and \funcparam{rep{\ptsto}server} are set to allocated storage and
+should be freed when \funcparam{*rep} is no longer needed.
+
\begin{funcdecl}{krb5_rc_resolve_full}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
\funcarg{krb5_rcache *}{id}
\funcin
\funcarg{char *}{string_name}
\end{funcdecl}
+\begin{sloppypar}
\funcparam{id} is filled in to identify a replay cache which
corresponds to the name in \funcparam{string_name}. The cache is not opened.
Requires that \funcparam{string_name} be of the form ``type:residual''
and that ``type'' is a type known to the library.
+\end{sloppypar}
Before the cache can be used \funcname{krb5_rc_initialize} or
\funcname{krb5_rc_recover} must be called.
@@ -25,6 +40,7 @@ Before the cache can be used \funcname{krb5_rc_initialize} or
Errors: error if cannot resolve name.
\begin{funcdecl}{krb5_rc_register_type}{krb5_error_code}{\funcin}
+\funcarg{krb5_context}{context}
\funcarg{krb5_rc_ops *}{ops}
\end{funcdecl}
Adds a new replay cache type implemented and identified by
@@ -34,17 +50,23 @@ cache of the type named in
\funcparam{ops{\ptsto}prefix} has not been previously registered.
-\begin{funcdecl}{krb5_rc_default_name}{char *}{\funcvoid}
+\begin{funcdecl}{krb5_rc_default_name}{char *}{\funcin}
+\funcarg{krb5_context}{context}
\end{funcdecl}
+
+\begin{sloppypar}
Returns the name of the default replay cache; this may be equivalent to
\funcnamenoparens{getenv}({\tt "KRB5RCACHE"}) with an appropriate fallback.
+\end{sloppypar}
-\begin{funcdecl}{krb5_rc_default_type}{char *}{\funcvoid}
+\begin{funcdecl}{krb5_rc_default_type}{char *}{\funcin}
+\funcarg{krb5_context}{context}
\end{funcdecl}
Returns the type of the default replay cache.
\begin{funcdecl}{krb5_rc_default}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
\funcarg{krb5_rcache *}{id}
\end{funcdecl}
@@ -56,6 +78,7 @@ called.
\begin{funcdecl}{krb5_rc_initialize}{krb5_error_code}{\funcin}
+\funcarg{krb5_context}{context}
\funcarg{krb5_rcache}{id}
\funcarg{krb5_deltat}{auth_lifespan}
\end{funcdecl}
@@ -67,6 +90,7 @@ replay cache already exists, its contents are destroyed.
Errors: permission errors, system errors
\begin{funcdecl}{krb5_rc_recover}{krb5_error_code}{\funcin}
+\funcarg{krb5_context}{context}
\funcarg{krb5_rcache}{id}
\end{funcdecl}
Attempts to recover the replay cache \funcparam{id}, (presumably after a
@@ -75,6 +99,7 @@ system crash or server restart).
Errors: error indicating that no cache was found to recover
\begin{funcdecl}{krb5_rc_destroy}{krb5_error_code}{\funcin}
+\funcarg{krb5_context}{context}
\funcarg{krb5_rcache}{id}
\end{funcdecl}
@@ -84,6 +109,7 @@ Requires that \funcparam{id} identifies a valid replay cache.
Errors: permission errors.
\begin{funcdecl}{krb5_rc_close}{krb5_error_code}{\funcin}
+\funcarg{krb5_context}{context}
\funcarg{krb5_rcache}{id}
\end{funcdecl}
@@ -94,6 +120,7 @@ Requires that \funcparam{id} identifies a valid replay cache.
Errors: permission errors
\begin{funcdecl}{krb5_rc_store}{krb5_error_code}{\funcin}
+\funcarg{krb5_context}{context}
\funcarg{krb5_rcache}{id}
\funcarg{krb5_donot_replay *}{rep}
\end{funcdecl}
@@ -104,6 +131,7 @@ Returns KRB5KRB_AP_ERR_REPEAT if \funcparam{rep} is already in the
cache. May also return permission errors, storage failure errors.
\begin{funcdecl}{krb5_rc_expunge}{krb5_error_code}{\funcin}
+\funcarg{krb5_context}{context}
\funcarg{krb5_rcache}{id}
\end{funcdecl}
Removes all expired replay information (i.e. those entries which are
@@ -114,6 +142,7 @@ cache.
Errors: permission errors.
\begin{funcdecl}{krb5_rc_get_lifespan}{krb5_error_code}{\funcin}
+\funcarg{krb5_context}{context}
\funcarg{krb5_rcache}{id}
\funcout
\funcarg{krb5_deltat *}{auth_lifespan}
@@ -123,6 +152,7 @@ the cache \funcparam{id}.
Requires that \funcparam{id} identifies a valid replay cache.
\begin{funcdecl}{krb5_rc_resolve}{krb5_error_code}{\funcinout}
+\funcarg{krb5_context}{context}
\funcarg{krb5_rcache}{id}
\funcin
\funcarg{char *}{name}
@@ -143,6 +173,7 @@ Returns: allocation errors.
\begin{funcdecl}{krb5_rc_get_name}{char *}{\funcin}
+\funcarg{krb5_context}{context}
\funcarg{krb5_rcache}{id}
\end{funcdecl}