Ab Version 5.4 der SDK gibt es eine Funktion(worm_logTimeFormat) um das Zeitformat auszulesen!


Es gibt bis jetzt noch keine Funktion, um das Zeitformat aus der TSE auslesen zu können. Aber über die Information in der BSI TR-03153 kann man folgendes erkennen: 

Das vorletzte Feld ist immer die logTime. Und über den Tag kann man herausfinden, welches Format verwendet wird (0x17,0x18 oder 0x02). 

Die LogMessage ist als TLV aufgebaut. Das steht für Tag-Length-Value. Man braucht also nur einen TLV-Leser und muss sich das vorletzte Feld holen und den Tag kontrollieren. Aussehen kann das wie folgt (in C#. Es wurde das Nugget-Paket BerTlv.NET verwendet):


var tlvs = Tlv.ParseTlv(logMessage);

//Einen Schritt hinein
var innerTlvs = Tlv.ParseTlv(tlvs.ToList()[0].Value);

//Vorletztes Elemnt ist die Zeit, über Tag herausfinden welche Zeit
var time = innerTlvs.ToList()[innerTlvs.Count - 2];
if (time.Tag == 0x02) {
//unixTime
} else if (time.Tag == 0x17) {
//"utcTime"
} else if (time.Tag == 0x18) {
//"generalizedTime"
}