Function parseVersion [src]

Prototype

pub fn parseVersion(bytes: []const u8, version_elem: der.Element) ParseVersionError!Version

Parameters

bytes: []const u8version_elem: der.Element

Possible Errors

CertificateFieldHasInvalidLength
UnsupportedCertificateVersion

Source

pub fn parseVersion(bytes: []const u8, version_elem: der.Element) ParseVersionError!Version { if (@as(u8, @bitCast(version_elem.identifier)) != 0xa0) return .v1; if (version_elem.slice.end - version_elem.slice.start != 3) return error.CertificateFieldHasInvalidLength; const encoded_version = bytes[version_elem.slice.start..version_elem.slice.end]; if (mem.eql(u8, encoded_version, "\x02\x01\x02")) { return .v3; } else if (mem.eql(u8, encoded_version, "\x02\x01\x01")) { return .v2; } else if (mem.eql(u8, encoded_version, "\x02\x01\x00")) { return .v1; } return error.UnsupportedCertificateVersion; }