to silc_skr_find.
Author: Pekka Riikonen <priikone@silcnet.org>
- Copyright (C) 2005 - 2006 Pekka Riikonen
+ Copyright (C) 2005 - 2007 Pekka Riikonen
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
/* Allocate key repository */
-SilcSKR silc_skr_alloc(SilcSchedule scheduler)
+SilcSKR silc_skr_alloc(void)
{
SilcSKR skr;
if (!skr)
return NULL;
- if (!silc_skr_init(skr, scheduler)) {
+ if (!silc_skr_init(skr)) {
silc_skr_free(skr);
return NULL;
}
/* Initializes key repository */
-SilcBool silc_skr_init(SilcSKR skr, SilcSchedule scheduler)
+SilcBool silc_skr_init(SilcSKR skr)
{
- if (!scheduler)
- return FALSE;
-
- skr->scheduler = scheduler;
-
if (!silc_mutex_alloc(&skr->lock))
return FALSE;
once keys has been found. */
/* This is now synchronous function but may later change async */
-SilcAsyncOperation silc_skr_find(SilcSKR skr, SilcSKRFind find,
+SilcAsyncOperation silc_skr_find(SilcSKR skr, SilcSchedule schedule,
+ SilcSKRFind find,
SilcSKRFindCallback callback,
void *callback_context)
{
*
* Indicates the usage of the key. Keys can be added for different
* reasons and for different purpose to the repository. SilcSKRKeyUsage
- * indicates what for the key exists in the repository. The default
+ * indicates for what reason the key exists in the repository. The default
* usage is SILC_SKR_USAGE_ANY and allows any kind of usage for the key.
* If the usage should be limited then specific usage bitmask can be
* specified when adding the key. When searching keys from the
* SOURCE
*/
typedef enum {
- SILC_SKR_USAGE_ANY = 0x0000, /* Any usage */
- SILC_SKR_USAGE_AUTH = 0x0001, /* Signatures/verification */
- SILC_SKR_USAGE_ENC = 0x0002, /* Encryption/decryption */
- SILC_SKR_USAGE_KEY_AGREEMENT = 0x0004, /* Key agreement protocol */
- SILC_SKR_USAGE_IDENTIFICATION = 0x0008, /* Identifying key owner */
+ SILC_SKR_USAGE_ANY = 0x0000, /* Any usage */
+ SILC_SKR_USAGE_AUTH = 0x0001, /* Signatures/verification */
+ SILC_SKR_USAGE_ENC = 0x0002, /* Encryption/decryption */
+ SILC_SKR_USAGE_KEY_AGREEMENT = 0x0004, /* Key agreement protocol */
+ SILC_SKR_USAGE_IDENTIFICATION = 0x0008, /* Identifying key owner */
+ SILC_SKR_USAGE_SERVICE_AUTHORIZATION = 0x0010, /* Service authorization */
+
+ /* From 0x0100 reserved for private/application use. */
} SilcSKRKeyUsage;
/***/
*
* SYNOPSIS
*
- * SilcSKR silc_skr_alloc(SilcSchedule scheduler);
+ * SilcSKR silc_skr_alloc(void);
*
* DESCRIPTION
*
* Allocates key repository context.
*
***/
-SilcSKR silc_skr_alloc(SilcSchedule scheduler);
+SilcSKR silc_skr_alloc(void);
/****f* silcskr/SilcSKRAPI/silc_skr_free
*
*
* SYNOPSIS
*
- * SilcBool silc_skr_init(SilcSKR skr, SilcSchedule scheduler);
+ * SilcBool silc_skr_init(SilcSKR skr);
*
* DESCRIPTION
*
* argument. Returns FALSE if initialization failed.
*
***/
-SilcBool silc_skr_init(SilcSKR skr, SilcSchedule scheduler);
+SilcBool silc_skr_init(SilcSKR skr);
/****f* silcskr/SilcSKRAPI/silc_skr_uninit
*
*
* SYNOPSIS
*
- * SilcAsyncOperation silc_skr_find(SilcSKR skr, SilcSKRFind find,
+ * SilcAsyncOperation silc_skr_find(SilcSKR skr, SilcSchedule schedule,
+ * SilcSKRFind find,
* SilcSKRFindCallback callback,
* void *callback_context);
*
* silc_skr_find_set_country(find, "FI");
*
* // Find
- * silc_skr_find(skr, find, find_callback, cb_context);
+ * silc_skr_find(skr, schedule, find, find_callback, cb_context);
*
***/
-SilcAsyncOperation silc_skr_find(SilcSKR skr, SilcSKRFind find,
+SilcAsyncOperation silc_skr_find(SilcSKR skr, SilcSchedule schedule,
+ SilcSKRFind find,
SilcSKRFindCallback callback,
void *callback_context);
schedule = silc_schedule_init(0, NULL);
SILC_LOG_DEBUG(("Allocating SKR"));
- skr = silc_skr_alloc(schedule);
+ skr = silc_skr_alloc();
if (!skr)
goto err;
SILC_LOG_DEBUG(("Finding public key by email"));
find = silc_skr_find_alloc();
silc_skr_find_set_email(find, "foo@foo.com");
- silc_skr_find(skr, find, skr_found, NULL);
+ silc_skr_find(skr, schedule, find, skr_found, NULL);
silc_skr_find_free(find);
if (!found)
goto err;
SILC_LOG_DEBUG(("Finding public key by country"));
find = silc_skr_find_alloc();
silc_skr_find_set_country(find, "FI");
- silc_skr_find(skr, find, skr_found, NULL);
+ silc_skr_find(skr, schedule, find, skr_found, NULL);
silc_skr_find_free(find);
if (!found)
goto err;
silc_skr_find_set_country(find, "FI");
silc_skr_find_set_org(find, "ORG");
silc_skr_find_set_host(find, "foo.com");
- silc_skr_find(skr, find, skr_found, NULL);
+ silc_skr_find(skr, schedule, find, skr_found, NULL);
silc_skr_find_free(find);
if (!found)
goto err;
find = silc_skr_find_alloc();
silc_skr_find_set_country(find, "FI");
silc_skr_find_set_usage(find, SILC_SKR_USAGE_ENC);
- silc_skr_find(skr, find, skr_found, NULL);
+ silc_skr_find(skr, schedule, find, skr_found, NULL);
silc_skr_find_free(find);
if (found)
goto err;
find = silc_skr_find_alloc();
silc_skr_find_set_country(find, "FI");
silc_skr_find_set_usage(find, SILC_SKR_USAGE_IDENTIFICATION);
- silc_skr_find(skr, find, skr_found, NULL);
+ silc_skr_find(skr, schedule, find, skr_found, NULL);
silc_skr_find_free(find);
if (!found)
goto err;