github.com/mundipagg/boleto-api@v0.0.0-20230620145841-3f9ec742599f/certificate/localStorage.go (about) 1 package certificate 2 3 import ( 4 "errors" 5 "sync" 6 7 "github.com/mundipagg/boleto-api/config" 8 ) 9 10 var localCertificateStorage = sync.Map{} 11 12 func SetCertificateOnStore(key string, value interface{}) { 13 localCertificateStorage.Store(key, value) 14 } 15 16 func GetCertificateFromStore(key string) (interface{}, error) { 17 if value, ok := localCertificateStorage.Load(key); ok { 18 return value, nil 19 } 20 return nil, errors.New("Certificate not found.") 21 } 22 23 func getPassWordToCertificate(from string, certType string) string { 24 if from == azureVaultEnv { 25 return "" 26 } else if from == fileServerEnv && certType == icp { 27 return config.Get().PswCertificateICP 28 } else if from == fileServerEnv && certType == ssl { 29 return config.Get().PswCertificateSSL 30 } 31 return "" 32 } 33 34 func loadCertificatesOnStorage(from string, certificateName string, pfxBytes []byte) error { 35 switch certificateName { 36 case config.Get().CertificateICPName: 37 var certificateICP, err = GetICPCertificate(certificateName, pfxBytes, getPassWordToCertificate(from, icp)) 38 if err != nil { 39 return err 40 } 41 SetCertificateOnStore(certificateName, certificateICP) 42 43 case config.Get().CertificateSSLName, config.Get().CitibankCertificateSSLName, config.Get().SantanderCertificateSSLName: 44 var certificateSSL, err = GetSSLCertificate(certificateName, pfxBytes, getPassWordToCertificate(from, ssl)) 45 if err != nil { 46 return err 47 } 48 SetCertificateOnStore(certificateName, certificateSSL) 49 50 default: 51 SetCertificateOnStore(certificateName, pfxBytes) 52 } 53 54 return nil 55 }