Eu tenho uma licença com a qual estou assinando:
gpg --default-sig-expire "2024-02-14" --sign licence
Isto resulta em:
$ gpg --verify licence.gpg
gpg: Signature made Tue 13 Feb 2024 08:18:39 AM CET
gpg: using RSA key 1234567890ABCDEF1234567890ABCDEF
gpg: issuer "[email protected]"
gpg: Good signature from "Stewart <[email protected]>" [ultimate]
gpg: Signature expires Wed 14 Feb 2024 12:00:00 PM CET
Esse 12:00:00 PM CET
é o meu problema. Geralmente vou almoçar nesse horário. Prefiro não receber ligações sobre sistemas off-line enquanto estou almoçando. É possível especificar o horário? Prefiro que expire em 13:00:00 PM CET
.
--ask-sig-expire
solicita apenas o número de dias/semanas/anos:
$ gpg --ask-sig-expire --sign licence
Please specify how long the signature should be valid.
0 = signature does not expire
<n> = signature expires in n days
<n>w = signature expires in n weeks
<n>m = signature expires in n months
<n>y = signature expires in n years
Signature is valid for? (0)
ISO 8601 não parece compatível:
$ gpg --default-sig-expore "2024-02-14T13:00:00+02:00" --sign licence
gpg: '2024-02-14T13:00:00+02:00' is not a valid signature expiration
A man systemd.time
especificação não parece suportada
$ gpg --default-sig-expire "2024-02-14 13:00:00" --sign licence
gpg: '2024-02-14 13:00:00' is not a valid signature expiration
A página de manual também não sugere que um momento seja possível:
--default-sig-expire
The default expiration time to use for signature expiration. Valid values
are "0" for no expiration, a number followed by the letter d (for days),
w (for weeks), m (for months), or y (for years) (for example "2m" for two
months, or "5y" for five years), or an absolute date in the form
YYYY-MM-DD. Defaults to "0".
A única solução que encontrei foi alterar o fuso horário do meu sistema para o próximo fuso horário a oeste de mim, assinar e definir o fuso horário do meu sistema de volta ao meu horário original.
$ sudo mv /etc/localtime{,.backup}
$ sudo ln -s /usr/share/zoneinfo/Europe/London /etc/localtime
$ gpg --default-sig-expire "2024-02-14" --sign licence
$ sudo mv /etc/localtime{.backup,}
$ gpg --verify licence.gpg
gpg: Signature made Tue 13 Feb 2024 08:18:39 AM CET
gpg: using RSA key 1234567890ABCDEF1234567890ABCDEF
gpg: issuer "[email protected]"
gpg: Good signature from "Stewart <[email protected]>" [ultimate]
gpg: Signature expires Wed 14 Feb 2024 01:00:05 PM CET
O único formato aceito
--default-sig-expire
com especificação de tempo éYYYYMMddTHHmmss[Z]
:Qualquer especificador de fuso horário é ignorado e o horário de verão também é ignorado; portanto, atualmente na Europa, isso produz um prazo de validade uma hora depois do horário especificado. O tempo de processamento também afeta a expiração final da assinatura; por exemplo, se for
gpg
solicitado algo ( por exemplo, para confirmar a substituição de um arquivo assinado existente), o atraso incorrido adia a expiração.Para verificar isso, procure a
--default-sig-expire
definição e determine se o valor da opção é analisado usandoparse_expire_string
, que conhece vários formatos . O único que aceita um carimbo de data/hora absoluto, incluindo horas, minutos e segundos, é (e sua variante deisotime2epoch
64 bits ), com um comentário especificandotime_t