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  }