unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: Emanuel Berg via Users list for the GNU Emacs text editor <help-gnu-emacs@gnu.org>
To: help-gnu-emacs@gnu.org
Subject: Re: Noob dumb question (extending emacs)
Date: Sat, 23 Oct 2021 21:52:15 +0200	[thread overview]
Message-ID: <87h7d7wmc0.fsf@zoho.eu> (raw)
In-Reply-To: 87sfwry519.fsf@zoho.eu

>> It is *not* okay to offer a library for password generation
>> using a weak generator to other people without explaining
>> its entropy characteristics so that they could assess
>> their risk.
>
> But what is the method stipulated then, we'll just do
> a `random-passwd' with that ...

From pwgen on Debian 11:

/*
 * randnum.c -- generate (good) randum numbers.
 *
 * Copyright (C) 2001,2002 by Theodore Ts'o
 * 
 * This file may be distributed under the terms of the GNU Public
 * License.
 */

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>

#include "pwgen.h"

#ifdef HAVE_DRAND48
extern double drand48(void);
#endif

static int get_random_fd(void);

/* Borrowed/adapted from e2fsprogs's UUID generation code */
static int get_random_fd()
{
	struct timeval	tv;
	static int	fd = -2;

	if (fd == -2) {
		gettimeofday(&tv, 0);
		fd = open("/dev/urandom", O_RDONLY);
		if (fd == -1)
			fd = open("/dev/random", O_RDONLY | O_NONBLOCK);
	}
	return fd;
}

/*
 * Generate a random number n, where 0 <= n < max_num, using
 * /dev/urandom if possible.
 */
int pw_random_number(max_num)
	int max_num;
{
	unsigned int rand_num;
	int i, fd = get_random_fd();
	int lose_counter = 0, nbytes = sizeof(rand_num);
	char *cp = (char *) &rand_num;

	if (fd >= 0) {
		while (nbytes > 0) {
			i = read(fd, cp, nbytes);
			if ((i < 0) &&
			    ((errno == EINTR) || (errno == EAGAIN)))
				continue;
			if (i <= 0) {
				if (lose_counter++ == 8)
					break;
				continue;
			}
			nbytes -= i;
			cp += i;
			lose_counter = 0;
		}
	}
	if (nbytes == 0)
		return (rand_num % max_num);

	/* We weren't able to use /dev/random, fail hard */

	fprintf(stderr, "No entropy available!\n");
	exit(1);
}

-- 
underground experts united
https://dataswamp.org/~incal




  reply	other threads:[~2021-10-23 19:52 UTC|newest]

Thread overview: 127+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-19 22:12 Noob dumb question (extending emacs) Ivano Da Milano
2021-10-20  0:36 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-20  6:34   ` Marcin Borkowski
2021-10-20 18:13     ` H. Dieter Wilhelm
2021-10-20  6:53   ` Jean Louis
2021-10-20  8:23     ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-20 17:10   ` Ivano Da Milano
2021-10-20 18:41     ` Tassilo Horn
2021-10-20 18:56     ` Ken Goldman
2021-10-20 19:01       ` Ivano Da Milano
2021-10-20 19:45     ` Jean Louis
2021-10-21  5:27       ` Ivano Da Milano
2021-10-21  7:40         ` H. Dieter Wilhelm
2021-10-21 15:46           ` Ivano Da Milano
2021-10-21 16:03             ` H. Dieter Wilhelm
2021-10-21 17:49               ` Ivano Da Milano
2021-10-21 18:51         ` Jean Louis
2021-10-21 20:02           ` H. Dieter Wilhelm
2021-10-21 22:58             ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-22  6:59               ` H. Dieter Wilhelm
2021-10-22 12:18                 ` Jean Louis
2021-10-22 12:56                   ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-22 13:14                     ` Yuri Khan
2021-10-22 17:51                       ` Jean Louis
2021-10-22 18:50                         ` Yuri Khan
2021-10-22 19:29                           ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-22 21:22                           ` Jean Louis
2021-10-23 18:08                             ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-24  7:10                               ` Jean Louis
2021-10-24  9:35                                 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-24 17:41                                   ` Jean Louis
2021-10-24 18:20                                     ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-25  5:47                                       ` Jean Louis
2021-10-25  9:40                                         ` Yuri Khan
2021-10-25 10:23                                           ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-25 12:41                                           ` Jean Louis
2021-10-25 19:22                                           ` Jean Louis
2021-10-25 19:46                                             ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-25 19:52                                               ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-25 19:56                                                 ` About randomity, entropy, random passwords - was " Jean Louis
2021-10-25 20:29                                                   ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-25 20:00                                               ` Jean Louis
2021-10-25 19:56                                             ` Yuri Khan
2021-10-25 20:24                                               ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-25 20:34                                                 ` Jean Louis
2021-10-25 20:29                                               ` About randomity, entropy, random passwords - was " Jean Louis
2021-10-28 20:39                                         ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-23  8:41                           ` Michael Heerdegen
2021-10-23 10:16                             ` Yuri Khan
2021-10-23 10:46                               ` Michael Heerdegen
2021-10-23 18:27                                 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-24  8:16                                   ` Michael Heerdegen
2021-10-28  2:24                                     ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-28 11:41                                       ` Michael Heerdegen
2021-10-28 12:07                                         ` tomas
2021-10-28 20:56                                         ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-28 22:54                                           ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-31 20:46                                             ` Michael Heerdegen
2021-11-01  2:09                                               ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-11-01 19:38                                                 ` Michael Heerdegen
2021-11-03  1:06                                                   ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-11-03 21:24                                                     ` Michael Heerdegen
2021-11-03 22:16                                                       ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-11-05 19:03                                                 ` Jean Louis
2021-11-05 21:50                                                   ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-31 20:42                                           ` Michael Heerdegen
2021-11-05 18:59                                       ` Jean Louis
2021-10-23 12:54                               ` Michael Heerdegen
2021-10-23 13:07                                 ` Yuri Khan
2021-10-23 18:41                                   ` ERC links to man pages (was: Re: Noob dumb question (extending emacs)) Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-24  7:08                                   ` Noob dumb question (extending emacs) Jean Louis
2021-10-24  8:57                                     ` Michael Heerdegen
2021-10-24 17:59                                       ` Jean Louis
2021-10-25  9:18                                         ` Michael Heerdegen
2021-10-25  9:33                                           ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-25 19:44                                             ` Jean Louis
2021-10-25 20:20                                               ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-25 20:33                                                 ` Jean Louis
2021-10-25 12:45                                           ` Jean Louis
2021-10-25 13:20                                             ` Michael Heerdegen
2021-10-25 19:54                                               ` About randomity, entropy, random passwords - was " Jean Louis
     [not found]                                               ` <YXcLIC+doASdNFll@protected.localdomain>
     [not found]                                                 ` <87cznryfnz.fsf@web.de>
2021-10-26 18:52                                                   ` Jean Louis
2021-10-23 18:22                               ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-23 19:52                                 ` Emanuel Berg via Users list for the GNU Emacs text editor [this message]
2021-10-24  6:43                               ` Jean Louis
2021-10-24  8:28                                 ` Michael Heerdegen
2021-10-24 18:03                                   ` Jean Louis
2021-10-24  9:31                                 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-24 18:09                                   ` Jean Louis
2021-10-24 18:30                                     ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-25  5:31                                       ` Jean Louis
2021-10-28  2:33                                         ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-11-05 19:09                                           ` Passwords -- " Jean Louis
2021-11-05 22:00                                             ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-23 18:17                             ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-24  8:42                               ` Michael Heerdegen
2021-10-22 18:55                         ` Yuri Khan
2021-10-22 19:30                           ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-22 21:31                           ` Jean Louis
2021-10-22 22:21                             ` H. Dieter Wilhelm
2021-10-23 10:46                             ` Yuri Khan
2021-10-23 18:13                               ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-24  7:48                                 ` Yuri Khan
2021-10-24  9:37                                   ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-24  6:45                               ` Jean Louis
2021-10-24  8:50                                 ` Michael Heerdegen
2021-10-24 17:20                                   ` Jean Louis
2021-10-24 18:17                                 ` Yuri Khan
2021-10-24 19:07                                   ` Jean Louis
2021-10-24 19:05                           ` Jean Louis
2021-10-25  0:12                             ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-25  3:54                               ` Jean Louis
2021-10-22 18:57                         ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-22 18:53                       ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-22 17:48                     ` Jean Louis
2021-10-22 19:26                       ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-21 19:45     ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-20  4:04 ` Ivano Da Milano
2021-10-20  5:46 ` H. Dieter Wilhelm
2021-10-20  5:58   ` Emanuel Berg via Users list for the GNU Emacs text editor
     [not found]   ` <CAPWV0kyjr0=FrkVkH+Wf573fddX3pM4iiEfkQJ6oe1J_pQuNPA@mail.gmail.com>
     [not found]     ` <86a6j3wo7y.fsf@duenenhof-wilhelm.de>
     [not found]       ` <CAPWV0kyogB+u0X4dUhpyEox6pih1MJkjE2e_OoqQoP81NZceHQ@mail.gmail.com>
2021-10-20 18:31         ` Fwd: " Ivano Da Milano
2021-10-20  6:50 ` Jean Louis
2021-10-20  8:20   ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-20 14:13     ` Jean Louis
2021-10-21 19:56       ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-23 10:51         ` Tassilo Horn
2021-10-23 18:36           ` Emanuel Berg via Users list for the GNU Emacs text editor

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87h7d7wmc0.fsf@zoho.eu \
    --to=help-gnu-emacs@gnu.org \
    --cc=moasenwood@zoho.eu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).