leseSignaturKopf function
Zerlegt den Signaturkopf. null, wenn kein brauchbarer Zeitstempel oder gar
kein v1=-Anteil darin steht.
Implementation
SignaturKopf? leseSignaturKopf(String kopf) {
final teile = kopf.split(',').map((x) => x.trim()).toList(growable: false);
final tTeile = teile.where((x) => x.startsWith('t=')).toList(growable: false);
final v1 = teile.where((x) => x.startsWith('v1=')).map((x) => x.substring(3)).toList(growable: false);
if (tTeile.isEmpty || v1.isEmpty) return null;
final tTeil = tTeile.first;
final roh = tTeil.substring(2);
// Nur ganze Zahlen: `int.tryParse` liesse ' 12 ' und '+12' durch, und ein
// Zeitstempel ist keins von beidem.
if (!RegExp(r'^\d{1,15}$').hasMatch(roh)) return null;
final t = int.tryParse(roh);
return t == null ? null : SignaturKopf(t, v1);
}