1/* 2 * Copyright (c) 2000 Markus Friedl. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. --- 12 unchanged lines hidden (view full) --- 21 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 22 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 23 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * |
29 * $FreeBSD: head/crypto/openssh/key.c 61203 2000-06-03 07:31:44Z kris $ |
30 */ 31/* 32 * read_bignum(): 33 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 34 */ 35 36#include "includes.h" 37#include "ssh.h" --- 215 unchanged lines hidden (view full) --- 253 case KEY_DSA: 254 if (strncmp(cp, SSH_DSS " ", 7) != 0) 255 return 0; 256 cp += 7; 257 len = 2*strlen(cp); 258 blob = xmalloc(len); 259 n = uudecode(cp, blob, len); 260 if (n < 0) { |
261 error("key_read: uudecode %s failed", cp); |
262 return 0; 263 } 264 k = dsa_key_from_blob(blob, n); |
265 if (k == NULL) { 266 error("key_read: dsa_key_from_blob %s failed", cp); 267 return 0; 268 } |
269 xfree(blob); 270 if (ret->dsa != NULL) 271 DSA_free(ret->dsa); 272 ret->dsa = k->dsa; 273 k->dsa = NULL; 274 key_free(k); 275 bits = BN_num_bits(ret->dsa->p); |
276 /* advance cp: skip whitespace and data */ 277 while (*cp == ' ' || *cp == '\t') 278 cp++; 279 while (*cp != '\0' && *cp != ' ' && *cp != '\t') 280 cp++; 281 *cpp = cp; |
282 break; 283 default: 284 fatal("key_read: bad key type: %d", ret->type); 285 break; 286 } 287 return bits; 288} 289int --- 43 unchanged lines hidden --- |