UnionInternationalCheminsdeFer / UIC-barcode

implementation of the FCB barcode (IRS 90918-9)
Other
25 stars 8 forks source link

Exception while parsing "Muster-Tickets" (Muster 918-9 FV_SuperSparpreis.pdf) #12

Closed irrationalism closed 3 years ago

irrationalism commented 3 years ago

bahn.de has some tickets on it's website (Muster-Tickets nach UIC 918.9 (ZIP, 961.39KB)). At least one of them cannot be parsed with that library: Muster 918-9 FV_SuperSparpreis.pdf. I wrote a test for demonstration:

public class DecoderTest {
    @Test
    public void testDecoder() throws Exception {
        // bytes read from barcode
        byte[] ticket = new byte[]{35, 85, 84, 48, 50, 49, 48, 56, 48, 48, 48, 48, 48, 50, 120, 46, 47, 63, 63, 94, 63, 63, 51, 63, 41, 63, 63, 26, 63, 72, 63, 114, 32, 86, 63, 10, 63, 124, 63, 29, 57, 18, 110, 44, 98, 63, 79, 63, 27, 63, 82, 22, 63, 63, 80, 63, 63, 94, 63, 123, 63, 9, 63, 15, 63, 127, 63, 63, 14, 32, 63, 48, 49, 57, 57, 120, 63, 1, 63, 0, 67, 63, 85, 95, 70, 76, 69, 88, 49, 51, 48, 49, 56, 56, 98, 63, 0, 63, 63, 13, 63, 37, 63, 40, 21, 17, 8, 63, 5, 28, 63, 68, 100, 63, 102, 63, 35, 63, 10, 63, 0, 14, 63, 63, 63, 63, 63, 63, 63, 8, 63, 63, 63, 63, 1, 4, 68, 63, 1, 0, 34, 28, 63, 16, 63, 85, 63, 100, 54, 76, 56, 63, 35, 97, 63, 63, 94, 30, 93, 50, 63, 63, 63, 63, 63, 66, 107, 11, 115, 115, 67, 43, 75, 104, 82, 63, 43, 63, 63, 99, 75, 115, 59, 43, 113, 90, 63, 75, 9, 63, 1, 63, 65, 63, 66, 66, 33, 82, 18, 63, 82, 18, 63, 63, 122, 58, 63, 10, 17, 82, 90, 9, 82, 63, 49, 73, 82, 63, 10, 73, 82, 63, 82, 63, 98, 120, 8, 48, 1, 63, -54, 63, 48, 58, 63, 112, 3, 63, 7, 0, 20, 63, 2, 64, 64, 15, 83, 117, 112, 101, 114, 32, 83, 112, 97, 114, 112, 114, 101, 105, 115, 63, 30, 74, 3};

        // hex representation
        String hex = TestUtils.hexStringFromBytes(ticket);
        // -> 2355543032313038303030303032782E2F3F3F5E3F3F333F293F3F1A3F483F7220563F0A3F7C3F1D39126E2C623F4F3F1B3F52163F3F503F3F5E3F7B3F093F0F3F7F3F3F0E203F30313939783F013F00433F555F464C4558313330313838623F003F3F0D3F253F281511083F051C3F44643F663F233F0A3F000E3F3F3F3F3F3F3F083F3F3F3F0104443F0100221C3F103F553F64364C383F23613F3F5E1E5D323F3F3F3F3F426B0B7373432B4B68523F2B3F3F634B733B2B715A3F4B093F013F413F42422152123F52123F3F7A3A3F0A11525A09523F3149523F0A49523F523F62780830013FCA3F303A3F70033F0700143F0240400F5375706572205370617270726569733F1E4A03

        // try to decode
        Decoder decoder = new Decoder(ticket);
        Assert.assertNotNull(decoder);
    }
}

I get the following exception when the test gets executed:

For input string: "? C?"
java.lang.NumberFormatException: For input string: "? C?"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:580)
    at java.lang.Integer.parseInt(Integer.java:615)
    at org.uic.barcode.staticFrame.StaticFrame.decode(StaticFrame.java:496)
    at org.uic.barcode.Decoder.decode(Decoder.java:139)
    at org.uic.barcode.Decoder.<init>(Decoder.java:63)
    at org.uic.barcode.DecoderTest.testDecoder(DecoderTest.java:15)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    [....]

Here is more output:

