Esta es la solución más completa que te podemos compartir, sin embargo estúdiala pausadamente y valora si es compatible a tu proyecto.
Solución:
Desde GnuPG 2.2.6 hay un oculto key-editar el subcomando “cambio de uso” que hace exactamente eso. Compromiso relevante.
Probemos este subcomando con una prueba key. Vamos a crear uno primero:
mkdir /tmp/gpg-change-usage
chmod 700 /tmp/gpg-change-usage
gpg --homedir /tmp/gpg-change-usage --quick-generate-key [email protected] rsa4096 cert 1d
Ahora observe que este nuevo key es una certificación solo primaria key.
$ gpg --homedir /tmp/gpg-change-usage -k
/tmp/gpg-change-usage/pubring.kbx
---------------------------------
pub rsa4096 2019-04-04 [C] [expires: 2019-04-05]
987BE3D9CF90B1C912A165734EBF4D26A937DE4C
uid [ultimate] [email protected]
Cambiar el uso es tan simple como esto:
$ gpg --homedir /tmp/gpg-change-usage --edit-key [email protected]
gpg (GnuPG) 2.2.12; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Secret key is available.
sec rsa4096/4EBF4D26A937DE4C
created: 2019-04-04 expires: 2019-04-05 usage: C
trust: ultimate validity: ultimate
[ultimate] (1). [email protected]
gpg> change-usage
Changing usage of the primary key.
Possible actions for a RSA key: Sign Certify Encrypt Authenticate
Current allowed actions: Certify
(S) Toggle the sign capability
(E) Toggle the encrypt capability
(A) Toggle the authenticate capability
(Q) Finished
Your selection? s
Possible actions for a RSA key: Sign Certify Encrypt Authenticate
Current allowed actions: Sign Certify
(S) Toggle the sign capability
(E) Toggle the encrypt capability
(A) Toggle the authenticate capability
(Q) Finished
Your selection? q
sec rsa4096/4EBF4D26A937DE4C
created: 2019-04-04 expires: 2019-04-05 usage: SC
trust: ultimate validity: ultimate
[ultimate] (1). [email protected]
gpg> save
Note ahora que nuestro key ganó capacidad de firma.
$ gpg --homedir /tmp/gpg-change-usage -k
/tmp/gpg-change-usage/pubring.kbx
---------------------------------
pub rsa4096 2019-04-04 [SC] [expires: 2019-04-05]
987BE3D9CF90B1C912A165734EBF4D26A937DE4C
uid [ultimate] [email protected]
¡Eso es todo!
Con el fin de agregar una nueva subclave con usos específicos, comience gpg2
con el --expert
cambiar. Entonces las opciones son
Please select what kind of key you want:
(3) DSA (sign only)
(4) RSA (sign only)
(5) Elgamal (encrypt only)
(6) RSA (encrypt only)
(7) DSA (set your own capabilities)
(8) RSA (set your own capabilities)
Your selection?
Donde los dos últimos métodos permiten alternar cada uno de S, E, A individualmente. C solo es posible para un primario keycuyo uso también puede configurar con gpg2 --expert --gen-key
. Sin embargo, no conozco ninguna forma de modificar el campo de uso en un momento posterior.
Ten en cuenta dar recomendación a esta división si lograste el éxito.