summaryrefslogtreecommitdiffstats
path: root/eBones/include
diff options
context:
space:
mode:
authormarkm <markm@FreeBSD.org>1995-09-07 21:39:00 +0000
committermarkm <markm@FreeBSD.org>1995-09-07 21:39:00 +0000
commit2539acf77b018acd7416a9857a14c466e55cd7e8 (patch)
tree96ff3578d62372822240f11a1567e45b880f3910 /eBones/include
parenteed9438eb23b62f78af7685dc226228e2bf5c524 (diff)
downloadFreeBSD-src-2539acf77b018acd7416a9857a14c466e55cd7e8.zip
FreeBSD-src-2539acf77b018acd7416a9857a14c466e55cd7e8.tar.gz
Major cleanup of eBones code:
- Get all functions prototyped or at least defined before use. - Make code compile (Mostly) clean with -Wall set - Start to reduce the degree to which DES aka libdes is built in. - get all functions to the same uniform standard of definition: int foo(a, b) int a; int *b; { : } - fix numerous bugs exposed by above processes. Note - this replaces the previous work which used an unpopular function definition style.
Diffstat (limited to 'eBones/include')
-rw-r--r--eBones/include/des.h176
-rw-r--r--eBones/include/kparse.h8
-rw-r--r--eBones/include/krb.h173
-rw-r--r--eBones/include/krb_db.h2
4 files changed, 278 insertions, 81 deletions
diff --git a/eBones/include/des.h b/eBones/include/des.h
index af20141..e55b4ae 100644
--- a/eBones/include/des.h
+++ b/eBones/include/des.h
@@ -1,27 +1,38 @@
-/*
- * Copyright 1987, 1988 by the Massachusetts Institute of Technology.
- * For copying and distribution information, please see the file
- * <Copyright.MIT>.
- *
- * Include file for the Data Encryption Standard library.
- *
- * from: des.h,v 4.11 89/01/17 16:24:57 rfrench Exp $
- * $Id: des.h,v 1.3 1995/07/18 16:36:25 mark Exp $
+/* des.h */
+/* Copyright (C) 1995 Eric Young (eay@mincom.oz.au).
+ * All rights reserved.
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * See the COPYRIGHT file in the libdes distribution for more details.
*/
-/* only do the whole thing once */
-#ifndef DES_DEFS
-#define DES_DEFS
+#ifndef HEADER_DES_H
+#define HEADER_DES_H
-typedef unsigned char des_cblock[8]; /* crypto-block size */
-/* Key schedule */
-typedef struct des_ks_struct { des_cblock _; } des_key_schedule[16];
+#include <stdio.h>
+
+typedef unsigned char des_cblock[8];
+typedef struct des_ks_struct
+ {
+ union {
+ des_cblock _;
+ /* make sure things are correct size on machines with
+ * 8 byte longs */
+ unsigned long pad[2];
+ } ks;
+#undef _
+#define _ ks._
+ } des_key_schedule[16];
#define DES_KEY_SZ (sizeof(des_cblock))
+#define DES_SCHEDULE_SZ (sizeof(des_key_schedule))
+
#define DES_ENCRYPT 1
#define DES_DECRYPT 0
-#ifndef NCOMPAT
+#define DES_CBC_MODE 0
+#define DES_PCBC_MODE 1
+
#define C_Block des_cblock
#define Key_schedule des_key_schedule
#define ENCRYPT DES_ENCRYPT
@@ -31,14 +42,139 @@ typedef struct des_ks_struct { des_cblock _; } des_key_schedule[16];
#define read_pw_string des_read_pw_string
#define random_key des_random_key
#define pcbc_encrypt des_pcbc_encrypt
+#define set_key des_set_key
#define key_sched des_key_sched
+#define ecb_encrypt des_ecb_encrypt
#define cbc_encrypt des_cbc_encrypt
+#define ncbc_encrypt des_ncbc_encrypt
#define cbc_cksum des_cbc_cksum
-#define C_Block_print des_cblock_print
#define quad_cksum des_quad_cksum
-typedef struct des_ks_struct bit_64;
+
+/* For compatibility with the MIT lib - eay 20/05/92 */
+typedef des_key_schedule bit_64;
+
+extern int des_check_key; /* defaults to false */
+extern int des_rw_mode; /* defaults to DES_PCBC_MODE */
+
+/* The next line is used to disable full ANSI prototypes, if your
+ * compiler has problems with the prototypes, make sure this line always
+ * evaluates to true :-) */
+#if defined(MSDOS) && defined(__STDC__)
+#undef PROTO
+#define PROTO
#endif
-#define des_cblock_print(x) des_cblock_print_file(x, stdout)
+/* markm - dirty hack */
+#define PROTO
-#endif DES_DEFS
+#ifdef PROTO
+int des_2ecb_encrypt(des_cblock *input,des_cblock *output,
+ des_key_schedule ks1,des_key_schedule ks2,int enc);
+int des_3ecb_encrypt(des_cblock *input,des_cblock *output,
+ des_key_schedule ks1,des_key_schedule ks2,
+ des_key_schedule ks3, int enc);
+unsigned long des_cbc_cksum(des_cblock *input,des_cblock *output,
+ long length,des_key_schedule schedule,des_cblock *ivec);
+int des_cbc_encrypt(des_cblock *input,des_cblock *output,long length,
+ des_key_schedule schedule,des_cblock *ivec,int enc);
+int des_ncbc_encrypt(des_cblock *input,des_cblock *output,long length,
+ des_key_schedule schedule,des_cblock *ivec,int enc);
+int des_3cbc_encrypt(des_cblock *input,des_cblock *output,long length,
+ des_key_schedule sk1,des_key_schedule sk2,
+ des_cblock *ivec1,des_cblock *ivec2,int enc);
+int des_cfb_encrypt(unsigned char *in,unsigned char *out,int numbits,
+ long length,des_key_schedule schedule,des_cblock *ivec,int enc);
+int des_ecb_encrypt(des_cblock *input,des_cblock *output,
+ des_key_schedule ks,int enc);
+int des_encrypt(unsigned long *input,unsigned long *output,
+ des_key_schedule ks, int enc);
+int des_encrypt2(unsigned long *input,unsigned long *output,
+ des_key_schedule ks, int enc);
+int des_ede3_cbc_encrypt(des_cblock *input, des_cblock *output,
+ long length, des_key_schedule ks1, des_key_schedule ks2,
+ des_key_schedule ks3, des_cblock *ivec, int enc);
+int des_ede2_cbc_encrypt(des_cblock *input, des_cblock *output,
+ long length, des_key_schedule ks1, des_key_schedule ks2,
+ des_cblock *ivec, int enc);
+int des_enc_read(int fd,char *buf,int len,des_key_schedule sched,
+ des_cblock *iv);
+int des_enc_write(int fd,char *buf,int len,des_key_schedule sched,
+ des_cblock *iv);
+#if 0
+#ifdef PERL5
+char *des_crypt(const char *buf,const char *salt);
+#else
+/* some stupid compilers complain because I have declared char instead
+ * of const char */
+#ifdef HEADER_DES_LOCL_H
+char *crypt(const char *buf,const char *salt);
+#else
+char *crypt();
+#endif /* HEADER_DES_LOCL_H */
+#endif /* PERL5 */
+#endif /* 0 */
+
+int des_ofb_encrypt(unsigned char *in,unsigned char *out,
+ int numbits,long length,des_key_schedule schedule,des_cblock *ivec);
+int des_pcbc_encrypt(des_cblock *input,des_cblock *output,long length,
+ des_key_schedule schedule,des_cblock *ivec,int enc);
+unsigned long des_quad_cksum(des_cblock *input,des_cblock *output,
+ long length,int out_count,des_cblock *seed);
+void des_random_seed(des_cblock key);
+int des_random_key(des_cblock ret);
+int des_read_password(des_cblock *key,char *prompt,int verify);
+int des_read_2passwords(des_cblock *key1,des_cblock *key2,
+ char *prompt,int verify);
+int des_read_pw_string(char *buf,int length,char *prompt,int verify);
+void des_set_odd_parity(des_cblock *key);
+int des_is_weak_key(des_cblock *key);
+int des_set_key(des_cblock *key,des_key_schedule schedule);
+int des_key_sched(des_cblock *key,des_key_schedule schedule);
+int des_string_to_key(char *str,des_cblock *key);
+int des_string_to_2keys(char *str,des_cblock *key1,des_cblock *key2);
+int des_cfb64_encrypt(unsigned char *in, unsigned char *out, long length,
+ des_key_schedule schedule, des_cblock *ivec, int *num, int enc);
+int des_ofb64_encrypt(unsigned char *in, unsigned char *out, long length,
+ des_key_schedule schedule, des_cblock *ivec, int *num);
+void des_cblock_print_file(des_cblock *cb, FILE *fp);
+
+#else
+
+int des_2ecb_encrypt();
+int des_3ecb_encrypt();
+unsigned long des_cbc_cksum();
+int des_cbc_encrypt();
+int des_ncbc_encrypt();
+int des_3cbc_encrypt();
+int des_cfb_encrypt();
+int des_ecb_encrypt();
+int des_encrypt();
+int des_encrypt2();
+int des_ede3_cbc_encrypt();
+int des_ede2_cbc_encrypt();
+int des_enc_read();
+int des_enc_write();
+#ifdef PERL5
+char *des_crypt();
+#else
+char *crypt();
+#endif
+int des_ofb_encrypt();
+int des_pcbc_encrypt();
+unsigned long des_quad_cksum();
+void des_random_seed();
+int des_random_key();
+int des_read_password();
+int des_read_2passwords();
+int des_read_pw_string();
+void des_set_odd_parity();
+int des_is_weak_key();
+int des_set_key();
+int des_key_sched();
+int des_string_to_key();
+int des_string_to_2keys();
+int des_cfb64_encrypt();
+int des_ofb64_encrypt();
+void des_cblock_print_file();
+#endif
+#endif
diff --git a/eBones/include/kparse.h b/eBones/include/kparse.h
index 26bc523..58d45a7 100644
--- a/eBones/include/kparse.h
+++ b/eBones/include/kparse.h
@@ -81,7 +81,11 @@ extern char ErrorMsg[]; /*
* fGetParameterSet
*/
-extern char *strsave(); /* defined in this module */
-extern char *strutol(); /* defined in this module */
+extern char *strsave(char *p); /* defined in this module */
+extern char *strutol(char *p); /* defined in this module */
+
+int fGetParameterSet(FILE *fp, parmtable parm[], int parmcount);
+int fGetKeywordValue(FILE *fp, char *keyword, int klen, char *value, int vlen);
+int fGetToken(FILE *fp, char *dest, int maxlen);
#endif /* KPARSE_DEFS */
diff --git a/eBones/include/krb.h b/eBones/include/krb.h
index 134e0e9..70c2a80 100644
--- a/eBones/include/krb.h
+++ b/eBones/include/krb.h
@@ -6,7 +6,7 @@
* Include file for the Kerberos library.
*
* from: krb.h,v 4.26 89/08/08 17:55:25 jtkohl Exp $
- * $Id: krb.h,v 1.3 1995/08/25 22:50:15 markm Exp $
+ * $Id: krb.h,v 1.6 1995/08/25 21:25:10 mark Exp $
*/
/* Only one time, please */
@@ -375,71 +375,128 @@ char *tkt_string();
#define KOPT_DO_OLDSTYLE 0x00000008 /* use the old-style protocol */
#endif ATHENA_COMPAT
-void acl_canonicalize_principal(char *principal, char *buf);
-int acl_check(char *acl, char *principal);
-int acl_exact_match(char *acl, char *principal);
-int acl_add(char *acl, char *principal);
-int acl_delete(char *acl, char *principal);
-int acl_initialize(char *acl_file, int mode);
+/* libacl */
+void acl_canonicalize_principal __P((char *principal, char *buf));
+int acl_check __P((char *acl, char *principal));
+int acl_exact_match __P((char *acl, char *principal));
+int acl_add __P((char *acl, char *principal));
+int acl_delete __P((char *acl, char *principal));
+int acl_initialize __P((char *acl_file, int mode));
-int krb_mk_req(KTEXT authent, char *service, char *instance, char *realm,
+/* libkrb - krb.3 */
+int krb_mk_req __P((KTEXT authent, char *service, char *instance, char *realm,
long checksum);
-int krb_rd_req (KTEXT authent, char *service, char *instance, long from_addr,
- AUTH_DAT *ad, char *fn);
-int krb_kntoln(AUTH_DAT *ad, char *lname);
-int krb_set_key(char *key, int cvt);
-int krb_get_cred(char *service, char *instance, char *realm, CREDENTIALS *c);
-long krb_mk_priv(u_char *in, u_char *out, u_long in_length,
+int krb_rd_req __P((KTEXT authent, char *service, char *instance,
+ long from_addr, AUTH_DAT *ad, char *fn));
+int krb_kntoln __P((AUTH_DAT *ad, char *lname));
+int krb_set_key __P((char *key, int cvt));
+int krb_get_cred __P((char *service, char *instance, char *realm,
+ CREDENTIALS *c));
+long krb_mk_priv __P((u_char *in, u_char *out, u_long in_length,
des_key_schedule schedule, des_cblock key, struct sockaddr_in *sender,
- struct sockaddr_in *receiver);
-long krb_rd_priv(u_char *in, u_long in_length, Key_schedule schedule,
+ struct sockaddr_in *receiver));
+long krb_rd_priv __P((u_char *in, u_long in_length, Key_schedule schedule,
des_cblock key, struct sockaddr_in *sender, struct sockaddr_in *receiver,
- MSG_DAT *msg_data);
-long krb_mk_safe(u_char *in, u_char *out, u_long in_length, des_cblock key,
- struct sockaddr_in *sender, struct sockaddr_in *receiver);
-long krb_rd_safe(u_char *in, u_long length, des_cblock key,
+ MSG_DAT *msg_data));
+long krb_mk_safe __P((u_char *in, u_char *out, u_long in_length,
+ des_cblock *key, struct sockaddr_in *sender, struct sockaddr_in *receiver));
+long krb_rd_safe __P((u_char *in, u_long length, des_cblock *key,
struct sockaddr_in *sender, struct sockaddr_in *receiver,
- MSG_DAT *msg_data);
-long krb_mk_err(u_char *out, long code, char *string);
-int krb_rd_err(u_char *in, u_long in_length, long *code, MSG_DAT *m_data);
-
-int krb_get_lrealm(char *r, int n);
-char *krb_get_phost(char *alias);
-int krb_get_krbhst(char *h, char *r, int n);
-int krb_get_admhst(char *h, char *r, int n);
-int krb_net_write(int fd, char *buf, int len);
-int krb_net_read(int fd, char *buf, int len);
-int krb_get_tf_realm(char *ticket_file, char *realm);
-int krb_get_in_tkt(char *user, char *instance, char *realm, char *service,
+ MSG_DAT *msg_data));
+long krb_mk_err __P((u_char *out, long code, char *string));
+int krb_rd_err __P((u_char *in, u_long in_length, long *code, MSG_DAT *m_data));
+
+/* libkrb - krb_sendauth.3 */
+int krb_sendauth __P((long options, int fd, KTEXT ticket, char *service,
+ char *inst, char *realm, u_long checksum, MSG_DAT *msg_data,
+ CREDENTIALS *cred, Key_schedule schedule, struct sockaddr_in *laddr,
+ struct sockaddr_in *faddr, char *version));
+int krb_recvauth __P((long options, int fd, KTEXT ticket, char *service,
+ char *instance, struct sockaddr_in *faddr, struct sockaddr_in *laddr,
+ AUTH_DAT *kdata, char *filename, Key_schedule schedule, char *version));
+int krb_net_write __P((int fd, char *buf, int len));
+int krb_net_read __P((int fd, char *buf, int len));
+
+/* libkrb - krb_realmofhost.3 */
+char *krb_realmofhost __P((char *host));
+char *krb_get_phost __P((char *alias));
+int krb_get_krbhst __P((char *h, char *r, int n));
+int krb_get_admhst __P((char *h, char *r, int n));
+int krb_get_lrealm __P((char *r, int n));
+
+/* libkrb - krb_set_tkt_string.3 */
+void krb_set_tkt_string(char *val);
+
+/* libkrb - kuserok.3 */
+int kuserok __P((AUTH_DAT *authdata, char *localuser));
+
+/* libkrb - tf_util.3 */
+int tf_init __P((char *tf_name, int rw));
+int tf_get_pname __P((char *p));
+int tf_get_pinst __P((char *inst));
+int tf_get_cred __P((CREDENTIALS *c));
+void tf_close __P((void));
+
+/* Internal routines */
+int des_read __P((int fd, char *buf, int len));
+int des_write __P((int fd, char *buf, int len));
+int krb_get_tf_realm __P((char *ticket_file, char *realm));
+int krb_get_in_tkt __P((char *user, char *instance, char *realm, char *service,
char *sinstance, int life, int (*key_proc)(), int (*decrypt_proc)(),
- char *arg);
-int krb_get_pw_in_tkt(char *user, char *instance, char *realm, char *service,
- char *sinstance, int life, char *password);
-int krb_get_tf_fullname(char *ticket_file, char *name, char *instance,
- char *realm);
-int save_credentials(char *service, char *instance, char *realm,
- des_cblock session, int lifetime, int kvno, KTEXT ticket, long issue_date);
-int read_service_key(char *service, char *instance, char *realm, int kvno,
- char *file, char *key);
-int get_ad_tkt(char *service, char *sinstance, char *realm, int lifetime);
-int send_to_kdc(KTEXT pkt, KTEXT rpkt, char *realm);
-int decomp_ticket(KTEXT tkt, unsigned char *flags, char *pname,
+ char *arg));
+int krb_get_pw_in_tkt __P((char *user, char *instance, char *realm,
+ char *service, char *sinstance, int life, char *password));
+int krb_get_svc_in_tkt __P((char *user, char *instance, char *realm,
+ char *service, char *sinstance, int life, char *srvtab));
+int krb_get_tf_fullname __P((char *ticket_file, char *name, char *instance,
+ char *realm));
+int save_credentials __P((char *service, char *instance, char *realm,
+ des_cblock session, int lifetime, int kvno, KTEXT ticket, long issue_date));
+int read_service_key __P((char *service, char *instance, char *realm, int kvno,
+ char *file, char *key));
+int get_ad_tkt __P((char *service, char *sinstance, char *realm, int lifetime));
+int send_to_kdc __P((KTEXT pkt, KTEXT rpkt, char *realm));
+int krb_create_ticket __P((KTEXT tkt, unsigned char flags, char *pname,
+ char *pinstance, char *prealm, long paddress, char *session, short life,
+ long time_sec, char *sname, char *sinstance, C_Block key));
+int decomp_ticket __P((KTEXT tkt, unsigned char *flags, char *pname,
char *pinstance, char *prealm, unsigned long *paddress, des_cblock session,
int *life, unsigned long *time_sec, char *sname, char *sinstance,
- des_cblock key, des_key_schedule key_s);
-int kname_parse(char *np, char *ip, char *rp, char *fullname);
-int tf_init(char *tf_name, int rw);
-int tf_save_cred(char *service, char *instance, char *realm,
- des_cblock session, int lifetime, int kvno, KTEXT ticket, long issue_date);
-int tf_get_pname(char *p);
-int tf_get_pinst(char *inst);
-int tf_get_cred(CREDENTIALS *c);
-void tf_close(void);
-int getst(int fd, char *s, int n);
-int pkt_clen(KTEXT pkt);
-int in_tkt(char *pname, char *pinst);
-char *month_sname(int n);
-void log(); /* Actually VARARGS - markm */
+ des_cblock key, des_key_schedule key_s));
+int create_ciph __P((KTEXT c, C_Block session, char *service, char *instance,
+ char *realm, unsigned long life, int kvno, KTEXT tkt,
+ unsigned long kdc_time, C_Block key));
+int kname_parse __P((char *np, char *ip, char *rp, char *fullname));
+int tf_save_cred __P((char *service, char *instance, char *realm,
+ des_cblock session, int lifetime, int kvno, KTEXT ticket, long issue_date));
+int getst(int fd, char *s, int n));
+int pkt_clen __P((KTEXT pkt));
+int in_tkt __P((char *pname, char *pinst));
+int dest_tkt __P((void));
+char *month_sname __P((int n));
+void log __P(()); /* Actually VARARGS - markm */
+void kset_logfile __P((char *filename));
+void set_logfile __P((char *filename));
+int k_isinst __P((char *s));
+int k_isrealm __P((char *s));
+int k_isname __P((char *s));
+int k_gethostname __P((char *name, int namelen));
+int kerb_init __P((void));
+void kerb_fini __P((void));
+int kerb_db_set_name __P((char *name));
+int kerb_db_set_lockmode __P((int mode));
+int kerb_db_create __P((char *db_name));
+int kerb_db_iterate __P((int (*func)(), char *arg));
+int kerb_db_rename __P((char *from, char *to));
+long kerb_get_db_age __P((void));
+char * stime __P((long *t));
+
+long kdb_get_master_key __P((int prompt, C_Block master_key,
+ Key_schedule master_key_sched));
+long kdb_verify_master_key __P((C_Block master_key,
+ Key_schedule master_key_sched, FILE *out));
+void kdb_encrypt_key __P((C_Block in, C_Block out, C_Block master_key,
+ Key_schedule master_key_sched, int e_d_flag));
extern int krb_ap_req_debug;
extern int krb_debug;
diff --git a/eBones/include/krb_db.h b/eBones/include/krb_db.h
index f7e6d57..d6d125a 100644
--- a/eBones/include/krb_db.h
+++ b/eBones/include/krb_db.h
@@ -11,7 +11,7 @@
* They MUST correspond to those defined in *.rel
*
* from: krb_db.h,v 4.9 89/01/24 17:55:39 jon Exp $
- * $Id: krb_db.h,v 1.3 1995/07/18 16:36:38 mark Exp $
+ * $Id: krb_db.h,v 1.4 1995/08/25 21:25:12 mark Exp $
*/
#ifndef KRB_DB_DEFS
OpenPOWER on IntegriCloud