github.com/snowflakedb/gosnowflake@v1.9.0/priv_key_test_coding_helper.go (about) 1 // Copyright (c) 2017-2022 Snowflake Computing Inc. All rights reserved. 2 3 package gosnowflake 4 5 import ( 6 "crypto/rsa" 7 "crypto/x509" 8 ) 9 10 func parsePKCS8PrivateKey(block []byte) (*rsa.PrivateKey, error) { 11 privKey, err := x509.ParsePKCS8PrivateKey(block) 12 if err != nil { 13 return nil, &SnowflakeError{ 14 Number: ErrCodePrivateKeyParseError, 15 Message: "Error decoding private key using PKCS8.", 16 } 17 } 18 return privKey.(*rsa.PrivateKey), nil 19 } 20 21 func marshalPKCS8PrivateKey(key *rsa.PrivateKey) ([]byte, error) { 22 keyInBytes, err := x509.MarshalPKCS8PrivateKey(key) 23 if err != nil { 24 return nil, &SnowflakeError{ 25 Number: ErrCodePrivateKeyParseError, 26 Message: "Error encoding private key using PKCS8."} 27 } 28 return keyInBytes, nil 29 30 }