Ich möchte eine bestehende Datenstruktur in ASN.1 beschreiben, so dass ich eine geeignete Bibliothek verwenden kann, um die Transaktionen zu dekodieren/verschlüsseln/validieren, ohne alles von Grund auf neu schreiben zu müssen.ASN.1 Ausdruck SEQUENCE Größenbeschränkung
auch:
- Ich kann keine Datenstruktur ändern;
- Alle Felder sind ASCII-Zeichen;
- In der Definition der meisten Arrays (SEQUENCES) ist die Anzahl der Elemente, die gesendet werden, durch ein vorangestelltes Zähler Feld definiert.
sich das folgende vereinfachte Beispiel:
World-Schema DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
Test ::= SEQUENCE {
id IA5String (SIZE(5)),
nbData IA5String (SIZE(2)),
dataList ListOfData
}
ListOfData ::= SEQUENCE(SIZE(0..99)) OF DataPoint
DataPoint ::= SEQUENCE {
x IA5String (SIZE(2)),
y IA5String (SIZE(2))
}
END
Das Feld nbData
die Anzahl der Elemente dataPoint
schreibt vor, dass in dem Strom der übertragenen Daten vorhanden sind.
Neben der Tatsache, dass nbData
ist eigentlich ein Integer als String codiert, muss dies eine sehr häufige Art der Komprimierung übertragener Daten sein. Trotzdem bleibe ich bei dem Versuch, einen Weg zu finden, diese Struktur zu definieren.
Wie kann ich diese Einschränkung in ASN.1 ausdrücken?
Es ist nicht klar, was Sie erreichen möchten. Möchten Sie etwas wie 'dataList ListOfData (SIZE (nbData))' definieren? –
Ja, das ist was ich will. Aber der Compiler beschwert sich ('nbData' wird referenziert, ist aber nicht definiert). Daher dachte ich, dass nur konstante Werte in der SIZE-Einschränkung erlaubt sind – Farsee