diff options
author | Damien Miller <djm@mindrot.org> | 2014-01-12 19:21:22 +1100 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2014-01-12 19:21:22 +1100 |
commit | 91b580e4bec55118bf96ab3cdbe5a50839e75d0a (patch) | |
tree | 32e4083c5a8cd285e1b0b13f9b77992db535cba4 /kex.h | |
parent | af5d4481f4c7c8c3c746e68b961bb85ef907800e (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.h | 11 |
1 files changed, 6 insertions, 5 deletions
@@ -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 | ||
154 | void kex_send_kexinit(Kex *); | 154 | void kex_send_kexinit(Kex *); |
155 | void kex_input_kexinit(int, u_int32_t, void *); | 155 | void kex_input_kexinit(int, u_int32_t, void *); |
156 | void kex_derive_keys(Kex *, u_char *, u_int, BIGNUM *); | 156 | void kex_derive_keys(Kex *, u_char *, u_int, const u_char *, u_int); |
157 | void kex_derive_keys_bn(Kex *, u_char *, u_int, const BIGNUM *); | ||
157 | 158 | ||
158 | Newkeys *kex_get_newkeys(int); | 159 | Newkeys *kex_get_newkeys(int); |
159 | 160 | ||
@@ -182,14 +183,14 @@ kex_ecdh_hash(int, const EC_GROUP *, char *, char *, char *, int, | |||
182 | void | 183 | void |
183 | kex_c25519_hash(int, char *, char *, char *, int, | 184 | kex_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 |
188 | void kexc25519_keygen(u_char[CURVE25519_SIZE], u_char[CURVE25519_SIZE]) | 189 | void 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))); |
191 | BIGNUM *kexc25519_shared_key(const u_char[CURVE25519_SIZE], | 192 | void 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 | ||