После небольшого дизеринга я заменил gnome-session
оболочкой:
$ cat /usr/local/bin/gnome-session
#! /bin/sh
/usr/lib/fingerprint-gui/fingerprint-polkit-agent -d &
exec /usr/bin/gnome-session "$@"
fingerprint-gui
] Агент Polkit, однако, ужасно уродлив:
openssl dgst -sha256 -hmac -hex-macopt hexkey :$ (cat mykey.txt)-out hmac.txt /bin/ps
-hmac
toma la clave como argumento(consulte el manual ), por lo que su comando solicita un HMAC usando la clave -hex
. hexkey:...
se toma como un nombre de archivo, ya que no comienza con un guión, y openssl
no toma opciones después de los nombres de archivo, por lo que el siguiente -out
también es un nombre de archivo.
Para obtener el HMAC con una clave dada como una cadena hexadecimal, deberá usar -mac hmac
y -macopt hexkey:<key>
. Tenga en cuenta que al usar -hmac <key>
y -mac hmac
juntos no funciona, y -macopt
requiere -mac hmac
.
Prueba:
openssl dgst -sha256 -hmac abc <<< "message"
openssl dgst -sha256 -hmac abc -macopt hexkey:12345678 <<< "message"
openssl dgst -sha256 -mac hmac -macopt hexkey:616263 <<< "message"
perl -MDigest::HMAC=hmac_hex -MDigest::SHA=sha256 \
-le 'print(hmac_hex("message\n", "abc", \&sha256))'
Todos dan el hash 99592e56fcde028fb41882668b0cbfa0119116f9cf111d285f5cedb000cfc45a
que concuerda con una calculadora HMAC aleatoria en línea para el mensaje message\n
, clave abc
o 616263
en hexadecimal. (Tenga en cuenta la nueva línea al final de message
aquí.)
Entonces, parece que probablemente querrás
openssl dgst -sha256 -mac hmac -macopt hexkey:$(cat mykey.txt) -out hmac.txt /bin/ps
Ya que estamos hablando de criptografía, que es difícil; y OpenSSL, que no siempre tiene las interfaces -a -más fáciles de usar, sugeriría verificar todo usted mismo, al menos dos veces, en lugar de confiar en mi palabra.