From da3dad673043bdf35b58dc303f3ab324b0d0d828 Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Thu, 31 Oct 2002 00:19:55 +0000 Subject: [PATCH] bg-fcrypt-cleanup-20021030 make the libafsrpc libraries work with new fcrypt ==================== This delta was composed from multiple commits as part of the CVS->Git migration. The checkin message with each commit was inconsistent. The following are the additional commit messages. ==================== readd missing statistics make cm and ukernel compile with new stuff ==================== readd missing statistics make cm and ukernel compile with new stuff ==================== make it work with ukernel macros --- src/libafs/Makefile.common.in | 8 ++----- src/libafsrpc/Makefile.in | 8 ++----- src/libuafs/Makefile.common.in | 25 ++++++--------------- src/rxkad/bg-fcrypt.c | 40 ++++++++++++++++++++++++++-------- src/shlibafsrpc/Makefile.in | 8 ++----- 5 files changed, 44 insertions(+), 45 deletions(-) diff --git a/src/libafs/Makefile.common.in b/src/libafs/Makefile.common.in index 40552831c..a533ec182 100644 --- a/src/libafs/Makefile.common.in +++ b/src/libafs/Makefile.common.in @@ -28,7 +28,6 @@ COMMON_INCLUDE = -I. -I.. -I../nfs \ -I${TOP_SRCDIR}/config \ -I${TOP_SRCDIR}/rx/${MKAFS_OSTYPE} \ -I${TOP_SRCDIR}/rxkad \ - -I${TOP_SRCDIR}/rxkad/domestic \ -I${TOP_SRCDIR}/util \ -I${TOP_OBJDIR}/src \ -I${TOP_OBJDIR}/src/afs \ @@ -126,7 +125,7 @@ AFSAOBJS = \ xdr_int32.o \ xdr_int64.o \ Kvice.cs.o \ - fcrypt.o \ + bg-fcrypt.o \ rx.o \ rx_rdwr.o \ rx_clock.o \ @@ -146,7 +145,6 @@ AFSAOBJS = \ Krxstat.ss.o \ Krxstat.xdr.o \ rxstat.o \ - crypt_conn.o \ AFS_component_version_number.o\ afs_exporter.o \ rxkad_client.o \ @@ -277,9 +275,7 @@ afs_memcache.o: $(TOP_SRC_AFS)/afs_memcache.c $(CRULE1) afs_stat.o: $(TOP_SRC_AFS)/afs_stat.c $(CRULE1) -fcrypt.o: $(TOP_SRC_RXKAD)/domestic/fcrypt.c - $(CRULE1) -crypt_conn.o: $(TOP_SRC_RXKAD)/domestic/crypt_conn.c +bg-fcrypt.o: $(TOP_SRC_RXKAD)/bg-fcrypt.c $(CRULE1) rxkad_client.o: $(TOP_SRC_RXKAD)/rxkad_client.c $(CRULE1) diff --git a/src/libafsrpc/Makefile.in b/src/libafsrpc/Makefile.in index 7b905a297..c8cafbfb7 100644 --- a/src/libafsrpc/Makefile.in +++ b/src/libafsrpc/Makefile.in @@ -85,8 +85,7 @@ RXKADOBJS =\ ticket.o \ ticket5.o \ crc.o \ - fcrypt.o \ - crypt_conn.o + bg-fcrypt.o DESOBJS =\ des.o \ @@ -190,10 +189,7 @@ ticket5.o: ${RXKAD}/ticket5.c crc.o: ${RXKAD}/crc.c ${CCRULE} -fcrypt.o: ${RXKAD}/fcrypt.c - ${CCRULE} - -crypt_conn.o: ${RXKAD}/crypt_conn.c +bg-fcrypt.o: ${RXKAD}/bg-fcrypt.c ${CCRULE} AFS_component_version_number.o: ${RX}/AFS_component_version_number.c diff --git a/src/libuafs/Makefile.common.in b/src/libuafs/Makefile.common.in index a80bb3160..1c544d05a 100644 --- a/src/libuafs/Makefile.common.in +++ b/src/libuafs/Makefile.common.in @@ -39,7 +39,6 @@ COMMON_INCLUDE = -I. -I.. -I../nfs \ -I${TOP_SRCDIR}/rx \ -I${TOP_SRCDIR}/rx/UKERNEL \ -I${TOP_SRCDIR}/rxkad \ - -I${TOP_SRCDIR}/rxkad/domestic \ -I${TOP_SRCDIR}/util \ -I${TOP_OBJDIR}/src \ -I${TOP_OBJDIR}/src/afs/UKERNEL \ @@ -142,7 +141,7 @@ UAFSOBJ = \ $(UOBJ)/Kvice.xdr.o \ $(UOBJ)/xdr_arrayn.o \ $(UOBJ)/Kvice.cs.o \ - $(UOBJ)/fcrypt.o \ + $(UOBJ)/bg-fcrypt.o \ $(UOBJ)/rx.o \ $(UOBJ)/rx_rdwr.o \ $(UOBJ)/rx_clock.o \ @@ -160,7 +159,6 @@ UAFSOBJ = \ $(UOBJ)/Kvldbint.cs.o \ $(UOBJ)/Kvldbint.xdr.o \ $(UOBJ)/Kcallback.ss.o \ - $(UOBJ)/crypt_conn.o \ $(UOBJ)/AFS_component_version_number.o \ $(UOBJ)/afs_exporter.o \ $(UOBJ)/rxkad_client.o \ @@ -262,7 +260,7 @@ AFSWEBOBJ = \ $(WEBOBJ)/Kvice.xdr.o \ $(WEBOBJ)/xdr_arrayn.o \ $(WEBOBJ)/Kvice.cs.o \ - $(WEBOBJ)/fcrypt.o \ + $(WEBOBJ)/bg-fcrypt.o \ $(WEBOBJ)/rx.o \ $(WEBOBJ)/rx_rdwr.o \ $(WEBOBJ)/rx_clock.o \ @@ -280,7 +278,6 @@ AFSWEBOBJ = \ $(WEBOBJ)/Kvldbint.cs.o \ $(WEBOBJ)/Kvldbint.xdr.o \ $(WEBOBJ)/Kcallback.ss.o \ - $(WEBOBJ)/crypt_conn.o \ $(WEBOBJ)/AFS_component_version_number.o \ $(WEBOBJ)/afs_exporter.o \ $(WEBOBJ)/rxkad_client.o \ @@ -380,7 +377,7 @@ AFSWEBOBJKRB = \ $(WEBOBJ)/Kvice.xdr.o \ $(WEBOBJ)/xdr_arrayn.o \ $(WEBOBJ)/Kvice.cs.o \ - $(WEBOBJ)/fcrypt.o \ + $(WEBOBJ)/bg-fcrypt.o \ $(WEBOBJ)/rx.o \ $(WEBOBJ)/rx_rdwr.o \ $(WEBOBJ)/rx_clock.o \ @@ -398,7 +395,6 @@ AFSWEBOBJKRB = \ $(WEBOBJ)/Kvldbint.cs.o \ $(WEBOBJ)/Kvldbint.xdr.o \ $(WEBOBJ)/Kcallback.ss.o \ - $(WEBOBJ)/crypt_conn.o \ $(WEBOBJ)/AFS_component_version_number.o \ $(WEBOBJ)/afs_exporter.o \ $(WEBOBJ)/rxkad_client.o \ @@ -499,7 +495,7 @@ JUAFSOBJ = \ $(JUAFS)/Kvice.xdr.o \ $(JUAFS)/xdr_arrayn.o \ $(JUAFS)/Kvice.cs.o \ - $(JUAFS)/fcrypt.o \ + $(JUAFS)/bg-fcrypt.o \ $(JUAFS)/rx.o \ $(JUAFS)/rx_rdwr.o \ $(JUAFS)/rx_clock.o \ @@ -516,7 +512,6 @@ JUAFSOBJ = \ $(JUAFS)/Kvldbint.cs.o \ $(JUAFS)/Kvldbint.xdr.o \ $(JUAFS)/Kcallback.ss.o \ - $(JUAFS)/crypt_conn.o \ $(JUAFS)/AFS_component_version_number.o \ $(JUAFS)/afs_exporter.o \ $(JUAFS)/rxkad_client.o \ @@ -656,9 +651,7 @@ $(UOBJ)/afs_memcache.o: $(TOP_SRC_AFS)/afs_memcache.c $(CRULE1) $(UOBJ)/afs_stat.o: $(TOP_SRC_AFS)/afs_stat.c $(CRULE1) -$(UOBJ)/fcrypt.o: $(TOP_SRC_RXKAD)/domestic/fcrypt.c - $(CRULE1) -$(UOBJ)/crypt_conn.o: $(TOP_SRC_RXKAD)/domestic/crypt_conn.c +$(UOBJ)/bg-fcrypt.o: $(TOP_SRC_RXKAD)/bg-fcrypt.c $(CRULE1) $(UOBJ)/rxkad_client.o: $(TOP_SRC_RXKAD)/rxkad_client.c $(CRULE1) @@ -903,9 +896,7 @@ $(WEBOBJ)/afs_memcache.o: $(TOP_SRC_AFS)/afs_memcache.c $(CRULE2) $(WEBOBJ)/afs_stat.o: $(TOP_SRC_AFS)/afs_stat.c $(CRULE2) -$(WEBOBJ)/fcrypt.o: $(TOP_SRC_RXKAD)/domestic/fcrypt.c - $(CRULE2) -$(WEBOBJ)/crypt_conn.o: $(TOP_SRC_RXKAD)/domestic/crypt_conn.c +$(WEBOBJ)/bg-fcrypt.o: $(TOP_SRC_RXKAD)/bg-fcrypt.c $(CRULE2) $(WEBOBJ)/rxkad_client.o: $(TOP_SRC_RXKAD)/rxkad_client.c $(CRULE2) @@ -1154,9 +1145,7 @@ $(JUAFS)/afs_memcache.o: $(TOP_SRC_AFS)/afs_memcache.c $(CRULE1) $(JUAFS)/afs_stat.o: $(TOP_SRC_AFS)/afs_stat.c $(CRULE1) -$(JUAFS)/fcrypt.o: $(TOP_SRC_RXKAD)/domestic/fcrypt.c - $(CRULE1) -$(JUAFS)/crypt_conn.o: $(TOP_SRC_RXKAD)/domestic/crypt_conn.c +$(JUAFS)/bg-fcrypt.o: $(TOP_SRC_RXKAD)/bg-fcrypt.c $(CRULE1) $(JUAFS)/rxkad_client.o: $(TOP_SRC_RXKAD)/rxkad_client.c $(CRULE1) diff --git a/src/rxkad/bg-fcrypt.c b/src/rxkad/bg-fcrypt.c index c968b0db0..feba31b77 100644 --- a/src/rxkad/bg-fcrypt.c +++ b/src/rxkad/bg-fcrypt.c @@ -72,6 +72,7 @@ RCSID("$Header$"); #include "fcrypt.h" #include "rxkad.h" #include "fcrypt.h" +#include "private_data.h" #undef WORDS_BIGENDIAN #ifdef AFSBIG_ENDIAN @@ -258,9 +259,9 @@ static const afs_uint32 sbox3[256] = { */ #define F_ENCRYPT(R, L, sched) { \ - union lc4 { afs_uint32 l; unsigned char c[4]; } u; \ - u.l = sched ^ R; \ - L ^= sbox0[u.c[0]] ^ sbox1[u.c[1]] ^ sbox2[u.c[2]] ^ sbox3[u.c[3]]; } + union lc4 { afs_uint32 l; unsigned char c[4]; } un; \ + un.l = sched ^ R; \ + L ^= sbox0[un.c[0]] ^ sbox1[un.c[1]] ^ sbox2[un.c[2]] ^ sbox3[un.c[3]]; } #ifndef WORDS_BIGENDIAN /* BEWARE: this code is endian dependent. @@ -269,9 +270,9 @@ static const afs_uint32 sbox3[256] = { #undef F_ENCRYPT #define FF(y, shiftN) (((y) >> shiftN) & 0xFF) #define F_ENCRYPT(R, L, sched) { \ - afs_uint32 u; \ - u = sched ^ R; \ - L ^= sbox0[FF(u, 0)] ^ sbox1[FF(u, 8)] ^ sbox2[FF(u, 16)] ^ sbox3[FF(u, 24)];} + afs_uint32 un; \ + un = sched ^ R; \ + L ^= sbox0[FF(un, 0)] ^ sbox1[FF(un, 8)] ^ sbox2[FF(un, 16)] ^ sbox3[FF(un, 24)];} #endif static inline @@ -428,7 +429,10 @@ fc_ecb_encrypt(afs_uint32 *in, afs_uint32 *out, fc_KeySchedule sched, int encrypt) { - if (encrypt) + LOCK_RXKAD_STATS + rxkad_stats.fc_encrypts[encrypt]++; + UNLOCK_RXKAD_STATS + if (encrypt) fc_ecb_enc(in[0], in[1], out, sched); else fc_ecb_dec(in[0], in[1], out, sched); @@ -533,7 +537,6 @@ fc_keysched(void *key_, *sched++ = EFF_NTOHL((afs_uint32)k); ROT56R64(k, 11); *sched++ = EFF_NTOHL((afs_uint32)k); - return 0; #else afs_uint32 hi, lo; /* hi is upper 24 bits and lo lower 32, total 56 */ @@ -591,8 +594,11 @@ fc_keysched(void *key_, *sched++ = EFF_NTOHL(lo); ROT56R(hi, lo, 11); *sched++ = EFF_NTOHL(lo); - return 0; #endif + LOCK_RXKAD_STATS + rxkad_stats.fc_key_scheds++; + UNLOCK_RXKAD_STATS + return 0; } /* @@ -609,6 +615,14 @@ rxkad_EncryptPacket(const struct rx_connection *rx_connection_not_used, { afs_uint32 ivec[2]; struct iovec *frag; + struct rx_securityClass *obj; + struct rxkad_cprivate *tp; /* s & c have type at same offset */ + + obj = rx_SecurityObjectOf(rx_connection_not_used); + tp = (struct rxkad_cprivate *)obj->privateData; + LOCK_RXKAD_STATS + rxkad_stats.bytesEncrypted[rxkad_TypeIndex(tp->type)] += len; + UNLOCK_RXKAD_STATS { /* What is this good for? @@ -643,6 +657,14 @@ rxkad_DecryptPacket(const struct rx_connection *rx_connection_not_used, { afs_uint32 ivec[2]; struct iovec *frag; + struct rx_securityClass *obj; + struct rxkad_cprivate *tp; /* s & c have type at same offset */ + + obj = rx_SecurityObjectOf(rx_connection_not_used); + tp = (struct rxkad_cprivate *)obj->privateData; + LOCK_RXKAD_STATS + rxkad_stats.bytesDecrypted[rxkad_TypeIndex(tp->type)] += len; + UNLOCK_RXKAD_STATS memcpy(ivec, iv, sizeof(ivec)); /* Must use copy of iv */ for (frag = &packet->wirevec[1]; len > 0; frag++) diff --git a/src/shlibafsrpc/Makefile.in b/src/shlibafsrpc/Makefile.in index ec37b5e39..f3f204caa 100644 --- a/src/shlibafsrpc/Makefile.in +++ b/src/shlibafsrpc/Makefile.in @@ -87,8 +87,7 @@ RXKADOBJS =\ ticket.o \ ticket5.o \ crc.o \ - fcrypt.o \ - crypt_conn.o + bg-fcrypt.o DESOBJS =\ des.o \ @@ -198,10 +197,7 @@ ticket5.o: ${RXKAD}/ticket5.c crc.o: ${RXKAD}/crc.c ${CCRULE} -fcrypt.o: ${RXKAD}/fcrypt.c - ${CCRULE} - -crypt_conn.o: ${RXKAD}/crypt_conn.c +bg-fcrypt.o: ${RXKAD}/bg-fcrypt.c ${CCRULE} AFS_component_version_number.o: ${RX}/AFS_component_version_number.c -- 2.39.5