func BuildCAFromSecret()

in pkg/common/utils/certificate/secret.go [35:69]


func BuildCAFromSecret(s *corev1.Secret) *CA {
	if s.Data == nil {
		return nil
	}

	caBytes, ok := s.Data[TLsCertName]
	if !ok || len(caBytes) == 0 {
		klog.Infof("certificate buildCAFromSecret secret %s have not tls.crt.", s.Name)
		return nil
	}

	pkBytes, ok := s.Data[TlsKeyName]
	if !ok || len(pkBytes) == 0 {
		klog.Infof("certificate buildCAFromSecret secret %s have not tls.key.", s.Name)
		return nil
	}
	//suppose caBytes have one certificate
	cert, err := parsePemCert(caBytes)
	if err != nil {
		klog.Errorf("certificate buildCAFromSecret secret %s parse PemCert error %s.", s.Name, err.Error())
		return nil
	}
	pk, err := parsePrivateKey(pkBytes)
	if err != nil {
		klog.Errorf("certificate buildCAFromSecret secret %s parse privateKey error %s.", s.Name, err.Error())
		return nil
	}

	return &CA{
		Certificate: cert,
		cert:        pkBytes,
		PrivateKey:  pk,
		privateKey:  pkBytes,
	}
}