Click to expand! 2021-03-26 16:07:03.366 21428-21552/xxx I/System.out: Decoding classOfT : org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData 2021-03-26 16:07:03.396 21428-21552/xxx I/System.out: decode SEQUENCE UicRailTicketData 2021-03-26 16:07:03.445 21428-21552/xxx I/System.out: with extension marker, extension absent 2021-03-26 16:07:03.451 21428-21552/xxx I/System.out: with optional field travelerDetail present 2021-03-26 16:07:03.457 21428-21552/xxx I/System.out: with optional field transportDocument present 2021-03-26 16:07:03.464 21428-21552/xxx I/System.out: with optional field controlDetail absent 2021-03-26 16:07:03.470 21428-21552/xxx I/System.out: with optional field extension absent 2021-03-26 16:07:03.474 21428-21552/xxx I/System.out: Field : issuingDetail 2021-03-26 16:07:03.481 21428-21552/xxx I/System.out: Decoding classOfT : org.uic.barcode.ticket.api.asn.omv1.IssuingData 2021-03-26 16:07:03.487 21428-21552/xxx I/System.out: decode SEQUENCE IssuingData 2021-03-26 16:07:03.586 21428-21552/xxx I/System.out: with extension marker, extension absent 2021-03-26 16:07:03.592 21428-21552/xxx I/System.out: with optional field securityProviderNum present 2021-03-26 16:07:03.598 21428-21552/xxx I/System.out: with optional field securityProviderIA5 absent 2021-03-26 16:07:03.604 21428-21552/xxx I/System.out: with optional field issuerNum present 2021-03-26 16:07:03.610 21428-21552/xxx I/System.out: with optional field issuerIA5 absent 2021-03-26 16:07:03.616 21428-21552/xxx I/System.out: with optional field issuingTime present 2021-03-26 16:07:03.622 21428-21552/xxx I/System.out: with optional field issuerName present 2021-03-26 16:07:03.628 21428-21552/xxx I/System.out: with optional field currency absent 2021-03-26 16:07:03.635 21428-21552/xxx I/System.out: with optional field currencyFract absent 2021-03-26 16:07:03.641 21428-21552/xxx I/System.out: with optional field issuerPNR present 2021-03-26 16:07:03.647 21428-21552/xxx I/System.out: with optional field extension absent 2021-03-26 16:07:03.653 21428-21552/xxx I/System.out: with optional field issuedOnTrainNum absent 2021-03-26 16:07:03.659 21428-21552/xxx I/System.out: with optional field issuedOnTrainIA5 absent 2021-03-26 16:07:03.665 21428-21552/xxx I/System.out: with optional field issuedOnLine absent 2021-03-26 16:07:03.671 21428-21552/xxx I/System.out: with optional field pointOfSale absent 2021-03-26 16:07:03.677 21428-21552/xxx I/System.out: Field : securityProviderNum 2021-03-26 16:07:03.700 21428-21552/xxx I/System.out: Decoding classOfT : java.lang.Long 2021-03-26 16:07:03.712 21428-21552/xxx I/System.out: Position: 2.4: INTEGER 2021-03-26 16:07:03.719 21428-21552/xxx I/System.out: Integer, range 1..32000 2021-03-26 16:07:03.728 21428-21552/xxx I/System.out: This int will require 15 bits, available 1388 2021-03-26 16:07:03.742 21428-21552/xxx I/System.out: bits decoded as 1079 plus lower bound 1 give 1080 2021-03-26 16:07:03.748 21428-21552/xxx I/System.out: decoded as 1080 2021-03-26 16:07:03.755 21428-21552/xxx I/System.out: Field : issuerNum 2021-03-26 16:07:03.763 21428-21552/xxx I/System.out: Decoding classOfT : java.lang.Long 2021-03-26 16:07:03.775 21428-21552/xxx I/System.out: Position: 4.3: INTEGER 2021-03-26 16:07:03.782 21428-21552/xxx I/System.out: Integer, range 1..32000 2021-03-26 16:07:03.790 21428-21552/xxx I/System.out: This int will require 15 bits, available 1373 2021-03-26 16:07:03.805 21428-21552/xxx I/System.out: bits decoded as 1079 plus lower bound 1 give 1080 2021-03-26 16:07:03.810 21428-21552/xxx I/System.out: decoded as 1080 2021-03-26 16:07:03.816 21428-21552/xxx I/System.out: Field : issuingYear 2021-03-26 16:07:03.825 21428-21552/xxx I/System.out: Decoding classOfT : java.lang.Long 2021-03-26 16:07:03.836 21428-21552/xxx I/System.out: Position: 6.2: INTEGER 2021-03-26 16:07:03.844 21428-21552/xxx I/System.out: Integer, range 2016..2269 2021-03-26 16:07:03.851 21428-21552/xxx I/System.out: This int will require 8 bits, available 1358 2021-03-26 16:07:03.865 21428-21552/xxx I/System.out: bits decoded as 4 plus lower bound 2016 give 2020 2021-03-26 16:07:03.870 21428-21552/xxx I/System.out: decoded as 2020 2021-03-26 16:07:03.875 21428-21552/xxx I/System.out: Field : issuingDay 2021-03-26 16:07:03.882 21428-21552/xxx I/System.out: Decoding classOfT : java.lang.Long 2021-03-26 16:07:03.894 21428-21552/xxx I/System.out: Position: 7.2: INTEGER 2021-03-26 16:07:03.901 21428-21552/xxx I/System.out: Integer, range 1..366 2021-03-26 16:07:03.909 21428-21552/xxx I/System.out: This int will require 9 bits, available 1350 2021-03-26 16:07:03.924 21428-21552/xxx I/System.out: bits decoded as 303 plus lower bound 1 give 304 2021-03-26 16:07:03.929 21428-21552/xxx I/System.out: decoded as 304 2021-03-26 16:07:03.934 21428-21552/xxx I/System.out: Field : issuingTime 2021-03-26 16:07:03.943 21428-21552/xxx I/System.out: Decoding classOfT : java.lang.Long 2021-03-26 16:07:03.954 21428-21552/xxx I/System.out: Position: 8.3: INTEGER 2021-03-26 16:07:03.961 21428-21552/xxx I/System.out: Integer, range 0..1440 2021-03-26 16:07:03.969 21428-21552/xxx I/System.out: This int will require 11 bits, available 1341 2021-03-26 16:07:03.984 21428-21552/xxx I/System.out: bits decoded as 650 plus lower bound 0 give 650 2021-03-26 16:07:03.989 21428-21552/xxx I/System.out: decoded as 650 2021-03-26 16:07:03.994 21428-21552/xxx I/System.out: Field : issuerName 2021-03-26 16:07:04.030 21428-21552/xxx I/System.out: Decoding classOfT : java.lang.String 2021-03-26 16:07:04.034 21428-21552/xxx I/System.out: decode String 2021-03-26 16:07:04.042 21428-21552/xxx I/System.out: This int will require 7 bits, available 1329 2021-03-26 16:07:04.056 21428-21552/xxx I/System.out: bits decoded as 5 plus lower bound 0 give 5 2021-03-26 16:07:04.060 21428-21552/xxx I/System.out: length determinant, decoded as 5 2021-03-26 16:07:04.072 21428-21552/xxx I/System.out: byte: < [false, true, false, false, false, true, false, false, false, true, false, false, false, false, true, false, false, false, true, false, false, false, false, false, false, true, false, false, false, false, false, true, false, true, false, false, false, true, true, true] > 2021-03-26 16:07:04.081 21428-21552/xxx I/System.out: Padding bits (0): <> 2021-03-26 16:07:04.085 21428-21552/xxx I/System.out: Content bytes (hex): 4442204147 2021-03-26 16:07:04.095 21428-21552/xxx I/System.out: Decoded as DB AG 2021-03-26 16:07:04.100 21428-21552/xxx I/System.out: Field : specimen 2021-03-26 16:07:04.107 21428-21552/xxx I/System.out: Decoding classOfT : java.lang.Boolean 2021-03-26 16:07:04.112 21428-21552/xxx I/System.out: BOOL: decoded as false 2021-03-26 16:07:04.116 21428-21552/xxx I/System.out: Field : securePaperTicket 2021-03-26 16:07:04.123 21428-21552/xxx I/System.out: Decoding classOfT : java.lang.Boolean 2021-03-26 16:07:04.128 21428-21552/xxx I/System.out: BOOL: decoded as false 2021-03-26 16:07:04.132 21428-21552/xxx I/System.out: Field : activated 2021-03-26 16:07:04.139 21428-21552/xxx I/System.out: Decoding classOfT : java.lang.Boolean 2021-03-26 16:07:04.144 21428-21552/xxx I/System.out: BOOL: decoded as true 2021-03-26 16:07:04.175 21428-21552/xxx I/System.out: Retrieve default for element : currency 2021-03-26 16:07:04.201 21428-21552/xxx I/System.out: Retrieve default for element : currencyFract 2021-03-26 16:07:04.210 21428-21552/xxx I/System.out: Field : issuerPNR 2021-03-26 16:07:04.218 21428-21552/xxx I/System.out: Decoding classOfT : java.lang.String 2021-03-26 16:07:04.220 21428-21552/xxx I/System.out: decode String 2021-03-26 16:07:04.229 21428-21552/xxx I/System.out: This int will require 7 bits, available 1278 2021-03-26 16:07:04.242 21428-21552/xxx I/System.out: bits decoded as 8 plus lower bound 0 give 8 2021-03-26 16:07:04.246 21428-21552/xxx I/System.out: length determinant, decoded as 8 2021-03-26 16:07:04.251 21428-21552/xxx I/System.out: known-multiplier string, numchars: 8 2021-03-26 16:07:04.260 21428-21552/xxx I/System.out: This int will require 7 bits, available 1271 2021-03-26 16:07:04.273 21428-21552/xxx I/System.out: bits decoded as 68 plus lower bound 0 give 68 2021-03-26 16:07:04.283 21428-21552/xxx I/System.out: This int will require 7 bits, available 1264 2021-03-26 16:07:04.296 21428-21552/xxx I/System.out: bits decoded as 50 plus lower bound 0 give 50 2021-03-26 16:07:04.306 21428-21552/xxx I/System.out: This int will require 7 bits, available 1257 2021-03-26 16:07:04.319 21428-21552/xxx I/System.out: bits decoded as 54 plus lower bound 0 give 54 2021-03-26 16:07:04.329 21428-21552/xxx I/System.out: This int will require 7 bits, available 1250 2021-03-26 16:07:04.342 21428-21552/xxx I/System.out: bits decoded as 48 plus lower bound 0 give 48 2021-03-26 16:07:04.352 21428-21552/xxx I/System.out: This int will require 7 bits, available 1243 2021-03-26 16:07:04.365 21428-21552/xxx I/System.out: bits decoded as 86 plus lower bound 0 give 86 2021-03-26 16:07:04.375 21428-21552/xxx I/System.out: This int will require 7 bits, available 1236 2021-03-26 16:07:04.388 21428-21552/xxx I/System.out: bits decoded as 52 plus lower bound 0 give 52 2021-03-26 16:07:04.398 21428-21552/xxx I/System.out: This int will require 7 bits, available 1229 2021-03-26 16:07:04.412 21428-21552/xxx I/System.out: bits decoded as 56 plus lower bound 0 give 56 2021-03-26 16:07:04.422 21428-21552/xxx I/System.out: This int will require 7 bits, available 1222 2021-03-26 16:07:04.434 21428-21552/xxx I/System.out: bits decoded as 71 plus lower bound 0 give 71 2021-03-26 16:07:04.441 21428-21552/xxx I/System.out: Decoded as D260V48G 2021-03-26 16:07:04.454 21428-21552/xxx I/System.out: Field : travelerDetail 2021-03-26 16:07:04.461 21428-21552/xxx I/System.out: Decoding classOfT : org.uic.barcode.ticket.api.asn.omv1.TravelerData 2021-03-26 16:07:04.467 21428-21552/xxx I/System.out: decode SEQUENCE TravelerData 2021-03-26 16:07:04.480 21428-21552/xxx I/System.out: with extension marker, extension absent 2021-03-26 16:07:04.487 21428-21552/xxx I/System.out: with optional field traveler present 2021-03-26 16:07:04.493 21428-21552/xxx I/System.out: with optional field preferedLanguage absent 2021-03-26 16:07:04.498 21428-21552/xxx I/System.out: with optional field groupName absent 2021-03-26 16:07:04.504 21428-21552/xxx I/System.out: Field : traveler 2021-03-26 16:07:04.511 21428-21552/xxx I/System.out: Decoding classOfT : org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType 2021-03-26 16:07:04.517 21428-21552/xxx I/System.out: SEQUENCE OF for class org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType 2021-03-26 16:07:04.525 21428-21552/xxx I/System.out: This int will require 7 bits, available 1210 2021-03-26 16:07:04.535 21428-21552/xxx I/System.out: bits decoded as 1 plus lower bound 0 give 1 2021-03-26 16:07:04.539 21428-21552/xxx I/System.out: length determinant, decoded as 1 2021-03-26 16:07:04.684 21428-21552/xxx I/System.out: Decoding classOfT : org.uic.barcode.ticket.api.asn.omv1.TravelerType 2021-03-26 16:07:04.690 21428-21552/xxx I/System.out: decode SEQUENCE TravelerType 2021-03-26 16:07:04.783 21428-21552/xxx I/System.out: with extension marker, extension absent 2021-03-26 16:07:04.789 21428-21552/xxx I/System.out: with optional field firstName present 2021-03-26 16:07:04.794 21428-21552/xxx I/System.out: with optional field secondName absent 2021-03-26 16:07:04.799 21428-21552/xxx I/System.out: with optional field lastName present 2021-03-26 16:07:04.803 21428-21552/xxx I/System.out: with optional field idCard absent 2021-03-26 16:07:04.809 21428-21552/xxx I/System.out: with optional field passportId absent 2021-03-26 16:07:04.814 21428-21552/xxx I/System.out: with optional field title absent 2021-03-26 16:07:04.819 21428-21552/xxx I/System.out: with optional field gender absent 2021-03-26 16:07:04.824 21428-21552/xxx I/System.out: with optional field customerIdIA5 absent 2021-03-26 16:07:04.829 21428-21552/xxx I/System.out: with optional field customerIdNum absent 2021-03-26 16:07:04.833 21428-21552/xxx I/System.out: with optional field yearOfBirth absent 2021-03-26 16:07:04.839 21428-21552/xxx I/System.out: with optional field dayOfBirth absent 2021-03-26 16:07:04.844 21428-21552/xxx I/System.out: with optional field passengerType absent 2021-03-26 16:07:04.849 21428-21552/xxx I/System.out: with optional field passengerWithReducedMobility absent 2021-03-26 16:07:04.854 21428-21552/xxx I/System.out: with optional field countryOfResidence absent 2021-03-26 16:07:04.859 21428-21552/xxx I/System.out: with optional field countryOfPassport absent 2021-03-26 16:07:04.864 21428-21552/xxx I/System.out: with optional field countryOfIdCard absent 2021-03-26 16:07:04.869 21428-21552/xxx I/System.out: with optional field status absent 2021-03-26 16:07:04.874 21428-21552/xxx I/System.out: Field : firstName 2021-03-26 16:07:04.881 21428-21552/xxx I/System.out: Decoding classOfT : java.lang.String 2021-03-26 16:07:04.883 21428-21552/xxx I/System.out: decode String 2021-03-26 16:07:04.891 21428-21552/xxx I/System.out: This int will require 7 bits, available 1184 2021-03-26 16:07:04.902 21428-21552/xxx I/System.out: bits decoded as 7 plus lower bound 0 give 7 2021-03-26 16:07:04.906 21428-21552/xxx I/System.out: length determinant, decoded as 7 2021-03-26 16:07:04.920 21428-21552/xxx I/System.out: byte: < [false, true, false, false, true, false, true, true, false, true, true, false, false, false, false, true, false, true, true, true, false, false, true, false, false, true, true, true, false, false, true, true, false, true, true, true, false, true, false, false, false, true, true, false, false, true, false, true, false, true, true, false, true, true, true, false] > 2021-03-26 16:07:04.928 21428-21552/xxx I/System.out: Padding bits (0): <> 2021-03-26 16:07:04.932 21428-21552/xxx I/System.out: Content bytes (hex): 4B61727374656E 2021-03-26 16:07:04.940 21428-21552/xxx I/System.out: Decoded as Karsten 2021-03-26 16:07:04.947 21428-21552/xxx I/System.out: Field : lastName 2021-03-26 16:07:04.955 21428-21552/xxx I/System.out: Decoding classOfT : java.lang.String 2021-03-26 16:07:04.957 21428-21552/xxx I/System.out: decode String 2021-03-26 16:07:04.965 21428-21552/xxx I/System.out: This int will require 7 bits, available 1120 2021-03-26 16:07:04.975 21428-21552/xxx I/System.out: bits decoded as 4 plus lower bound 0 give 4 2021-03-26 16:07:04.980 21428-21552/xxx I/System.out: length determinant, decoded as 4 2021-03-26 16:07:04.989 21428-21552/xxx I/System.out: byte: < [false, true, false, true, false, true, true, true, false, true, true, false, true, false, false, true, false, true, true, false, true, true, false, false, false, true, true, false, true, true, false, false] > 2021-03-26 16:07:04.997 21428-21552/xxx I/System.out: Padding bits (0): <> 2021-03-26 16:07:05.001 21428-21552/xxx I/System.out: Content bytes (hex): 57696C6C 2021-03-26 16:07:05.009 21428-21552/xxx I/System.out: Decoded as Will 2021-03-26 16:07:05.023 21428-21552/xxx I/System.out: Field : ticketHolder 2021-03-26 16:07:05.029 21428-21552/xxx I/System.out: Decoding classOfT : java.lang.Boolean 2021-03-26 16:07:05.033 21428-21552/xxx I/System.out: BOOL: decoded as true 2021-03-26 16:07:05.054 21428-21552/xxx I/System.out: Instantiating Sequence Of class org.uic.barcode.ticket.api.asn.omv1.TravelerType with [org.uic.barcode.ticket.api.asn.omv1.TravelerType@5951633] 2021-03-26 16:07:05.061 21428-21552/xxx I/System.out: Field : transportDocument 2021-03-26 16:07:05.068 21428-21552/xxx I/System.out: Decoding classOfT : org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData 2021-03-26 16:07:05.073 21428-21552/xxx I/System.out: SEQUENCE OF for class org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData 2021-03-26 16:07:05.080 21428-21552/xxx I/System.out: This int will require 7 bits, available 1079 2021-03-26 16:07:05.090 21428-21552/xxx I/System.out: bits decoded as 1 plus lower bound 0 give 1 2021-03-26 16:07:05.094 21428-21552/xxx I/System.out: length determinant, decoded as 1 2021-03-26 16:07:05.160 21428-21552/xxx I/System.out: Decoding classOfT : org.uic.barcode.ticket.api.asn.omv1.DocumentData 2021-03-26 16:07:05.166 21428-21552/xxx I/System.out: decode SEQUENCE DocumentData 2021-03-26 16:07:05.175 21428-21552/xxx I/System.out: with extension marker, extension absent 2021-03-26 16:07:05.180 21428-21552/xxx I/System.out: with optional field token absent 2021-03-26 16:07:05.185 21428-21552/xxx I/System.out: Field : ticket 2021-03-26 16:07:05.191 21428-21552/xxx I/System.out: Decoding classOfT : org.uic.barcode.ticket.api.asn.omv1.TicketDetailData 2021-03-26 16:07:05.212 21428-21552/xxx I/System.out: CHOICE: org.uic.barcode.ticket.api.asn.omv1.TicketDetailData 2021-03-26 16:07:05.258 21428-21552/xxx I/System.out: with extension marker 2021-03-26 16:07:05.260 21428-21552/xxx I/System.out: no extension present 2021-03-26 16:07:05.267 21428-21552/xxx I/System.out: This int will require 4 bits, available 1069 2021-03-26 16:07:05.277 21428-21552/xxx I/System.out: bits decoded as 2 plus lower bound 0 give 2 2021-03-26 16:07:05.281 21428-21552/xxx I/System.out: CHOICE: selected openTicket 2021-03-26 16:07:05.287 21428-21552/xxx I/System.out: Decoding classOfT : org.uic.barcode.ticket.api.asn.omv1.OpenTicketData 2021-03-26 16:07:05.293 21428-21552/xxx I/System.out: decode SEQUENCE OpenTicketData 2021-03-26 16:07:05.465 21428-21552/xxx I/System.out: with extension marker, extension absent 2021-03-26 16:07:05.470 21428-21552/xxx I/System.out: with optional field referenceNum absent 2021-03-26 16:07:05.476 21428-21552/xxx I/System.out: with optional field referenceIA5 present 2021-03-26 16:07:05.481 21428-21552/xxx I/System.out: with optional field productOwnerNum absent 2021-03-26 16:07:05.486 21428-21552/xxx I/System.out: with optional field productOwnerIA5 absent 2021-03-26 16:07:05.491 21428-21552/xxx I/System.out: with optional field productIdNum absent 2021-03-26 16:07:05.496 21428-21552/xxx I/System.out: with optional field productIdIA5 present 2021-03-26 16:07:05.501 21428-21552/xxx I/System.out: with optional field externalIssuerId absent 2021-03-26 16:07:05.506 21428-21552/xxx I/System.out: with optional field issuerAutorizationId absent 2021-03-26 16:07:05.511 21428-21552/xxx I/System.out: with optional field stationCodeTable present 2021-03-26 16:07:05.516 21428-21552/xxx I/System.out: with optional field fromStationNum present 2021-03-26 16:07:05.521 21428-21552/xxx I/System.out: with optional field fromStationIA5 absent 2021-03-26 16:07:05.526 21428-21552/xxx I/System.out: with optional field toStationNum present 2021-03-26 16:07:05.531 21428-21552/xxx I/System.out: with optional field toStationIA5 absent 2021-03-26 16:07:05.536 21428-21552/xxx I/System.out: with optional field fromStationNameUTF8 present 2021-03-26 16:07:05.541 21428-21552/xxx I/System.out: with optional field toStationNameUTF8 present 2021-03-26 16:07:05.546 21428-21552/xxx I/System.out: with optional field validRegionDesc present 2021-03-26 16:07:05.552 21428-21552/xxx I/System.out: with optional field validRegion present 2021-03-26 16:07:05.557 21428-21552/xxx I/System.out: with optional field returnDescription absent 2021-03-26 16:07:05.562 21428-21552/xxx I/System.out: with optional field validFromDay present 2021-03-26 16:07:05.567 21428-21552/xxx I/System.out: with optional field validFromTime present 2021-03-26 16:07:05.572 21428-21552/xxx I/System.out: with optional field validFromUTCOffset present 2021-03-26 16:07:05.577 21428-21552/xxx I/System.out: with optional field validUntilDay present 2021-03-26 16:07:05.582 21428-21552/xxx I/System.out: with optional field validUntilTime present 2021-03-26 16:07:05.587 21428-21552/xxx I/System.out: with optional field validUntilUTCOffset absent 2021-03-26 16:07:05.592 21428-21552/xxx I/System.out: with optional field activatedDay absent 2021-03-26 16:07:05.597 21428-21552/xxx I/System.out: with optional field classCode absent 2021-03-26 16:07:05.602 21428-21552/xxx I/System.out: with optional field serviceLevel absent 2021-03-26 16:07:05.607 21428-21552/xxx I/System.out: with optional field carrierNum absent 2021-03-26 16:07:05.612 21428-21552/xxx I/System.out: with optional field carrierIA5 absent 2021-03-26 16:07:05.617 21428-21552/xxx I/System.out: with optional field includedServiceBrands absent 2021-03-26 16:07:05.621 21428-21552/xxx I/System.out: with optional field excludedServiceBrands absent 2021-03-26 16:07:05.626 21428-21552/xxx I/System.out: with optional field tariffs present 2021-03-26 16:07:05.631 21428-21552/xxx I/System.out: with optional field price absent 2021-03-26 16:07:05.635 21428-21552/xxx I/System.out: with optional field vatDetails absent 2021-03-26 16:07:05.640 21428-21552/xxx I/System.out: with optional field infoText absent 2021-03-26 16:07:05.644 21428-21552/xxx I/System.out: with optional field includedAddOns absent 2021-03-26 16:07:05.649 21428-21552/xxx I/System.out: with optional field luggage absent 2021-03-26 16:07:05.653 21428-21552/xxx I/System.out: with optional field extension absent 2021-03-26 16:07:05.659 21428-21552/xxx I/System.out: Field : referenceIA5 2021-03-26 16:07:05.666 21428-21552/xxx I/System.out: Decoding classOfT : java.lang.String 2021-03-26 16:07:05.668 21428-21552/xxx I/System.out: decode String 2021-03-26 16:07:05.675 21428-21552/xxx I/System.out: This int will require 7 bits, available 1025 2021-03-26 16:07:05.685 21428-21552/xxx I/System.out: bits decoded as 8 plus lower bound 0 give 8 2021-03-26 16:07:05.690 21428-21552/xxx I/System.out: length determinant, decoded as 8 2021-03-26 16:07:05.694 21428-21552/xxx I/System.out: known-multiplier string, numchars: 8 2021-03-26 16:07:05.702 21428-21552/xxx I/System.out: This int will require 7 bits, available 1018 2021-03-26 16:07:05.713 21428-21552/xxx I/System.out: bits decoded as 67 plus lower bound 0 give 67 2021-03-26 16:07:05.722 21428-21552/xxx I/System.out: This int will require 7 bits, available 1011 2021-03-26 16:07:05.733 21428-21552/xxx I/System.out: bits decoded as 78 plus lower bound 0 give 78 2021-03-26 16:07:05.742 21428-21552/xxx I/System.out: This int will require 7 bits, available 1004 2021-03-26 16:07:05.753 21428-21552/xxx I/System.out: bits decoded as 48 plus lower bound 0 give 48 2021-03-26 16:07:05.762 21428-21552/xxx I/System.out: This int will require 7 bits, available 997 2021-03-26 16:07:05.773 21428-21552/xxx I/System.out: bits decoded as 67 plus lower bound 0 give 67 2021-03-26 16:07:05.782 21428-21552/xxx I/System.out: This int will require 7 bits, available 990 2021-03-26 16:07:05.793 21428-21552/xxx I/System.out: bits decoded as 84 plus lower bound 0 give 84 2021-03-26 16:07:05.802 21428-21552/xxx I/System.out: This int will require 7 bits, available 983 2021-03-26 16:07:05.813 21428-21552/xxx I/System.out: bits decoded as 85 plus lower bound 0 give 85 2021-03-26 16:07:05.822 21428-21552/xxx I/System.out: This int will require 7 bits, available 976 2021-03-26 16:07:05.833 21428-21552/xxx I/System.out: bits decoded as 77 plus lower bound 0 give 77 2021-03-26 16:07:05.842 21428-21552/xxx I/System.out: This int will require 7 bits, available 969 2021-03-26 16:07:05.852 21428-21552/xxx I/System.out: bits decoded as 89 plus lower bound 0 give 89 2021-03-26 16:07:05.858 21428-21552/xxx I/System.out: Decoded as CN0CTUMY 2021-03-26 16:07:05.865 21428-21552/xxx I/System.out: Field : productIdIA5 2021-03-26 16:07:05.871 21428-21552/xxx I/System.out: Decoding classOfT : java.lang.String 2021-03-26 16:07:05.874 21428-21552/xxx I/System.out: decode String 2021-03-26 16:07:05.881 21428-21552/xxx I/System.out: This int will require 7 bits, available 961 2021-03-26 16:07:05.892 21428-21552/xxx I/System.out: bits decoded as 13 plus lower bound 0 give 13 2021-03-26 16:07:05.897 21428-21552/xxx I/System.out: length determinant, decoded as 13 2021-03-26 16:07:05.901 21428-21552/xxx I/System.out: known-multiplier string, numchars: 13 2021-03-26 16:07:05.908 21428-21552/xxx I/System.out: This int will require 7 bits, available 954 2021-03-26 16:07:05.919 21428-21552/xxx I/System.out: bits decoded as 73 plus lower bound 0 give 73 2021-03-26 16:07:05.928 21428-21552/xxx I/System.out: This int will require 7 bits, available 947 2021-03-26 16:07:05.938 21428-21552/xxx I/System.out: bits decoded as 67 plus lower bound 0 give 67 2021-03-26 16:07:05.947 21428-21552/xxx I/System.out: This int will require 7 bits, available 940 2021-03-26 16:07:05.958 21428-21552/xxx I/System.out: bits decoded as 69 plus lower bound 0 give 69 2021-03-26 16:07:05.966 21428-21552/xxx I/System.out: This int will require 7 bits, available 933 2021-03-26 16:07:05.977 21428-21552/xxx I/System.out: bits decoded as 32 plus lower bound 0 give 32 2021-03-26 16:07:05.986 21428-21552/xxx I/System.out: This int will require 7 bits, available 926 2021-03-26 16:07:05.996 21428-21552/xxx I/System.out: bits decoded as 70 plus lower bound 0 give 70 2021-03-26 16:07:06.005 21428-21552/xxx I/System.out: This int will require 7 bits, available 919 2021-03-26 16:07:06.016 21428-21552/xxx I/System.out: bits decoded as 97 plus lower bound 0 give 97 2021-03-26 16:07:06.025 21428-21552/xxx I/System.out: This int will require 7 bits, available 912 2021-03-26 16:07:06.036 21428-21552/xxx I/System.out: bits decoded as 104 plus lower bound 0 give 104 2021-03-26 16:07:06.045 21428-21552/xxx I/System.out: This int will require 7 bits, available 905 2021-03-26 16:07:06.055 21428-21552/xxx I/System.out: bits decoded as 114 plus lower bound 0 give 114 2021-03-26 16:07:06.064 21428-21552/xxx I/System.out: This int will require 7 bits, available 898 2021-03-26 16:07:06.075 21428-21552/xxx I/System.out: bits decoded as 107 plus lower bound 0 give 107 2021-03-26 16:07:06.084 21428-21552/xxx I/System.out: This int will require 7 bits, available 891 2021-03-26 16:07:06.094 21428-21552/xxx I/System.out: bits decoded as 97 plus lower bound 0 give 97 2021-03-26 16:07:06.104 21428-21552/xxx I/System.out: This int will require 7 bits, available 884 2021-03-26 16:07:06.114 21428-21552/xxx I/System.out: bits decoded as 114 plus lower bound 0 give 114 2021-03-26 16:07:06.123 21428-21552/xxx I/System.out: This int will require 7 bits, available 877 2021-03-26 16:07:06.134 21428-21552/xxx I/System.out: bits decoded as 116 plus lower bound 0 give 116 2021-03-26 16:07:06.143 21428-21552/xxx I/System.out: This int will require 7 bits, available 870 2021-03-26 16:07:06.154 21428-21552/xxx I/System.out: bits decoded as 101 plus lower bound 0 give 101 2021-03-26 16:07:06.159 21428-21552/xxx I/System.out: Decoded as ICE Fahrkarte 2021-03-26 16:07:06.165 21428-21552/xxx I/System.out: Field : returnIncluded 2021-03-26 16:07:06.171 21428-21552/xxx I/System.out: Decoding classOfT : java.lang.Boolean 2021-03-26 16:07:06.175 21428-21552/xxx I/System.out: BOOL: decoded as false 2021-03-26 16:07:06.179 21428-21552/xxx I/System.out: Field : stationCodeTable 2021-03-26 16:07:06.185 21428-21552/xxx I/System.out: Decoding classOfT : org.uic.barcode.ticket.api.asn.omv1.CodeTableType 2021-03-26 16:07:06.187 21428-21552/xxx I/System.out: ENUM 2021-03-26 16:07:06.195 21428-21552/xxx I/System.out: This int will require 3 bits, available 862 2021-03-26 16:07:06.204 21428-21552/xxx I/System.out: bits decoded as 4 plus lower bound 0 give 4 2021-03-26 16:07:06.208 21428-21552/xxx I/System.out: Enum decoded as proprietaryIssuerStationCodeTable 2021-03-26 16:07:06.212 21428-21552/xxx I/System.out: Field : fromStationNum 2021-03-26 16:07:06.219 21428-21552/xxx I/System.out: Decoding classOfT : java.lang.Long 2021-03-26 16:07:06.228 21428-21552/xxx I/System.out: Position: 68.5: INTEGER 2021-03-26 16:07:06.234 21428-21552/xxx I/System.out: Integer, range 1..9999999 2021-03-26 16:07:06.241 21428-21552/xxx I/System.out: This int will require 24 bits, available 859 2021-03-26 16:07:06.255 21428-21552/xxx I/System.out: bits decoded as 8000243 plus lower bound 1 give 8000244 2021-03-26 16:07:06.260 21428-21552/xxx I/System.out: decoded as 8000244 2021-03-26 16:07:06.265 21428-21552/xxx I/System.out: Field : toStationNum 2021-03-26 16:07:06.272 21428-21552/xxx I/System.out: Decoding classOfT : java.lang.Long 2021-03-26 16:07:06.281 21428-21552/xxx I/System.out: Position: 71.5: INTEGER 2021-03-26 16:07:06.288 21428-21552/xxx I/System.out: Integer, range 1..9999999 2021-03-26 16:07:06.295 21428-21552/xxx I/System.out: This int will require 24 bits, available 835 2021-03-26 16:07:06.309 21428-21552/xxx I/System.out: bits decoded as 8000313 plus lower bound 1 give 8000314 2021-03-26 16:07:06.314 21428-21552/xxx I/System.out: decoded as 8000314 2021-03-26 16:07:06.319 21428-21552/xxx I/System.out: Field : fromStationNameUTF8 2021-03-26 16:07:06.326 21428-21552/xxx I/System.out: Decoding classOfT : java.lang.String 2021-03-26 16:07:06.328 21428-21552/xxx I/System.out: decode String 2021-03-26 16:07:06.335 21428-21552/xxx I/System.out: This int will require 7 bits, available 810 2021-03-26 16:07:06.344 21428-21552/xxx I/System.out: bits decoded as 8 plus lower bound 0 give 8 2021-03-26 16:07:06.348 21428-21552/xxx I/System.out: length determinant, decoded as 8 2021-03-26 16:07:06.363 21428-21552/xxx I/System.out: byte: < [false, true, false, false, true, true, false, true, false, true, true, false, false, false, false, true, false, true, true, false, true, true, true, false, false, true, true, false, true, true, true, false, false, true, true, false, true, false, false, false, false, true, true, false, false, true, false, true, false, true, true, false, true, false, false, true, false, true, true, false, true, true, false, true] > 2021-03-26 16:07:06.372 21428-21552/xxx I/System.out: Padding bits (0): <> 2021-03-26 16:07:06.376 21428-21552/xxx I/System.out: Content bytes (hex): 4D616E6E6865696D 2021-03-26 16:07:06.384 21428-21552/xxx I/System.out: Decoded as Mannheim 2021-03-26 16:07:06.388 21428-21552/xxx I/System.out: Field : toStationNameUTF8 2021-03-26 16:07:06.395 21428-21552/xxx I/System.out: Decoding classOfT : java.lang.String 2021-03-26 16:07:06.397 21428-21552/xxx I/System.out: decode String 2021-03-26 16:07:06.404 21428-21552/xxx I/System.out: This int will require 7 bits, available 738 2021-03-26 16:07:06.413 21428-21552/xxx I/System.out: bits decoded as 10 plus lower bound 0 give 10 2021-03-26 16:07:06.418 21428-21552/xxx I/System.out: length determinant, decoded as 10 2021-03-26 16:07:06.432 21428-21552/xxx I/System.out: byte: < [false, true, false, true, false, false, true, false, false, true, true, false, false, true, false, true, false, true, true, true, false, true, false, true, false, true, true, true, false, true, false, false, false, true, true, false, true, true, false, false, false, true, true, false, true, false, false, true, false, true, true, false, true, true, true, false, false, true, true, false, false, true, true, true, false, true, true, false, false, true, false, true, false, true, true, false, true, true, true, false] > 2021-03-26 16:07:06.441 21428-21552/xxx I/System.out: Padding bits (0): <> 2021-03-26 16:07:06.445 21428-21552/xxx I/System.out: Content bytes (hex): 526575746C696E67656E 2021-03-26 16:07:06.453 21428-21552/xxx I/System.out: Decoded as Reutlingen 2021-03-26 16:07:06.457 21428-21552/xxx I/System.out: Field : validRegionDesc 2021-03-26 16:07:06.464 21428-21552/xxx I/System.out: Decoding classOfT : java.lang.String 2021-03-26 16:07:06.466 21428-21552/xxx I/System.out: decode String 2021-03-26 16:07:06.473 21428-21552/xxx I/System.out: This int will require 7 bits, available 650 2021-03-26 16:07:06.483 21428-21552/xxx I/System.out: bits decoded as 43 plus lower bound 0 give 43 2021-03-26 16:07:06.487 21428-21552/xxx I/System.out: length determinant, decoded as 43 2021-03-26 16:07:06.537 21428-21552/xxx I/System.out: byte: < [false, true, false, true, false, true, true, false, false, true, true, false, true, false, false, true, false, true, true, false, false, false, false, true, false, false, true, true, true, false, true, false, false, false, true, false, false, false, false, false, false, false, true, true, true, true, false, false, false, false, true, true, false, false, false, true, false, false, true, true, false, false, false, false, false, false, true, true, true, false, false, false, false, false, true, true, false, false, false, false, false, false, true, true, true, true, true, false, false, false, true, false, true, false, false, false, false, true, false, false, true, false, false, false, false, true, false, false, false, true, false, false, false, false, true, false, true, false, true, false, false, true, false, false, false, false, true, false, false, true, false, true, false, false, true, false, false, false, true, false, true, false, true, false, false, true, false, false, false, false, true, false, false, true, false, true, false, false, true, false, false, true, false, true, false, true, false, false, false, false, true, false, true, true, true, true, false, true, false, false, false, true, true, true, false, true, false, true, false, false, true, false, false, true, false, false, false, false, false, true, false, true, false, false, false, false, true, false, false, false, true, false, true, false, true, false, false, true, false, false, true, false, true, true, false, true, false, false, false, false, false, true, false, false, true, false, true, false, true, false, false, true, false, true, false, false, false, false, false, true, false, false, false, true, true, false, false, false, true, false, true, false, false, true, false, false, true, false, true, false, true, false, false, true, false, true, false, true, true, false, false, true, false, false, false, false, false, true, false, true, false, false, true, false, false, true, false, false, true, false, true, false, true, false, false, true, false, true, false, false, true, true, false, false, true, false, true, false, true, false, false, true, false, true, false, false, false, false, false, true, false, false, true, true, false, false, false, true, false, false, true, true, true, true] > 2021-03-26 16:07:06.561 21428-21552/xxx I/System.out: Padding bits (0): <> 2021-03-26 16:07:06.566 21428-21552/xxx I/System.out: Content bytes (hex): 5669613A203C313038303E2848442A42522A4252542F475241422A4B412A5046292A5641492A532A504C4F 2021-03-26 16:07:06.574 21428-21552/xxx I/System.out: Decoded as Via: <1080>(HD*BR*BRT/GRAB*KA*PF)*VAI*S*PLO 2021-03-26 16:07:06.578 21428-21552/xxx I/System.out: Field : validRegion 2021-03-26 16:07:06.584 21428-21552/xxx I/System.out: Decoding classOfT : org.uic.barcode.ticket.api.asn.omv1.SequenceOfRegionalValidityType 2021-03-26 16:07:06.590 21428-21552/xxx I/System.out: SEQUENCE OF for class org.uic.barcode.ticket.api.asn.omv1.SequenceOfRegionalValidityType 2021-03-26 16:07:06.596 21428-21552/xxx I/System.out: This int will require 7 bits, available 298 2021-03-26 16:07:06.606 21428-21552/xxx I/System.out: bits decoded as 1 plus lower bound 0 give 1 2021-03-26 16:07:06.610 21428-21552/xxx I/System.out: length determinant, decoded as 1 2021-03-26 16:07:06.680 21428-21552/xxx I/System.out: Decoding classOfT : org.uic.barcode.ticket.api.asn.omv1.RegionalValidityType 2021-03-26 16:07:06.687 21428-21552/xxx I/System.out: CHOICE: org.uic.barcode.ticket.api.asn.omv1.RegionalValidityType 2021-03-26 16:07:06.698 21428-21552/xxx I/System.out: with extension marker 2021-03-26 16:07:06.700 21428-21552/xxx I/System.out: no extension present 2021-03-26 16:07:06.706 21428-21552/xxx I/System.out: This int will require 3 bits, available 290 2021-03-26 16:07:06.716 21428-21552/xxx I/System.out: bits decoded as 0 plus lower bound 0 give 0 2021-03-26 16:07:06.719 21428-21552/xxx I/System.out: CHOICE: selected trainLink 2021-03-26 16:07:06.726 21428-21552/xxx I/System.out: Decoding classOfT : org.uic.barcode.ticket.api.asn.omv1.TrainLinkType 2021-03-26 16:07:06.730 21428-21552/xxx I/System.out: decode SEQUENCE TrainLinkType 2021-03-26 16:07:06.766 21428-21552/xxx I/System.out: with optional field trainNum absent 2021-03-26 16:07:06.772 21428-21552/xxx I/System.out: with optional field trainIA5 present 2021-03-26 16:07:06.777 21428-21552/xxx I/System.out: with optional field travelDate present 2021-03-26 16:07:06.781 21428-21552/xxx I/System.out: with optional field departureTime absent 2021-03-26 16:07:06.785 21428-21552/xxx I/System.out: with optional field departureUTCOffset absent 2021-03-26 16:07:06.790 21428-21552/xxx I/System.out: with optional field fromStationNum absent 2021-03-26 16:07:06.794 21428-21552/xxx I/System.out: with optional field fromStationIA5 absent 2021-03-26 16:07:06.798 21428-21552/xxx I/System.out: with optional field toStationNum absent 2021-03-26 16:07:06.803 21428-21552/xxx I/System.out: with optional field toStationIA5 absent 2021-03-26 16:07:06.807 21428-21552/xxx I/System.out: with optional field fromStationName absent 2021-03-26 16:07:06.812 21428-21552/xxx I/System.out: with optional field toStationName absent 2021-03-26 16:07:06.816 21428-21552/xxx I/System.out: Field : trainIA5 2021-03-26 16:07:06.822 21428-21552/xxx I/System.out: Decoding classOfT : java.lang.String 2021-03-26 16:07:06.825 21428-21552/xxx I/System.out: decode String 2021-03-26 16:07:06.831 21428-21552/xxx I/System.out: This int will require 7 bits, available 275 2021-03-26 16:07:06.842 21428-21552/xxx I/System.out: bits decoded as 26 plus lower bound 0 give 26 2021-03-26 16:07:06.846 21428-21552/xxx I/System.out: length determinant, decoded as 26 2021-03-26 16:07:06.850 21428-21552/xxx I/System.out: known-multiplier string, numchars: 26 2021-03-26 16:07:06.856 21428-21552/xxx I/System.out: This int will require 7 bits, available 268 2021-03-26 16:07:06.866 21428-21552/xxx I/System.out: bits decoded as 38 plus lower bound 0 give 38 2021-03-26 16:07:06.876 21428-21552/xxx I/System.out: This int will require 7 bits, available 261 2021-03-26 16:07:06.886 21428-21552/xxx I/System.out: bits decoded as 14 plus lower bound 0 give 14 2021-03-26 16:07:06.895 21428-21552/xxx I/System.out: This int will require 7 bits, available 254 2021-03-26 16:07:06.906 21428-21552/xxx I/System.out: bits decoded as 21 plus lower bound 0 give 21 2021-03-26 16:07:06.915 21428-21552/xxx I/System.out: This int will require 7 bits, available 247 2021-03-26 16:07:06.925 21428-21552/xxx I/System.out: bits decoded as 101 plus lower bound 0 give 101 2021-03-26 16:07:06.934 21428-21552/xxx I/System.out: This int will require 7 bits, available 240 2021-03-26 16:07:06.944 21428-21552/xxx I/System.out: bits decoded as 93 plus lower bound 0 give 93 2021-03-26 16:07:06.954 21428-21552/xxx I/System.out: This int will require 7 bits, available 233 2021-03-26 16:07:06.964 21428-21552/xxx I/System.out: bits decoded as 76 plus lower bound 0 give 76 2021-03-26 16:07:06.973 21428-21552/xxx I/System.out: This int will require 7 bits, available 226 2021-03-26 16:07:06.983 21428-21552/xxx I/System.out: bits decoded as 7 plus lower bound 0 give 7 2021-03-26 16:07:06.992 21428-21552/xxx I/System.out: This int will require 7 bits, available 219 2021-03-26 16:07:07.001 21428-21552/xxx I/System.out: bits decoded as 44 plus lower bound 0 give 44 2021-03-26 16:07:07.010 21428-21552/xxx I/System.out: This int will require 7 bits, available 212 2021-03-26 16:07:07.020 21428-21552/xxx I/System.out: bits decoded as 115 plus lower bound 0 give 115 2021-03-26 16:07:07.029 21428-21552/xxx I/System.out: This int will require 7 bits, available 205 2021-03-26 16:07:07.038 21428-21552/xxx I/System.out: bits decoded as 64 plus lower bound 0 give 64 2021-03-26 16:07:07.047 21428-21552/xxx I/System.out: This int will require 7 bits, available 198 2021-03-26 16:07:07.056 21428-21552/xxx I/System.out: bits decoded as 7 plus lower bound 0 give 7 2021-03-26 16:07:07.065 21428-21552/xxx I/System.out: This int will require 7 bits, available 191 2021-03-26 16:07:07.074 21428-21552/xxx I/System.out: bits decoded as 0 plus lower bound 0 give 0 2021-03-26 16:07:07.083 21428-21552/xxx I/System.out: This int will require 7 bits, available 184 2021-03-26 16:07:07.092 21428-21552/xxx I/System.out: bits decoded as 3 plus lower bound 0 give 3 2021-03-26 16:07:07.101 21428-21552/xxx I/System.out: This int will require 7 bits, available 177 2021-03-26 16:07:07.110 21428-21552/xxx I/System.out: bits decoded as 64 plus lower bound 0 give 64 2021-03-26 16:07:07.119 21428-21552/xxx I/System.out: This int will require 7 bits, available 170 2021-03-26 16:07:07.128 21428-21552/xxx I/System.out: bits decoded as 2 plus lower bound 0 give 2 2021-03-26 16:07:07.137 21428-21552/xxx I/System.out: This int will require 7 bits, available 163 2021-03-26 16:07:07.147 21428-21552/xxx I/System.out: bits decoded as 75 plus lower bound 0 give 75 2021-03-26 16:07:07.155 21428-21552/xxx I/System.out: This int will require 7 bits, available 156 2021-03-26 16:07:07.165 21428-21552/xxx I/System.out: bits decoded as 0 plus lower bound 0 give 0 2021-03-26 16:07:07.173 21428-21552/xxx I/System.out: This int will require 7 bits, available 149 2021-03-26 16:07:07.183 21428-21552/xxx I/System.out: bits decoded as 9 plus lower bound 0 give 9 2021-03-26 16:07:07.191 21428-21552/xxx I/System.out: This int will require 7 bits, available 142 2021-03-26 16:07:07.201 21428-21552/xxx I/System.out: bits decoded as 0 plus lower bound 0 give 0 2021-03-26 16:07:07.209 21428-21552/xxx I/System.out: This int will require 7 bits, available 135 2021-03-26 16:07:07.219 21428-21552/xxx I/System.out: bits decoded as 64 plus lower bound 0 give 64 2021-03-26 16:07:07.227 21428-21552/xxx I/System.out: This int will require 7 bits, available 128 2021-03-26 16:07:07.236 21428-21552/xxx I/System.out: bits decoded as 7 plus lower bound 0 give 7 2021-03-26 16:07:07.245 21428-21552/xxx I/System.out: This int will require 7 bits, available 121 2021-03-26 16:07:07.255 21428-21552/xxx I/System.out: bits decoded as 84 plus lower bound 0 give 84 2021-03-26 16:07:07.263 21428-21552/xxx I/System.out: This int will require 7 bits, available 114 2021-03-26 16:07:07.273 21428-21552/xxx I/System.out: bits decoded as 110 plus lower bound 0 give 110 2021-03-26 16:07:07.281 21428-21552/xxx I/System.out: This int will require 7 bits, available 107 2021-03-26 16:07:07.291 21428-21552/xxx I/System.out: bits decoded as 87 plus lower bound 0 give 87 2021-03-26 16:07:07.299 21428-21552/xxx I/System.out: This int will require 7 bits, available 100 2021-03-26 16:07:07.308 21428-21552/xxx I/System.out: bits decoded as 3 plus lower bound 0 give 3 2021-03-26 16:07:07.316 21428-21552/xxx I/System.out: This int will require 7 bits, available 93 2021-03-26 16:07:07.325 21428-21552/xxx I/System.out: bits decoded as 21 plus lower bound 0 give 21 2021-03-26 16:07:07.331 21428-21552/xxx I/System.out: Decoded as &e]L,s@��@K�� ��@TnW 2021-03-26 16:07:07.336 21428-21552/xxx I/System.out: Field : travelDate 2021-03-26 16:07:07.342 21428-21552/xxx I/System.out: Decoding classOfT : java.lang.Long 2021-03-26 16:07:07.350 21428-21552/xxx I/System.out: Position: 165.2: INTEGER 2021-03-26 16:07:07.356 21428-21552/xxx I/System.out: Integer, range 0..370 2021-03-26 16:07:07.362 21428-21552/xxx I/System.out: This int will require 9 bits, available 86 2021-03-26 16:07:07.372 21428-21552/xxx I/System.out: bits decoded as 401 plus lower bound 0 give 401

