Copyright © 2001 - 2005 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 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 UTF-8 Interface SILC Stringprep Interface SILC Util Interface SILC List Interface SILC Dynamic List Interface SILC VCard Interface SILC Application Utilities 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 SILC SFTP Library SILC SFTP Interface SFTP Filesystems Interface 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 Unicode and UTF-8 Strings in Client Library Client Library Interface Reference SILC Key Exchange Library SILC SKE Interface SKE Status Types SKE Diffie Hellman Groups SKE Payloads SILC Math Library SILC MP Interface SILC Math 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 - 2005 SILC Project SILC Project Website | SILC Toolkit Reference Manual Index