Hi Team,
I am new to DLMS and here I have to decrypt the frame which is coming from UDP channel(incoming message), I have decrypted the cipher text to hex with DLMS translator and the same I did using GXDLMSTranslator API. here the issue is the hex which is in response was commented. I have no idea why this is in commented section. is it the right API I am using to decrypt the frame which is coming from the device? or is there any other API which I can use which gives security accessors and decrypt the chipher text to hex. please guide me how to progress in this.
Hi Mikko, Thank you for your quick response. here is the below response which I am getting after decrypting the cipher text.. the hex which needs to be decrypted is in comments sections(OctetString Value). the question is why this hex is in comments section of DLMS translator.
<OctetString Value="1E0460FAB6452E0000000002070002010704000000FDAFFE83FE8E0260FA14900000073A000000001F35FFFD0000048060F8C3100000073A000000001F17FFFD000004003CFD180000073A1F35FFFDFFFCFFFD410000073A1F37FFFDFFFBFFFD410000073A1F3DFFFEFFFCFFFD410000073A1F40FFFEFFFDFFFD410000073A1F44FFFFFFFDFFFE410000073A1F47FFFEFFFDFFFE410000073A1F4DFFFEFFFDFFFD410000073A1F56FFFEFFFDFFFD410000073A1F5DFFFDFFFCFFFD410000073A1F62FFFEFFFCFFFD410000073A1F66FFFDFFFCFFFC410000073A1F68FFFEFFFCFFFD410000073A1F6DFFFEFFFCFFFD410000073A1F52FFFEFFFCFFFD410000073A1F32FFFEFFFDFFFE410000073A1F1EFFFEFFFDFFFE410000073A1EFEFFFFFFFDFFFD410000073A1EC6FFFEFFFDFFFE410000073A1E6EFFFEFFFDFFFE410000073A1EABFFFEFFFDFFFD410000073A1EEAFFFEFFFDFFFE410000073A1F2EFFFEFFFCFFFD410000073A1F25FFFEFFFDFFFD410000073A1F1CFFFDFFFDFFFD41" /> this is the raw hex
Hi Mikko, The first comment was cipher text after decrypting I should get proper hex packet as response.. but using DLMS translator the Deciphered packet is in comments as posted in earlier xml packet.
The XML parser tries to parse ciphered (encrypted) data and if it succeeds decrypted content is added as a commented content. If Comments are disabled commented content is not added.
The idea to add encrypted data to the comments is to make it easier to see what is actual data in XML.
If all data is fit to one frame you can use FindNextFrame method to get the data.
Something like this:
GXDLMSTranslator translator = new GXDLMSTranslator(TranslatorOutputType.SimpleXml);
GXByteBuffer data = new GXByteBuffer("Raw data");
GXByteBuffer pdu = new GXByteBuffer();
InterfaceType type = InterfaceType.HDLC;
translator.FindNextFrame(data, pdu, type);
Hi Rudresh,
Hi Rudresh,
Can you add your hex string here so I can check it?
BR,
Mikko
1E0460FAB6452E000000000207000
1E0460FAB6452E0000000002070002010704000000FDAFFE83FE8E0260FA14900000073A000000001F35FFFD0000048060F8C3100000073A000000001F17FFFD000004003CFD180000073A1F35FFFDFFFCFFFD410000073A1F37FFFDFFFBFFFD410000073A1F3DFFFEFFFCFFFD410000073A1F40FFFEFFFDFFFD410000073A1F44FFFFFFFDFFFE410000073A1F47FFFEFFFDFFFE410000073A1F4DFFFEFFFDFFFD410000073A1F56FFFEFFFDFFFD410000073A1F5DFFFDFFFCFFFD410000073A1F62FFFEFFFCFFFD410000073A1F66FFFDFFFCFFFC410000073A1F68FFFEFFFCFFFD410000073A1F6DFFFEFFFCFFFD410000073A1F52FFFEFFFCFFFD410000073A1F32FFFEFFFDFFFE410000073A1F1EFFFEFFFDFFFE410000073A1EFEFFFFFFFDFFFD410000073A1EC6FFFEFFFDFFFE410000073A1E6EFFFEFFFDFFFE410000073A1EABFFFEFFFDFFFD410000073A1EEAFFFEFFFDFFFE410000073A1F2EFFFEFFFCFFFD410000073A1F25FFFEFFFDFFFD410000073A1F1CFFFDFFFDFFFD41
Hi Rudresh,
Hi Rudresh,
I'm sorry to say, but this is not DLMS message. Check your ciphering key.
BR,
Mikko
Hi Mikko, Thank you for your
Hi Mikko, Thank you for your quick response. here is the below response which I am getting after decrypting the cipher text.. the hex which needs to be decrypted is in comments sections(OctetString Value). the question is why this hex is in comments section of DLMS translator.
<WRAPPER len="1B1" >
<TargetAddress Value="1" />
<SourceAddress Value="1" />
<PDU>
<!-- UNI/TS system title:
-->
<!-- Invocation Counter: 523 -->
<!-- Decrypt data: 0F 00 00 00 01 00 02 01 09 82 01 7F 1E 04 60 FA B6 45 2E 00 00 00 00 02 07 00 02 01 07 04 00 00 00 FD AF FE 83 FE 8E 02 60 FA 14 90 00 00 07 3A 00 00 00 00 1F 35 FF FD 00 00 04 80 60 F8 C3 10 00 00 07 3A 00 00 00 00 1F 17 FF FD 00 00 04 00 3C FD 18 00 00 07 3A 1F 35 FF FD FF FC FF FD 41 00 00 07 3A 1F 37 FF FD FF FB FF FD 41 00 00 07 3A 1F 3D FF FE FF FC FF FD 41 00 00 07 3A 1F 40 FF FE FF FD FF FD 41 00 00 07 3A 1F 44 FF FF FF FD FF FE 41 00 00 07 3A 1F 47 FF FE FF FD FF FE 41 00 00 07 3A 1F 4D FF FE FF FD FF FD 41 00 00 07 3A 1F 56 FF FE FF FD FF FD 41 00 00 07 3A 1F 5D FF FD FF FC FF FD 41 00 00 07 3A 1F 62 FF FE FF FC FF FD 41 00 00 07 3A 1F 66 FF FD FF FC FF FC 41 00 00 07 3A 1F 68 FF FE FF FC FF FD 41 00 00 07 3A 1F 6D FF FE FF FC FF FD 41 00 00 07 3A 1F 52 FF FE FF FC FF FD 41 00 00 07 3A 1F 32 FF FE FF FD FF FE 41 00 00 07 3A 1F 1E FF FE FF FD FF FE 41 00 00 07 3A 1E FE FF FF FF FD FF FD 41 00 00 07 3A 1E C6 FF FE FF FD FF FE 41 00 00 07 3A 1E 6E FF FE FF FD FF FE 41 00 00 07 3A 1E AB FF FE FF FD FF FD 41 00 00 07 3A 1E EA FF FE FF FD FF FE 41 00 00 07 3A 1F 2E FF FE FF FC FF FD 41 00 00 07 3A 1F 25 FF FE FF FD FF FD 41 00 00 07 3A 1F 1C FF FD FF FD FF FD 41
<DataNotification>
# Invoke ID: 1
<LongInvokeIdAndPriority Value="00000001" />
# 1/1/0001 12:00:00 AM
<DateTime Value="" />
<NotificationBody>
<DataValue>
<Structure Qty="01" >
<OctetString Value="1E0460FAB6452E0000000002070002010704000000FDAFFE83FE8E0260FA14900000073A000000001F35FFFD0000048060F8C3100000073A000000001F17FFFD000004003CFD180000073A1F35FFFDFFFCFFFD410000073A1F37FFFDFFFBFFFD410000073A1F3DFFFEFFFCFFFD410000073A1F40FFFEFFFDFFFD410000073A1F44FFFFFFFDFFFE410000073A1F47FFFEFFFDFFFE410000073A1F4DFFFEFFFDFFFD410000073A1F56FFFEFFFDFFFD410000073A1F5DFFFDFFFCFFFD410000073A1F62FFFEFFFCFFFD410000073A1F66FFFDFFFCFFFC410000073A1F68FFFEFFFCFFFD410000073A1F6DFFFEFFFCFFFD410000073A1F52FFFEFFFCFFFD410000073A1F32FFFEFFFDFFFE410000073A1F1EFFFEFFFDFFFE410000073A1EFEFFFFFFFDFFFD410000073A1EC6FFFEFFFDFFFE410000073A1E6EFFFEFFFDFFFE410000073A1EABFFFEFFFDFFFD410000073A1EEAFFFEFFFDFFFE410000073A1F2EFFFEFFFCFFFD410000073A1F25FFFEFFFDFFFD410000073A1F1CFFFDFFFDFFFD41" />
</Structure>
</DataValue>
</NotificationBody>
</DataNotification>
-->
<GeneralGloCiphering>
<SystemTitle Value="9315080000004003" />
<CipheredService Value="300000020B08399716AA80B0F7CD27DA77E41C4CCEF92426771599F889AE090B347852853C526BC658B88602859C39B38BEBE18DCB26ED62E726ECCB8F969B0CCA719155E69DB63158C55F484BCCE633DF1285A12505D0A9B5CA5776CF57EA092D0760B7E3912E1AF913635A90FA3BFF651AB831BB5A6619C952D390B96E3B9D5F3971E0F9D519BE7AF4762810FAEA86E3EF0E7EDED2F78E85E2940E46B06A76E3E5E93EDF2C16DBF07B96F62E8E6CF6F5C09002D51DAFBAD6614D8A6ED199A630E5C6992AADD9747E9BD386B75BE4C958E3874BA4917FD9357F8125BA45A198E2482F89E325ECC1F1A3FC30024B4C95FBE618FDE59C4C6E3296C6E939B7F6510E9DDB6D42B1BF898D668F3151BDD1945101346241D79E25B835259FEE37A1D99422E9144B0184C92E20DA91459C08F0D11B21F0E81E581D6BA78BA62A2E873E7763C584391B1FF88F91FC40CCE6771B8C6B5F6A569B948A0D986F863FB8B5A75BB3A1C97BD21D2366241E7511272B067E39CC932F4DD902F80E65DCCD918184CC4797A9F0F674C0804F682F0EF92943C267B4DE2760BBD8C98B9DAA" />
</GeneralGloCiphering>
</PDU>
</WRAPPER>
Hi,
Hi,
Can you add the raw hex data here so I can check this with it?
BR,
Mikko
<OctetString Value=
<OctetString Value="1E0460FAB6452E0000000002070002010704000000FDAFFE83FE8E0260FA14900000073A000000001F35FFFD0000048060F8C3100000073A000000001F17FFFD000004003CFD180000073A1F35FFFDFFFCFFFD410000073A1F37FFFDFFFBFFFD410000073A1F3DFFFEFFFCFFFD410000073A1F40FFFEFFFDFFFD410000073A1F44FFFFFFFDFFFE410000073A1F47FFFEFFFDFFFE410000073A1F4DFFFEFFFDFFFD410000073A1F56FFFEFFFDFFFD410000073A1F5DFFFDFFFCFFFD410000073A1F62FFFEFFFCFFFD410000073A1F66FFFDFFFCFFFC410000073A1F68FFFEFFFCFFFD410000073A1F6DFFFEFFFCFFFD410000073A1F52FFFEFFFCFFFD410000073A1F32FFFEFFFDFFFE410000073A1F1EFFFEFFFDFFFE410000073A1EFEFFFFFFFDFFFD410000073A1EC6FFFEFFFDFFFE410000073A1E6EFFFEFFFDFFFE410000073A1EABFFFEFFFDFFFD410000073A1EEAFFFEFFFDFFFE410000073A1F2EFFFEFFFCFFFD410000073A1F25FFFEFFFDFFFD410000073A1F1CFFFDFFFDFFFD41" /> this is the raw hex
Hi Mikko, The first comment
Hi Mikko, The first comment was cipher text after decrypting I should get proper hex packet as response.. but using DLMS translator the Deciphered packet is in comments as posted in earlier xml packet.
Regards.
Rudresh
Hi,
Hi,
The XML parser tries to parse ciphered (encrypted) data and if it succeeds decrypted content is added as a commented content. If Comments are disabled commented content is not added.
The idea to add encrypted data to the comments is to make it easier to see what is actual data in XML.
BR,
Mikko
Hi Mikko,
Hi Mikko,
Thanks for the clarification.
is there way I can get the deciphered hex from the DLMS Translator API.
Thanks
Rudresh
Hi Rudresh,
Hi Rudresh,
If all data is fit to one frame you can use FindNextFrame method to get the data.
Something like this:
GXDLMSTranslator translator = new GXDLMSTranslator(TranslatorOutputType.SimpleXml);
GXByteBuffer data = new GXByteBuffer("Raw data");
GXByteBuffer pdu = new GXByteBuffer();
InterfaceType type = InterfaceType.HDLC;
translator.FindNextFrame(data, pdu, type);
BR,
Mikko