From: Tom Yu Date: Sat, 11 Nov 2006 01:57:12 +0000 (+0000) Subject: pull up r18789 from trunk X-Git-Tag: krb5-1.6-alpha1~10 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=eb6267492fb2bb8cad37ead37ae3e819e9e1b905;p=krb5.git pull up r18789 from trunk r18789@cathode-dark-space: coffman | 2006-11-09 15:15:54 -0500 ticket: new subject: Add public function to get keylenth associated with an enctype Tags: pullup Add a new function, krb5_c_keylength, to libk5crypto to obtain the keylength associated with an enctype. ticket: 4688 version_fixed: 1.6 git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-6@18795 dc483132-0cff-0310-8789-dd5450dbe970 --- diff --git a/src/include/krb5/krb5.hin b/src/include/krb5/krb5.hin index 081a43ffc..42d141ee3 100644 --- a/src/include/krb5/krb5.hin +++ b/src/include/krb5/krb5.hin @@ -436,6 +436,11 @@ krb5_error_code KRB5_CALLCONV (krb5_context context, krb5_enctype enctype, size_t *blocksize); +krb5_error_code KRB5_CALLCONV + krb5_c_keylength + (krb5_context context, krb5_enctype enctype, + size_t *keylength); + krb5_error_code KRB5_CALLCONV krb5_c_init_state (krb5_context context, diff --git a/src/lib/crypto/Makefile.in b/src/lib/crypto/Makefile.in index 9ee074376..71928d057 100644 --- a/src/lib/crypto/Makefile.in +++ b/src/lib/crypto/Makefile.in @@ -52,6 +52,7 @@ STLIBOBJS=\ keyblocks.o \ keyed_cksum.o \ keyed_checksum_types.o \ + keylength.o \ make_checksum.o \ make_random_key.o \ mandatory_sumtype.o \ @@ -87,6 +88,7 @@ OBJS=\ $(OUTPRE)keyblocks.$(OBJEXT) \ $(OUTPRE)keyed_cksum.$(OBJEXT) \ $(OUTPRE)keyed_checksum_types.$(OBJEXT) \ + $(OUTPRE)keylength.$(OBJEXT) \ $(OUTPRE)make_checksum.$(OBJEXT) \ $(OUTPRE)make_random_key.$(OBJEXT) \ $(OUTPRE)mandatory_sumtype.$(OBJEXT) \ @@ -122,6 +124,7 @@ SRCS=\ $(srcdir)/keyblocks.c \ $(srcdir)/keyed_cksum.c \ $(srcdir)/keyed_checksum_types.c\ + $(srcdir)/keylength.c \ $(srcdir)/make_checksum.c \ $(srcdir)/make_random_key.c \ $(srcdir)/mandatory_sumtype.c \ @@ -524,6 +527,15 @@ keyed_checksum_types.so keyed_checksum_types.po $(OUTPRE)keyed_checksum_types.$( $(SRCTOP)/include/krb5/locate_plugin.h $(SRCTOP)/include/krb5/preauth_plugin.h \ $(SRCTOP)/include/port-sockets.h $(SRCTOP)/include/socket-utils.h \ cksumtypes.h etypes.h keyed_checksum_types.c +keylength.so keylength.po $(OUTPRE)keylength.$(OBJEXT): \ + $(BUILDTOP)/include/autoconf.h $(BUILDTOP)/include/krb5/krb5.h \ + $(BUILDTOP)/include/osconf.h $(BUILDTOP)/include/profile.h \ + $(COM_ERR_DEPS) $(SRCTOP)/include/k5-err.h $(SRCTOP)/include/k5-int.h \ + $(SRCTOP)/include/k5-platform.h $(SRCTOP)/include/k5-plugin.h \ + $(SRCTOP)/include/k5-thread.h $(SRCTOP)/include/krb5.h \ + $(SRCTOP)/include/krb5/locate_plugin.h $(SRCTOP)/include/krb5/preauth_plugin.h \ + $(SRCTOP)/include/port-sockets.h $(SRCTOP)/include/socket-utils.h \ + etypes.h keylength.c make_checksum.so make_checksum.po $(OUTPRE)make_checksum.$(OBJEXT): \ $(BUILDTOP)/include/autoconf.h $(BUILDTOP)/include/krb5/krb5.h \ $(BUILDTOP)/include/osconf.h $(BUILDTOP)/include/profile.h \ diff --git a/src/lib/crypto/keylength.c b/src/lib/crypto/keylength.c new file mode 100644 index 000000000..0b2a85473 --- /dev/null +++ b/src/lib/crypto/keylength.c @@ -0,0 +1,54 @@ +/* + * COPYRIGHT (c) 2006 + * The Regents of the University of Michigan + * ALL RIGHTS RESERVED + * + * Permission is granted to use, copy, create derivative works + * and redistribute this software and such derivative works + * for any purpose, so long as the name of The University of + * Michigan is not used in any advertising or publicity + * pertaining to the use of distribution of this software + * without specific, written prior authorization. If the + * above copyright notice or any other identification of the + * University of Michigan is included in any copy of any + * portion of this software, then the disclaimer below must + * also be included. + * + * THIS SOFTWARE IS PROVIDED AS IS, WITHOUT REPRESENTATION + * FROM THE UNIVERSITY OF MICHIGAN AS TO ITS FITNESS FOR ANY + * PURPOSE, AND WITHOUT WARRANTY BY THE UNIVERSITY OF + * MICHIGAN OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING + * WITHOUT LIMITATION THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE + * REGENTS OF THE UNIVERSITY OF MICHIGAN SHALL NOT BE LIABLE + * FOR ANY DAMAGES, INCLUDING SPECIAL, INDIRECT, INCIDENTAL, OR + * CONSEQUENTIAL DAMAGES, WITH RESPECT TO ANY CLAIM ARISING + * OUT OF OR IN CONNECTION WITH THE USE OF THE SOFTWARE, EVEN + * IF IT HAS BEEN OR IS HEREAFTER ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGES. + */ + +#include "k5-int.h" +#include "etypes.h" + +krb5_error_code KRB5_CALLCONV +krb5_c_keylength(krb5_context context, krb5_enctype enctype, + size_t *keylength) +{ + int i; + + if (keylength == NULL) + return(EINVAL); + + for (i=0; ikeylength; + + return(0); +} diff --git a/src/lib/crypto/libk5crypto.exports b/src/lib/crypto/libk5crypto.exports index b06f2e427..1f7dc3215 100644 --- a/src/lib/crypto/libk5crypto.exports +++ b/src/lib/crypto/libk5crypto.exports @@ -23,6 +23,7 @@ krb5_c_init_state krb5_c_is_coll_proof_cksum krb5_c_is_keyed_cksum krb5_c_keyed_checksum_types +krb5_c_keylength krb5_c_make_checksum krb5_c_make_random_key krb5_c_prf