Files
paralus/pkg/sentry/cryptoutil/cert.go
nirav-rafay c66bdc25cd restructure rcloud-base as a single base controller (#37)
* restructure rcloud-base as a single base controller
* updated master.rest
* moved sentry from internal to pkg as it is used by relay
* removing unused rpc and it's dependencies
* Fix usermgmt tests
* Don't redefine variables in rest file
Co-authored-by: Abin Simon <abin.simon@rafay.co>
2022-03-03 17:59:06 +05:30

38 lines
584 B
Go

package cryptoutil
import (
"crypto/x509"
"encoding/pem"
"errors"
)
const (
certType = "CERTIFICATE"
)
// EncodeCert encodes the DER encoded cert to PEM
func EncodeCert(cert []byte) []byte {
return pem.EncodeToMemory(&pem.Block{
Type: certType,
Bytes: cert,
})
}
// DecodeCert decodes PEM encoded cert
func DecodeCert(cert []byte) (c *x509.Certificate, err error) {
var p *pem.Block
p, err = decodePEM(cert)
if err != nil {
return
}
if p.Type != certType {
err = errors.New("invalid pem type")
return
}
c, err = x509.ParseCertificate(p.Bytes)
return
}