in spinnaker/spinnaker.go [67:87]
func getClient(pfxData []byte, password string) (*http.Client, error) {
blocks, err := pkcs12.ToPEM(pfxData, password)
if err != nil {
return nil, errors.Wrap(err, "pkcs.ToPEM failed")
}
// The first block is the cert and the last block is the private key
certPEMBlock := pem.EncodeToMemory(blocks[0])
keyPEMBlock := pem.EncodeToMemory(blocks[len(blocks)-1])
cert, err := tls.X509KeyPair(certPEMBlock, keyPEMBlock)
if err != nil {
return nil, errors.Wrap(err, "tls.X509KeyPair failed")
}
tlsConfig := &tls.Config{
Certificates: []tls.Certificate{cert},
}
transport := &http.Transport{TLSClientConfig: tlsConfig}
return &http.Client{Transport: transport}, nil
}