diff options
author | Damien Miller <djm@mindrot.org> | 2000-06-22 21:32:31 +1000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2000-06-22 21:32:31 +1000 |
commit | 6536c7d3c9d0e794c5c85d4f1746b958d7e04343 (patch) | |
tree | 9551d0d84924d6a206130fb575df5d90f1cc7a28 /dsa.c | |
parent | 099f505f9526311e48f828e95d90d488fe237219 (diff) |
- OpenBSD CVS Updates:
- markus@cvs.openbsd.org 2000/06/18 18:50:11
[auth2.c compat.c compat.h sshconnect2.c]
make userauth+pubkey interop with ssh.com-2.2.0
- markus@cvs.openbsd.org 2000/06/18 20:56:17
[dsa.c]
mem leak + be more paranoid in dsa_verify.
- markus@cvs.openbsd.org 2000/06/18 21:29:50
[key.c]
cleanup fingerprinting, less hardcoded sizes
- markus@cvs.openbsd.org 2000/06/19 19:39:45
[atomicio.c auth-options.c auth-passwd.c auth-rh-rsa.c auth-rhosts.c]
[auth-rsa.c auth-skey.c authfd.c authfd.h authfile.c bufaux.c bufaux.h]
[buffer.c buffer.h canohost.c channels.c channels.h cipher.c cipher.h]
[clientloop.c compat.c compat.h compress.c compress.h crc32.c crc32.h]
[deattack.c dispatch.c dsa.c fingerprint.c fingerprint.h getput.h hmac.c]
[kex.c log-client.c log-server.c login.c match.c mpaux.c mpaux.h nchan.c]
[nchan.h packet.c packet.h pty.c pty.h readconf.c readconf.h readpass.c]
[rsa.c rsa.h scp.c servconf.c servconf.h ssh-add.c ssh-keygen.c ssh.c]
[ssh.h tildexpand.c ttymodes.c ttymodes.h uidswap.c xmalloc.c xmalloc.h]
OpenBSD tag
- markus@cvs.openbsd.org 2000/06/21 10:46:10
sshconnect2.c missing free; nuke old comment
Diffstat (limited to 'dsa.c')
-rw-r--r-- | dsa.c | 17 |
1 files changed, 13 insertions, 4 deletions
@@ -28,7 +28,7 @@ | |||
28 | */ | 28 | */ |
29 | 29 | ||
30 | #include "includes.h" | 30 | #include "includes.h" |
31 | RCSID("$Id: dsa.c,v 1.7 2000/05/08 17:42:24 markus Exp $"); | 31 | RCSID("$OpenBSD: dsa.c,v 1.9 2000/06/20 01:39:41 markus Exp $"); |
32 | 32 | ||
33 | #include "ssh.h" | 33 | #include "ssh.h" |
34 | #include "xmalloc.h" | 34 | #include "xmalloc.h" |
@@ -72,7 +72,7 @@ dsa_key_from_blob( | |||
72 | buffer_append(&b, blob, blen); | 72 | buffer_append(&b, blob, blen); |
73 | ktype = buffer_get_string(&b, NULL); | 73 | ktype = buffer_get_string(&b, NULL); |
74 | if (strcmp(KEX_DSS, ktype) != 0) { | 74 | if (strcmp(KEX_DSS, ktype) != 0) { |
75 | error("dsa_key_from_blob: cannot handle type %s", ktype); | 75 | error("dsa_key_from_blob: cannot handle type %s", ktype); |
76 | key_free(key); | 76 | key_free(key); |
77 | return NULL; | 77 | return NULL; |
78 | } | 78 | } |
@@ -197,7 +197,6 @@ dsa_verify( | |||
197 | DSA_SIG *sig; | 197 | DSA_SIG *sig; |
198 | EVP_MD *evp_md = EVP_sha1(); | 198 | EVP_MD *evp_md = EVP_sha1(); |
199 | EVP_MD_CTX md; | 199 | EVP_MD_CTX md; |
200 | char *ktype; | ||
201 | unsigned char *sigblob; | 200 | unsigned char *sigblob; |
202 | char *txt; | 201 | char *txt; |
203 | unsigned int len; | 202 | unsigned int len; |
@@ -227,14 +226,24 @@ dsa_verify( | |||
227 | len = signaturelen; | 226 | len = signaturelen; |
228 | } else { | 227 | } else { |
229 | /* ietf-drafts */ | 228 | /* ietf-drafts */ |
229 | char *ktype; | ||
230 | buffer_init(&b); | 230 | buffer_init(&b); |
231 | buffer_append(&b, (char *) signature, signaturelen); | 231 | buffer_append(&b, (char *) signature, signaturelen); |
232 | ktype = buffer_get_string(&b, NULL); | 232 | ktype = buffer_get_string(&b, NULL); |
233 | if (strcmp(KEX_DSS, ktype) != 0) { | ||
234 | error("dsa_verify: cannot handle type %s", ktype); | ||
235 | buffer_free(&b); | ||
236 | return -1; | ||
237 | } | ||
233 | sigblob = (unsigned char *)buffer_get_string(&b, &len); | 238 | sigblob = (unsigned char *)buffer_get_string(&b, &len); |
234 | rlen = buffer_len(&b); | 239 | rlen = buffer_len(&b); |
235 | if(rlen != 0) | 240 | if(rlen != 0) { |
236 | error("remaining bytes in signature %d", rlen); | 241 | error("remaining bytes in signature %d", rlen); |
242 | buffer_free(&b); | ||
243 | return -1; | ||
244 | } | ||
237 | buffer_free(&b); | 245 | buffer_free(&b); |
246 | xfree(ktype); | ||
238 | } | 247 | } |
239 | 248 | ||
240 | if (len != SIGBLOB_LEN) { | 249 | if (len != SIGBLOB_LEN) { |