/* -*-c-*-
*
- * $Id: key-attr.c,v 1.1 1999/12/22 15:47:48 mdw Exp $
+ * $Id: key-attr.c,v 1.4 2004/04/08 01:02:49 mdw Exp $
*
* Key attribute manipulation
*
/*----- Revision history --------------------------------------------------*
*
* $Log: key-attr.c,v $
+ * Revision 1.4 2004/04/08 01:02:49 mdw
+ * key-binary.c
+ *
+ * Revision 1.3 2001/06/22 19:39:43 mdw
+ * Allow tagging if the tag is owned by a deleted key.
+ *
+ * Revision 1.2 2000/02/12 18:21:02 mdw
+ * Overhaul of key management (again).
+ *
* Revision 1.1 1999/12/22 15:47:48 mdw
* Major key-management revision.
*
#include <string.h>
#include <time.h>
-#include <mLib/alloc.h>
+#include <mLib/dstr.h>
#include <mLib/sym.h>
#include "key.h"
int key_chkident(const char *p)
{
- if (!p || !*p)
+ if (!p || !*p || strlen(p) > 255)
return (-1);
while (*p) {
if (*p == ':' || *p == '.' || isspace((unsigned char)*p))
if (!(f->f & KF_WRITE))
return (KERR_READONLY);
+ if (strlen(n) > 255)
+ return (KERR_BADATTR);
if (v) {
a = sym_find(&k->a, n, -1, sizeof(*a), &found);
if (tag) {
kr = sym_find(&f->bytag, tag, -1, sizeof(*kr), &found);
- if (found)
+ if (found && !KEY_EXPIRED(time(0), kr->k->del))
return (KERR_DUPTAG);
kr->k = k;
}