Você pode ter temporariamente /dev/random
pull de /dev/urandom
usando rng-tools
:
# rngd -v -f -r /dev/urandom
Mais informações aqui: link
Gostaria de automatizar a geração de pelo menos duas chaves GPG para fins de teste e demonstração em uma máquina virtual. Devido a esse contexto, quero garantir que a geração de chaves seja rápida, o ideal é não usar ou modificar /dev/*random
. Por exemplo, usar o relógio do sistema como a única fonte aleatória seria boa:
$ gpg --quick-gen-key 'alice' [options] --random-data $(date +%s)
$ sleep 2
$ gpg --quick-gen-key 'bob' [options] --random-data $(date +%s)
Não consegui encontrar nenhuma opção como esta. Há -quick-random
e --debug-quick-random
que não estão no man
página, parece ser suportado por gpg
, e simplesmente não funcionam. Estes comandos, por exemplo, duraram vários minutos antes de eu os matar:
$ gpg --batch --debug-quick-random --passphrase 'alice' --quick-gen-key '[email protected]'
$ gpg --batch -quick-random --passphrase 'alice' --quick-gen-key '[email protected]'
Usando gpg
(GnuPG) 2.1.2.
Você pode ter temporariamente /dev/random
pull de /dev/urandom
usando rng-tools
:
# rngd -v -f -r /dev/urandom
Mais informações aqui: link
Eu tinha exatamente o mesmo requisito ao escrever meu programa de configuração de smart cards . Durante os testes eu não me importaria com a entropia, e eu precisava gerar várias chaves GPG seguidas em cada teste.
Como descrevi na minha resposta aqui , o seguinte script ajudou-me a acelerar:
#!/usr/bin/env python
# For testing purposes only
# DO NOT USE THIS, THIS DOES NOT PROVIDE ENTROPY TO /dev/random, JUST BYTES
import fcntl
import time
import struct
RNDADDENTROPY=0x40085203
while True:
random = "3420348024823049823-984230942049832423l4j2l42j"
t = struct.pack("ii32s", 8, 32, random)
with open("/dev/random", mode='wb') as fp:
# as fp has a method fileno(), you can pass it to ioctl
res = fcntl.ioctl(fp, RNDADDENTROPY, t)
time.sleep(0.001)