muddy/
muddy/CVS/
muddy/area/
muddy/area/CVS/
muddy/clans/CVS/
muddy/classes/CVS/
muddy/doc/
muddy/doc/CVS/
muddy/etc/CVS/
muddy/etc/i3/
muddy/etc/i3/CVS/
muddy/imc/CVS/
muddy/lang/CVS/
muddy/licenses/CVS/
muddy/msgdb/CVS/
muddy/new/CVS/
muddy/notes/
muddy/player/
muddy/races/CVS/
muddy/religions/CVS/
muddy/src/CVS/
muddy/src/comm/CVS/
muddy/src/db/CVS/
muddy/src/intermud/
muddy/src/intermud/CVS/
muddy/src/irc/CVS/
muddy/src/olc/CVS/
/* $Id: keyring.h,v 1.666 2004/09/20 10:49:49 shrike Exp $                            */

/************************************************************************************
 *    Copyright 2004 Astrum Metaphora consortium                                    *
 *                                                                                  *
 *    Licensed under the Apache License, Version 2.0 (the "License");               *
 *    you may not use this file except in compliance with the License.              *
 *    You may obtain a copy of the License at                                       *
 *                                                                                  *
 *    http://www.apache.org/licenses/LICENSE-2.0                                    *
 *                                                                                  *
 *    Unless required by applicable law or agreed to in writing, software           *
 *    distributed under the License is distributed on an "AS IS" BASIS,             *
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.      *
 *    See the License for the specific language governing permissions and           *
 *    limitations under the License.                                                *
 *                                                                                  *
 ************************************************************************************/



#ifndef _KEYRING_H_
#define _KEYRING_H_

#define KEYRING_OK                   0
#define KEYRING_NO_KEYRING           1
#define KEYRING_NO_KEY               2
#define KEYRING_NO_REMKEY            3
#define KEYRING_INVALID_KEYRING      4
#define KEYRING_INVALID_KEY          5
#define KEYRING_INVALID_NAME         6
#define KEYRING_KEY_DUP              7
#define KEYRING_MAX_REACHED          8
#define KEYRING_CURSED               9


typedef struct  key_data                KEY_DATA;

struct key_data
{
    KEY_DATA *          next;
    bool                valid;
    OBJ_INDEX_DATA *    index;
};


KEY_DATA * new_key            args((void                                            ));
OBJ_DATA * find_keyring       args((CHAR_DATA * ch                                  ));
int        remove_key         args((CHAR_DATA * ch, OBJ_DATA * keyring, char * name ));
int        add_key            args((OBJ_DATA * keyring, OBJ_DATA * key              ));
void       free_key           args((KEY_DATA * key                                  ));
void       list_keys          args((CHAR_DATA * ch, OBJ_DATA * keyring              ));
void       load_keyring       args((FILE * fp, OBJ_DATA * obj                       ));
void       save_keyring       args((FILE * fp, OBJ_DATA * obj                       ));



#endif