ฉันคิดว่าคุณกำลังใช้โปรแกรมผิด pgpsm
จะใช้ในการเข้าสู่ระบบตรวจสอบเข้ารหัสหรือถอดรหัสโดยใช้ S / MIME โปรโตคอล
ฉันไม่มีpgp4win
ในมือ แต่ตามหน้า manนี้ควรส่งออกกุญแจสาธารณะและรหัสลับของคุณ:
gpg -o XXXXXXX_private.p12 --export [key id] --export-format pkcs12 --cert
ข้อมูลเกี่ยวpkcs12
กับต่อไปนี้
pkcs12
บล็อกไบนารีเท่านั้นที่ถูกส่งออก นามสกุลไฟล์เริ่มต้นคือ. p12; ต้องจับคู่คีย์ที่เซ็นชื่อ และอินพุตจะต้องตรงกับคีย์เดียว ในกรณีนี้จำเป็นต้องใช้ใบรับรอง -
ดังนั้นฉันจึงรวม--cert
ตัวเลือกโดยไม่คำนึงถึงตัวเลือกนั้น:
--cert
ตัวเลือกนี้เป็นชื่อยาวของผู้ออก X.509 หรือรหัสคีย์ 32- บิตหรือ 64- บิตหากมีคีย์การเซ็นชื่อ
ฉันทำการทดสอบเพิ่มเติม (ตอนนี้ใช้ gpg4win) และบางส่วนต้องโต้แย้งตัวเอง gpgsm
เครื่องมือใน gpg4win อธิบายตัวเองเป็น
gpgsm เป็นเครื่องมือที่คล้ายกับ gpg เพื่อให้บริการการเข้ารหัสดิจิตอลและการลงนามในใบรับรอง X.509 และโปรโตคอล CMS ส่วนใหญ่จะใช้เป็นแบ็กเอนด์สำหรับการประมวลผลจดหมาย S / MIME
ซึ่งเสียงที่ถูกต้องแน่นอน
ดังนั้นคำสั่งของคุณโพสต์ในคำถามดูเหมือนสมเหตุสมผลโดยสิ้นเชิงฉันมีเพียงสองปมเพิ่มเติม:
- คุณสามารถลองใช้เอาท์พุตหุ้มเกราะ ASCII ผ่านทาง
-a
ตัวเลือก
- และมีตัวเลือกเกี่ยวกับชุดอักขระของคีย์ที่ส่งออกซึ่งมักเป็นปัญหากับโปรแกรม windows (โดยเฉพาะรุ่นเก่า):
--p12-charset name
gpgsm ใช้การ เข้ารหัส UTF-8 เมื่อเข้ารหัสวลีรหัสผ่านสำหรับไฟล์ PKCS # 12 ตัวเลือกนี้อาจถูกใช้เพื่อบังคับให้ข้อความรหัสผ่านถูกเข้ารหัสในชื่อการเข้ารหัสที่ระบุ สิ่งนี้มีประโยชน์หากแอปพลิเคชันที่ใช้นำเข้าคีย์ใช้การเข้ารหัสที่แตกต่างกันดังนั้นจึงไม่สามารถนำเข้าไฟล์ที่สร้างโดย gpgsm
ค่าที่ใช้กันทั่วไปสำหรับชื่อเป็นLatin1และCP850 โปรดทราบว่า gpgsm เองนำเข้าไฟล์โดยอัตโนมัติด้วยข้อความรหัสผ่านที่เข้ารหัสไปยังการเข้ารหัสที่ใช้บ่อยที่สุด