Go에서 PKCS8 개인 키 마샬링
Go 1.5에는 PKCS8 개인 키를 마샬링하는 표준 기능이 없습니다. 그러나 대신 사용자 지정 솔루션을 활용할 수 있습니다.
PKCS8 키를 마샬링하기 위해 PKCS8 형식을 나타내는 사용자 지정 구조 pkcs8Key를 정의합니다. 여기에는 버전, 개인 키 알고리즘 및 실제 개인 키 바이트에 대한 필드가 포함됩니다.
RSA 키의 경우 rsa2pkcs8 함수를 사용하여 PKCS8 형식으로 변환합니다. 이 함수는 버전을 0으로 설정하고 적절한 개인 키 알고리즘 OID를 할당하며 PKCS1 형식의 개인 키를 마샬링합니다.
<code class="go">type pkcs8Key struct { Version int PrivateKeyAlgorithm []asn1.ObjectIdentifier PrivateKey []byte } func rsa2pkcs8(key *rsa.PrivateKey) ([]byte, error) { var pkey pkcs8Key pkey.Version = 0 pkey.PrivateKeyAlgorithm = make([]asn1.ObjectIdentifier, 1) pkey.PrivateKeyAlgorithm[0] = asn1.ObjectIdentifier{1, 2, 840, 113549, 1, 1, 1} pkey.PrivateKey = x509.MarshalPKCS1PrivateKey(key) return asn1.Marshal(pkey) }</code>
이 사용자 정의 솔루션을 사용하면 Go에 부족하더라도 PKCS8 개인 키를 프로그래밍 방식으로 마샬링할 수 있습니다. 이를 위한 공식 행사입니다.
위 내용은 Go 1.5에서 PKCS8 개인 키를 마샬링하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!