aboutsummaryrefslogtreecommitdiffstats
path: root/library/go/certifi/utils.go
blob: 76d90e3f1f94183d8f479f5d3b95a5846acf7ffd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package certifi

import (
	"crypto/x509"
	"encoding/pem"
)

func certsFromPEM(pemCerts []byte) []*x509.Certificate {
	var result []*x509.Certificate
	for len(pemCerts) > 0 {
		var block *pem.Block
		block, pemCerts = pem.Decode(pemCerts)
		if block == nil {
			break
		}
		if block.Type != "CERTIFICATE" || len(block.Headers) != 0 {
			continue
		}

		cert, err := x509.ParseCertificate(block.Bytes)
		if err != nil {
			continue
		}

		result = append(result, cert)
	}

	return result
}