silcske.html
SILC SKE Interface Header: silcske.h
DESCRIPTION
Implementation of the SILC Key Exchange Protocol (SKE). The SKE protocol
is used to negotiate secret key material between two parties, to be used
as session key or some other key. For example, when client connects to
server SKE is performed to exchange public keys, and to generate the key
that is then used as session key. Two clients can execute SKE as well
two create secret key material for securing for example file transfer
stream.
SKE is based on Diffie-Hellman, and it derives its functionality from
SSH2 Key Exchange protocol, OAKLEY Key Determination protocol and
Station-To-Station (STS) protocols.
This SKE implementation provides easy interface for application
that wants to use SKE. In fact, the interface is designed to be
application independent, and does not expect that the application using
SKE would actually relate in any way to SILC. Hence, the interface
can be used in any kind of application needing to perform key exchange
protocol with two parties. The network connection is also handled
outside the SKE interface. For the interface application must provide
a packet sending function which SKE library can call when it wants
to send packet to the remote host. The actual network connection
therefore is handled in the application and not by the SKE library.
The protocol has initiator and responder. The initiator is the one
that starts the protocol, and the responder is the one that receives
negotiation request. The protocol has phases, and the interface is
split into several phases that the application may call when
needed. Heavy operations has been splitted so that application may
call next phase with a timeout to give processing times to other
things in the application. On the other hand, if application does
not care about this it may call the phases immediately without any
timeout.
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
|