--- 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();