src/lib/BasicASN1Reader.h
branchv_0
changeset 16 bb457bb5b515
parent 15 95ca127ba816
child 17 f5281ab3e68f
equal deleted inserted replaced
15:95ca127ba816 16:bb457bb5b515
   143 			handlers.writeNull();
   143 			handlers.writeNull();
   144 		} else if (typeHeader.tag == 1) {
   144 		} else if (typeHeader.tag == 1) {
   145 			bool value;
   145 			bool value;
   146 			read((uint8_t*) & value, 1);
   146 			read((uint8_t*) & value, 1);
   147 			handlers.writeBoolean(value);
   147 			handlers.writeBoolean(value);
       
   148 		} else if (typeHeader.tag == 12 && typeHeader.tagClass == TagClass::Universal) {
       
   149 			std::string s;
       
   150 			s.resize(typeHeader.length);
       
   151 			read((uint8_t*) s.data(), typeHeader.length);
       
   152 			handlers.writeString(ASN1ContentHandler::StringType::UTF8String, s);
       
   153 		} else if (typeHeader.tag == 19 && typeHeader.tagClass == TagClass::Universal) {
       
   154 			// TODO: check encoding
       
   155 			std::string s;
       
   156 			s.resize(typeHeader.length);
       
   157 			read((uint8_t*) s.data(), typeHeader.length);
       
   158 			handlers.writeString(ASN1ContentHandler::StringType::PrintableString, s);
   148 		} else {
   159 		} else {
   149 			// TODO: do not skip, parse
   160 			// TODO: do not skip, parse
   150 			std::vector<uint8_t> temp(typeHeader.length, 0);
   161 			std::vector<uint8_t> temp(typeHeader.length, 0);
   151 			read(temp.data(), typeHeader.length);
   162 			read(temp.data(), typeHeader.length);
   152 			// TODO: recover transaction?
   163 			// TODO: recover transaction?