วิธีแปลงกุญแจสาธารณะเป็นสตริงโดยใช้ openSSL api

ฉันสามารถดึงเนื้อหากุญแจสาธารณะจากไฟล์ใบรับรองโดยใช้ openssl ได้โดยไปที่ลิงก์ http://fm4dd.com/openssl/certpubkey.htm

อย่างไรก็ตาม มันจะพิมพ์รหัสสาธารณะไปที่ stdout ฉันต้องการที่จะเก็บไว้ในสตริง มีวิธีนำมันไปไว้ในบัฟเฟอร์ถ่านหรือสตริงหรือไม่?

บรรทัด PEM_write_bio_PUBKEY(outbio, pkey) พิมพ์ไปที่ stdout

ค้นหาค่อนข้างมาก ไม่สามารถได้สิ่งที่ฉันต้องการ

ความช่วยเหลือใด ๆ จะได้รับการชื่นชมจะดีกว่าหากให้ตัวอย่างโค้ดเนื่องจากเวลาของฉันหมดลง

ขอบคุณล่วงหน้า.


person Abbas    schedule 16.11.2018    source แหล่งที่มา
comment
รหัสที่คุณลิงก์เพื่อตั้งค่า outbio ให้เป็น stdout ฉันเดาว่าคุณต้องสร้างเอาต์พุต BIO อื่นแทนใช่ไหม เช่น. BIO_s_mem   -  person Rup    schedule 16.11.2018
comment
ขอบคุณครับ ถ้าคุณสามารถให้รหัสเพื่อทำสิ่งนั้นได้ก็จะเป็นประโยชน์   -  person Abbas    schedule 16.11.2018


คำตอบ (1)


ในที่สุดฉันก็พบวิธีแก้ปัญหา! โครงสร้าง X509 เป็นสตริงที่มนุษย์สามารถอ่านได้

เพิ่งแทนที่ด้วย EVP_PKEY *key ในลายเซ็น X509_to_PEM() และใช้ PEM_write_bio_PUBKEY(bio, key) แทน PEM_write_bio_X509(bio, cert)

ทำงาน!

person Abbas    schedule 16.11.2018