#include <string.h>
#include <unistd.h>
+#ifdef HAVE_KRB4
#include <des.h>
+#endif
#include <update.h>
RCSID("$Header$");
+#ifdef HAVE_KRB4
extern des_cblock session;
+#endif
/*
* syntax:
char data[UPDATE_BUFSIZ], enc[UPDATE_BUFSIZ];
long response;
struct stat statb;
+#ifdef HAVE_KRB4
des_key_schedule sched;
des_cblock ivec;
+#endif
/* send file over */
fd = open(pathname, O_RDONLY, 0);
if (encrypt)
{
+#ifdef HAVE_KRB4
des_key_sched(session, sched);
memmove(ivec, session, sizeof(ivec));
+#else
+ /* The session key only gets stored if auth happens in krb4 to
+ begin with. If you don't have krb4, you can't possibly be
+ coming up with a valid session key. */
+ return MR_NO_KRB4;
+#endif
}
while (n_to_send > 0)
}
if (encrypt)
{
+#ifdef HAVE_KRB4
memset(data + n, 0, sizeof(data) -n);
des_pcbc_encrypt(data, enc, (n + 7) & ~7, sched, ivec, 0);
/* save vector to continue chaining */
/* round up to multiple of 8 */
n = (n + 7) & ~7;
code = send_string(conn, enc, n);
+#endif
}
else
code = send_string(conn, data, n);