Function decodeDer [src]

Prototype

pub fn decodeDer(decoder: *der.Decoder) !BitString

Parameters

decoder: *der.Decoder

Source

pub fn decodeDer(decoder: *der.Decoder) !BitString { const ele = try decoder.element(asn1_tag.toExpected()); const bytes = decoder.view(ele); if (bytes.len < 1) return error.InvalidBitString; const padding = bytes[0]; if (padding >= 8) return error.InvalidBitString; const right_padding: u3 = @intCast(padding); // DER requires that unused bits be zero. if (@ctz(bytes[bytes.len - 1]) < right_padding) return error.InvalidBitString; return BitString{ .bytes = bytes[1..], .right_padding = right_padding }; }