+
+
+Function silc_ske_alloc
+
+
+SYNOPSIS
+
+
+ SilcSKE silc_ske_alloc(SilcRng rng, SilcSchedule schedule,
+ SilcSKR repository, SilcPublicKey public_key,
+ SilcPrivateKey private_key, void *context);
+
+
+DESCRIPTION
+
+
+ Allocates the SKE session context and returns it. The `rng' is
+ the random number generator the SKE is going to use when it needs
+ random number generation during the SKE session. The `context' is
+ user context that the libary will not touch. Application can get the
+ context by calling the fuction silc_ske_get_context function. The
+ application is responsible of freeing the `context'. After the
+ SKE session context is allocated application must call the
+ silc_ske_set_callbacks.
+
+ If the `repository' is non-NULL then the remote's public key will be
+ verified from the repository. If it is not provided then the
+ SilcSKEVerifyCb callback must be set, and it will be called to
+ verify the key. If both `repository' and the callback is provided the
+ callback is called only if the key is not found from the repository.
+
+ The `public_key' and `private_key' is the caller's identity used
+ during the key exchange. Giving `private_key' is optional if the
+ SILC_SKE_SP_FLAG_MUTUAL is not set and you are initiator. For
+ responder both `public_key' and `private_key' must be set.
+
+ When allocating SKE session for rekey, the `repository' and `private_key'
+ pointers must be NULL and the SilcSKEVerifyCb callback must not be
+ set with silc_ske_set_callbacks.
+
+ EXMPALE
+
+ // Initiator example
+ params.version = version;
+ params.flags = SILC_SKE_SP_FLAG_PFS | SILC_SKE_SP_FLAG_MUTUAL;
+ ske = silc_ske_alloc(rng, scheduler, NULL, pk, prv, app);
+ silc_ske_set_callbacks(ske, verify_public_key, completion, app);
+ silc_ske_initiator(ske, stream, ¶ms, NULL);
+
+
+
+ |
+