>  기사  >  백엔드 개발  >  Go 1.5에서 PKCS8 개인 키를 마샬링하는 방법은 무엇입니까?

Go 1.5에서 PKCS8 개인 키를 마샬링하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-30 03:02:02181검색

How to Marshal a PKCS8 Private Key in Go 1.5?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.