Gurux.DLMS.Objects.GXDLMSAssociationLogicalName.IGXDLMSBase C# (CSharp) Méthode

IGXDLMSBase() private méthode

private IGXDLMSBase ( GXDLMSSettings settings, ValueEventArgs e ) : byte[]
settings GXDLMSSettings
e ValueEventArgs
Résultat byte[]
        byte[] IGXDLMSBase.Invoke(GXDLMSSettings settings, ValueEventArgs e)
        {
            //Check reply_to_HLS_authentication
            if (e.Index == 1)
            {
                UInt32 ic = 0;
                byte[] secret;
                if (settings.Authentication == Authentication.HighGMAC)
                {
                    secret = settings.SourceSystemTitle;
                    GXByteBuffer bb = new GXByteBuffer(e.Parameters as byte[]);
                    bb.GetUInt8();
                    ic = bb.GetUInt32();
                }
                else
                {
                    secret = HlsSecret;
                }
                byte[] serverChallenge = GXSecure.Secure(settings, settings.Cipher, ic, settings.StoCChallenge, secret);
                byte[] clientChallenge = (byte[])e.Parameters;
                if (serverChallenge != null && clientChallenge != null && GXCommon.Compare(serverChallenge, clientChallenge))
                {
                    if (settings.Authentication == Authentication.HighGMAC)
                    {
                        secret = settings.Cipher.SystemTitle;
                        ic = settings.Cipher.FrameCounter;
                    }
                    else
                    {
                        secret = HlsSecret;
                    }
                    settings.Connected = true;
                    return GXSecure.Secure(settings, settings.Cipher, ic, settings.CtoSChallenge, secret);
                }
                else //If the password does not match.
                {
                    settings.Connected = false;
                    return null;
                }
            }
            else
            {
                e.Error = ErrorCode.ReadWriteDenied;
                return null;
            }
        }

Same methods

GXDLMSAssociationLogicalName::IGXDLMSBase ( ) : int
GXDLMSAssociationLogicalName::IGXDLMSBase ( ) : int[]
GXDLMSAssociationLogicalName::IGXDLMSBase ( GXDLMSSettings settings, ValueEventArgs e ) : object
GXDLMSAssociationLogicalName::IGXDLMSBase ( ) : string[]
GXDLMSAssociationLogicalName::IGXDLMSBase ( GXDLMSSettings settings, ValueEventArgs e ) : void