func GetCredential(credentialName string) (*CredentialInfo, error) {
	cblog.Info("call GetCredential()")
	if credentialName == "" {
		return nil, fmt.Errorf("CredentialName is empty!")
	}
	crdInfo, err := getInfo(credentialName)
	if err != nil {
		cblog.Error(err)
		return nil, err
	}
	return crdInfo, err
}
1. check params
2. get CredentialInfo from cb-store
package credentialinfomanager
import (
	"fmt"
	"strings"
	"github.com/cloud-barista/cb-store/config"
	icbs "github.com/cloud-barista/cb-store/interfaces"
	"github.com/sirupsen/logrus"
	"crypto/aes"
	"crypto/cipher"
	"crypto/rand"
	"encoding/base64"
	"io"
)
var cblog *logrus.Logger
func init() {
	cblog = config.Cblogger
}
type CredentialInfo struct {
	CredentialName   string           
	ProviderName     string           
	KeyValueInfoList []icbs.KeyValue  
}
func RegisterCredentialInfo(crdInfo CredentialInfo) (*CredentialInfo, error) {
	return RegisterCredential(crdInfo.CredentialName, crdInfo.ProviderName, crdInfo.KeyValueInfoList)
}
func RegisterCredential(credentialName string, providerName string, keyValueInfoList []icbs.KeyValue) (*CredentialInfo, error) {
	cblog.Info("call RegisterCredential()")
	cblog.Debug("check params")
	err := checkParams(credentialName, providerName, keyValueInfoList)
	if err != nil {
		return nil, err
	}
	providerName = strings.ToUpper(strings.Trim(providerName, " "))
	cblog.Debug("insert metainfo into store")
        err = encryptKeyValueList(keyValueInfoList)
        if err != nil {
                return &CredentialInfo{}, err
	}
	err = insertInfo(credentialName, providerName, keyValueInfoList)
	if err != nil {
		cblog.Error(err)
		return nil, err
	}
	crdInfo := &CredentialInfo{credentialName, providerName, keyValueInfoList}
	return crdInfo, nil
}
func ListCredential() ([]*CredentialInfo, error) {
	cblog.Info("call ListCredential()")
	credentialInfoList, err := listInfo()
	if err != nil {
		return nil, err
	}
	return credentialInfoList, nil
}