summaryrefslogtreecommitdiff
path: root/kex.h
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2005-11-05 15:19:35 +1100
committerDamien Miller <djm@mindrot.org>2005-11-05 15:19:35 +1100
commit19bb3a57f88adc789d61964fcb8f50165026b322 (patch)
treeba18e185c014c1da12ce4422a7e7bad9e71725f5 /kex.h
parent24ecf612614d83622d9777349b4ecd21ee22bb2a (diff)
- djm@cvs.openbsd.org 2005/11/04 05:15:59
[kex.c kex.h kexdh.c kexdhc.c kexdhs.c kexgex.c kexgexc.c kexgexs.c] remove hardcoded hash lengths in key exchange code, allowing implementation of KEX methods with different hashes (e.g. SHA-256); ok markus@ dtucker@ stevesk@
Diffstat (limited to 'kex.h')
-rw-r--r--kex.h22
1 files changed, 12 insertions, 10 deletions
diff --git a/kex.h b/kex.h
index 3024a2717..bbd931e04 100644
--- a/kex.h
+++ b/kex.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: kex.h,v 1.37 2005/07/25 11:59:39 markus Exp $ */ 1/* $OpenBSD: kex.h,v 1.38 2005/11/04 05:15:59 djm Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. 4 * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved.
@@ -31,9 +31,9 @@
31#include "cipher.h" 31#include "cipher.h"
32#include "key.h" 32#include "key.h"
33 33
34#define KEX_DH1 "diffie-hellman-group1-sha1" 34#define KEX_DH1 "diffie-hellman-group1-sha1"
35#define KEX_DH14 "diffie-hellman-group14-sha1" 35#define KEX_DH14 "diffie-hellman-group14-sha1"
36#define KEX_DHGEX "diffie-hellman-group-exchange-sha1" 36#define KEX_DHGEX_SHA1 "diffie-hellman-group-exchange-sha1"
37 37
38#define COMP_NONE 0 38#define COMP_NONE 0
39#define COMP_ZLIB 1 39#define COMP_ZLIB 1
@@ -114,6 +114,7 @@ struct Kex {
114 Buffer peer; 114 Buffer peer;
115 int done; 115 int done;
116 int flags; 116 int flags;
117 const EVP_MD *evp_md;
117 char *client_version_string; 118 char *client_version_string;
118 char *server_version_string; 119 char *server_version_string;
119 int (*verify_host_key)(Key *); 120 int (*verify_host_key)(Key *);
@@ -127,7 +128,7 @@ void kex_finish(Kex *);
127 128
128void kex_send_kexinit(Kex *); 129void kex_send_kexinit(Kex *);
129void kex_input_kexinit(int, u_int32_t, void *); 130void kex_input_kexinit(int, u_int32_t, void *);
130void kex_derive_keys(Kex *, u_char *, BIGNUM *); 131void kex_derive_keys(Kex *, u_char *, u_int, BIGNUM *);
131 132
132Newkeys *kex_get_newkeys(int); 133Newkeys *kex_get_newkeys(int);
133 134
@@ -136,12 +137,13 @@ void kexdh_server(Kex *);
136void kexgex_client(Kex *); 137void kexgex_client(Kex *);
137void kexgex_server(Kex *); 138void kexgex_server(Kex *);
138 139
139u_char * 140void
140kex_dh_hash(char *, char *, char *, int, char *, int, u_char *, int, 141kex_dh_hash(char *, char *, char *, int, char *, int, u_char *, int,
141 BIGNUM *, BIGNUM *, BIGNUM *); 142 BIGNUM *, BIGNUM *, BIGNUM *, u_char **, u_int *);
142u_char * 143void
143kexgex_hash(char *, char *, char *, int, char *, int, u_char *, int, 144kexgex_hash(const EVP_MD *, char *, char *, char *, int, char *,
144 int, int, int, BIGNUM *, BIGNUM *, BIGNUM *, BIGNUM *, BIGNUM *); 145 int, u_char *, int, int, int, int, BIGNUM *, BIGNUM *, BIGNUM *,
146 BIGNUM *, BIGNUM *, u_char **, u_int *);
145 147
146void 148void
147derive_ssh1_session_id(BIGNUM *, BIGNUM *, u_int8_t[8], u_int8_t[16]); 149derive_ssh1_session_id(BIGNUM *, BIGNUM *, u_int8_t[8], u_int8_t[16]);