Copyright © 2001 - 2002 SILC Project SILC Project Website | SILC Toolkit Reference Manual Index

SILC Toolkit Reference Manual
SILC Core Library
SILC Authentication Interface
SILC Message Interface
SILC Channel Interface
SILC Command Interface
SILC Notify Interface
SILC Status Types
SILC Modes
SILC ID Interface
SILC ID Cache Interface
SILC Argument Interface
SILC Attributes Interface
Packet Protocol Interface
SILC Math Library
SILC MP Interface
SILC Math Interface
SILC SFTP Library
SILC SFTP Interface
SFTP Filesystems Interface
SILC Utility Library
Basic SILC Types
SILC Buffer Interface
SILC Buffer Format Interface
SILC Hash Table Interface
SILC Logging Interface
SILC Memory Interface
SILC Mutex Interface
SILC Thread Interface
SILC Network Interface
SILC Schedule Interface
SILC Socket Interface
SILC Protocol Interface
SILC Config Interface
SILC File Util Interface
SILC String Util Interface
SILC Util Interface
SILC List Interface
SILC Dynamic List Interface
SILC VCard Interface
SILC Application Utilities
SILC Key Exchange Library
SILC SKE Interface
SKE Status Types
SKE Diffie Hellman Groups
SKE Payloads
SILC Client Library
Using SILC Client Library Tutorial
Arguments for command_reply Client Operation
SilcStatus Error Arguments in command_reply Client Operation
Arguments for notify Client Operation
Client Library Interface Reference
SILC Crypto Library
Introduction to SILC RNG
SILC RNG Interface
SILC Cipher API
SILC PKCS API
SILC PKCS#1 API
SILC Hash Interface
SILC HMAC Interface
Resource Links
SILC Project Website
SILC Protocol Documentation
SILC White Paper
SILC FAQs

Structure SilcSKEStruct
NAME

        struct SilcSKEStruct { ... };

DESCRIPTION

        This structure is the SKE session context, and has a type definition
        to SilcSKE. The structure includes the network connection socket,
        securit properties collected during the SKE negotiation, payloads
        sent and received during the negotiation, and the actual raw key
        material too. The application usually does not need to reference
        to the inside of this structure.  However, checking the current
        status of the session can easily be checked with ske->status.

SOURCE

        struct SilcSKEStruct {
          /* The connection object. This is initialized by the caller. */
          SilcSocketConnection sock;

          /* Security properties negotiated */
          SilcSKESecurityProperties prop;

          /* Key Exchange payloads filled during key negotiation with
             remote data. Responder may save local data here as well. */
          SilcSKEStartPayload *start_payload;
          SilcSKEKEPayload *ke1_payload;
          SilcSKEKEPayload *ke2_payload;
          unsigned char *remote_version;

          /* Temporary copy of the KE Start Payload used in the
             HASH computation. */
          SilcBuffer start_payload_copy;

          /* Random number x, 1 < x < q. This is the secret exponent
             used in Diffie Hellman computations. */
          SilcMPInt *x;

          /* The secret shared key */
          SilcMPInt *KEY;

          /* The hash value HASH of the key exchange */
          unsigned char *hash;
          SilcUInt32 hash_len;

          /* Random Number Generator. This is set by the caller and must
             be free'd by the caller. */
          SilcRng rng;

          /* Pointer to the what ever user data. This is set by the caller
             and is not touched by the SKE. The caller must also free this one. */
          void *user_data;

          /* Current status of SKE */
          SilcSKEStatus status;

          /* Reference counter. This is used when SKE library is performing async
             operations, like public key verification. */
          int users;

          /* SKE callbacks. */
          SilcSKECallbacks callbacks;

          /* Backwards support version indicator */
          SilcUInt32 backward_version;
        };

SILC SKE Interface
SilcSKE
SilcSKESecurityProperties
SilcSKEPKType
SilcSKESendPacketCb
SilcSKECb
SilcSKEVerifyCbCompletion
SilcSKEVerifyCb
SilcSKECheckVersion
SilcSKEKeyMaterial
SilcSKESecurityPropertyFlag
SilcSKESecurityPropertiesStruct
SilcSKEStruct
silc_ske_alloc
silc_ske_free
silc_ske_set_callbacks
silc_ske_initiator_start
silc_ske_initiator_phase_1
silc_ske_initiator_phase_2
silc_ske_initiator_finish
silc_ske_responder_start
silc_ske_responder_phase_1
silc_ske_responder_phase_2
silc_ske_responder_finish
silc_ske_end
silc_ske_abort
silc_ske_assemble_security_properties
silc_ske_select_security_properties
silc_ske_process_key_material
silc_ske_process_key_material_data
silc_ske_free_key_material
silc_ske_parse_version

Copyright © 2001 - 2002 SILC Project SILC Project Website | SILC Toolkit Reference Manual Index