Skip to main content
Home
for DLMS smart meters
Open source solutions for DLMS smart metering

Main navigation

  • Home
  • Products
  • About us
  • Open Source
  • Community
  • Forum
  • Downloads
User account menu
  • Log in

Breadcrumb

  1. Home
  2. Forums
  3. Problem With GlobalKeyTransfer In Python

Problem with globalKeyTransfer in python

Forum Rules

Before commenting read Forum rules

Don't comment the topic if you have a new question.

You can create a new topic selecting correct category from Gurux Forum and then create a new topic selecting "New Topic" from the top left.

By zon7 , 1 August, 2022
Forums
Gurux.DLMS

Looking at the method globalKeyTransfer in python I find a problem that does not exist in the C++ and Java implementation.
The list_ parameter is supposed to be a list but then a getKey method is called. In order to do that, the list must be composed of Object with that getKey method.
If that's done, then GXDLMSSecureClient.encrypt(kek, it) will fail because it will be an object and then setOctetString will fail.

What I suppose will be a better implementation is something more like the C++ implementation and use a list of arrays or tuples.
If list_ is defined like this:
list_ = [ [0, GXByteBuffer.hexToBytes("AAAAAA...")] , [1, GXByteBuffer.hexToBytes("AAAAAA...")] ]

Then, the method can be called like this:

def globalKeyTransfer(self, client, kek, list_):
# pylint: disable=import-outside-toplevel
from ..secure.GXDLMSSecureClient import GXDLMSSecureClient
if not list_:
raise ValueError("Invalid list. It is empty.")
bb = GXByteBuffer()
bb.setUInt8(DataType.ARRAY)
bb.setUInt8(int(len(list_)))
for it in list_:
bb.setUInt8(DataType.STRUCTURE)
bb.setUInt8(2)
_GXCommon.setData(None, bb, DataType.ENUM, it[0])
tmp = GXDLMSSecureClient.encrypt(kek, it[1])
_GXCommon.setData(None, bb, DataType.OCTET_STRING, tmp)
return client.method(self, 2, bb.array(), DataType.ARRAY)

Profile picture for user Kurumi

Kurumi

4 years 1 month ago

Hi,

Hi,

You are right. I'll add this to the worklist and the new version is released today.

BR,
Mikko

Profile picture for user Kurumi

Kurumi

4 years 1 month ago

Hi,

Hi,

This is changed to the latest version.

BR,
Mikko

zon7

4 years 1 month ago

Thanks! That worked

Thanks! That worked flawlessly

  • Create new account
  • Reset your password

Hire Us!

Latest Releases

  • Wed, 08/26/2026 - 09:04
    Gurux.DLMS.Python 1.0.203
  • Mon, 08/17/2026 - 11:28
    Gurux.DLMS.Python 1.0.202
  • Mon, 08/17/2026 - 09:47
    gurux.dlms.cpp 9.0.2608.1701
  • Mon, 08/17/2026 - 09:25
    gurux.dlms.c 9.0.2608.1701
  • Mon, 07/27/2026 - 12:37
    gurux.dlms.cpp 9.0.2607.2701

New forum topics

  • Security vulnerability report — request for a private contact (GuruxDLMS.c / ANSI C)
  • Topic: Insufficient Memory Error When Reading Class 7 Profile Generic Objects
  • SN ReadResponse returns all-null values when response spans multiple HDLC frames
  • Gurux.Serial.Android 3.0.6 – CH340 (HL-340) USB-Serial Adapter Not Working,
  • Trying to talk to a L&G E360 meter (Using Python Gurux)
More

Who's new

  • abuw.01
  • Anaglyfos Trading CC
  • cyby
  • Metin Onan
  • ssv007
RSS feed
Privacy FAQ GXDN Issues Contact
Follow Gurux on Twitter Follow Gurux on Linkedin