INNER CODE UNIT · Go

NewAttestionCertificate

go-piv/go-ykpiv · attestation.go:183

func NewAttestionCertificate(cert *x509.Certificate) (*AttestionCertificate, error) {
	aC := AttestionCertificate{Certificate: *cert}

	for _, extension := range aC.Extensions {
		switch {
		case extension.Id.Equal(oidFirmwareVersion):
			firmware := [3]byte{
				extension.Value[0],
				extension.Value[1],
				extension.Value[2],
			}
			aC.FirmwareVersion = &firmware
			break
		case extension.Id.Equal(oidSerialNumber):
			var serial int = 0
			if _, err := asn1.Unmarshal(extension.Value, &serial); err != nil {
				return nil, err
			}

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…