Como forçar o gpg2 a usar a chave expirada?

8
$ gpg -ear XXXXXXX
gpg: XXXXXXXX: skipped: unusable public key

$ gpg --debug-ignore-expiration -ear XXXXXXXX
gpg: Invalid option "--debug-ignore-expiration"

Como criptografar? Não há atualizações para a chave disponível nos servidores de chaves. As mensagens devem ser vistas se o usuário ainda tiver a chave expirada ou não for visto.

Existe alguma opção --just-do-that-I-want que permitirá fazer isso sem alterar o código-fonte do GPG?

    
por Vi. 24.07.2010 / 03:08

2 respostas

6

Como @rob sugeriu nos comentários, libfaketime lida bem com isso:

$ gpg  -v -v -v --batch --trust-model always -ear D5B9D38C <<< "qweqe"
gpg: using character set 'utf-8'
gpg: Note: signature key 077EA269D5B9D38C expired Sun 09 Nov 2014 12:57:25 PM +03
gpg: D5B9D38C: skipped: Unusable public key
gpg: [stdin]: encryption failed: Unusable public key

$ faketime  '2012-12-24 08:15:42'  gpg  -v -v -v --batch --trust-model always -ear D5B9D38C <<< "qweqe"
gpg: using character set 'utf-8'
gpg: using subkey 85231B396B9569ED instead of primary key 077EA269D5B9D38C
gpg: No trust check due to '--trust-model always' option
gpg: reading from '[stdin]'
gpg: writing to stdout
gpg: RSA/AES256 encrypted for: "..."
-----BEGIN PGP MESSAGE-----
...

Resposta antiga:

  1. Iniciar UML (modo de usuário linux)
  2. Defina a data dentro da UML para um intervalo aceitável.
  3. Criptografar mensagem em UML
por 24.07.2010 / 03:09
2

Reinicialize o hardware e o relógio do sistema:

sudo hwclock --set --date "12/31/2017 23:59:59" && \
sudo hwclock --hctosys && \
gpg --sign-with $keyid --clearsign --armor < $file

Depois (espero que você tenha o NTP ativado) conserte o relógio do seu hardware com:

sudo hwclock --systohc
    
por 12.01.2018 / 00:56