155 } else if (typeHeader.tag == 2 && typeHeader.tagClass == TagClass::Universal && typeHeader.definiteLength) { |
155 } else if (typeHeader.tag == 2 && typeHeader.tagClass == TagClass::Universal && typeHeader.definiteLength) { |
156 // TODO: check available bytes before allocating buffer |
156 // TODO: check available bytes before allocating buffer |
157 std::vector<uint8_t> value(typeHeader.length, 0x00); |
157 std::vector<uint8_t> value(typeHeader.length, 0x00); |
158 read(value.data(), typeHeader.length); |
158 read(value.data(), typeHeader.length); |
159 handlers.writeInteger(ASN1ContentHandler::Integer(value)); |
159 handlers.writeInteger(ASN1ContentHandler::Integer(value)); |
|
160 } else if (typeHeader.tag == 6 && typeHeader.tagClass == TagClass::Universal && typeHeader.definiteLength) { |
|
161 std::vector<uint8_t> value(typeHeader.length, 0x00); |
|
162 read(value.data(), typeHeader.length); |
|
163 handlers.writeOID({value}); |
160 } else if (typeHeader.tag == 12 && typeHeader.tagClass == TagClass::Universal && typeHeader.definiteLength) { |
164 } else if (typeHeader.tag == 12 && typeHeader.tagClass == TagClass::Universal && typeHeader.definiteLength) { |
161 // TODO: check available bytes before allocating buffer |
165 // TODO: check available bytes before allocating buffer |
162 std::string s; |
166 std::string s; |
163 s.resize(typeHeader.length); |
167 s.resize(typeHeader.length); |
164 read((uint8_t*) s.data(), typeHeader.length); |
168 read((uint8_t*) s.data(), typeHeader.length); |