CN1219383C - 一种实现用户业务远程验证拨号协议的编码和解码方法 - Google Patents
一种实现用户业务远程验证拨号协议的编码和解码方法 Download PDFInfo
- 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
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报文中属性可能出现个数与配置文件进行比较以确定编码和解码处理是否正确。
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)
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 | 福建星云电子股份有限公司 | 动力电池配对修复设备兼容多种通信协议的方法及系统 |
-
2002
- 2002-07-22 CN CN 02136148 patent/CN1219383C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1471260A (zh) | 2004-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1302408C (zh) | 认证系统、认证装置、终端装置以及认证方法 | |
CN1482568A (zh) | 用于防止记录介质非授权使用的系统 | |
CN101040306A (zh) | 伪随机数生成装置 | |
CN1647139A (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 |