summaryrefslogtreecommitdiffstats
path: root/doc/implement
diff options
context:
space:
mode:
authorJohn Kohl <jtkohl@mit.edu>1990-05-31 22:06:49 +0000
committerJohn Kohl <jtkohl@mit.edu>1990-05-31 22:06:49 +0000
commit2eb2031a30a45c1ea9ed451d9fea3130f77cf774 (patch)
tree9b3a2b677362629a4d3484d057544014efd846d4 /doc/implement
parent37d41d2c0235a9f836e8262fe2f0e7162d0e0522 (diff)
downloadkrb5-2eb2031a30a45c1ea9ed451d9fea3130f77cf774.tar.gz
krb5-2eb2031a30a45c1ea9ed451d9fea3130f77cf774.tar.xz
krb5-2eb2031a30a45c1ea9ed451d9fea3130f77cf774.zip
*** empty log message ***
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@980 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'doc/implement')
-rw-r--r--doc/implement/cksum-i.tex31
1 files changed, 31 insertions, 0 deletions
diff --git a/doc/implement/cksum-i.tex b/doc/implement/cksum-i.tex
new file mode 100644
index 000000000..c7f763738
--- /dev/null
+++ b/doc/implement/cksum-i.tex
@@ -0,0 +1,31 @@
+Kerberos v5 has the ability to use multiple checksum algorithms. Any
+checksum implementation which desires to link with and be usable from the MIT
+Kerberos v5 implementation must implement this interface:
+
+\subsection{Functional interface}
+
+\begin{funcdecl}{sum_func}{krb5_error_code}{\funcin}
+\funcarg{krb5_pointer}{in}
+\funcarg{size_t}{in_length}
+\funcarg{krb5_pointer}{seed}
+\funcarg{size_t}{seed_length}
+\funcout
+\funcarg{krb5_checksum *}{outcksum}
+\end{funcdecl}
+
+This routine computes the desired checksum over \funcparam{in_length} bytes
+at \funcparam{in}. \funcparam{seed_length} bytes of a seed (usually an
+encryption key) are pointed to by \funcparam{seed}. Some checksum
+algorithms may choose to ignore \funcparam{seed}. If
+\funcparam{seed_length} is zero, then there is no seed available.
+The routine places the resulting value into \funcparam{outcksum{\ptsto}contents}.
+
+\funcparam{outcksum{\ptsto}contents} must be set by the caller to point
+to enough storage to contain the checksum; the size necessary is an
+element of the \datatype{krb5_checksum_entry} structure.
+
+\subsection{Other data elements}
+In addition to the above listed function entry point, each checksum algorithm
+should have an entry in \globalname{krb5_cksumarray} and a
+\datatype{krb5_checksum_entry} structure describing the entry points
+and checksum size for the algorithm.