github.com/blend/go-sdk@v1.20220411.3/r2/opt_tls_client_cert.go (about) 1 /* 2 3 Copyright (c) 2022 - Present. Blend Labs, Inc. All rights reserved 4 Use of this source code is governed by a MIT license that can be found in the LICENSE file. 5 6 */ 7 8 package r2 9 10 import ( 11 "crypto/tls" 12 ) 13 14 // OptTLSClientCert adds a client cert and key to the request. 15 func OptTLSClientCert(cert, key []byte) Option { 16 return func(r *Request) error { 17 transport, err := EnsureHTTPTransport(r) 18 if err != nil { 19 return err 20 } 21 22 if transport.TLSClientConfig == nil { 23 transport.TLSClientConfig = &tls.Config{} 24 } 25 cert, err := tls.X509KeyPair(cert, key) 26 if err != nil { 27 return err 28 } 29 transport.TLSClientConfig.Certificates = append(transport.TLSClientConfig.Certificates, cert) 30 return nil 31 } 32 }