src/lib/GenericASN1ContentHandler.h
branchv_0
changeset 27 d9cc2d356cdb
parent 26 e39de9b8b3a1
child 31 a87c97aecbf6
--- a/src/lib/GenericASN1ContentHandler.h	Sun Jul 04 11:37:27 2021 +0200
+++ b/src/lib/GenericASN1ContentHandler.h	Sun Jul 04 11:51:13 2021 +0200
@@ -62,30 +62,30 @@
 		handlers.writeEndElement();
 	}
 
-	void writeBoolean(bool value) override {
+	void writeBoolean(const Header& header, bool value) override {
 		handlers.writeStartElement("boolean");
 		handlers.writeCharacters(value ? "true" : "false");
 		handlers.writeEndElement();
 	}
 
-	void writeNull() override {
+	void writeNull(const Header& header) override {
 		handlers.writeStartElement("null");
 		handlers.writeEndElement();
 	}
 
-	void writeInteger(Integer value) override {
+	void writeInteger(const Header& header, Integer value) override {
 		handlers.writeStartElement("integer",{"hex", value.toHex()});
 		handlers.writeCharacters(value.toString());
 		handlers.writeEndElement();
 	}
 
-	void writeTextString(StringType type, std::string value) override {
-		handlers.writeStartElement("text-string",{"type", std::to_string((uint64_t) type)}); // TODO: type name, better attributes
+	void writeTextString(const Header& header, std::string value) override {
+		handlers.writeStartElement("text-string",{"type", std::to_string(header.tag)}); // TODO: type name, better attributes
 		handlers.writeCharacters(value);
 		handlers.writeEndElement();
 	}
 
-	void writeOctetString(std::string value) override {
+	void writeOctetString(const Header& header, std::string value) override {
 		std::stringstream hex;
 		hex << std::hex << std::setfill('0');
 		for (uint8_t b : value) hex << std::setw(2) << (int) b;
@@ -94,7 +94,7 @@
 		handlers.writeEndElement();
 	}
 
-	void writeBitString(std::vector<bool> value) override {
+	void writeBitString(const Header& header, std::vector<bool> value) override {
 		std::stringstream bits;
 		for (bool b : value) bits << (int) b;
 		// for (bool b : value) bits << (b ? ':' : '.'); // TODO: configurable true/false symbols?
@@ -103,14 +103,14 @@
 		handlers.writeEndElement();
 	}
 
-	void writeOID(ObjectIdentifier value) override {
+	void writeOID(const Header& header, ObjectIdentifier value) override {
 		// TODO: optionally expand into separate elements with additional metadata
 		handlers.writeStartElement("oid");
 		handlers.writeCharacters(value.toString());
 		handlers.writeEndElement();
 	}
 
-	void writeDateTime(DateTimeType type, DateTime value) override {
+	void writeDateTime(const Header& header, DateTime value) override {
 		handlers.writeStartElement("date-time");
 		handlers.writeCharacters(value.toString());
 		handlers.writeEndElement();