dsfg3241 2018-03-31 11:05
浏览 55
已采纳

如何将* x 509.Certificate更改为字节数组

Hello i've got somthing like this to read from .p12 keystore

func read_keys()(interface{},*x509.Certificate) {
    b, err:= ioutil.ReadFile("mystore.p12")
    if err!=nil {
        fmt.Println(err)
        return nil,nil
    }
    password := "pass"
    privk, pKey , err := pkcs12.Decode(b,password)
    if err!=nil {
        fmt.Println(err)
    }
    return privk,pKey
}

now i need to change pKey to byte array for AES.cipher and i don't know how i've looking in pkcs12 and pem docs and tried some decode functions but it doesnt work. Is there any way to read this way AES secret key ? because this code will throw error that "there only RSA and ECDSA public keys supported" and i need AES secret key to be readed from keystore too.

Thanks in advance

  • 写回答

1条回答 默认 最新

  • duanchi6377 2018-03-31 11:20
    关注

    Please find below the code snippet

    derPubKey, err := x509.MarshalPKIXPublicKey(&pKey.PublicKey)
    
    if err != nil {
        //handle error here
    }
    
    pubBytes := pem.EncodeToMemory(&pem.Block{
        Type:  "RSA PUBLIC KEY",
        Bytes: derPubKey,
    })
    
    ioutil.WriteFile("key.pub", pubBytes, 0644)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?