Imported Debian version 4.5.7

This commit is contained in:
Marco d'Itri 2001-06-05 14:01:56 +02:00
parent 210d9619a3
commit bd5fd88c6b
15 changed files with 288 additions and 58 deletions

View File

@ -13,7 +13,7 @@ all: whois #pos
whois: whois.c whois.h config.h data.h as_del.h ip_del.h tld_serv.h whois: whois.c whois.h config.h data.h as_del.h ip_del.h tld_serv.h
$(CC) $(OPTS) whois.c -o whois $(LDFLAGS) $(CC) $(OPTS) whois.c -o whois $(LDFLAGS)
mkpasswd: mkpasswd: mkpasswd.c
$(CC) $(OPTS) mkpasswd.c -o mkpasswd -lcrypt $(CC) $(OPTS) mkpasswd.c -o mkpasswd -lcrypt
as_del.h: as_del_list make_as_del.pl as_del.h: as_del_list make_as_del.pl

1
README
View File

@ -25,6 +25,7 @@ Other information sources:
http://www.apnic.net/maps/tld-list.html http://www.apnic.net/maps/tld-list.html
- http://www.uninett.no/navn/domreg.html - http://www.uninett.no/navn/domreg.html
- http://www.iahc.org/dns-refs/registry.html - http://www.iahc.org/dns-refs/registry.html
- http://www.iana.org/root-whois/xx.htm
Marco d'Itri Marco d'Itri
<md@linux.it> <md@linux.it>

View File

@ -1,6 +1,6 @@
/* Program version */ /* Program version */
/* not for the inetutils version */ /* not for the inetutils version */
#define VERSION "4.5.6" #define VERSION "4.5.7"
/* Configurable features */ /* Configurable features */
@ -13,7 +13,7 @@
/* Default server */ /* Default server */
#define DEFAULTSERVER "whois.internic.net" #define DEFAULTSERVER "whois.internic.net"
/* not for the inetutils version */ /* autoconf in cpp macros */
#ifdef linux #ifdef linux
# define ENABLE_NLS # define ENABLE_NLS
# define HAVE_GETOPT_LONG # define HAVE_GETOPT_LONG
@ -22,3 +22,35 @@
# endif # endif
#endif #endif
/* system features */
#ifdef ENABLE_NLS
# ifndef NLS_CAT_NAME
# define NLS_CAT_NAME "whois"
# endif
# ifndef LOCALEDIR
# define LOCALEDIR "/usr/share/locale"
# endif
#endif
#ifdef HAVE_GETOPT_LONG
# define GETOPT_LONGISH(c, v, o, l, i) getopt_long(c, v, o, l, i)
#else
# define GETOPT_LONGISH(c, v, o, l, i) getopt(c, v, o)
#endif
/* NLS stuff */
#ifdef ENABLE_NLS
# include <libintl.h>
# include <locale.h>
# define _(a) (gettext (a))
# ifdef gettext_noop
# define N_(a) gettext_noop (a)
# else
# define N_(a) (a)
# endif
#else
# define _(a) (a)
# define N_(a) a
#endif

16
debian/changelog vendored
View File

