*
* SOURCE
*/
-typedef struct {
+typedef struct SilcSKESecurityPropertiesStruct {
SilcSKESecurityPropertyFlag flags; /* Flags */
SilcSKEDiffieHellmanGroup group; /* Selected Diffie Hellman group */
SilcCipher cipher; /* Selected cipher */
*
* SOURCE
*/
-typedef struct {
+typedef struct SilcSKEKeyMaterialStruct {
unsigned char *send_iv;
unsigned char *receive_iv;
SilcUInt32 iv_len;
unsigned char *send_enc_key;
unsigned char *receive_enc_key;
- SilcUInt32 enc_key_len;
+ SilcUInt32 enc_key_len; /* Key length in bits */
unsigned char *send_hmac_key;
unsigned char *receive_hmac_key;
- SilcUInt32 hmac_key_len;
+ SilcUInt32 hmac_key_len; /* Key length in bytes */
} *SilcSKEKeyMaterial;
/***/
* function.
*
***/
-typedef struct {
+typedef struct SilcSKERekeyMaterialStruct {
unsigned char *send_enc_key;
char *hash;
unsigned int enc_key_len : 23;
*
* SOURCE
*/
-typedef struct {
+typedef struct SilcSKEParamsObject {
/* The SKE version string that is sent to the remote end. This field
must be set. Caller must free the pointer. */
char *version;
* SilcAsyncOperation
* silc_ske_rekey_responder(SilcSKE ske,
* SilcPacketStream stream,
- * SilcSKERekeyMaterial rekey);
+ * SilcSKERekeyMaterial rekey,
+ * SilcPacket packet);
*
* DESCRIPTION
*
* the new keys into `stream'. The completion callback is called after
* the new keys has been taken into use.
*
+ * The `packet' is the SILC_PACKET_REKEY received to start the rekey
+ * protocol. If `packet' is NULL it is assumed that the packet will be
+ * received from the `stream'.
+ *
* This function returns SilcAsyncOperation operation context which can
* be used to control the protocol from the application. Application may
* for example safely abort the protocol at any point, if needed. Returns
***/
SilcAsyncOperation silc_ske_rekey_responder(SilcSKE ske,
SilcPacketStream stream,
- SilcSKERekeyMaterial rekey);
+ SilcSKERekeyMaterial rekey,
+ SilcPacket packet);
/****f* silcske/SilcSKEAPI/silc_ske_set_keys
*