2006-01-19 00:34:21 +01:00
|
|
|
/***********************************************************************
|
|
|
|
*
|
|
|
|
* Copyright (C) 2005-2006 Novell, Inc.
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License as published by the Free Software Foundation; version 2.1
|
|
|
|
* of the License.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Library General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
* License along with this library; if not, write to the Free
|
|
|
|
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
|
|
*
|
|
|
|
* To contact Novell about this file by physical or electronic mail,
|
|
|
|
* you may find current contact information at www.novell.com.
|
|
|
|
*
|
|
|
|
***********************************************************************/
|
|
|
|
|
2005-10-11 21:51:00 +02:00
|
|
|
#ifndef _SSCSLLDEFS__H
|
|
|
|
#define _SSCSLLDEFS__H
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(__cplusplus) || defined(c_plusplus)
|
|
|
|
extern "C"
|
|
|
|
{
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include "sscs_utf8.h"
|
|
|
|
#include "micasa_types.h"
|
|
|
|
|
|
|
|
/* ############################## ERROR CODES ############################ */
|
|
|
|
|
|
|
|
#define NSSCS_LL_SUCCESS 0x00000000 /* 0 */
|
|
|
|
#define NSSCS_E_LL_SYS_FAILURE 0xFFFFFCDD /* -803 */
|
|
|
|
|
|
|
|
#ifndef TRUE
|
|
|
|
#define TRUE 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef FALSE
|
|
|
|
#define FALSE 0
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* ######################## STRUCTURE DEFINITIONS ######################### */
|
|
|
|
|
|
|
|
typedef struct _ll_link
|
|
|
|
{
|
|
|
|
struct _ll_link *next; /* next in the list */
|
|
|
|
void *item;
|
|
|
|
} LL_LINK_T;
|
|
|
|
|
|
|
|
/* this is the link list information structure */
|
|
|
|
typedef struct _link_lst
|
|
|
|
{
|
|
|
|
uint32_t elemCount; /* number of links in the list */
|
|
|
|
LL_LINK_T *head; /* real head of the link list (for caching & GC)*/
|
|
|
|
LL_LINK_T *clp; /* current link pointer */
|
|
|
|
} LL_LINKLIST_T;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct _shared_secret_key_val
|
|
|
|
{
|
|
|
|
uint32_t kLen;
|
|
|
|
SS_UTF8_T *key;
|
|
|
|
uint32_t vLen;
|
|
|
|
uint8_t *value;
|
|
|
|
} LL_SHSEC_KEY_VAL_T;
|
|
|
|
|
|
|
|
|
|
|
|
int ll_InsertSharedSecretLink
|
|
|
|
(
|
|
|
|
LL_LINKLIST_T * list,
|
|
|
|
uint32_t kLen, //in bytes
|
|
|
|
SS_UTF8_T * key,
|
|
|
|
uint32_t vLen, // in bytes
|
|
|
|
uint8_t * value
|
|
|
|
);
|
|
|
|
|
|
|
|
int ll_RemoveSharedSecretLink
|
|
|
|
(
|
|
|
|
LL_LINKLIST_T * list,
|
|
|
|
uint32_t kLen,
|
|
|
|
SS_UTF8_T * key
|
|
|
|
);
|
|
|
|
|
|
|
|
#define ll_GetSHSecItem(list) ((LL_SHSEC_KEY_VAL_T *)(list)->clp->item)
|
|
|
|
#define ll_GetSHSecKey(list) (((LL_SHSEC_KEY_VAL_T *)(list)->clp->item)->key)
|
|
|
|
#define ll_GetSHSecKeyLen(list) (((LL_SHSEC_KEY_VAL_T *)(list)->clp->item)->kLen)
|
|
|
|
#define ll_GetSHSecVal(list) (((LL_SHSEC_KEY_VAL_T *)(list)->clp->item)->value)
|
|
|
|
#define ll_GetSHSecValLen(list) (((LL_SHSEC_KEY_VAL_T *)(list)->clp->item)->vLen)
|
|
|
|
|
|
|
|
#define ll_Head(list) {(list)->clp = (list)->head;}
|
|
|
|
#define ll_IsListPopulated(list) ((list)->elemCount)
|
|
|
|
#define ll_GetElemCount(list) ((list)->elemCount)
|
|
|
|
#define ll_GetItemPtr(list); (((list)->elemCount) ? ((list)->clp->item) : NULL)
|
|
|
|
|
|
|
|
|
|
|
|
void ll_DestroyList(LL_LINKLIST_T *list);
|
|
|
|
int ll_Next(LL_LINKLIST_T *list);
|
|
|
|
void* ll_GetEntry(LL_LINKLIST_T *list);
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(__cplusplus) || defined(c_plusplus)
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* _SSCSLLDEFS__H */
|
|
|
|
|