Score:0

OpenSSL: วิธีแปลงคีย์ส่วนตัว ec (คีย์ดิบ 32 ไบต์) เป็นคีย์ส่วนตัวประเภท pem

ธง cn

ฉันมี 32 ไบต์ octet string ec คีย์ส่วนตัว

และฉันต้องการแปลงเป็นคีย์ส่วนตัวประเภท pem

ฉันใช้เส้นโค้ง secp256r1

ฉันจะทำอย่างนั้นได้อย่างไร

มีคำสั่งหรือวิธีการใดสำหรับสิ่งนั้น?

Maarten Bodewes avatar
in flag
ฉันไม่คิดว่าคุณสามารถทำได้ด้วยคำสั่งเดียวจากบรรทัดคำสั่ง คุณต้องตั้งโปรแกรม
Score:2
ธง cn

Meta: สิ่งนี้ไม่ได้เกี่ยวกับการเข้ารหัส แต่เป็นการใช้เครื่องมือสำหรับการประมวลผลข้อมูลที่เกี่ยวข้องกับการเข้ารหัสลับเพียงบางส่วนเท่านั้น แต่เนื่องจากไม่มีใครลงคะแนนให้ปิด (ที่ฉันเห็น) ฉันจะดำเนินการต่อ สามารถลบได้หากจำเป็น

ไม่ตรงนัก แต่มีตัวเลือกคำสั่งในการสร้างข้อมูล ASN.1 ตามอำเภอใจ ซึ่งสามารถปรับให้เข้ากับสิ่งนี้ได้ด้วยการทำงานเพียงเล็กน้อย หากคุณมีค่าส่วนตัวที่ต้องการใน 'ธรรมดา' hex: บน Unix (หากไม่ใช่ hex แล้ว) คุณสามารถแปลงด้วย xxd -p -c32 หรือ od -An -tx1 | tr -d ' \n' หรือคล้ายกัน บน Windows คุณจะเป็นตัวของตัวเอง กำหนดไฟล์ที่มีเนื้อหาต่อไปนี้ ยกเว้นการแทนที่ค่าส่วนตัวที่คุณต้องการ:

asn1=SEQ:pkcs8c
[pkcs8c]
เวอร์ชั่น=INT:0
algid=SEQ:algid
data=OCTWRAP,SEQ:sec1
[อัลจิด]
alg=OID:id-ecPublicKey
parm=OID:prime256v1
[วินาทีที่ 1]
เวอร์ชั่น=INT:1
privkey=FORMAT:HEX,OCT:0123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA9876543210

แล้ว openssl asn1parse -genconf ชื่อไฟล์ -noout [-out derfile] จะสร้างรูปแบบที่ชัดเจนของ PKCS8 ใน DER และต่อท้าย | opensl pkey - แจ้ง der จะแปลงเป็น PEM หรือบน Unix คุณสามารถแปลงเป็น PEM 'ด้วยตนเอง' ด้วย ... | { printf '%s\n' '-----BEGIN คีย์ส่วนตัว-----'; opensl base64; printf '%s\n' '----- สิ้นสุดคีย์ส่วนตัว-----'; }

อีกทางหนึ่งและในทางแฮ็ก การเข้ารหัส DER ของโครงสร้างที่อธิบายไว้ข้างต้นเป็นค่าคงที่ทั้งหมด ยกเว้นค่าไพรเวตที่เกิดขึ้นหลังสุด คุณจึงสามารถเชื่อมส่วนค่าคงที่เข้ากับค่าไพรเวตเพื่อรับ DER ที่เคลียร์ด้วย PKC8 แล้วแปลงเป็น PEM ดังกล่าวข้างต้น:

# บน Unix กำหนด 32 ไบต์เป็นไบนารีในไฟล์ rawfile:
printf '\x30\x41\x02\x01\x00\x30\x13\x06\x07\x2a\x86\x48\xce=\x02\x01\x06\x08\x2a\x86\x48\xce=\x03 \x01\x07\x04\x27\x30\x25\x02\x01\x01\x04\x20'; ไฟล์ raw ของแมว;
# สร้าง DER และใส่ใน { } หรือ ( ) และส่งผลลัพธ์ไปที่
# pkey -inform der หรือทางเลือกด้วยตนเองด้านบนแปลงเป็น PEM

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา