tupdates
[silc.git] / lib / silcske / silcske.h
index 4f08aebb44675856d78eab6338d9031fb502bc75..60de4114bab73684df6a3db17d98d8130650753b 100644 (file)
@@ -2,7 +2,7 @@
 
   silcske.h
 
-  Author: Pekka Riikonen <priikone@poseidon.pspt.fi>
+  Author: Pekka Riikonen <priikone@silcnet.org>
 
   Copyright (C) 2000 - 2001 Pekka Riikonen
 
@@ -101,7 +101,8 @@ typedef struct {
   unsigned char *send_enc_key;
   unsigned char *receive_enc_key;
   uint32 enc_key_len;
-  unsigned char *hmac_key;
+  unsigned char *send_hmac_key;
+  unsigned char *receive_hmac_key;
   uint32 hmac_key_len;
 } SilcSKEKeyMaterial;
 
@@ -124,7 +125,7 @@ typedef enum {
    to negotiate what security properties should be used in the
    communication. */
 struct SilcSKESecurityPropertiesStruct {
-  unsigned char flags;
+  SilcSKESecurityPropertyFlag flags;
   SilcSKEDiffieHellmanGroup group;
   SilcPKCS pkcs;
   SilcCipher cipher;
@@ -178,6 +179,9 @@ struct SilcSKEStruct {
 
   /* SKE callbacks. */
   SilcSKECallbacks callbacks;
+
+  /* Backwards support version indicator */
+  uint32 backward_version;
 };
 
 /* Prototypes */
@@ -204,7 +208,7 @@ SilcSKEStatus silc_ske_responder_start(SilcSKE ske, SilcRng rng,
                                       SilcSocketConnection sock,
                                       char *version,
                                       SilcBuffer start_payload,
-                                      bool mutual_auth);
+                                      SilcSKESecurityPropertyFlag flags);
 SilcSKEStatus silc_ske_responder_phase_1(SilcSKE ske, 
                                         SilcSKEStartPayload *start_payload);
 SilcSKEStatus silc_ske_responder_phase_2(SilcSKE ske,
@@ -217,7 +221,7 @@ SilcSKEStatus silc_ske_end(SilcSKE ske);
 SilcSKEStatus silc_ske_abort(SilcSKE ske, SilcSKEStatus status);
 SilcSKEStatus 
 silc_ske_assemble_security_properties(SilcSKE ske,
-                                     unsigned char flags,
+                                     SilcSKESecurityPropertyFlag flags,
                                      char *version,
                                      SilcSKEStartPayload **return_payload);
 SilcSKEStatus 
@@ -246,5 +250,6 @@ SilcSKEStatus silc_ske_process_key_material(SilcSKE ske,
                                            uint32 req_hmac_key_len,
                                            SilcSKEKeyMaterial *key);
 void silc_ske_free_key_material(SilcSKEKeyMaterial *key);
+const char *silc_ske_map_status(SilcSKEStatus status);
 
 #endif