วิธีสร้างคีย์ด้วย RSA และ aes-256-gcm


1

ฉันต้องการสร้างคีย์ด้วย RSA และ AES 256 GCM แต่ฉันพบข้อผิดพลาดทุกครั้ง:

$ 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:

เมื่อฉันพยายามใช้aes-256-ctrฉันยังได้รับข้อผิดพลาด แต่แตกต่างกันเล็กน้อย:

$ 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:

OpenSSL 1.0.2g 1 Mar 2016รุ่น OpenSSL Max OS X 10.11

คำตอบ:


1

OpenSSL ไม่สนับสนุนสิ่งนั้น

จาก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.

จาก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.

คุณสามารถค้นหารายการ ciphers ที่คุณสามารถระบุได้ในส่วน "SUPPORTED CIPHERS" ของenc.html:

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


แล้วฉันจะทำอย่างไรดี มีห้องสมุดอื่นหรือไม่ โครงการของฉันมีข้อกำหนดในการใช้ aes-256-gcm เพื่อสร้างคีย์ที่จะใช้ในการเข้ารหัสข้อมูลบางส่วน ...
606521

1
ฉันคิดว่ามันขึ้นอยู่กับสิ่งที่คุณพยายามทำ คุณกำลังมองหายูทิลิตีแบบสแตนด์อโลนที่มีอยู่ซึ่งทำการเข้ารหัส AES-GCM หรือไม่? ฉันไม่รู้จักเลย หากคุณกำลังจะรวมไลบรารี crypto ในโครงการของคุณคุณสามารถใช้ OpenSSL สำหรับ AES-GCM โปรดทราบว่ารหัสที่คุณเลือกที่นี่ใช้เพื่อเข้ารหัสคีย์ส่วนตัวเท่านั้น (และฉันไม่เห็นเหตุผลที่น่าสนใจเป็นพิเศษสำหรับรหัสส่วนตัวที่จะเข้ารหัสโดยใช้ AES-GCM) มันไม่มีส่วนเกี่ยวข้องกับการเข้ารหัสชนิดใดที่คุณสามารถทำได้ด้วยกุญแจนี้กับข้อมูลอื่น ๆ
jjlin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.