Started with keybox implementation by basing it on code from the GnuPG
[gnupg.git] / kbx / keybox-init.c
1 /* keybox-init.c - Initalization of the library 
2  *      Copyright (C) 2001 Free Software Foundation, Inc.
3  *
4  * This file is part of GnuPG.
5  *
6  * GnuPG is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * GnuPG is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
19  */
20
21 #include <config.h>
22 #include <stdlib.h>
23 #include <stdio.h>
24 #include <string.h>
25 #include <unistd.h>
26
27 #include "keybox-defs.h"
28
29 /* 
30  * Register a filename for plain keybox files.  Returns a pointer to
31  * be used to create a handles etc or NULL to indicate that it has
32  * already been registered */
33 void *
34 keybox_register_file (const char *fname, int secret)
35 {
36   return NULL;
37 #if 0
38     KB_NAME kr;
39
40     if (active_handles)
41         BUG (); /* We don't allow that */
42
43     for (kr=kb_names; kr; kr = kr->next) {
44         if ( !compare_filenames (kr->fname, fname) )
45             return NULL; /* already registered */
46     }
47
48     kr = m_alloc (sizeof *kr + strlen (fname));
49     strcpy (kr->fname, fname);
50     kr->secret = !!secret;
51     kr->lockhd = NULL;
52     kr->is_locked = 0;
53     kr->did_full_scan = 0;
54     /* keep a list of all issued pointers */
55     kr->next = kb_names;
56     kb_names = kr;
57
58     /* create the offset table the first time a function here is used */
59     if (!kb_offtbl)
60       kb_offtbl = new_offset_hash_table ();
61
62     return kr;
63 #endif
64 }
65
66 int
67 keybox_is_writable (void *token)
68 {
69   KB_NAME r = token;
70
71   return r? !access (r->fname, W_OK) : 0;
72 }
73