Как быстро генерировать (небезопасные) ключи GPG?

Я хотел бы автоматизировать создание как минимум двух ключей GPG для тестирования и демонстрации на виртуальной машине. Из-за этого контекста я хочу убедиться, что генерация ключей выполняется быстро, в идеале не используется и не изменяется /dev/*random вообще. Например, использование системных часов в качестве единственного случайного источника будет прекрасным:

 $ gpg --quick-gen-key 'alice' [options] --random-data $(date +%s) $ sleep 2 $ gpg --quick-gen-key 'bob' [options] --random-data $(date +%s) 

Мне не удалось найти таких вариантов. Есть -quick-random и --debug-quick-random которые не находятся на странице man , похоже, поддерживаются gpg и просто не работают. Эти команды, например, выполнялись несколько минут, прежде чем я их убил:

 $ gpg --batch --debug-quick-random --passphrase 'alice' --quick-gen-key 'alice@example.org' $ gpg --batch -quick-random --passphrase 'alice' --quick-gen-key 'alice@example.org' 

Использование gpg (GnuPG) 2.1.2.

  • Шифрование автономного пароля IMAP
  • GPG не расшифровывает симметрично зашифрованный файл
  • gpg-agent вместо ssh-agent
  • Как получить штыри-проклятия, чтобы начать с правильного tty?
  • Feed GPG с ответами
  • RSA 2048 поколения ключей: через openssl 0.5s через gpg 30s, почему разница?
  • keychain не может добавить ключ gpg
  • Попытка проверить целостность файла с помощью GnuPG. «ПЛОХАЯ подпись» все время
  • 2 Solutions collect form web for “Как быстро генерировать (небезопасные) ключи GPG?”

    Вы можете временно использовать /dev/random pull из /dev/urandom с помощью rng-tools :

     # rngd -v -f -r /dev/urandom 

    Больше информации здесь: https://madebits.github.io/#blog/2014/2014-05-30-Making-dev-random-Temporary-Faster.md

    У меня было то же самое требование при написании моей программы настройки смарт-карты . Во время тестирования мне было бы безразлично энтропия, и мне нужно было бы генерировать несколько ключей GPG в каждой строке каждого теста.

    Как я описал в своем ответе здесь, следующий скрипт помог мне ускорить процесс:

     #!/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) 
    Linux и Unix - лучшая ОС в мире.