/* -*-c-*-
*
- * $Id: check.c,v 1.3 1997/08/07 09:49:38 mdw Exp $
+ * $Id: check.c,v 1.7 1998/04/23 13:22:08 mdw Exp $
*
* Check validity of requests
*
- * (c) 1997 EBI
+ * (c) 1998 EBI
*/
/*----- Licensing notice --------------------------------------------------*
/*----- Revision history --------------------------------------------------*
*
* $Log: check.c,v $
- * Revision 1.3 1997/08/07 09:49:38 mdw
- * Extensive modifications to handle netgroups. Also sanitise user and group
- * names before adding them to the symbol table.
+ * Revision 1.7 1998/04/23 13:22:08 mdw
+ * Support no-network configuration option, and new interface to
+ * configuration file parser.
+ *
+ * Revision 1.6 1998/01/12 16:45:47 mdw
+ * Fix copyright date.
+ *
+ * Revision 1.5 1997/09/26 09:14:58 mdw
+ * Merged blowfish branch into trunk.
+ *
+ * Revision 1.4.2.1 1997/09/26 09:08:01 mdw
+ * Use the Blowfish encryption algorithm instead of IDEA. This is partly
+ * because I prefer Blowfish (without any particularly strong evidence) but
+ * mainly because IDEA is patented and Blowfish isn't.
+ *
+ * Revision 1.4 1997/08/07 09:52:05 mdw
+ * (Log entry for previous version is bogus.) Added support for multiple
+ * servers.
*
* Revision 1.2 1997/08/04 10:24:20 mdw
* Sources placed under CVS control.
/* --- Local headers --- */
#include "become.h"
+#include "blowfish.h"
#include "config.h"
#include "crypt.h"
-#include "idea.h"
#include "lexer.h"
#include "name.h"
#include "netg.h"
#include "userdb.h"
#include "utils.h"
-/*----- Main code ---------------------------------------------------------*/
+/*----- Client-end network support ----------------------------------------*/
+
+#ifndef NONETWORK
/* --- @check__send@ --- *
*
{
int fd;
unsigned char crq[crq_size];
- unsigned char sk[IDEA_KEYSIZE];
+ unsigned char sk[BLOWFISH_KEYSIZE];
time_t t;
pid_t pid;
/* --- First, build the encrypted request packet --- */
{
- unsigned char k[IDEA_KEYSIZE];
+ unsigned char k[BLOWFISH_KEYSIZE];
FILE *fp;
/* --- Read in the encryption key --- */
return (check__ask(rq, serv, n_serv));
}
+#endif
+
+/*----- Main checking function --------------------------------------------*/
+
/* --- @check@ --- *
*
* Arguments: @request *rq@ = pointer to request buffer
/* --- Check if we need to talk to a server --- */
+#ifndef NONETWORK
if ((fp = fopen(file_SERVER, "r")) != 0)
return (check__client(rq, fp));
+#endif
/* --- Otherwise do this all the old-fashioned way --- */
name_init();
rule_init();
lexer_scan(fp);
- yyparse();
+ parse();
return (rule_check(rq));
}