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

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

Info

Publication number
CN1471260A
CN1471260A CNA021361487A CN02136148A CN1471260A CN 1471260 A CN1471260 A CN 1471260A CN A021361487 A CNA021361487 A CN A021361487A CN 02136148 A CN02136148 A CN 02136148A CN 1471260 A CN1471260 A CN 1471260A
Authority
CN
China
Prior art keywords
attribute
rad
radius
0attribute
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.)
Granted
Application number
CNA021361487A
Other languages
English (en)
Other versions
CN1219383C (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 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_fiag   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        1        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        1        0
#SeviceType
MATTRIBUTE          6        0        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
        <!-- SIPO <DP n="9"> -->
        <dp n="d9"/>
#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-Reject
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
MATTRIBUTE       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_ServiceType    6      3    1    11   4    0
ATTRIBUTE        Rad FramedProtocol  7      3   1    100    4    0
        <!-- SIPO <DP n="10"> -->
        <dp n="d10"/>
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_FramedAppleTalkLink37  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_AcctTerminateCause49  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_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_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_InputAverageRate2   3   0  4294967295 4  0
ATTRIBUTE Rad_InputBasicRate3   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
        <!-- SIPO <DP n="11"> -->
        <dp n="d11"/>
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 v10
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
        <!-- SIPO <DP n="13"> -->
        <dp n="d13"/>
MATTRIBUTE       85       0       1       0
#VENDOR-SPECIFY
MATTRIBUTE       26       0       0       1        10
#RATE 6
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-Reject
MSGTYPE          3
#REPLY-MESSAGE
MATTRIBUTE       18       0       1       0
#VENDOR-SPECIFY
MATTRIBUTE       26       0       0       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       l1       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       1       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
        <!-- SIPO <DP n="14"> -->
        <dp n="d14"/>
#REMANENT-VOLUME
MATTRIB UTE      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
#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
#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
        <!-- SIPO <DP n="15"> -->
        <dp n="d15"/>
MATTRIBUTE       17      0        1        0
#PRIORTY
MATTRIBUTE       22      0        1        0
ENDMSG
#Control-Result
MSGTYPE             20
#FRAMED-IP-ADDRESS
MATTRIBUTE       8       0        1        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 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_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 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
        <!-- SIPO <DP n="16"> -->
        <dp n="d16"/>
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_AectDelayTime        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_AectAuthentie   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_AcctTerminateCause49 3   0      4294967295   4   0
ATTRIBUTE   Rad_AcctMultiSessionId50  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
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_OutputPacketsAfierTariffSwitch        14      3     0    4294967295  4      0
ATTRIBUTE   Rad_RemanentVolume           15    3  0  4294967295  4     0
ATTRIBUTE   Rad_TariffSwitchInterva116     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 true CN1471260A (zh) 2004-01-28
CN1219383C 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)

Cited By (5)

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

Cited By (7)

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

Also Published As

Publication number Publication date
CN1219383C (zh) 2005-09-14

Similar Documents

Publication Publication Date Title
US11438167B2 (en) Method and server for providing notary service for file and verifying file recorded by notary service
TWI820024B (zh) 去信任確定性狀態機之電腦實施方法
US10372942B1 (en) Method and server for providing notary service for file and verifying file recorded by notary service
CA2203779C (en) Digital document authentication system for providing a certificate which authenticates and uniquely identifies a document
US8874921B2 (en) System and method for generating keyless digital multi-signatures
US11394556B2 (en) Blockchain-enabled computing
US8625636B2 (en) Checked write operation dispersed storage network frame
EP1983662A1 (en) Data synchronization method, system and device
MXPA97003078A (en) Digital document authentication system to provide a certificate that authenticates and singularly identifies a document
CN1574741A (zh) 在有线/无线通信系统中使用标记语言的验证方法
JP2675032B2 (ja) 伝票圧縮文の作成方法
US6950934B2 (en) Method for managing certificate revocation list by distributing it
CN107635028B (zh) 一种资源的命名方法、装置、区块链集群和电子设备
CN114968323A (zh) 一种基于国密算法的差分升级方法
CN106548043A (zh) 一种应用程序的授权方法、安装方法、安装端及系统
CN1471260A (zh) 一种实现用户业务远程验证拨号协议的编码和解码方法
CN116015955A (zh) 可配置的验证应用系统中上传文件合法性安全性的方法
CN114422608B (zh) 一种数据传输方法、装置及设备
CN114896569A (zh) 基于区块链的代码版权登记系统、方法及平台
US20070234407A1 (en) Method for Authenticating a Communications Unit Using a Permanently Programmed Secret Codeword
CN112348524A (zh) 反欺诈决策方法、装置、设备及计算机存储介质
CN117034369B (zh) 地址数据处理方法、装置、设备以及介质
EP4142211A1 (en) Document integrity protection
US11750557B2 (en) Network address compression for electronic devices
CN110709872B (zh) 解锁交易字节码的约束注入

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