Jak wygenerować klucz z RSA i aes-256-gcm?

1

Chcę wygenerować klucz z RSA i AES 256 GCM, ale za każdym razem otrzymuję następujący błąd:

$ openssl genpkey -out mkey.pem -aes-256-gcm -algorithm rsa
.........................++++++
..............++++++
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
Error writing key
140735190483024:error:0D0A7072:asn1 encoding routines:PKCS5_pbe2_set_iv:error setting cipher params:p5_pbev2.c:133:
140735190483024:error:2307D00D:PKCS12 routines:PKCS8_encrypt:ASN1 lib:p12_p8e.c:86:

Kiedy próbuję użyć aes-256-ctr Dostaję też błąd, ale nieco inny:

$ openssl genpkey -out mkey.pem -aes-256-ctr -algorithm rsa
.................++++++
.....++++++
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
Error writing key
140735190483024:error:0D0A706C:asn1 encoding routines:PKCS5_pbe2_set_iv:cipher has no object identifier:p5_pbev2.c:104:
140735190483024:error:2307D00D:PKCS12 routines:PKCS8_encrypt:ASN1 lib:p12_p8e.c:86:

Wersja OpenSSL OpenSSL 1.0.2g 1 Mar 2016. Mac OS X 10.11.

user606521
źródło

Odpowiedzi:

1

OpenSSL tego nie obsługuje.

Z https://www.openssl.org/docs/manmaster/apps/genpkey.html :

-cipher
    This option encrypts the private key with the supplied cipher. Any algorithm name
    accepted by EVP_get_cipherbyname() is acceptable such as des3.

Z https://www.openssl.org/docs/manmaster/apps/enc.html :

The enc program does not support authenticated encryption modes like CCM and GCM.
The utility does not store or retrieve the authentication tag.

Listę szyfrów można określić w sekcji „WSPIERANE CIPHERS” w sekcji enc.html:

https://www.openssl.org/docs/manmaster/apps/enc.html#SUPPORTED-CIPHERS

jjlin
źródło
Więc co mogę zrobić? Czy są inne biblioteki? Mój projekt wymaga użycia aes-256-gcm do wygenerowania kluczy, które będą używane do szyfrowania niektórych danych ...
user606521
1
Myślę, że to zależy od tego, co naprawdę próbujesz zrobić. Szukasz istniejącego samodzielnego narzędzia do szyfrowania AES-GCM? Nie jestem tego świadomy. Jeśli zamierzasz zintegrować bibliotekę kryptograficzną z projektem, możesz użyć OpenSSL dla AES-GCM. Zauważ, że wybrany tutaj szyfr jest używany tylko do szyfrowania klucza prywatnego (i nie widzę szczególnie ważnego powodu, aby klucz prywatny był szyfrowany za pomocą AES-GCM). Nie ma to nic wspólnego z tym, jakie szyfrowanie można wykonać za pomocą tego klucza na innych danych.
jjlin