Gurux.DLMS.Objects.GXDLMSAssociationShortName.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 == 8)
        {
            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 (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

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