diff options
author | Angelos D. Keromytis <angelos@cvs.openbsd.org> | 1999-05-23 22:11:10 +0000 |
---|---|---|
committer | Angelos D. Keromytis <angelos@cvs.openbsd.org> | 1999-05-23 22:11:10 +0000 |
commit | dbaaafa705ca548059aac958082776f219b2daef (patch) | |
tree | e6e62c393c7d7a9d42f10a0efc315995b73d3ca8 /lib/libkeynote/keynote-ver.y | |
parent | c0c2076f62b1c430c14737fbd3d8896a37bd2f6b (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.y | 70 |
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) +{} |