CN1219383C - 一种实现用户业务远程验证拨号协议的编码和解码方法 - Google Patents

一种实现用户业务远程验证拨号协议的编码和解码方法 Download PDF

Info

Publication number
CN1219383C
CN1219383C CN 02136148 CN02136148A CN1219383C CN 1219383 C CN1219383 C CN 1219383C CN 02136148 CN02136148 CN 02136148 CN 02136148 A CN02136148 A CN 02136148A CN 1219383 C CN1219383 C CN 1219383C
Authority
CN
China
Prior art keywords
attribute
rad
radius
mattribute
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN 02136148
Other languages
English (en)
Other versions
CN1471260A (zh
Inventor
郑志鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN 02136148 priority Critical patent/CN1219383C/zh
Publication of CN1471260A publication Critical patent/CN1471260A/zh
Application granted granted Critical
Publication of CN1219383C publication Critical patent/CN1219383C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

本发明提供一种实现用户业务远程验证拨号(RADIUS)协议的编解码方法,它将RADIUS协议栈下定义的结构信息写入一个配置文件中,不同RADIUS协议栈下定义的所述结构信息在配置文件中都具有预先确定的统一格式。因此对于每一种具有预先确定的统一格式的结构信息,可以都以不同RADIUS协议栈之间都相同的编码和解码方式进行处理以获得实现该RADIUS协议栈的指令代码。因此当RADIUS协议栈有改动时,只要改动后的结构信息仍然以原先的统一格式表示,就无需修改编码和解码方式。这样,开发RADIUS协议栈代码的周期将大大缩短并且减少了维护的工作量和成本。

Description

一种实现用户业务远程验证拨号协议的编码和解码方法
技术领域
本发明涉及一种网络通信协议的编解码方法,具体而言,本发明涉及一种实现用户业务远程验证拨号(Remote Authentication Dial In User Service,以下简称为RADIUS)协议的编码和解码方法。
背景技术
当一个网络允许外部用户通过公用网对其进行访问时,用户在地理上可以极为分散,大量分散用户从不同的地方可以对这个网络进行随机的访问。由于存在内外的双向数据流动,网络安全成为很重要的问题。安全管理的内容包括:哪些用户是否可以获得访问权(即验证)?获得访问权的用户可以允许使用哪些服务(即授权)?如何对使用网络资源的用户进行记费(即记账)?验证、授权和记账统称为AAA(Authentication,Authorization and Accounting),其实现可采用RADIUS协议。
RADIUS业务符合图1所示典型的客户机/服务器(client/server)模型。如图1所示,网络接入服务器(NAS)或路由器上运行的AAA模块对用户来讲为服务器端,而对实现RADIUS协议的RADIUS服务器来讲是客户端。RADIUS服务器通过建立一个唯一的用户数据库存储用户名、用户密码来进行验证;存储传递给用户的服务类型以及相应的配置信息来完成授权。
以下简要描述RADIUS协议。图2示出了RADIUS报文格式,其中,码(Code)域为1个八位字节,表示RADIUS报文类型,即服务类型;标识符(Identifier)域亦为一个八位字节,用于匹配请求和应答;长度(Length)域为2个八位字节,表示整个报文的长度;验证符(Authenticator)域为16个八位字节,用于验证来自RADIUS服务器的应答和密码隐藏算法;而属性(Attributes)域的长度是可变的并且包含该RADIUS报文对应的服务类型所需以及任何需要的可选属性的属性列表。
在图1所示RADIUS业务的客户机/服务器模型中,客户机和服务器上的AAA模块都必须具有处理RADIUS报文的功能,其中包括生成和读取RADIUS报文的功能。在计算机系统上实现RADIUS协议实际上就是由处理器执行一系列完成RADIUS协议功能的指令代码,而构造完成生成和读取RADIUS报文功能的指令代码的过程在这里分别被称为RADIUS协议的编码和解码。由上可见,每种类型RADIUS报文中的代码域、标识符域、长度域和验证符域都具有固定的长度,占据的存储空间是不变的,但是属性域却因每种RADIUS报文中属性个数、种类等的不同而各异。因此,在现有技术中,由于属性域差异的存在,不得不为每种类型RADIUS报文的生成和读取都专门进行编码和解码,即生成相应的指令代码段(或函数)。由于每个这样的函数都针对特定RADIUS报文的生成或读取功能,代码内容与所处理报文、属性种类、属性个数以及属性长度等密切相关,因此报文结构上的任何一点修改都将牵涉到代码的修改。
RADIUS协议实际上是一个包含多个RADIUS协议栈的协议栈类,其中的每个RADIUS协议栈除了具备基本的协议配置以外还可以在实际应用中作各种扩展。由上可见,在现有技术中,编解码过程与RADIUS协议结构内容没有分离,报文或者属性在结构上的任何修改都需要更新编解码部分的代码,因此RADIUS协议栈的实现很不灵活,而且不同RADIUS协议栈之间兼容困难,经常为了支持一个不同扩展的协议而必须重新编码和解码。另外,当同时实现服务器端和客户机端(此时AAA服务器作为代理服务器)时,需要采用两套不相关的代码来实现一套协议的编解码。最后,实现具体协议栈的代码长度与报文个数正相关,随着报文个数的增多,实现协议栈的代码量也将线性增加。
发明内容
本发明的目的是提供一种实现用户业务远程验证拨号(RADIUS)协议的编解码方法,它可以灵活地实现各种RADIUS协议栈的编码和解码。
按照本发明的实现用户业务远程验证拨号(RADIUS)协议的编码和解码方法,RADIUS协议栈类包含多个RADIUS协议栈,其特征在于,当对任一RADIUS协议栈进行编码和解码处理时,执行以下步骤:
(1)将该RADIUS协议栈下定义的结构信息写入存储器内,所述结构信息包括每一属性的各种特征信息和每种类型RADIUS报文中所使用属性的各种使用状态信息,并且不同RADIUS协议栈下定义的所述结构信息都具有预先确定的统一格式;以及
(2)从存储器内读取具有所述预先确定的统一格式的结构信息;以及
(3)对于每一种具有所述预先确定的统一格式的结构信息,都以不同RADIUS协议栈之间都相同的编码和解码方式进行处理以获得实现该RADIUS协议栈的指令代码。
由上可见,由于每种结构信息,包括属性使用状态信息和特征信息都以统一格式表示和存储,由此可以针对每一种格式的结构信息定义相应的统一编码和解码处理方式,因此当RADIUS协议栈有改动时,只要改动后的结构信息仍然以原先的统一格式表示,就无需修改编码和解码方式。这样,开发RADIUS协议栈代码的周期将大大缩短并且减少了维护的工作量和成本。
附图说明
通过以下结合附图对本发明较佳实施例的描述,可以进一步理解本发明的目的、特征和优点:
图1为RADIUS协议下典型的客户机/服务器模型示意图;
图2示出了RADIUS报文格式;
图3为按照本发明方法的解码主流程示意图;
图4为按照本发明方法的主属性解码流程示意图;
图5为按照本发明方法的基本属性解码流程示意图;
图6为按照本发明方法的编码主流程示意图;
图7为按照本发明方法的主属性编码流程示意图;以及
图8为按照本发明方法的基本属性编码流程示意图。
具体实施方式
在本文中,RADIUS报文中的代码域、标识符域、长度域和验证符域被统称为报文头部。如上所述,不同RADIUS协议栈下每种类型RADIUS报文中的代码域、标识符域、长度域和验证符域都具有固定的长度和排列顺序,因此报文头部的编码和解码在不同RADIUS协议栈和报文之间以统一方式处理是显而易见的。但是属性域比较复杂,其结构信息因属性个数、种类等的不同而变化,在本文中,结构信息包含但不局限于RADIUS报文头部结构、每一属性的各种特征信息和每种类型RADIUS报文中所使用属性的各种使用状态信息。本发明方法的着眼点即在于以统一的编码和解码方式处理随RADIUS协议栈以及报文类型不同而变化的属性域。为此,必须以统一格式表示属性域的各种结构信息,在此基础上才可对每种统一格式的结构信息定义相应的统一的编码和解码方式。
值得指出的是,按照本发明方法的以统一格式表示结构信息并以统一方式进行编码和解码的过程最终都可归结为由硬件装置实现,这些硬件装置包括但不局限于用于存储结构信息的各种存储设备和以统一方式编码和解码结构信息的处理器,这里的处理器可以是物理上实际对应的一个专用中央处理器(CPU),也可以是具有信息或数据处理能力的多个逻辑处理单元的组合。在本发明中,上述硬件装置被统称为RADIUS协议处理器并且用于实现按照本发明的RADIUS协议编码和解码方法。
以下首先描述按照本发明方法的以统一格式表示属性域各种结构信息的较佳方式。为方便起见,这些统一格式表示的信息结构可以写入一个协议栈配置文件中,不同的协议栈具有不同的协议栈配置文件,但是每个配置文件表示结构信息的格式都是相同的。
附录A和B分别示出了符合标准RADIUS协议和RADIUS+1.0协议的配置文件,如附录A和B所示,两个配置文件都由头部、消息、属性三部分组成。其中,头部中的字段MINMSGLENGTH和MAXMSGLENGTH描述本RADIUS协议栈下报文的最小和最大长度,FILETERUNKNOWATT描述编解码时是否过滤未知属性,MINPRIMITIVELEN描述基本属性的最小长度,MINCONSTRUCTORLEN描述结构型属性的最小长度;报文部分以RADIUS报文为单位,描述了每种RADIUS报文中所使用属性的使用状态信息,其中,字段MSGTYPE表示报文类型,用于标识当前描述的使用状态信息的属性所属的RADIUS报文,MATTRIBUTE表示报文部分内每个属性的首部,用于标识每个属性使用状态信息描述的开始,随后的参数字段type描述属性的编号,mtag描述属性的性质是可选属性、必备属性还是出现次数为0或更多的属性,times描述在目标报文结构中出现的次数;属性部分分为LEVEL1和LEVEL2两层,分别描述主属性和子属性的特征信息,在每一层的属性特征信息描述中,字段ATTRIBUTE表示属性部分内每个属性的首部,用于标识每个属性特征信息描述的开始,随后的参数字段name描述属性的名称,type描述属性的编号,这与报文部分内的type字段是一致的,kind描述属性的数据类型,min描述属性的最小长度或最小值,max描述属性的最大长度或最大值,len描述属性在报文结构中的长度,form描述属性是否为结构型属性。
由上可见,在不同的RADIUS协议栈配置文件中,每个属性在任一RADIUS报文中的使用状态信息以及自身特征信息在每个配置文件中都以相应的统一格式表示,例如,每个属性的使用状态信息以MSGTYPE标识其所处的报文,并以MATTRIBUTE标识使用状态信息描述的开始,随后依次出现属性编号、属性性质、属性在目标报文结构中出现次数等参数字段。又如,每个属性的特征信息以ATTRIBUTE标识每个属性特征信息描述的开始,随后依次出现属性名称、属性编号、属性数据类型、属性最小长度或最小值、属性最大长度或最大值、属性在报文结构中的长度和结构型属性标志等参数字段。这种将不同RADIUS协议栈下定义的每个属性的使用状态信息和特征信息都以统一格式表示在不同的配置文件中的方式使得以统一的编码和解码规则或方式处理每一种格式的结构信息成为可能。具体而言,在编码和解码过程中,可以将上述配置文件的结构定义视为是对RADIUS协议栈类的定义,而将这种配置文件结构下具体的配置文件视为是对每个RADIUS协议栈的定义。如果借助面向对象方法的程序设计思想描述,这里的RADIUS协议栈类相当于“类”,而每个RADIUS协议栈是该类的一个“实例”,因此本发明的方法很容易用面向对象的编程语言来实现。例如可以编写一个协议栈类程序,当启动时初始化部分可以根据需要动态生成协议栈实例,对不同的协议接口调用不同的实例进行编码和解码。
值得指出的是,配置文件是一个逻辑概念,代表了信息或数据的存储结构,在物理上实际对应的是存储器的一个存储区域。而且更为重要的是,上述附录A和B示出的结构信息表示方式只是示意性质的,不应理解为是对本发明范围的限定。实际上,诸如每一属性的各种特征信息和每种类型RADIUS报文中所使用属性的各种使用状态信息之类的结构信息可以有无数种具体的统一格式表示方式,本发明的着眼点是通过利用统一格式表示或存储结构信息使得RADIUS协议的编码和解码方式或规则与协议栈内容能够分离开来,其中编码和解码规则由代码体现,而协议栈内容由配置文件体现。
以下借助图3~8描述本发明编码和解码RADIUS协议栈的方式。在本发明的方法中,借用面向对象的程序设计思想,将RADIUS报文和属性视为不同的对象,不同类型的RADIUS报文或属性只是各自所属对象内的不同实例,因此可以对所有RADIUS报文和属性实行统一的处理方式。
图3为按照本发明方法的解码主流程示意图。如图3所示,首先对RADIUS报文头部进行解码处理,如上所述,由于报文头部的结构是固定不变的,因此可以统一的解码规则进行处理。报文头部解码完成后,读取配置文件以确定是否有需要解码的属性。如果通过读取配置文件确定有需要解码的属性,则读取属性类型,并随后对主属性按照统一的解码规则进行处理。接着,判断属性处理是否成功,如果属性处理不成功,则返回解码出错指示并结束解码主流程,如果属性处理成功,则返回读取配置文件以确定是否有需要解码的属性的步骤。相反,如果通过读取配置文件确定没有需要解码的属性,则确定已解码的属性个数是否合法,即判断解码过程中记录下来的解码属性个数与配置文件中mtag的取值是否一致。如果确定属性个数合法,即,报文中属性个数与配置文件规定的相等时,则将参数字段内容解码到结果报文中,即,将配置文件中参数字段的内容复制至缓冲区的特定位置上,特定位置根据配置文件中解码后参数长度定义和参数出现顺序计算确定,随后返回解码成功指示。
图4为图3中主属性解码步骤的流程示意图。如图4所示,首先根据配置文件中参数字段form确定属性是否为包含子属性的结构属性。如果判断不是结构属性,则进行基本属性解码处理。然后根据配置文件中属性的结构信息判断该基本属性是否合法,如果不合法,则返回属性不合法指示并结束主属性解码流程,否则增加对应类型已解码属性个数以用于图3中确定已解码属性个数是否合法的步骤。最后,返回属性合法指示并结束主属性解码流程。相反,如果判断是结构属性,则判断该结构属性中是否还包含未解码的子属性。如果不包含未解码的子属性,则增加对应类型已解码属性个数,返回属性合法指示并结束主属性解码流程,否则对子属性按照基本属性解码规则处理。对子属性按照基本属性解码规则处理后,判断解码后的该子属性是否合法。如果合法,则增加对应类型已解码子属性的个数并返回至判断是否还有子属性的步骤,否则返回属性不合法指示并结束主属性解码流程。
图5为图4中判断基本属性是否合法步骤的流程示意图。如图5所示,首先读取解码后属性的长度。然后判断读取的属性长度是否合法,即,将读取的长度与配置文件中的参数字段king进行比较以确定是否匹配。如果不合法或不一致,则返回属性错误指示并结束基本属性解码流程。如果合法或一致,则读取属性的内容并进一步判断属性的内容是否合法,即,将读取的内容与配置文件中的min和max等参数字段进行比较以确定是否匹配。如果合法或一致,则返回属性正确指示并结束基本属性解码流程,否则,返回属性错误指示并结束基本属性是否合法步骤的流程。
图6为按照本发明方法的编码主流程示意图。如图6所示,首先对RADIUS报文头部进行编码处理,如上所述,由于报文头部的结构是固定不变的,因此可以统一的编码规则进行处理。报文头部编码完成后,读取配置文件以确定是否有需要编码的属性。如果通过读取配置文件确定有需要编码的属性,则读取属性类型,并随后对主属性按照统一的编码规则进行处理。接着,判断属性处理是否成功,如果属性处理不成功,则返回编码出错指示并结束解码主流程,如果属性处理成功,则返回读取配置文件以确定是否有需要编码的属性的步骤。相反,如果通过读取配置文件确定没有需要编码的属性,则返回编码成功指示。
图7为图6中主属性编码步骤的流程示意图。如图6所示,首先根据配置文件中参数字段form确定属性是否为包含子属性的结构属性。如果判断不是结构属性,则进行基本属性编码处理。然后返回编码成功指示并结束主属性编码流程。相反,如果判断是结构属性,则进一步判断该结构属性中是否还包含未编码的子属性。如果不包含未编码的子属性,则计算出主属性编码后的长度,然后对该结构属性进行打包处理,即,将参数对应的属性类型、长度和内容依次写入编码结果的缓冲区内,接着返回编码成功指示并结束主属性编码流程。如果包含未编码的子属性,则对子属性按照基本属性编码规则处理。对子属性按照基本属性编码规则处理后,判断编码是否成功,如果成功,则返回至判断是否还有子属性的步骤,否则返回编码失败指示并结束主属性编码流程。
图8为图7中基本属性编码步骤的流程示意图。如图8所示,首先判断读取编码后属性的参数是否合法,即参数的取值范围是否与配置文件中的一致。如果不合法或不一致,则返回编码失败指示并结束基本属性编码流程。如果合法或一致,则计算属性编码后的长度并将该参数打包,即,将参数对应的属性类型、长度和内容依次写入编码结果的缓冲区内,然后返回编码成功指示并结束基本属性编码流程。
         附录A  标准RADIUS协议编码和解码配置文件
MINMSGLENGTH                  20
MAXMSGLENGTH                  1024
FILETERUNKNOWATT              1
MINPRIMITIVELEN               3
MINCONSTRUCTORLEN             3
#Access-Request
MSGTYPE            1
#head:       show the head of attribute
#type:       attribute type(0..255)
#mtag:        0=a optinal attribute
#              1=a mandatory attribute
#              2=0 or more times appearing
#times:       0=attribute not decode for message struct,or constructor
#                 others,times appearing in message struct.
                  mandatory attribute must be only once.
                  optional attribute must be less then once(0 or l).
#conf_flag: flag for configured,if true,configured value is to be used always.
#conf_value:configured value for encoding primitive attribute,less then 64 bytes;
#                for constructor attribute,it’s the number of all child attributes.
#head                  type       mtag        times        conf_flag    conf_value
#USER-NAME             0
MATTRIBUTE             1          0           1            0
#USER-PASSWD
MATTRIBUTE             2          0           1            0
#CHAP-PASSWD
MATTRIBUTE             3          0           1            0
#FRAMED-PROTOCOL
MATTRIBUTE             7          0           1            0            8
#VENDOR-SPECIFY
MATTRIBUTE             26         0           0            1            2
#ISP-ID
MATTRIBUTE             17         0           1            0            163
#CONNECT-ID,optional for v10
MATTRIBUTE             26         0           1            0
#NAS-PORT-ID
MATTRIBUTE             87         0           1            0            abcdefg
#NAS-PORT-TYPE
MATTRIBUTE             61         0           1            0
#CHAP-CHALLENGE
MATTRIBUTE             60         0           1            0
#FRAME-IP-ADDRESS
MATTRIBUTE             8          0           1            0
#CLASS
MATTRIBUTE             25         2           3            0
#SeviceType
MATTRIBUTE             6          0           1            1            1
#NAS-Port
MATTRIBUTE             5          0           1            0
#State
MATTRIBUTE             24         0           1            0
ENDMSG
#Access-Accept
MSGTYPE                 2
#USER-NAME
MATTRIBUTE             1          0           1            0
#FRAMED-PROTOCOL
MATTRIBUTE             7          0           1            0
#FRAMED-IP-ADDRESS
MATTRIBUTE             8          0           1            0
#FRAMED-IP-NETMASK
MATTRIBUTE             9          0           1            0
#FILTER-ID
MATTRIBUTE             11         2           3            0
#CLASS
MATTRIBUTE             25         2           3            0
#IDLE-TIMEOUT
MATTRIBUTE       28      0        1          0
#FRAMED-IP-POOL-ID
MATTRIBUTE       88      0        1          0
#ACCT-INTERIM-INTERVAL
MATTRIBUTE       85      0        1          0
#Session-Timeout
MATTRIBUTE       27      0        1          0
ENDMSG
#Access-Reiect
MSGTYPE          3
#REPLY-MESSAGE
MATTRIBUTE       18      0        1          0
ENDMSG
#Accounting-Request
MSGTYPE          4
#USER-NAME
MATTRIBUTE       1       0        1          0
#ACCT-STATUS-TYPE
MATTRIBUTE       40      1        1          0
#ACCT-DELAY-TIME
MATTRIBUTE       41      0        1          0
#ACCT-SESSION-ID
MATTRIBUTE       44      1        1          0
#TERMINATE-CAUSE
MATTRIBUTE       49      0        1          0
#CLASS
MATTRIBUTE       25      2        3          0
#FRAMED-IP-ADDRESS
MATTRIBUTE       8       0        1          0
#Event Timestamp
MATTRIBUTE       55      0        1          0
#AcctInputGigawords
MATTRIBUTE       52      0        1          0
#AcctOutputGigawords
MATTRIBUTE       53      0        1          0
#AcctInputOctets
MATTRIBUTE       42      0        1          0
#AcctOutputOctets
MATTRIBU下E      43      0        1          0
#AcctInputPackets
MATTRIBUTE       47      0        1          0
#AcctOutPutPackets
MATTRIBUTE       48      0        1          0
ENDMSG
#Accounting-Response
MSGTYPE          5
#SESSION-TIMEOUT
MATTRIBUTE       27      0        1          0
ENDMSG
###############################################################
# head:show the head of attribute
# name:the name of attribute
# kind:2=the attribute is octet type
#       3=the attribute is integer
#       4=the attribute is address type
# min:the attribute′s min length or min value
# max:the attribute′s max length or max value
# len:the attribute′s length in message struct,INTEGER/ADDRESS is 4
# form:0=primitive,1=constructor
LEVEL            0
#head            name                   type  kind  min   max        width  form
ATTRIBUTE        Rad_UserName           1     2     1     63         32     0
ATTRIBUTE        Rad_UserPassword       2     2     16    128        16     0
ATTRIBUTE        Rad_CHAPPassword       3     2     17    17         20     0
ATTRIBUTE        Rad_NASIPAddress       4     3     0     4294967295 4      0
ATTRIBUTE        Rad_NASPort            5     3     0     65535      4      0
ATTRIBUTE        Rad_SeryiceType        6     3     1     11         4      0
ATTRIBUTE        Rad_FramedProtocol     7     3     1     100        4      0
ATTRIBUTE    Rad_FramedIPAddress         8   4   0  4294967295  4    0
ATTRIBUTE    Rad_FramedIPNetmask         9   4   0  4294967295  4    0
ATTRIBUTE    Rad_FramedRouting           10  3   0  3           4    0
ATTRIBUTE    Rad_FilterId                11  2   0  8           12   0
ATTRIBUTE    Rad_FramedMTU               12  3   01 4294967295  4    0
ATTRIBUTE    Rad_FramedCompression       13  3   01 4294967295  4    0
ATTRIBUTE    Rad_LoginIPHost             14  3   0  4294967295  4    0
ATTRIBUTE    Rad_LoginService            15  3   1  255         4    0
ATTRIBUTE    Rad_LoginTCPPort            16  3   0  100         4    0
ATTRIBUTE    e                           17  0   0              0    0    0
ATTRIBUTE    Rad_ReplyMessage            18  2   1  200         48   0
ATTRIBUTE    Rad_CallbackNumber          19  0   0  0           0    0
ATTRIBUTE    Rad_CallbackId              20  0   0  0           0    0
ATTRIBUTE    e                           21  0      0           0    0    0
ATTRIBUTE    Rad_FramedRoute             22  0   0  0           0    0
ATTRIBUTE    Rad_FramedIPXNetwork        23  0   0  0           0    0
ATTRIBUTE    Rad_State                   24  2   1  429496      32   0
ATTRIBUTE    Rad_Class                   25  2   1  200         36   0
ATTRIBUTE    Rad_VendorSpecific          26  0   0  0           0    1
ATTRIBUTE    Rad_SessionTimeout          27  3   0  4294967295  4    0
ATTRIBUTE    Rad_IdleTimeout             28  3   0  4294967295  4    0
ATTRIBUTE    Rad_TerminationAction       29  3   0  4294967295  4    0
ATTRIBUTE    Rad_CalledStationId         30  2   1  200         24   0
ATTRIBUTE    Rad_CallingStationId        31  2   1  200         24   0
ATTRIBUTE    Rad_NASIdentifier           32  0   0  0           0    0
ATTRIBUTE    Rad_ProxyState              33  0   0  0           0    0
ATTRIBUTE    Rad_LoginLATService         34  0   0  0           0    0
ATTRIBUTE    Rad_LoginLATNode            35  0   0  0           0    0
ATTRIBUTE    Rad_LoginLATGroup           36  0   0  0           0    0
ATTRIBUTE    Rad_FramedAPPleTalkLink     37  0   0  0           0    0
ATTRIBUTE    Rad_FramedAPPleTalkNetwork  38  0   0  0           0    0
ATTRIBUTE    Rad_FramedAPPleTalkZone     39  0   0  0           0    0
ATTRIBUTE    Rad_AcctStatusType          40  3   0  4294967295  4    0
ATTRIBUTE    Rad_AcctDelayTime           41  3   0  4294967295  4    0
ATTRIBUTE    Rad_AcctInputOctets         42  3   0  4294967295  4    0
ATTRIBUTE    Rad_AcctOutputOctets        43  3   0  4294967295  4    0
ATTRIBUTE    Rad_AcctSessionId           44  2   1  200         56   0
ATTRIBUTE    Rad_AcctAuthentic           45  0   0  0           0    0
ATTRIBUTE    Rad_AcctSessionTime         46  0   0  0           0    0
ATTRIBUTE    Rad_AcctInputPackets        47  3   0  4294967295  4    0
ATTRIBUTE    Rad_AcctOutputPackets       48  3   0  4294967295  4    0
ATTRIBUTE    Rad_AcctTerminateCause      49  3   0  4294967295  4    0
ATTRIBUTE    Rad_AcctMultiSessionld      50  0   0  0           0    0
ATTRIBUTE    Rad_AcctLinkCount           51  0   0  0           0    0
ATTRIBUTE    Rad_AcctInputGigawords      52  3   0  4000        4    0
ATTRIBUTE    Rad_AcctInputGigawords      53  3   0  4000        4    0
ATTRIBUTE    Rad_EventTimestamp          55  3   0  4294967295  4    0
ATTRIBUTE    Rad_CHAPChallenge           60  2   5  32          24   0
ATTRIBUTE    Rad_NASPortType             61  3   0  4294967295  4    0
ATTRIBUTE    Rad_PortLimit               62  0   0  0           0    0
ATTRIBUTE    Rad_LoginLATPort            63  0   0  0           0    0
ATTRIBUTE    Rad_AcctInterimINterval     85  3   0  4294967295  4    0
ATTRIBUTE    Rad_NASPortld               87  2   1  200         32   0
ATTRIBUTE    Rad_FramedPool              88  3   0  4294967295  4    0
ENDLEVEL
LEVEL        1
#head        name                                  type kind min  max         width  form
ATTRIBUTE    Rad_InputPeakRate                     1    3    0    4294967295  4      0
ATTRIBUTE    Rad_InputAverageRate                  2    3    0    4294967295  4      0
ATTRIBUTE    Rad_InputBasicRate                    3    3    0    4294967295  4      0
ATTRIBUTE    Rad_OutputPeakRate                    4    3    0    4294967295  4      0
ATTRIBUTE    Rad_OutputAverageRate                 5    3    0    4294967295  4      0
ATTRIBUTE    Rad_OutputBasicRate                   6    3    0    4294967295  4      0
ATTRIBUTE    Rad_InputKilobytesBeforeTariffSwitch  7    3    0    4294967295  4      0
ATTRIBUTE    Rad_OutpttKilobytesBeforeTariffSwitch 8    3    0    4294967295  4      0
ATTRIBUTE    Rad_InputPacketsBeforeTariffSwitch    9    3    0    4294967295  4      0
ATTRIBUTE    Rad_OutputPacketsBeforeTariffSwitch   10   3    0    4294967295  4      0
ATTRIBUTE    Rad_InputKilobytesAfterTariffSwitch   11   3    0    4294967295  4      0
ATTRIBUTE    Rad_OutputKilobytesAfterTariffSwitch  12    3    0    4294967295    4     0
ATTRIBUTE    Rad_InputPacketsAfterTariffSwitch     13    3    0    4294967295    4     0
ATTRIBUTE    Rad_OutputPacketsAfterTariffSwitch    14    3    0    4294967295    4     0
ATTRIBUTE    Rad_RemanentVolume                    15    3    0    4294967295    4     0
ATTRIBUTE    Rad_TariffSwitchInterval              16    3    0    4294967295    4     0
ATTRIBUTE    Rad_ISPID                             17    2    0    64            32    0
ATTRIBUTE    Rad_MaxUsersPerLogicPort              19    3    0    4294967295    4     0
ATTRIBUTE    Rad_Command                           20    3    0    4294967295    4     0
ATTRIBUTE    Rad_Priority                          22    3    0    4294967295    4     0
ATTRIBUTE    Rad_ControlIdentifier                 24    3    0    4294967295    4     0
ATTRIBUTE    Rad_ResultCode                        25    3    0    4294967295    4     0
ATTRIBUTE    Rad_ConnectId                         26    3    0    4294967295    4     0
ENDLEVEL
               附录B  RADIUS协议+1.1编码和解码配置文件
MINMSGLENGTH             20
MAXMSGLENGTH             1024
FILETERUNKNOWATT         1
MINPRIMITIVELEN          3
MINCONSTRUCTORLEN        3
#Access-Request
MSGTYPE         1
#head:    show the head of attribute
#type:    attribute type(0..255)
#mtag:    0=a optinal attribute
#          1=a mandatory attribute
#          2=0 or more times appearing
#times:   0=attribute not decode for message struct,or constructor
#             others,times appearing in message struct.
              mandatory attribute must be only once.
              optional attribute must be less then once(0 or 1).
#conf_flag:flag for configured,if true,configured value is to be used always.
#conf_value:configured value for encoding primitive attribute,less then 64 bytes;
#               for constructor attribute,it′s the number of all child attributes.
#head            type      mtag     times   conf_flag    conf_value
#USER-NAME       0
MATTRIBUTE       1         0        1       0            555555555551
#USER-PASSWD
MATTRIBUTE       2         0        1       0
#CHAP-PASSWD
MATTRIBUTE       3         0        1       0
#FRAMED-PROTOCOL
MATTRIBUTE       7         0        1       0            8
#VENDOR-SPECIFY
MATTRIBUTE       26        0        0       1            2
#ISP-ID
MATTRIBUTE       17        0        1       0            163
#CONNECT-ID,optional for vl 0
MATTRIBUTE       26        0        1       0            3
#NAS-PORT-ID
MATTRIBUTE       87        0        1       0            abcdefg
#NAS-PORT-TYPE
MATTRIBUTE       61        0        1       0
#CHAP-CHALLENGE
MATTRIBUTE       60        0        1       0
#FRAME-IP-ADDRESS
MATTRIBUTE       8         0        1       0
#CLASS
MATTRIBUTE       25        2        3       0
ENDMSG
#Access-Accept
MSGTYPE          2
#USER-NAME
MATTRIBUTE       1         0        1       0
#FRAMED-PROTOCOL
MATTRIBUTE       7         0        1       0
#FRAMED-IP-ADDRESS
MATTRIBUTE       8         0        1       0
#FRAMED-IP-NETMASK
MATTRIBUTE       9         0        1       0
#FILTER-ID
MATTRIBUTE       11        2        3       0
#CLASS
MATTRIBUTE       25        2        3       0
#IDLE-TIMEOUT
MATTRIBUTE       28        0        1       0
#FRAMED-IP-POOL-ID
MATTRIBUTE       88        0        1       0
#ACCT-INTERIM-INTERVAL
MATTRIBUTE        85       0       1       0
#VENDOR-SPECIFY
MATTRIBUTE        26       0       0       1       10
#RATE6
MATTRIBUTE        1        0       1       0
MATTRIBUTE        2        0       1       0
MATTRIBUTE        3        0       1       0
MATTRIBUTE        4        0       1       0
MATTRIBUTE        5        0       1       0
MATTRIBUTE        6        0       1       0
#MAX-USERS-PER-LOGICPORT
MATTRIBUTE        19       0       1       0       11
#ISP-ID
MATTRIBUTE        17       0       1       0
#CONNECT-ID
MATTRIBUTE        26       1       1       0
#PRIORTY
MATTRIBUTE        22       0       1       0
ENDMSG
#Access-Reiect
MSGTYPE           3
#REPLY-MESSAGE
MATTRIBUTE        18       0       1       0
#VENDOR-SPECIFY
MATTRIBUTE        26       0       0       1       1
#CONNECT-ID
MATTRIBUTE        26       1       1       0
ENDMSG
#Accounting-Request
MSGTYPE           4
#USER-NAME
MATTRIBUTE        1        0       1       0
#ACCT-STATUS-TYPE
MATTRIBUTE        40       1       1       0
#ACCT-DELAY-TIME
MATTRIBUTE        41       0       1       0
#ACCT-SESSION-ID
MATTRIBUTE        44       1       1       0
#TERMINATE-CAUSE
MATTRIBUTE        49       0       1       0
#VENDOR-SPECIFY
MATTRIBUTE        26       0       0       1       10
#VOLUME-info
MATTRIBUTE        7        0       1       0
MATTRIBUTE        8        0       1       0
MATTRIBUTE        9        0       1       0
MATTRIBUTE        10       0       1       0
MATTRIBUTE        11       0       1       0
MATTRIBUTE        12       0       1       0
MATTRIBUTE        13       0       1       0
MATTRIBUTE        14       0       1       0
#CONNECT-ID
MATTRIBUTE        26       1       1       0
#CONTROL-IDENTIFIER
MATTRIBUTE        24       0       1       0
#CLASS
MATTRIBUTE        25       2       3       0
#FRAMED-IP-ADDRESS
MATTRIBUTE        8        0       1       0
ENDMSG
#Accounting-Response
MSGTYPE           5
#USER-NAME
MATTRIBUTE        1        0       1       0
#SESSION-TIMEOUT
MATTRIBUTE        27       0       1       0
#VENDOR-SPECIFY
MATTRIBUTE        26       0       0       1       3
#REMANENT-VOLUME
MATTRIBUTE        15       0       1       0
#TARIFF-SWITCH-INTERVAL
MATTRIBUTE        16       0       1       0
#CONNECT-ID
MATTRIBUTE        26       1       1       0
#CLASS
MATTRIBUTE        25       2       3       0
#ACCT-SESSION-ID
MATTRIBUTE        44       0       1       0
ENDMSG
#Trigger-Request
MSGTYPE           201
#USER-NAME
MATTRIBUTE        1        1       1       0
#FRAMED-IP-ADDRESS
MATTRIBUTE        8        1       1       0
#FILTER-ID
MATTRIBUTE        11       2       3       0
#NAS-PORT-ID
MATTRIBUTE        87       0       1       0
#VENDOR-SPECIFY
MATTRIBUTE        26       0       0       1       2
#COMMAND
MATTRIBUTE        20       1       1       0
#CONTROL-IDENTIFIER
MATTRIBUTE        24       1       1       0
ENDMSG
#Terminate-Request
MSGTYPE           202
#USER-NAME
MATTRIBUTE        1        1       1       0
#CLASS
MATTRIBUTE        25       2       3       0
#ACCT-SESSION-ID
MATTRIBUTE        44       1       1       0
#VENDOR-SPECIFY
MATTRIBUTE        26       0       0       1       3
#CONNECT-ID
MATTRIBUTE        26       1       1       0
#COMMAND
MATTRIBUTE        20       1       1       0
#CONTROL-IDENTIFIER
MATTRIBUTE        24       1       1       0
ENDMSG
#Setpolicy
MSGTYPE           203
#USER-NAME
MATTRIBUTE        1        1       1       0
#ACCT-SESSION-ID
MATTRIBUTE        44       1       1       0
#FILTER-ID
MATTRIBUTE        11       2       3       0
#VENDOR-SPECIFY
MATTRIBUTE        26       0       0       1       11
#RATE6
MATTRIBUTE        1        0       1       0
MATTRIBUTE        2        0       1       0
MATTRIBUTE        3        0       1       0
MATTRIBUTE        4        0       1       0
MATTRIBUTE        5        0       1       0
MATTRIBUTE        6        0       1       0
#CONNECT-ID
MATTRIBUTE        26       1       1       0
#COMMAND
MATTRIBUTE        20       1       1       0
#CONTROL-IDENTIFIER
MATTRIBUTE        24       1       1       0
#ISP-ID
MATTRIBUTE           17       0       1       0
#PRIORTY
MATTRIBUTE           22       0       1       0
ENDMSG
#Control-Result
MSGTYPE              20
#FRAMED-IP-ADDRESS
MATTRIBUTE           8        0       l       0
#VENDOR-SPECIFY
MATTRIBUTE           26       0       0       1
#CONNECT-ID
MATTRIBUTE           26       0       1       0
#COMMAND
MATTRIBUTE           20       1       1       0
#CONTROL-IDENTIFIER
MATTRIBUTE           24       1       1       0
#RESULT-CODE
MATTRIBUTE           25       0       1       0
ENDMSG
#######################################################################
#head:show the head of attribute
#name:the name of attribute
#kind:2=the attribute is octet type
#      3=the attribute is integer
#      4=the attribute is address type
#min:the attribute′s min Iength or min value
#max:the attribute′s max length or max value
#len:the attribute′s length in message struct,INTEGER/ADDRESS is 4
#form:0=primitive,1=constructor
LEVEL        0
#head        name                    type  kind  min  max        width  form
ATTRIBUTE    Rad_UserName            1     2     1    63         32     0
ATTRIBUTE    Rad_UserPassword        2     2     16   128        16     0
ATTRIBUTE    Rad_CHAPPassword        3     2     17   17         20     0
ATTRIBUTE    Rad_NASIPAddress        4     3     0    4294967295 4      0
ATTRIBUTE    Rad_NASPort             5     3     0    65535      4      0
ATTRIBUTE    Rad_ServiceType         6     3     1    11         4      0
ATTRIBUTE    Rad_FramedProtocol      7     3     1    100        4      0
ATTRIBUTE    Rad_FramedIPAddress     8     4     0    4294967295 4      0
ATTRIBUTE    Rad_FramedIPNetmask     9     4     0    4294967295 4      0
ATTRIBUTE    Rad_FramedRouting       10    3     0    3          4      0
ATTRIBUTE    Rad_FilterId            11    2     0    8          12     0
ATTRIBUTE    Rad_FramedMTU           12    3     01   4294967295 4      0
ATTRIBUTE    Rad_FramedCompression   13    3     01   4294967295 4      0
ATTRIBUTE    Rad_LoginIPHost         14    3     0    4294967295 4      0
ATTRIBUTE    Rad_LoginService        15    3     1    255        4      0
ATTRIBUTE    Rad_LoginTCPPort        16    3     0    100        4      0
ATTRIBUTE    e                       17    0     0    0          0      0
ATTRIBUTE    Rad_ReplyMessage        18    2     1    200        48     0
ATTRIBUTE    Rad_CallbackNumber      19    0     0    0          0      0
ATTRIBUTE    Rad_CallbackId          20    0     0    0          0      0
ATTRIBUTE    e                       21    0     0    0          0      0
ATTRIBUTE    Rad_FramedRoute         22    0     0    0          0      0
ATTRIBUTE    Rad_FramedIPXNetwork    23    0     0    0          0      0
ATTRIBUTE    Rad_State               24    0     0    0          0      0
ATTRIBUTE    Rad_Class               25    2     1    200        36     0
ATTRIBUTE    Rad_VendorSpecific      26    0     0    0          0      1
ATTRIBUTE    Rad_SessionTimeout      27    3     0    4294967295 4      0
ATTRIBUTE    Rad_IdleTimeout         28    3     0    4294967295 4      0
ATTRIBUTE    Rad_TerminationAction   29    3     0    4294967295 4      0
ATTRIBUTE    Rad_CalledStationId     30    2     1    200        24     0
ATTRIBUTE    Rad_CallingStationId    31    2     1    200        24     0
ATTRIBUTE    Rad_NASkientifier       32    0     0    0          0      0
ATTRIBUTE    Rad_ProxyState          33    0     0    0          0      0
ATTRIBUTE    Rad_LoginLATSeryice     34    0     0    0          0      0
ATTRIBUTE    Rad_LoginLATNode        35    0     0    0          0      0
ATTRIBUTE    Rad_LoginLATGroup       36    0     0    0          0      0
ATTRIBUTE    Rad_FramedAppleTalkLink 37    0     0    0          0      0
ATTRIBUTE    Rad_FramedAppleTalkNetwork  38    0    0    0          0    0
ATTRIBUTE    Rad_FramedAppleTalkZone     39    0    0    0          0    0
ATTRIBUTE    Rad_AcctStatusType          40    3    0    4294967295 4    0
ATTRIBUTE    Rad_AcctDelayTime           41    3    0    4294967295 4    0
ATTRIBUTE    Rad_AcctInputOctets         42    0    0    0          0    0
ATTRIBUTE    Rad_AcctOutputOctets        43    0    0    0          0    0
ATTRIBUTE    Rad_AcctSessionId           44    2    1    200        56   0
ATTRIBUTE    Rad_AcctAuthentic           45    0    0    0          0    0
ATTRIBUTE    Rad_AcctSessionTime         46    0    0    0          0    0
ATTRIBUTE    Rad_AcctInputPackets        47    3    0    4294967295 4    0
ATTRIBUTE    Rad_AcctOutputPackets       48    3    0    4294967295 4    0
ATTRIBUTE    Rad_AcctTerminateCause      49    3    0    4294967295 4    0
ATTRIBUTE    Rad_AcctMultiSessionId      50    0    0    0          0    0
ATTRIBUTE    Rad_AcctLinkCount           51    0    0    0          0    0
ATTRIBUTE    Rad_CHAPChallenge           60    2    5    32         24   0
ATTRIBUTE    Rad_NASPortType             61    3    0    4294967295 4    0
ATTRIBUTE    Rad_PortLimit               62    0    0    0          0    0
ATTRIBUTE    Rad_LoginLATPort            63    0    0    0          0    0
ATTRIBUTE    Rad_AcctInterimInterval     85    3    0    4294967295 4    0
ATTRIBUTE    Rad_NASPortId               87    2    1    200        32   0
ATTRIBUTE    Rad_FramedPool              88    3    0    4294967295 4    0
ENDLEVEL
LEVEL        1
#head        name                                  type  kind min  max         width  form
ATTRIBUTE    Rad_InputPeakRate                     1     3    0    4294967295  4      0
ATTRIBUTE    Rad_InputAverageRate                  2     3    0    4294967295  4      0
ATTRIBUTE    Rad_InputBasicRate                    3     3    0    4294967295  4      0
ATTRIBUTE    Rad_OutputPeakRate                    4     3    0    4294967295  4      0
ATTRIBUTE    Rad_OutputAverageRate                 5     3    0    4294967295  4      0
ATTRIBUTE    Rad_OutputBasicRate                   6     3    0    4294967295  4      0
ATTRIBUTE    Rad_InputKilobytesBeforeTariffSwitch  7     3    0    4294967295  4      0
ATTRIBUTE    Rad_OutputKilobytesBeforeTariffSwitch 8     3    0    4294967295  4      0
ATTRIBUTE    Rad_InputPacketsBeforeTariffSwitch    9     3    0    4294967295  4      0
ATTRIBUTE    Rad_OutputPacketsBeforeTariffSwitch   10    3    0    4294967295  4      0
ATTRIBUTE    Rad_InputKilobytesAfterTariffSwitch   11    3    0    4294967295  4      0
ATTRIBUTE    Rad_OutputKilobytesAfterTariffSwitch  12    3    0    4294967295  4      0
ATTRIBUTE    Rad_InputPacketsAfterTariffSwitch     13    3    0    4294967295  4      0
ATTRIBUTE    Rad_OutputPacketsAfterTariffSwitch    14    3    0    4294967295  4      0
ATTRIBUTE    Rad_RemanentVolume                    15    3    0    4294967295  4      0
ATTRIBUTE    Rad_TariffSwitchInterval              16    3    0    4294967295  4      0
ATTRIBUTE    Rad_ISPID                             17    2    0    64          32     0
ATTRIBUTE    Rad_MaxUsersPerLogicPort              19    3    0    4294967295  4      0
ATTRIBUTE    Rad_Command                           20    3    0    4294967295  4      0
ATTRIBUTE    Rad_Priority                          22    3    0    4294967295  4      0
ATTRIBUTE    Rad_ControlIdentifier                 24    3    0    4294967295  4      0
ATTRIBUTE    Rad_ResultCode                        25    3    0    4294967295  4      0
ATTRIBUTE    Rad_ConnectId                         26    3    0    4294967295  4      0
ENDLEVEL

Claims (5)

1.一种实现用户业务远程验证拨号RADIUS协议的编码和解码方法,RADIUS协议栈类包含多个RADIUS协议栈,其特征在于,当RADIUS协议处理器对任一RADIUS协议栈进行编码和解码处理时,执行以下步骤:
(1)将该RADIUS协议栈下定义的结构信息写入存储器内,所述结构信息包括每一属性的各种特征信息和每种类型RADIUS报文中所使用属性的各种使用状态信息,并且不同RADIUS协议栈下定义的所述结构信息都具有预先确定的统一格式;以及
(2)从存储器内读取具有所述预先确定的统一格式的结构信息;以及
(3)对于每一种具有所述预先确定的统一格式的结构信息,都以不同RADIUS协议栈之间都相同的编码和解码方式进行处理以获得实现该RADIUS协议栈的指令代码。
2.如权利要求1所述的实现RADIUS协议的编码和解码方法,其特征在于,每个RADIUS协议栈下定义的结构信息按照以下统一格式写入一个可存储在存储器内的配置文件中:
所述配置文件由头部、报文和属性三部分组成,每一部分由字段组成,其中,头部部分包含分别描述每个RADIUS协议栈内最大和最小报文长度、是否过滤未知属性、基本属性的最小长度、结构型属性的最小长度的字段;报文部分用于描述每个RADIUS协议栈下每个RADIUS报文所使用属性的使用状态信息,包含分别描述每种RADIUS报文内所使用属性的属性编号、属性性质、属性在目标报文结构中出现次数的字段;属性部分用于描述每个RADIUS协议栈下每一属性的特征信息,包含分别描述每个属性的属性名称、属性编号、属性数据类型、属性最小长度或最小值、属性最大长度或最大值、属性在报文结构中的长度和结构型属性标志的字段。
3.如权利要求2所述的实现RADIUS协议的编码和解码方法,其特征在于,属性部分分为描述基本属性和子属性特征信息的两部分,其中基本属性的特征信息包含分别描述每个基本属性的属性名称、属性编号、属性数据类型、属性最小长度或最小值、属性最大长度或最大值、属性在报文结构中的长度和结构型属性标志的字段,子属性的特征信息包含分别描述每个子属性的属性名称、属性编号、属性数据类型、属性最小长度或最小值、属性最大长度或最大值、属性在报文结构中的长度和结构型属性标志的字段。
4.如权利要求2或3所述的实现RADIUS协议的编码和解码方法,其特征在于,在对属性的结构信息进行编码和解码时,对编码和解码后RADIUS报文中的属性长度和属性取值范围与配置文件进行比较以确定编码和解码处理是否正确。
5.如权利要求2或3所述的实现RADIUS协议的编码和解码方法,其特征在于,在对属性的结构信息进行编码和解码时,对编码和解码后RADIUS报文中属性可能出现个数与配置文件进行比较以确定编码和解码处理是否正确。
CN 02136148 2002-07-22 2002-07-22 一种实现用户业务远程验证拨号协议的编码和解码方法 Expired - Fee Related CN1219383C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 02136148 CN1219383C (zh) 2002-07-22 2002-07-22 一种实现用户业务远程验证拨号协议的编码和解码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 02136148 CN1219383C (zh) 2002-07-22 2002-07-22 一种实现用户业务远程验证拨号协议的编码和解码方法

Publications (2)

Publication Number Publication Date
CN1471260A CN1471260A (zh) 2004-01-28
CN1219383C true CN1219383C (zh) 2005-09-14

Family

ID=34146324

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 02136148 Expired - Fee Related CN1219383C (zh) 2002-07-22 2002-07-22 一种实现用户业务远程验证拨号协议的编码和解码方法

Country Status (1)

Country Link
CN (1) CN1219383C (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645886A (zh) * 2009-07-21 2010-02-10 上海宝信软件股份有限公司 电文数据的自动解包与校验方法
CN101631126B (zh) * 2009-08-06 2012-09-05 中兴通讯股份有限公司 一种自适应编码/解码方法和装置
CN102761543B (zh) * 2012-06-27 2016-03-16 北京中创信测科技股份有限公司 一种实现sip协议通用编解码的方法和装置
CN104281632B (zh) * 2013-07-11 2018-05-25 深圳市金正方科技股份有限公司 基于对象协议映射的编码解码方法及系统
CN110557377B (zh) * 2019-08-01 2021-08-27 福建星云电子股份有限公司 动力电池配对修复设备兼容多种通信协议的方法及系统

Also Published As

Publication number Publication date
CN1471260A (zh) 2004-01-28

Similar Documents

Publication Publication Date Title
CN1302408C (zh) 认证系统、认证装置、终端装置以及认证方法
CN1482568A (zh) 用于防止记录介质非授权使用的系统
CN1647139A (zh) 数据变换装置和数据变换方法
CN101040306A (zh) 伪随机数生成装置
CN1126053C (zh) 文件检索方法、文件检索发送方法及装置
CN1650571A (zh) 内容处理装置、内容存储介质、内容处理方法和内容处理程序
CN1960190A (zh) Ldpc码校验矩阵构造方法及利用该方法的编码解码装置
CN1856036A (zh) 字幕产生设备和方法
CN1787525A (zh) 双证书在ssl协议中的应用方法
CN1969292A (zh) 用户轮廓管理系统
CN1591397A (zh) 安全数据管理设备
CN1950798A (zh) 可移动介质上的软件安装
CN1834889A (zh) 软件认证系统和软件认证程序及软件认证方法
CN101030138A (zh) 应用构架
CN1832457A (zh) 数据包通信装置及功能扩展方法
CN1178461C (zh) 图像编码装置、图像译码装置、传真装置
CN1633749A (zh) 获得循环冗余码
CN1692321A (zh) 口令恢复系统
CN1507202A (zh) 设备管理系统、设备管理终端、网络设备、终端程序、设备程序以及设备管理方法
CN1436004A (zh) 正交变换、逆正交变换方法及装置、编码、解码方法及装置
CN1918844A (zh) 基于保密共享方案的保密信息管理方案
CN1219383C (zh) 一种实现用户业务远程验证拨号协议的编码和解码方法
CN1806235A (zh) 程序、计算机和数据处理方法
CN1825355A (zh) 计算机图形数据编码装置、解码装置、编码和解码方法
CN1468479A (zh) 用于通过一个为2的幂的公用指数证明一个实体的真实性和/或者一个消息的完整性的方法

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20050914

Termination date: 20120722