@ -1,6 +1,16 @@
whois (4.5.6) unstable; urgency=low whois (4.5.7) unstable; urgency=low
* Added -nicat and -il NIC handles (Closes: #94465).
* Greatly bloated mkpasswd now can read the password from the console
(Closes: #94826).
-- Marco d'Itri <md@linux.it> Tue, 5 Jun 2001 14:01:56 +0200
whois (4.5.6) unstable; urgency=medium
* Fixed typo in the server name for .si. * Fixed typo in the server name for .si.
* Added 80.0.0.0/7 allocation and -frnic NIC handles.
* Added Build-Depends (Closes: #90205).
-- Marco d'Itri <md@linux.it> Wed, 4 Apr 2001 01:27:53 +0200 -- Marco d'Itri <md@linux.it> Wed, 4 Apr 2001 01:27:53 +0200
@ -14,7 +24,7 @@ whois (4.5.5) unstable; urgency=low
whois (4.5.4) unstable; urgency=low whois (4.5.4) unstable; urgency=low
* Updated .at, .be, .cy, .cz, .ee, .gr, .il, .pl, .ro, .vi and .nz ccTLDs. * Updated .at, .be, .cy, .cz, .ee, .gr, .il, .pl, .ro, .vi and .nz ccTLDs.
* Added -cz, -nicat, -norid and -rotld NIC handles. * Added -cz, -nicat, and -rotld NIC handles.
* Added telstra IP allocations. * Added telstra IP allocations.
* Fixed fencepost error (Closes: #83661). * Fixed fencepost error (Closes: #83661).
@ -185,7 +195,7 @@ whois (4.4.1) unstable; urgency=low
whois (4.4.0) unstable; urgency=low whois (4.4.0) unstable; urgency=low
* Now the program automatically select the right server for AS queries. * Now the program automatically select the right server for AS queries.
* Added RIPE delegations of netblocks in the B class space. * Added RIPE allocations of netblocks in the B class space.
* Extensive survey of all known whois servers and update of tld_serv_list. * Extensive survey of all known whois servers and update of tld_serv_list.
* Now the flag -VMd4.4 is sent to RIPE-like servers. * Now the flag -VMd4.4 is sent to RIPE-like servers.
* Written a test program for checking if all servers work. * Written a test program for checking if all servers work.

1
debian/control vendored
View File

@ -3,6 +3,7 @@ Section: net
Priority: standard Priority: standard
Maintainer: Marco d'Itri <md@linux.it> Maintainer: Marco d'Itri <md@linux.it>
Standards-Version: 3.1.0.0 Standards-Version: 3.1.0.0
Build-Depends: debhelper, gettext
Package: whois Package: whois
Architecture: any Architecture: any

View File

@ -5,6 +5,7 @@
62.0.0.0/8 ripe 62.0.0.0/8 ripe
# broken? # broken?
# 63.208.0.0/13 rr.level3.net # 63.208.0.0/13 rr.level3.net
80.0.0.0/7 ripe
0.0.0.0/2 arin # all other A classes are managed by ARIN 0.0.0.0/2 arin # all other A classes are managed by ARIN
## The B class space is a mess :-( - something could still be missing ## The B class space is a mess :-( - something could still be missing
139.20.0.0/14 ripe 139.20.0.0/14 ripe
@ -145,4 +146,3 @@
214.0.0.0/7 arin # DoD 214.0.0.0/7 arin # DoD
216.0.0.0/8 arin 216.0.0.0/8 arin
217.0.0.0/8 ripe 217.0.0.0/8 ripe

View File

@ -1,6 +1,6 @@
.TH MKPASSWD 1 "7 October 1999" "Marco d'Itri" "Debian GNU/Linux" .TH MKPASSWD 1 "5 June 2001" "Marco d'Itri" "Debian GNU/Linux"
.SH NAME .SH NAME
mkpasswd \- Very dumb front end to crypt(3) mkpasswd \- Overfeatured front end to crypt(3)
.SH SYNOPSIS .SH SYNOPSIS
.B mkpasswd .B mkpasswd
.BR PASSWORD .BR PASSWORD
@ -11,10 +11,28 @@ mkpasswd \- Very dumb front end to crypt(3)
encrypts the given password with the encrypts the given password with the
.BR crypt(3) .BR crypt(3)
libc function using the given salt. libc function using the given salt.
.SH OPTIONS
.TP
.B -S, --salt=STRING
Use the \fISTRING\fP as salt.
.TP
.B -H, --hash=TYPE
Compute the password using the \fITYPE\fP algorithm.
.TP
.B -s, --stdin
Read the password from stdin instead of using \fIgetpass(3)\fP.
.SH BUGS
If the \fI--stdin\fP option is used, passwords containing some control
characters may not be read correctly.
.TP
This programs suffers of a bad case of featuritis.
.SH "SEE ALSO" .SH "SEE ALSO"
.IR crypt(3) .IR passwd(1),
.IR passwd(5),
.IR crypt(3),
.IR getpass(3)
.SH AUTHOR .SH AUTHOR
.B mkpasswd .B mkpasswd
and this man page were written by Marco d'Itri <md@linux.it> and this man page were written by Marco d'Itri <md@linux.it>
and put in the public domain. and are licensed under the terms of the GNU GPL.

View File

@ -1,21 +1,221 @@
/* mkpasswd.c - written by Marco d'Itri <md@linux.it>, 1999/10/3. /*
* Silly little program for encrypting passwords * Copyright (C) 2001 Marco d'Itri
* It is so dumb that I will just place it in the public domain *
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#define _XOPEN_SOURCE #define _XOPEN_SOURCE
#define _BSD_SOURCE
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <sys/types.h> #include <sys/types.h>
#include <unistd.h> #include <unistd.h>
#include <string.h>
#include <time.h>
#include "config.h"
#ifdef HAVE_GETOPT_LONG
#include <getopt.h>
#endif
#ifdef HAVE_GETOPT_LONG
static struct option longopts[] = {
{"stdin", no_argument, NULL, 's'},
{"salt", required_argument, NULL, 'S'},
{"hash", required_argument, NULL, 'H'},
{"help", no_argument, NULL, 'h'},
{"version", no_argument, NULL, 'V'},
{NULL, 0, NULL, 0 }
};
#endif
static char valid_salts[] = "abcdefghijklmnopqrstuvwxyz"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./";
struct salt_prefix {
const char *algo;
const char *prefix;
unsigned int len;
};
struct salt_prefix salt_prefixes[] = {
{ "des", "", 2 },
{ "md5", "$1$", 8 },
};
void generate_salt(char *buf, const unsigned int len);
void display_help(void);
void display_version(void);
void display_algorithms(void);
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
if (argc != 3) { int ch;
puts("Usage: mkpasswd PASSWORD SALT\n"); int use_stdin = 0;
unsigned int i, salt_len = 0;
const char *salt_prefix = NULL;
char *salt = NULL;
char *password = NULL;
unsigned char *p;
while ((ch = GETOPT_LONGISH(argc, argv, "hH:sS:V", longopts, 0)) > 0) {
switch (ch) {
case 's':
use_stdin = 1;
break;
case 'S':
salt = optarg;
break;
case 'H':
if (*optarg == '\0') {
display_algorithms();
exit(0);
}
for (i = 0; salt_prefixes[i].algo != NULL; i++)
if (strcasecmp(salt_prefixes[i].algo, optarg) == 0) {
salt_prefix = salt_prefixes[i].prefix;
salt_len = salt_prefixes[i].len;
break;
}
if (!salt_prefix) {
fprintf(stderr, "Invalid hash type `%s'.\n", optarg);
exit(1);
}
break;
case 'V':
display_version();
exit(0);
case 'h':
display_help();
exit(0);
default:
fprintf(stderr, "Try `%s --help' for more information.\n", argv[0]);
exit(1);
}
}
argc -= optind;
argv += optind;
if (argc == 2 && !salt) {
password = argv[0];
salt = argv[1];
} else if (argc == 1) {
password = argv[0];
} else if (argc == 0) {
} else {
display_help();
exit(1); exit(1);
} }
printf("%s\n", crypt(argv[1], argv[2]));
/* default: DES password */
if (!salt_len) {
salt_len = salt_prefixes[0].len;
salt_prefix = salt_prefixes[0].prefix;
}
if (salt) {
i = strlen(salt);
if (i != salt_len) {
fprintf(stderr, "Wrong salt length: %d byte(s) instead of %d.\n",
i, salt_len);
exit(1);
}
while (i-- > 0)
if (strchr(valid_salts, salt[i]) == NULL) {
fprintf(stderr, "Illegal salt character `%c'.\n", salt[i]);
exit(1);
}
} else {
salt = malloc(salt_len + 1);
generate_salt(salt, salt_len);
}
if (!password) {
if (use_stdin) {
fprintf(stderr, "Password: ");
password = malloc(128);
if (!fgets(password, sizeof password, stdin)) {
perror("fgets:");
exit(2);
}
p = password;
while (*p != '\0') {
if (*p == '\n') {
*p = '\0';
break;
}
/* which characters are valid? */
if (*p > 0x7f) {
fprintf(stderr, "Illegal password character `0x%hhx'.\n",
*p);
exit(1);
}
p++;
}
} else {
password = getpass("Password: ");
if (!password) {
perror("getpass:");
exit(2);
}
}
}
p = malloc(strlen(salt_prefix) + strlen(salt) + 1);
*p = '\0';
strcat(p, salt_prefix);
strcat(p, salt);
printf("%s\n", crypt(password, p));
exit(0); exit(0);
} }
void generate_salt(char *buf, const unsigned int len)
{
unsigned int i;
srand(time(NULL) + getpid());
for (i = 0; i < len; i++)
buf[i] = valid_salts[rand() % (sizeof valid_salts - 1)];
buf[i] = '\0';
}
void display_help(void)
{
fprintf(stderr, "Usage: mkpasswd [OPTIONS]... [PASSWORD [SALT]]\n"
"Crypts the PASSWORD using crypt(3).\n\n");
fprintf(stderr,
" -H, --hash=TYPE select hash TYPE\n"
" -S, --salt=SALT use the specified SALT\n"
" -s, --stdin read the password from stdin instead of /dev/tty\n"
" -h, --help display this help and exit\n"
" -v, --version output version information and exit\n"
"\n"
"If PASSWORD is missing then it is asked interactively.\n"
"If no SALT is specified, a random one is generated.\n"
"\n"
"Report bugs to %s.\n", "<md+whois@linux.it>");
}
void display_version(void)
{
printf("GNU mkpasswd %s\n\n", VERSION);
puts("Copyright (C) 2001 Marco d'Itri\n"
"This is free software; see the source for copying conditions. There is NO\n"
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.");
}
void display_algorithms(void)
{
printf("Available algorithms:\n");
}

View File

@ -150,7 +150,7 @@ msgid ""
"-q [version|sources] query specified server info [RPSL only]\n" "-q [version|sources] query specified server info [RPSL only]\n"
"-d return DNS reverse delegation objects too [RPSL " "-d return DNS reverse delegation objects too [RPSL "
"only]\n" "only]\n"
"-K only primary keys are returned [RPSL only\n" "-K only primary keys are returned [RPSL only]\n"
"-V --verbose explain what is being done\n" "-V --verbose explain what is being done\n"
" --help display this help and exit\n" " --help display this help and exit\n"
" --version output version information and exit\n" " --version output version information and exit\n"

View File

@ -147,7 +147,7 @@ msgid ""
"-q [version|sources] query specified server info [RPSL only]\n" "-q [version|sources] query specified server info [RPSL only]\n"
"-d return DNS reverse delegation objects too [RPSL " "-d return DNS reverse delegation objects too [RPSL "
"only]\n" "only]\n"
"-K only primary keys are returned [RPSL only\n" "-K only primary keys are returned [RPSL only]\n"
"-V --verbose explain what is being done\n" "-V --verbose explain what is being done\n"
" --help display this help and exit\n" " --help display this help and exit\n"
" --version output version information and exit\n" " --version output version information and exit\n"
@ -183,4 +183,3 @@ msgstr ""
"-V --verbose spiega cosa sta facendo\n" "-V --verbose spiega cosa sta facendo\n"
" --help mostra questo aiuto ed esce\n" " --help mostra questo aiuto ed esce\n"
" --version stampa le informazioni sulla versione ed esce\n" " --version stampa le informazioni sulla versione ed esce\n"
"Versione %s. Segnala i bug a %s.\n"

View File

@ -146,7 +146,7 @@ msgid ""
"-q [version|sources] query specified server info [RPSL only]\n" "-q [version|sources] query specified server info [RPSL only]\n"
"-d return DNS reverse delegation objects too [RPSL " "-d return DNS reverse delegation objects too [RPSL "
"only]\n" "only]\n"
"-K only primary keys are returned [RPSL only\n" "-K only primary keys are returned [RPSL only]\n"
"-V --verbose explain what is being done\n" "-V --verbose explain what is being done\n"
" --help display this help and exit\n" " --help display this help and exit\n"
" --version output version information and exit\n" " --version output version information and exit\n"

View File

@ -146,7 +146,7 @@ msgid ""
"-q [version|sources] query specified server info [RPSL only]\n" "-q [version|sources] query specified server info [RPSL only]\n"
"-d return DNS reverse delegation objects too [RPSL " "-d return DNS reverse delegation objects too [RPSL "
"only]\n" "only]\n"
"-K only primary keys are returned [RPSL only\n" "-K only primary keys are returned [RPSL only]\n"
"-V --verbose explain what is being done\n" "-V --verbose explain what is being done\n"
" --help display this help and exit\n" " --help display this help and exit\n"
" --version output version information and exit\n" " --version output version information and exit\n"

View File

@ -3,7 +3,6 @@
# UPR means the TLD is managed by UPR, but I could not find any info # UPR means the TLD is managed by UPR, but I could not find any info
# #
# centralnic domains are currently not supported # centralnic domains are currently not supported
# http://www.iana.org/root-whois/xx.htm
.br.com whois.centralnic.net .br.com whois.centralnic.net
.cn.com whois.centralnic.net .cn.com whois.centralnic.net
.eu.com whois.centralnic.net .eu.com whois.centralnic.net
@ -262,6 +261,7 @@
.um whois.isi.edu # not checked .um whois.isi.edu # not checked
.fed.us whois.nic.gov .fed.us whois.nic.gov
.us whois.isi.edu .us whois.isi.edu
.com.uy WEB http://dns.antel.net.uy/clientes/consultar.htm
.uy WEB http://www.rau.edu.uy/rau/dom/reg.htm .uy WEB http://www.rau.edu.uy/rau/dom/reg.htm
#.uz # www.noc.uz (broken) #.uz # www.noc.uz (broken)
.va whois.ripe.net .va whois.ripe.net
@ -302,6 +302,8 @@
-cknic whois.nic.ck -cknic whois.nic.ck
-cz whois.nic.cz -cz whois.nic.cz
-kg whois.domain.kg -kg whois.domain.kg
-norid whois.norid.no
-rotld whois.rotld.ro -rotld whois.rotld.ro
-itnic whois.nic.it -itnic whois.nic.it
-frnic whois.nic.fr
-nicat whois.nic.at
-il whois.isoc.org.il

View File

@ -539,7 +539,7 @@ void usage(void)
"-v TYPE request verbose template for object of TYPE\n" "-v TYPE request verbose template for object of TYPE\n"
"-q [version|sources] query specified server info [RPSL only]\n" "-q [version|sources] query specified server info [RPSL only]\n"
"-d return DNS reverse delegation objects too [RPSL only]\n" "-d return DNS reverse delegation objects too [RPSL only]\n"
"-K only primary keys are returned [RPSL only\n" "-K only primary keys are returned [RPSL only]\n"
"-V --verbose explain what is being done\n" "-V --verbose explain what is being done\n"
" --help display this help and exit\n" " --help display this help and exit\n"
" --version output version information and exit\n" " --version output version information and exit\n"

33
whois.h
View File

@ -5,39 +5,6 @@
/* Do *NOT* change it if you don't know what you are doing! */ /* Do *NOT* change it if you don't know what you are doing! */
#define IDSTRING "Md4.5" #define IDSTRING "Md4.5"
/* system features */
#ifdef ENABLE_NLS
# ifndef NLS_CAT_NAME
# define NLS_CAT_NAME "whois"
# endif
# ifndef LOCALEDIR
# define LOCALEDIR "/usr/share/locale"
# endif
#endif
#ifdef HAVE_GETOPT_LONG
# define GETOPT_LONGISH(c, v, o, l, i) getopt_long(c, v, o, l, i)
#else
# define GETOPT_LONGISH(c, v, o, l, i) getopt(c, v, o)
#endif
/* NLS stuff */
#ifdef ENABLE_NLS
# include <libintl.h>
# include <locale.h>
# define _(a) (gettext (a))
# ifdef gettext_noop
# define N_(a) gettext_noop (a)
# else
# define N_(a) (a)
# endif
#else
# define _(a) (a)
# define N_(a) a
#endif
/* prototypes */ /* prototypes */
const char *whichwhois(const char *); const char *whichwhois(const char *);
const char *whereas(int, struct as_del []); const char *whereas(int, struct as_del []);