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  }