Điểm:0

OpenSSL: Làm cách nào để chuyển đổi khóa riêng ec (khóa thô 32 byte) thành khóa riêng loại pem?

lá cờ cn

Tôi có khóa riêng ec chuỗi octet 32 ​​byte.

Và tôi muốn chuyển đổi nó thành khóa cá nhân loại pem.

Tôi sử dụng đường cong secp256r1.

Làm thế nào tôi có thể làm điều đó?

Có bất kỳ lệnh hoặc phương pháp cho điều đó?

Maarten Bodewes avatar
lá cờ in
Tôi không nghĩ bạn có thể làm điều này với một lệnh duy nhất từ ​​dòng lệnh, bạn phải lập trình nó.
Điểm:2
lá cờ cn

Meta: đây không thực sự là về mật mã, nhưng việc sử dụng một công cụ để xử lý dữ liệu chỉ liên quan một phần đến mật mã; nhưng vì không có ai bỏ phiếu để đóng (mà tôi có thể thấy) nên tôi sẽ tiếp tục. Điều này có thể bị xóa nếu cần thiết.

Không chính xác, nhưng có một tùy chọn lệnh để xây dựng dữ liệu ASN.1 tùy ý, có thể được điều chỉnh cho việc này với một chút công việc, nếu bạn có giá trị riêng mong muốn ở dạng hex 'đơn giản': trên Unix (nếu không đã hex) bạn có thể chuyển đổi với xxd -p -c32 hoặc od -An -tx1 | tr -d ' \n' hoặc tương tự, trên Windows, bạn chỉ có một mình. Đưa ra một tệp có nội dung sau ngoại trừ thay thế giá trị riêng tư mong muốn của bạn:

asn1=SEQ:pkcs8c
[pkcs8c]
phiên bản = INT: 0
algid=SEQ:algid
dữ liệu=OCTWRAP,SEQ:sec1
[algid]
alg=OID:id-ecPublicKey
parm=OID:prime256v1
[giây1]
phiên bản = INT: 1
khóa riêng=ĐỊNH DẠNG:HEX,OCT:0123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA9876543210

sau đó openssl asn1parse -genconf tên tệp -noout [-out derfile] sẽ tạo định dạng rõ ràng PKCS8 trong DER và nối thêm | openssl pkey -inform der sẽ chuyển đổi nó thành PEM. Hoặc trên Unix, bạn có thể chuyển đổi sang PEM 'thủ công' với ... | { printf '%s\n' '-----BEGIN KHÓA RIÊNG TƯ-----'; cơ sở mởssl64; printf '%s\n' '-----KẾT THÚC RIÊNG TƯ KẾT THÚC-----'; }

Ngoài ra, và nguy hiểm hơn, mã hóa DER của cấu trúc được mô tả ở trên hoàn toàn không đổi ngoại trừ giá trị riêng xuất hiện sau cùng, vì vậy bạn có thể chỉ cần nối phần không đổi với giá trị riêng để nhận DER rõ ràng PKC8, sau đó chuyển đổi thành PEM như trên:

# trên Unix, với 32 byte ở dạng nhị phân trong tệp 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'; tệp thô mèo;
# tạo DER và đặt nó vào { } hoặc ( ) và dẫn kết quả đến
# pkey -inform der hoặc giải pháp thay thế thủ công ở trên chuyển thành PEM

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.