summaryrefslogtreecommitdiff
path: root/kex.h
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2014-01-12 19:21:22 +1100
committerDamien Miller <djm@mindrot.org>2014-01-12 19:21:22 +1100
commit91b580e4bec55118bf96ab3cdbe5a50839e75d0a (patch)
tree32e4083c5a8cd285e1b0b13f9b77992db535cba4 /kex.h
parentaf5d4481f4c7c8c3c746e68b961bb85ef907800e (diff)
- djm@cvs.openbsd.org 2014/01/12 08:13:13
[bufaux.c buffer.h kex.c kex.h kexc25519.c kexc25519c.c kexc25519s.c] [kexdhc.c kexdhs.c kexecdhc.c kexecdhs.c kexgexc.c kexgexs.c] avoid use of OpenSSL BIGNUM type and functions for KEX with Curve25519 by adding a buffer_put_bignum2_from_string() that stores a string using the bignum encoding rules. Will make it easier to build a reduced-feature OpenSSH without OpenSSL in the future; ok markus@
Diffstat (limited to 'kex.h')
-rw-r--r--kex.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/kex.h b/kex.h
index fbe4940e8..7e2878f70 100644
--- a/kex.h
+++ b/kex.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: kex.h,v 1.59 2014/01/09 23:20:00 djm Exp $ */ 1/* $OpenBSD: kex.h,v 1.60 2014/01/12 08:13:13 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.
@@ -153,7 +153,8 @@ void kex_finish(Kex *);
153 153
154void kex_send_kexinit(Kex *); 154void kex_send_kexinit(Kex *);
155void kex_input_kexinit(int, u_int32_t, void *); 155void kex_input_kexinit(int, u_int32_t, void *);
156void kex_derive_keys(Kex *, u_char *, u_int, BIGNUM *); 156void kex_derive_keys(Kex *, u_char *, u_int, const u_char *, u_int);
157void kex_derive_keys_bn(Kex *, u_char *, u_int, const BIGNUM *);
157 158
158Newkeys *kex_get_newkeys(int); 159Newkeys *kex_get_newkeys(int);
159 160
@@ -182,14 +183,14 @@ kex_ecdh_hash(int, const EC_GROUP *, char *, char *, char *, int,
182void 183void
183kex_c25519_hash(int, char *, char *, char *, int, 184kex_c25519_hash(int, char *, char *, char *, int,
184 char *, int, u_char *, int, const u_char *, const u_char *, 185 char *, int, u_char *, int, const u_char *, const u_char *,
185 const BIGNUM *, u_char **, u_int *); 186 const u_char *, u_int, u_char **, u_int *);
186 187
187#define CURVE25519_SIZE 32 188#define CURVE25519_SIZE 32
188void kexc25519_keygen(u_char[CURVE25519_SIZE], u_char[CURVE25519_SIZE]) 189void kexc25519_keygen(u_char[CURVE25519_SIZE], u_char[CURVE25519_SIZE])
189 __attribute__((__bounded__(__minbytes__, 1, CURVE25519_SIZE))) 190 __attribute__((__bounded__(__minbytes__, 1, CURVE25519_SIZE)))
190 __attribute__((__bounded__(__minbytes__, 2, CURVE25519_SIZE))); 191 __attribute__((__bounded__(__minbytes__, 2, CURVE25519_SIZE)));
191BIGNUM *kexc25519_shared_key(const u_char[CURVE25519_SIZE], 192void kexc25519_shared_key(const u_char key[CURVE25519_SIZE],
192 const u_char[CURVE25519_SIZE]) 193 const u_char pub[CURVE25519_SIZE], Buffer *out)
193 __attribute__((__bounded__(__minbytes__, 1, CURVE25519_SIZE))) 194 __attribute__((__bounded__(__minbytes__, 1, CURVE25519_SIZE)))
194 __attribute__((__bounded__(__minbytes__, 2, CURVE25519_SIZE))); 195 __attribute__((__bounded__(__minbytes__, 2, CURVE25519_SIZE)));
195 196