Security setup object is used to do define settings used for ciphered (secure) connection.
Properties
-
1. Logical Name
Logical name of the object.
-
2. Security policy
Defines how messages are secured.
-
3. Security suite
Used security algorithm.
-
4. Client system title
Client system title.
-
5. Server system title
Server system title.
Actions
-
1. Security activate
Activates and strengthens the security policy.
-
2. Key transfer
Transfer symmetric keys.
-
3. Key agreement
Agrees public/private keys.
-
4. Generate key pair
Generate public/private key pair.
-
5. Generate certificate request
Generates certificate request
-
6. Import certificate
Imports certificate.
-
7. Export certificate
Exports certificate.
-
8. Remove certificate
Removes certificate.
Access data from ANSI C
/////////////////////////////////////////////////////////////////////// //This method adds example security setup object. //malloc is not used and for that reason data must allocate for all attributes. /////////////////////////////////////////////////////////////////////// int addSecuritySetup() { int ret; //Define server system title. static unsigned char SERVER_SYSTEM_TITLE[8] = { 0 }; //Define client system title. static unsigned char CLIENT_SYSTEM_TITLE[8] = { 0 }; const unsigned char ln[6] = { 0,0,43,0,1,255 }; if ((ret = INIT_OBJECT(securitySetup, DLMS_OBJECT_TYPE_SECURITY_SETUP, ln)) == 0) { //Add FLAG ID. memcpy(SERVER_SYSTEM_TITLE, "GRX", 3); //ADD serial number. memcpy(SERVER_SYSTEM_TITLE + 4, &SERIAL_NUMBER, 4); BB_ATTACH(securitySetup.serverSystemTitle, SERVER_SYSTEM_TITLE, 8); BB_ATTACH(securitySetup.clientSystemTitle, CLIENT_SYSTEM_TITLE, 8); securitySetup.securityPolicy = DLMS_SECURITY_POLICY_NOTHING; securitySetup.securitySuite = DLMS_SECURITY_SUITE_AES_GCM_128; } return ret; }