summaryrefslogtreecommitdiff
path: root/lib/libkeynote/keynote-ver.y
diff options
context:
space:
mode:
authorAngelos D. Keromytis <angelos@cvs.openbsd.org>1999-05-23 22:11:10 +0000
committerAngelos D. Keromytis <angelos@cvs.openbsd.org>1999-05-23 22:11:10 +0000
commitdbaaafa705ca548059aac958082776f219b2daef (patch)
treee6e62c393c7d7a9d42f10a0efc315995b73d3ca8 /lib/libkeynote/keynote-ver.y
parentc0c2076f62b1c430c14737fbd3d8896a37bd2f6b (diff)
KeyNote version 2 trust-management system (security policy handling).
Utilities to follow.
Diffstat (limited to 'lib/libkeynote/keynote-ver.y')
-rw-r--r--lib/libkeynote/keynote-ver.y70
1 files changed, 70 insertions, 0 deletions
diff --git a/lib/libkeynote/keynote-ver.y b/lib/libkeynote/keynote-ver.y
new file mode 100644
index 00000000000..204a5b1dbea
--- /dev/null
+++ b/lib/libkeynote/keynote-ver.y
@@ -0,0 +1,70 @@
+/* $OpenBSD: keynote-ver.y,v 1.1 1999/05/23 22:11:04 angelos Exp $ */
+
+/*
+ * The author of this code is Angelos D. Keromytis (angelos@dsl.cis.upenn.edu)
+ *
+ * This code was written by Angelos D. Keromytis in Philadelphia, PA, USA,
+ * in April-May 1998
+ *
+ * Copyright (C) 1998, 1999 by Angelos D. Keromytis.
+ *
+ * Permission to use, copy, and modify this software without fee
+ * is hereby granted, provided that this entire notice is included in
+ * all copies of any software which is or includes a copy or
+ * modification of this software.
+ *
+ * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTY. IN PARTICULAR, THE AUTHORS MAKES NO
+ * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE
+ * MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR
+ * PURPOSE.
+ */
+%union {
+ struct s {
+ char *string;
+ } s;
+};
+%type <s.string> STRING VSTRING
+%token STRING VSTRING EQ
+%nonassoc EQ
+%start program
+%{
+#include <sys/types.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include "keynote.h"
+
+void kverror(char *);
+
+extern int kvlex();
+
+extern int sessid;
+%}
+%%
+
+program: /* Nothing */
+ | expr
+ | STRING { if (kn_add_authorizer(sessid, $1) != 0)
+ return keynote_errno;
+ free($1);
+ }
+
+expr: VSTRING EQ STRING { int i = kn_add_action(sessid, $1, $3, 0);
+
+ if (i != 0)
+ return i;
+ free($1);
+ free($3);
+ }
+ | expr VSTRING EQ STRING { int i = kn_add_action(sessid, $2, $4, 0);
+
+ if (i != 0)
+ return i;
+ free($2);
+ free($4);
+ }
+%%
+void
+kverror(char *s)
+{}