Can you please take a look? Am I doing something wrong?

CGantert345 commented 3 years ago

it is an issue within the lib, the trainNum should be before the TrainIA5 element.

CGantert345 commented 3 years ago

after a closer look it seems to be an issue in the ticket data (order of trainNum / IAE in the TrainLink

irrationalism commented 3 years ago

So you are saying that Deutsche Bahn has published at least one invalid UIC 918-9 ticket on their official website?

CGantert345 commented 3 years ago

I’m still waiting for the confirmation. The issue will be discussed in the technical user board.

Von: irrationalism @.> Gesendet: Montag, 29. März 2021 17:00 An: UnionInternationalCheminsdeFer/UIC-barcode @.> Cc: Clemens Gantert @.>; Comment @.> Betreff: Re: [UnionInternationalCheminsdeFer/UIC-barcode] Exception while parsing "Muster-Tickets" (Muster 918-9 FV_SuperSparpreis.pdf) (#12)

So you are saying that Deutsche Bahn has published at least one invalid UIC 918-9 ticket on their official website?

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/UnionInternationalCheminsdeFer/UIC-barcode/issues/12#issuecomment-809451291, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ANS4YNOWZZJX6Y42JPCP2YDTGCPZLANCNFSM4Z3SI6RQ.


Pflichtangaben anzeigenhttp://www.deutschebahn.com/pflichtangaben/20210323

Nähere Informationen zur Datenverarbeitung im DB-Konzern finden Sie hier: http://www.deutschebahn.com/de/konzern/datenschutz

CGantert345 commented 3 years ago

The data seem to be corrupted whereever the data content is binary. Could there by an issue with the actec decoding to binary before calling the decoder?

irrationalism commented 3 years ago

Yes, it could be the case. Probably an encoding issue as well. I will analyze it a bit further.

Could you provide a correct representation of the barcode of the _Muster 918-9 FVSuperSparpreis.pdf ticket as a byte array which leads to a successful test execution? It would be very helpful to debug our deserialization process.

CGantert345 commented 3 years ago

The first error is due to a wrong aztec decoding. The second error is due to a wrong definition of optional elements in train link in the decoding lib. This one is fixed (still to be released as jar ( version 1.2.3). The ticket is now contained as unit test DecodeSparpreisTicketDBTest.

irrationalism commented 3 years ago

After updating the library I get the following error while validating against 108000002.pem (or any other certificates).

ERROR: java.security.SignatureException: invalid signature: out of range values
    at sun.security.provider.DSA.engineVerify(DSA.java:308)
    at sun.security.provider.DSA.engineVerify(DSA.java:251)
    at java.security.Signature$Delegate.engineVerify(Signature.java:1222)
    at java.security.Signature.verify(Signature.java:655)
    at org.uic.barcode.staticFrame.StaticFrame.verifyByAlgorithmOid(StaticFrame.java:675)
    at org.uic.barcode.Decoder.validateLevel1(Decoder.java:84)

Is that also tested for that ticket?

CGantert345 commented 3 years ago

I have just uploaded a successful test for the level1validation of theticket: SignatureValidationDBTicketTest.

The ticket uses the key with id 2 and DSA-SHA248: OID="2.16.840.1.101.3.4.3.2"

Best regards

Von: irrationalism @.> Gesendet: Mittwoch, 7. April 2021 17:47 An: UnionInternationalCheminsdeFer/UIC-barcode @.> Cc: Clemens Gantert @.>; State change @.> Betreff: Re: [UnionInternationalCheminsdeFer/UIC-barcode] Exception while parsing "Muster-Tickets" (Muster 918-9 FV_SuperSparpreis.pdf) (#12)

After updating the library I get the following error while validating against 108000002.pem (or any other certificates).

ERROR: java.security.SignatureException: invalid signature: out of range values

    at sun.security.provider.DSA.engineVerify(DSA.java:308)

    at sun.security.provider.DSA.engineVerify(DSA.java:251)

    at java.security.Signature$Delegate.engineVerify(Signature.java:1222)

    at java.security.Signature.verify(Signature.java:655)

    at org.uic.barcode.staticFrame.StaticFrame.verifyByAlgorithmOid(StaticFrame.java:675)

    at org.uic.barcode.Decoder.validateLevel1(Decoder.java:84)

Is that also tested for that ticket?

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHubhttps://github.com/UnionInternationalCheminsdeFer/UIC-barcode/issues/12#issuecomment-815021127, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ANS4YNITKZ5VEHUQ35AYUYTTHR46TANCNFSM4Z3SI6RQ.


Pflichtangaben anzeigenhttp://www.deutschebahn.com/pflichtangaben/20210406

Nähere Informationen zur Datenverarbeitung im DB-Konzern finden Sie hier: http://www.deutschebahn.com/de/konzern/datenschutz

irrationalism commented 3 years ago

Thank you! That helped solving the problem. I chose the wrong signing algorithm.

However, I just opened #21 because of the inconsistency of determining underlying algorithms.