2017-12-10 6 views
0

Nach http://asn1-playground.oss.com/ mit folgendem ASN.1-Schema,Wie kann ein ASN.1-Wert mit universellen Tags ausgedrückt werden, wenn er mit der BER-Codierungsregel codiert wird?

Test DEFINITIONS AUTOMATIC TAGS ::= 
BEGIN 
    A ::= SEQUENCE { 
     int INTEGER, 
     seq SEQUENCE { int INTEGER, bool BOOLEAN }, 
     u UTF8String 
    } 
END 

der folgende Wert (in dem ASN.1-Notation Wert Format)

a A ::= 
{ 
    int 1, 
    seq { int 2, bool TRUE }, 
    u "ABC" 
} 

wird in dem folgende 18 Bytes ausgedrückt BER unter Verwendung von Codierung Regel

30 10 
    80 01 01 
    A1 06 
     80 01 02 
     81 01 FF 
    82 03 414243 

which is parsed by CyberChef into the following ASN.1 tree

SEQUENCE 
    [0] 01 
    [1] 
    [0] 02 
    [1] FF 
    [2] 414243 

Es scheint also, dass der Wert mit Anwendungs-Tags ausgedrückt wird. Können Sie helfen, mit den universellen Tags in den folgenden 18 Bytes

30 10 
    02 01 01 
    30 06 
     02 01 02 
     01 01 FF 
    0C 03 414243  

which would give the following better ASN.1 tree when parsed by CyberChef

SEQUENCE 
    INTEGER 01..(total 1bytes)..01 
    SEQUENCE 
    INTEGER 02..(total 1bytes)..02 
    BOOLEAN TRUE 
    UNKNOWN(0C) 414243 

Vielen Dank für Ihre Bemühungen zu äußern, ob und wie könnte der Wert umgewandelt werden!

+0

Es scheint, dass der Wert mit universellen Tags ausgedrückt werden kann [wenn "AUTOMATIC" in "EXPLICIT" geändert wird] (https://stackoverflow.com/questions/18453894/confused- about-ber-Grundcodierungsregeln) – SOUser

Antwort

0

Es scheint, dass der Grund dafür ist, dass "AUTOMATIC TAGS" am Anfang des Moduls verwendet wird, um kontextspezifische Tags für Komponenten aller SEQUENCE-, SET- und CHOICE-Typen durchzusetzen. Der Wert kann mit universellen Tags ausgedrückt werden if "AUTOMATIC" is changed to "EXPLICIT"

Verwandte Themen