version 1.140, 2006/03/20 18:26:55 |
version 1.152, 2006/07/26 13:57:17 |
|
|
|
/* $OpenBSD$ */ |
/* |
/* |
* Author: Tatu Ylonen <ylo@cs.hut.fi> |
* Author: Tatu Ylonen <ylo@cs.hut.fi> |
* Copyright (c) 1994 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
* Copyright (c) 1994 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
|
|
|
|
#include <sys/types.h> |
#include <sys/types.h> |
#include <sys/stat.h> |
#include <sys/stat.h> |
|
#include <sys/param.h> |
|
|
#include <openssl/evp.h> |
#include <openssl/evp.h> |
#include <openssl/pem.h> |
#include <openssl/pem.h> |
|
|
|
#include <errno.h> |
|
#include <fcntl.h> |
|
#include <pwd.h> |
|
#include <stdlib.h> |
|
#include <string.h> |
|
#include <unistd.h> |
|
|
#include "xmalloc.h" |
#include "xmalloc.h" |
#include "key.h" |
#include "key.h" |
#include "rsa.h" |
#include "rsa.h" |
|
|
#include "misc.h" |
#include "misc.h" |
#include "match.h" |
#include "match.h" |
#include "hostfile.h" |
#include "hostfile.h" |
|
#include "dns.h" |
|
|
#ifdef SMARTCARD |
#ifdef SMARTCARD |
#include "scard.h" |
#include "scard.h" |
#endif |
#endif |
#include "dns.h" |
|
|
|
/* Number of bits in the RSA/DSA key. This value can be set on the command line. */ |
/* Number of bits in the RSA/DSA key. This value can be set on the command line. */ |
#define DEFAULT_BITS 2048 |
#define DEFAULT_BITS 2048 |
|
|
line[pos++] = c; |
line[pos++] = c; |
line[pos] = '\0'; |
line[pos] = '\0'; |
} |
} |
|
if (c == EOF) |
|
return -1; |
return pos; |
return pos; |
} |
} |
|
|
|
|
xfree(fp); |
xfree(fp); |
exit(0); |
exit(0); |
} |
} |
if (comment) |
if (comment) { |
xfree(comment); |
xfree(comment); |
|
comment = NULL; |
|
} |
|
|
f = fopen(identity_file, "r"); |
f = fopen(identity_file, "r"); |
if (f != NULL) { |
if (f != NULL) { |
|
|
"degiqpclBHvxXyF:b:f:t:U:D:P:N:C:r:g:R:T:G:M:S:a:W:")) != -1) { |
"degiqpclBHvxXyF:b:f:t:U:D:P:N:C:r:g:R:T:G:M:S:a:W:")) != -1) { |
switch (opt) { |
switch (opt) { |
case 'b': |
case 'b': |
bits = strtonum(optarg, 768, 32768, &errstr); |
bits = (u_int32_t)strtonum(optarg, 768, 32768, &errstr); |
if (errstr) |
if (errstr) |
fatal("Bits has bad value %s (%s)", |
fatal("Bits has bad value %s (%s)", |
optarg, errstr); |
optarg, errstr); |
|
|
rr_hostname = optarg; |
rr_hostname = optarg; |
break; |
break; |
case 'W': |
case 'W': |
generator_wanted = strtonum(optarg, 1, UINT_MAX, &errstr); |
generator_wanted = (u_int32_t)strtonum(optarg, 1, |
|
UINT_MAX, &errstr); |
if (errstr) |
if (errstr) |
fatal("Desired generator has bad value: %s (%s)", |
fatal("Desired generator has bad value: %s (%s)", |
optarg, errstr); |
optarg, errstr); |
break; |
break; |
case 'a': |
case 'a': |
trials = strtonum(optarg, 1, UINT_MAX, &errstr); |
trials = (u_int32_t)strtonum(optarg, 1, UINT_MAX, &errstr); |
if (errstr) |
if (errstr) |
fatal("Invalid number of trials: %s (%s)", |
fatal("Invalid number of trials: %s (%s)", |
optarg, errstr); |
optarg, errstr); |
break; |
break; |
case 'M': |
case 'M': |
memory = strtonum(optarg, 1, UINT_MAX, &errstr); |
memory = (u_int32_t)strtonum(optarg, 1, UINT_MAX, &errstr); |
if (errstr) { |
if (errstr) { |
fatal("Memory limit is %s: %s", errstr, optarg); |
fatal("Memory limit is %s: %s", errstr, optarg); |
} |
} |