silcske.h
- Author: Pekka Riikonen <priikone@poseidon.pspt.fi>
+ Author: Pekka Riikonen <priikone@silcnet.org>
Copyright (C) 2000 - 2001 Pekka Riikonen
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;
to negotiate what security properties should be used in the
communication. */
struct SilcSKESecurityPropertiesStruct {
- unsigned char flags;
+ SilcSKESecurityPropertyFlag flags;
SilcSKEDiffieHellmanGroup group;
SilcPKCS pkcs;
SilcCipher cipher;
HASH computation. */
SilcBuffer start_payload_copy;
- /* If initiator, this is responders public key. If responder this
- is our own public key. */
- unsigned char *pk;
- uint32 pk_len;
-
/* Random number x, 1 < x < q. This is the secret exponent
used in Diffie Hellman computations. */
SilcMPInt *x;
/* SKE callbacks. */
SilcSKECallbacks callbacks;
+
+ /* Backwards support version indicator */
+ uint32 backward_version;
};
/* Prototypes */
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,
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
char *version,
SilcSKEStartPayload *payload,
SilcSKEStartPayload *remote_payload);
-SilcSKEStatus silc_ske_create_rnd(SilcSKE ske, SilcMPInt n,
+SilcSKEStatus silc_ske_create_rnd(SilcSKE ske, SilcMPInt *n,
uint32 len,
SilcMPInt *rnd);
SilcSKEStatus silc_ske_make_hash(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