信息技术 面向对象的生物特征识别应用编程接口 第4部分:C++实现_第1页
信息技术 面向对象的生物特征识别应用编程接口 第4部分:C++实现_第2页
信息技术 面向对象的生物特征识别应用编程接口 第4部分:C++实现_第3页
信息技术 面向对象的生物特征识别应用编程接口 第4部分:C++实现_第4页
信息技术 面向对象的生物特征识别应用编程接口 第4部分:C++实现_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1GB/T41903.4—XXXX信息技术面向对象的生物特征识别应用编程接口第4部分:C++实现本文件确立了BioAPIC++框架和BioAPIC++BSP接口,与GB/T41903.1—2022确立的组件相对应。本文件适用于面向对象的生物特征识别应用的C++编程接口的开发和应用。2规范性引用文件下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。GB/T13000—2010信息技术通用多八位编码字符集(UCSGB/T13000—2010,ISO/IEC10646:2003,IDT)GB18030信息技术中文编码字符集GB/T41903.1信息技术面向对象的生物特征识别应用编程接口第1部分:体系结构(GB/T41903.1—2022,ISO/IEC30106-1:2016,MOD)GB/T41903.2信息技术面向对象的生物特征识别应用编程接口第2部分:Java实现(GB/T41903.2—2022,ISO/IEC30106-2:2020,MOD)GB/T41903.3信息技术面向对象的生物特征识别应用编程接口第3部分:C#实现(GB/T41903.3—2022,ISO/IEC30106-3:2020,MOD)ISO/IEC14882C++编程语言(Programminglanguages—C++)3术语和定义本文件没有需要界定的术语和定义。4缩略语下列缩略语适用于本文件。ACBio生物特征认证背景资料(AuthenticationContextforBiometrics)API应用编程接口(ApplicationProgrammingInterface)BFP生物特征识别功能供方(BiometricFunctionProvider)BIR生物特征信息记录(BiometricInformationRecordBDB生物特征数据块(BiometricDataBlock)BSP生物特征识别服务供方(BiometricServiceProvider)URL统一资源定位符(UniformResourceLocator)GUI图形用户接口(GraphicalUserInterface)FMR误匹配率(FalseMatchRate)2GB/T41903.4—XXXXCBEFF公用生物特征识别交换格式框架(CommonBiometricExchangeFormatsFramework)MAC消息鉴别码(MessageAuthenticanCode)SB安全块(SecurityBlock)UUID通用唯一标识符(UniversallyUniqueIdentifier)5BioAPIC++通用要求本文件定义的所有类都应具有一个将其所有属性作为参数的构造函数,以及一个将释放所有已分配内存的析构函数。此外,每个类的定义可包含对构造函数的进一步要求。析构函数应至少符合GB/T41903.2和GB/T41903.3中相对应定义Dispose()方法的要求。此外,大多数实现应声明类为导出类。因此,本文件中定义的BIOAPI常量,允许导出类。本文件定义一个BioAPI命名空间,包含所有数据结构。本文件中对给出的规范的使用说明见附录A。6数据类型和常量6.1基础数据类型6.1.1枚举BiometricSubtype使用的生物特征数据的子类型(例如指纹模态中使用的具体手指)。当3GB/T41903.4—XXXXBiometricType使用的生物特征数据的类型(例如模态)。BIRDatabaseAccess——ReadWrite:允许添加、删除和检索——Write:允许添加和删除记录,但不支持检索BSPSchemaOperations枚举了BSP能够提供给生物特征识别应用的不同操作,见6.6。4GB/T41903.4—XXXXBSPSchemaOptions枚举了BSP可以处理的不同选项,见6.6。EventKindGB/T41903.4—XXXXFacilityGUIEnrolTypeGUIMoment在调用GUI回调函数时,确定操作的进度时0GUIOperation在调用GUI回调函数时,确定正在执行的操1GUIResponse56GB/T41903.4—XXXX2GUISuboperation在一个操作中,枚举BSP可能执行的子操作类型,将在GUI事件通知中报3ProcessedLevel4Purpose——EnrolForVerificatio——EnrolForIdentificacio5ResultOptions定义对某些BioAPI方法的请求,以向最初定义的方法提供附加结果,例如,见7.3.2。——RequestAdaptedBIR:请求通过使用作为生——RequestPayload:请求在验证成功后返回Req——RequestAdditionalData:请求使用附加数据,例如6SecurityOptionsType7GB/T41903.4—XXXX——ACBioGenerationWithD字签名生成ACBio。7UnitCategoryType——Comparison:该单元是比对算法的集合(0x0000——Processing:该单元是处理算法的集合(0x0000——Sensor:该单元管理硬件传感器(0x0000——QualityAssessment:该单元是不同质量评估过程的集合(0x0008UnitIndicatorStatus9UnitPowerMode6.1.2BioAPIData说明定义了在面向对象BioAPI框架下用于交换的通用数据。C++定义typedefvector<unsignedchar>BIOAPIBioAPIData。6.1.3RegistryID8GB/T41903.4—XXXX说明定义了使用的数据标识或产品标识。相关标识方法是在ISO/IEC19785生物特征识别信息记录中(BIRs)的不同字段定义的两个部分组成的结构。属性汇总属性汇总如下:——unsignedshortOwner;——unsignedshortType。C++定义typedefstructBIOAPIRegistryID{unsignedshortowner;unsignedshorttype;}RegistryID。说明在本文件中,无论是组件还是用户都需要使用唯一标识符。本文件中将通用唯一标识符(UUID)定义为16字节的数组。C++定义typedefarray<unsignedchar,16>BIOAPIUUID。6.1.5日期和时间在本文件中,日期和时间将由标准ctime库中包含的tm结构来处理。6.2ACBioparameters类6.2.1说明提供用于生成ACBio实例的信息的结构。6.2.2属性汇总属性汇总如下:——vector<int>Challenge:在使用ACBio进行生物特征验证时来自验证器的挑战码。该值应设置为ACBio实例中ACBioContentInformation类型的字段controlValue的值;——vector<int>InitialBPUIOIndexOutput:在生成ACBio实例时,分配给BioAPI_Unit、BFP或者BSP输出的BPUIO索引的初始值。InitialBPUIOIndexOutput与SupremumBPUIOIndexOutput的区间应按照BSPUnit的数量和被BSP接受的BFP的数量划分成段,并分配给BSPUnit和BSP;9GB/T41903.4—XXXX——vector<int>SupremumBPUIOIndexOutput:生成ACBio实例时,分配给BioAPI单元、BFP或BSP输出的BPUIO索引的上确界。6.3BFPListElement类6.3.1说明使用类别和UUID标识BFP。当查询BSP所支持的已安装的BFP时,BSP将返回一个列表。6.3.2属性汇总属性汇总如下:——UnitCategoryTypeUnitCategory:单元的类别;——UUIDBFPID:分配给BFP的UUID。6.4BFPSchema类6.4.1说明表示组件注册表中的记录,该记录定义了安装在系统中的BFP的属性。是一个可序列化的类。6.4.2属性汇总属性汇总如下:——UUIDBFPUUID:BFP的UUID;——UnitCategoryTypeBFPCategory:用BFPUUID标识的BFP类别;——stringBFPDescription:包含BFP文本描述的以NULL结束的字符串;——stringPath:一个指向以NULL结束的字符串的指针,该字符串包含BFP可执行代码文件的路径,并且包括文件名。路径可能是URL。该字符串应由GB18030中规定的字符组成,并与GB/T13000-2010的附录D建立映射关系。在函数调用中使用BFPSchema时,接受该调用的组件为Path模式元素分配内存,并调用组件释放内存;——stringSpecVersion:实现BFP的BioAPI规范的主/次版本号;——stringProductVersion:BFP软件的版本字符串;——stringVendor:包含BFP供应商名称的以NULL结束的字符串;——vector<unsignedchar>BFPProperty;——vector<RegistryID>BFPSupportedFormats:BFP支持的数据格式列表,见8.1;——vector<BiometricType>FactorsMask:BFP支持的生物特征类型列表,见8.1;——UUIDFwPropertyID:以下BFP属性格式的UUID;——vector<unsignedchar>FwProperty:含有BFP属性的缓存区的地址和长度。BFP属性的格式和内容可以由供应商规定,也可以在相关标准中规定。6.5BIR类6.5.1说明该接口表示生物特征识别信息记录(BIR)。它支持ISO/IEC19785中的定义,既适用于简单BIR也适用于复杂BIR。GB/T41903.1中给出了应使用的维护者格式规范。6.5.2属性汇总GB/T41903.4—XXXX属性汇总如下:——RegistryIDSelfID;——unsignedcharCBEFFVersion;——unsignedcharPatronHeaderVersion;——RegistryIDBDBFormat;——boolBDBEncription;——boolBIRIntegrity;——BiometricTypeBDBBiometricType;——BiometricSubtypeBDBBiometricSubtype;——RegistryIDBDBCaptureDevice;——RegistryID——RegistryIDBDBComparisonAlg;——RegistryIDBDBCompresionAlg;——RegistryIDBDBPADTechnique;——vector<unsignedchar>BDBChallengeResponse;——tmBDBCreationDate;——vector<unsignedchar>BDBIndex;——ProcessedLevelBDBProcessedLevel;——RegistryIDBDBProduct;——PurposeBDBPurpose;——unsignedcharBDBQuality;——RegistryIDBDBQualityAlg;——vector<tm>BDBValidityPeriod;——tmBIRCreationDate;——vector<unsigned——vector<unsigned——vector<unsigned——vector<unsignedchar>BIRCreator;char>BIRIndex;char>BIRPayload;char>BIRPointer;——vector<tm>BIRValidityPeriod;——RegistryIDSBFormat;——vector<unsignedchar>BDBData;——vector<unsignedchar>SBData。6.5.3方法汇总BIR(vector<unsignedchar>record)BIR(RegistryIDbDBFormat,boolbDBEncription,boolbIRIntegrity,BiometricTypebDBBiometricType,BiometricSubtypebDBBiometricSubtype,RegistryIDbDBCaptureDevice,GB/T41903.4—XXXXRegistryIDbDBFeatureExtractionAlg,RegistryIDDBComparisonAlg,RegistryIDbDBCompresionAlg,RegistryIDbDBPADTechnique,vector<unsignedchar>bDBChallengeResponse,tmbDBCreationDate,vector<unsignedchar>bDBIndex,ProcessedLevelbDBProcessedLevel,RegistryIDbDBProduct,PurposebDBPurpose,unsignedcharbDBQuality,RegistryIDbDBQualityAlg,vector<tm>bDBValidityPeriod,tmbIRCreationDate,vector<unsignedchar>bIRCreator,vector<unsignedchar>bIRIndex,vector<unsignedchar>bIRPayload,vector<unsignedchar>bIRPointer,vector<tm>bIRValidityPeriod,RegistryIDsBFormat,vector<unsignedchar>bDBData,vector<unsignedchar>sBData)如果输入的参数无效,格式不被支持或者由于错误导致操作失败,则抛出BioAPIException,见vector<unsignedchar>ToArray()6.6BSPSchema类6.6.1说明表示组件注册表中的记录,该记录定义了安装在系统中的BSP的属性。是一个可序列化的类。6.6.2属性汇总属性汇总如下:——UUIDBSPUUID;——stringBSPDescription:包含BSP文本描述的以NULL结束的字符串;——stringPath:一个指向以NULL结束的字符串的指针,该字符串包含BSP可执行代码文件的路径,并且包括文件名。路径可能是URL。该字符串由GB18030中规定的字符组成,并与GB/T13000-2010的附录D建立映射关系。在函数调用中使用BioAPI_BSP_SCHEMA时,接受该调用的组件为Path模式元素分配内存,并调用组件释放内存;——stringSpecVersion:实现BSP的BioAPI规范的主/次版本号;——stringProductVersion:BSP软件版本的字符串;——stringVendor:包含BSP供应商名称的以NULL结束的字符串;——vector<RegistryID>BSPSupportedFormats:BSP支持的数据格式列表,见6.1.3;——vector<BiometricType>FactorsMask:BSP支持的生物特征类型列表,见;——vector<BSPSchemaOperations>Operations:BSP支持的生物特征识别操作列表,见;——vector<BSPSchemaOptions>Options:BSP支持的生物特征识别选项列表,见;GB/T41903.4—XXXX——intAdditionalDataPolicy:设置的阈值(FMR最大值),用于决定验证成功后何时释放additionalData;——intMaxAdditionalDataSize:BSP可接受的additionalData的最大容量(以字节为单位);——intDefaultVerifyTimeout:当应用未规定超时时,BSP用于Verify操作的默认超时值(以毫秒为单位);——intDefaultIdentifyTimeout:当应用未规定超时时,BSP用于Identify和BioAPI_IdentifyMatch操作的默认超时值(以毫秒为单位);——intDefaultCaptureTimeout:当应用未规定超时时,BSP用于Capture操作的默认超时值(以毫秒为单位);——intDefaultEnrolTimeout:当应用未规定超时时,BSP用于Enrol操作的默认超时值(以毫秒为单位);——intDefaultCalibrateTimeout:当应用未规定超时时,BSP用于传感器校准操作操作的默认超时值(以毫秒为单位);——intMaxBSPDbSize:BSP控制的BIR数据库的最大容量。它仅适用于BSP只能直接管理单个存档单元的情况。值为0表示没有提供关于数据库容量的信息,原因有以下三个:不支持数据库;能够直接或通过BFP接口管理多个单元,每个单元可能具有不同的最大容量,有关这些单元的信息将作为插入通知的一部分(UnitSchema的一部分)提供;支持一个存档单元,但这里不提供信息(它将在插入通知中提供)。——intMaxIdentify:辨识函数支持的最大用户集。如果最大用户集没有限制,则表示为Unlimited=0xFFFFFFFF;——intMaxNumEnrolInstances:在一次注册操作中,BSP能够为其创建参考模板的不同实例的最大数量。这些信息有可能对使用应用控制的GUI特性的应用程序有用;——vector<unsignedchar>HostingEndpointIRI:一个标识框架的IRI,该框架的组件注册表包含BSP的注册。符合本文件的框架应忽略该参数,应用应将其设置为NULL。提供它是为了支持互操作标准,这些标准可以规定在相同或不同计算机上运行的应用程序中,使用多台计算机上存在的相同的BSP;——UUIDBSPAccessUUID:一个UUID,其在应用范围内是唯一的,应用可以使用该UUID来引用BSP,作为BSP产品UUID的替代。符合本文件的框架应忽略此参数,应用可以将其设置为任何UUID值。提供它是为了支持互操作标准,这些标准可以规定在相同或不同计算机上运行的应用程序中,使用多台计算机上存在的相同的BSP;注:“BSPAccess_UUID”和“HostingendpointIRI”是C类型BioAPI_BS注册表中的BSP模式信息的一部分,见GB/T——vector<RegistryID>BSPSupportedAlgorithms:BioAPI_ALGORITHM_ID结构的数组,表明支持的算法;——vector<UUID>BSPSupportedTransformOperations:BioAPI_UUID结构的数组,表明在BioAPI_Transform操作中支持的转换操作。6.7Candidate类6.7.1说明定义从Identify功能中产生的每个候选者。GB/T41903.4—XXXX6.7.2属性汇总属性汇总如下:——UUIDKey:定义了系统中(例如数据库中)候选者的UUID;——intFMRAchieved:表示候选者在Identify过程中获得的FMR。6.8FrameworkSchema类6.8.1说明定义BioAPI框架的属性。6.8.2属性汇总属性汇总如下:——UUIDFrameworkUUID:框架组件的UUID;——stringFwDescription:包含框架文本描述的以NULL结束的字符串;——stringPath:一个指向以NULL结束的字符串的指针,该字符串包含框架可执行代码的文件的路径,并且包括文件名。路径可能是URL。该字符串由GB18030中规定的字符组成,并与GB/T13000-2010的附录D建立映射关系;注:在函数调用中使用FrameworkSchema时,接受该调用的组件为Path模式元素分配内存,并调用组件释放内存。——stringSpecVersion:实现框架的BioAPI规范的主/次版本号;——stringProductVersion:框架软件的版本字符串;——stringVendor:包含框架供应商的名称的以NULL结束的字符串;——UUIDFwPropertyID:以下框架属性格式的UUID;——vector<unsignedchar>FwProperty:包含框架属性的缓存区的地址和长度。框架属性的格式和内容可以由供应商规定,也可以在相关标准中规定。6.9GUIBitmap类6.9.1说明通过GUI回调函数,为应用和BSP之间交换图像信息提供支持。6.9.2属性汇总属性汇总如下:——BiometricSubtypeSubtype;——intWidth;——intHeight;——vector<vector<unsignedchar>>Pixel。6.10Identifypopulation类6.10.1说明表示在生物特征辨识中进行比对的BIR集合。其提供了单个属性,即使用的用户集的成员列表。不允许在该接口之外更改此属性。GB/T41903.4—XXXX6.10.2属性汇总如前所述,通过接口方法内部修改的接口属性如下:vector<PopulationMember>PopulationIdentified:该属性可由BSP来提供用户集成员列表。6.10.3方法汇总virtualvoidAddMember(PopulationMembermember)如果输入的参数无效或者由于错误导致操作失败,则抛出BioAPIException,见11.1。virtualboolIsBound()virtualvoidUnbind()6.11PopulationMember类6.11.1说明定义了用于辨识目的的用户集列表中的一个成员。6.11.2属性汇总属性汇总如下:——UUIDkey:用户标识符,该标识符与数据库中用户的唯一标识符相关(或相同——BIRTemplate:用户的生物特征参考。6.12SecurityProfileType类6.12.1说明定义了BioAPI_Unit或生物特征识别应用的加密算法和密钥信息,这些信息用于加密/解密生物特征数据、生成/验证BIR的MAC或者数字签名;也提供了哈希算法的信息、关于MAC生成的信息,以及ACBio生成中使用的数字签名的信息。当此结构作为BioAPI_QueryUnits的输出参数用于UnitSchema接口时,结构中的参数表示BioAPI_Unit支持的信息。更多信息见GB/T30267.1。6.12.2属性汇总属性汇总如下:GB/T41903.4—XXXX——vector<SecurityOptionsType>SupportedSecurityOptions;——vector<unsignedchar>ENCInfo;——vector<unsignedchar>MACInfo;——vector<unsignedchar>SIGNAlg:标识BioAPI_Unit支持的数字签名算法。该BioAPI类型应是分配给数字签名算法的ASN.1标识符的XML值表示,见GB/T16262.1;——vector<BSPSchemaOptions>ACBioOption:一个掩码,指示BioAPI_Unit支持或执行MAC或数字签名的那些安全选项;——vector<unsignedchar>HASHAlgForACBio;——vector<unsignedchar>MACInfoForACBio;——vector<unsignedchar>SIGNAlgForACBio:作为SIGNAlg,但用于生成ACBio实例。6.13UnitList类6.13.1说明用类别和ID标识选择的BioAPI_Unit列表。该类的对象每个类别最多只能有一个UnitListElement。对于某个具体类别,如果没有UnitListElement,BSP应适当做出反应(例如,如果没有要求的可用单元,则抛出异常)。6.13.2属性汇总Vector<UnitListElement>UnitListElement:选择的单元列表。6.13.3方法汇总voidAdd(UnitListElementunitListElement)unitListElement:新单元的类型和unitID如果操作失败,则抛出BioAPIExceptiintGetUnitID(UnitCategoryTypeunitCategoryType)获取具有所选类别类型的单元的unitID。请求提供unitID的单元类别。与所提供类别类型对应的unitID。6.14UnitListElement类6.14.1说明使用类别和ID标识BioAPI_Unit。这些元素的列表用于建立在执行聚合函数期间要考虑的单元。GB/T41903.4—XXXX6.14.2属性汇总属性汇总如下:——UnitCategoryTypeUnitCategory:单元的类别;——intUnitID:分配给BioAPI_Unit的ID。6.15UnitSchema类6.15.1说明定义生物特征识别单元的属性。没有方法修改已存在的UnitSchema对象。6.15.2属性汇总属性汇总如下:——UUIDBSPUUID:支持该BioAPI单元的BSP的UUID;——UUIDUnitManagerUUID:直接管理BioAPI_Unit(BSP本身或者BFP)的软件组件的UUID;——intUnitID:BioAPI_Unit的ID。将由BSP唯一创建;——UnitCategoryTypeUnitCategory:定义BioAPI_Unit的类别;——UUIDUnitProperties:表示BioAPI_Unit的属性集的UUID。属性集可以由每个供应商规定,也可以在相关标准中规定;——stringVendorInformation:包含供应商专有信息;——vector<EventKind>SupportedEvents:指示硬件所支持的事件类型的掩码;——UUIDUnitPropertyID:下列Unit属性结构格式的UUID;——vector<unsignedchar>UnitProperty:包含描述BioAPI_Unit的单元属性的内存缓存区的地址和长度。单元属性的格式和内容可以由供应商规定,也可以在相关标准中规定;——stringHardwareVersion:一个包含硬件版本的以NULL结束的字符串。若无法获得,则为空;——stringFirmwareVersion:一个包含固件版本的以NULL结束的字符串。若无法获得,则为空;——stringSoftwareVersion:一个包含软件版本的以NULL结束的字符串。若无法获得,则为空;——stringHardwareSerialNumber:一个包含供应商定义的硬件组件的唯一序列号的以NULL结束的字符串。若无法获得,则为空;——boolAuthenticatedHardware:硬件组件是否经过认证的布尔值;——intMaxBSPDbSize:如果BioAPI_Unit为Archive单元,该单元支持的数据库的最大容量。如果为零,则数据库不存在;——intMaxIdentify:如果BioAPI_Unit为Comparison单元,为单元支持的最大辨识用户集。如果没有限制最大用户集,则表示为:Unlimited=FFFFFFFF;——vector<SecurityProfileType>SecurityProfile:BioAPI_Unit的安全配置文件。7支持BioAPI_Unit的面向对象的接口7.1通用要求每个单元宜有一个实现的UnitSchema,供BFP和/或BSP使用。另外,每个单元宜实现一个ACBioInstance。如果该单元支持ACBio,那么该单元应使用最新生成的ACBio实例更新此字段。如果不支持ACBio,则该字段应被固定为NULL。比对单元宜实现以下由Verify方法内部使用的字段:GB/T41903.4—XXXX——intFMRAchieved,表示比对过程获得的FMR值;——BIRAdaptedBIR,若由VerifyResultOptions表示,一旦根据比对生成的结果进行了更新,则保存模板的最终BIR(例如用户生物特征参考动态调整的情况);——vector<unsignedchar>AdditionalData,如果需要,则该字段保存先前调用的Verify方法生成的AdditionalData。同时,传感器单元宜实现以下字段:——vector<unsignedchar>AuxiliaryData;——UnitIndicatorStatusIndicatorStatus。7.2IArchive接口7.2.1说明该接口表示生物特征识别应用或BSP的存档功能。存档系统的具体实现取决于开发者(例如文件目录或基于SQL的数据库引擎等),只要接口遵循本文件的规定即可。应用或框架不应访问该接口中的方法和属性,因为该接口只包含在BSP或BFP中。7.2.2方法汇总voidCloseDatabase(intunitID)voidDeleteBIR(intunitID,UUIDkey)从数据库中删除BIR。如果数据库已经关闭,或者数据库以只读模式打开,或者出现任何其他类型的错误,则抛出vector<UUID>ListUUIDs(intunitID)GB/T41903.4—XXXX如果数据库已经关闭,或者数据库以只写模式打开,或者出现任何其他类型的错误,则抛出IdentifypopulationNewIdentifyPopulation(intunitID)),如果数据库已经关闭,或者数据库以只写模式打开,或者出现任何其他类型的错误,则抛出IdentifyPopulationNewIdentifyPopulation(intunitID,vector<UUID>UUIDList)将BSP或BFP使用的数据库设置为辨识操作的数据源。这也可以用来获取数据库中包含的BIR),如果数据库已经关闭,或者数据库以只写模式打开,或者出现任何其他类型的错误,则抛出IdentifyPopulationNewIdentifyPopulation(intunitID,vector<unsignedchar>query)将BSP或BFP使用的数据库设置为辨识操作的数据源。这也可被调用,来获取数据库中与指定),如果数据库已经关闭,或者数据库以只写模式打开,或者未找到记录,或者出现任何其他类型voidOpenDatabase(intunitID,vector<unsignedchar>databaseID,BIRDatabaseAccessaccess)GB/T41903.4—XXXX——dastabaseID:指定要打开的数据库的可选标识符。当不同的数据库能够与单个存档单元一起使用时,所有数据库应与存档单元的内部规程兼——access:指定对打开的数据库的访问模如果数据库已被打开,或者出现任何其他类型的错误,则抛出BioAPIException,见11.1。UUIDStoreBIR(intunitID,BIRbiometricReference)将指定的BIR添加到无UUID的数据库,允许单元返回分配的UUID。——biometricReference:要如果数据库已经关闭,或者数据库以只读模式打开,或者出现任何其他类型的错误,则抛出0voidStoreBIR(intunitID,BIRbiometricReference,UUIDkey)将指定的BIR添加到数据库,并为其分配提供的UUID。如果已经分配了UUID,则抛出异常。如果程序想要更新现有的UUID,应用程序宜首先删除它,然后重新使用UUID。这样做是为了如果数据库已经关闭,或者数据库以只读模式打开,或者UUID已经在使用中,或者出1UUIDStoreBIR(intunitID,BIRbiometricReference,vector<unsignedchar>auxiliaryData)将指定的BIR添加到无UUID的数据库,允许单元返回分配的UUID。在本文件规定)。例如,这些信息可以是与BiometricReference(生物特征参考)相关的人口——biometricReference:要——auxiliaryData:存储到数据库的,如果数据库已经关闭,或者数据库以只读模式打开,或者出现任何其他类型的错误,则抛出GB/T41903.4—XXXX2voidStoreBIR(intunitID,BIRbiometricReference,vector<unsignedchar>auxiliaryData,UUIDkey)将指定的BIR添加到数据库,并为其分配提供的UUID。如果已经分配了UUID,则抛出异常。如果程序想要更新现有的UUID,应用程序宜首先删除它,然后重新使用UUID。这样做是为了在本文件中规定)。例如,这些信息可以是与BiometricReference(生物特征参考)相关的人——biometricReference:要如果数据库已经关闭,或者数据库以只读模式打开,或者UUID已经在使用中,或者出现任何7.3IComparision接口7.3.1说明该接口包含执行生物特征比对功能所需的所有属性和方法。定义了一些属性来返回Verify方法的结果,确保它们的值不允许公开修改。方法被重载以允许比对单个样本,或者通过使用除了要比对的样本BIR以外的BIR列表,在内部适应比对算法。在该单元中,使用了FMR术语。FMR将误匹配率表示为一个32位的整数值(N),表示可能的误匹配率为N/(231-1);值越大,结果越差。负值表示异常情况。目前唯一定义的负值是-1。出于安全原因,没有提供修改现有FMR对象的方法。应用或框架不应访问该接口中的方法和属性,因为该接口只包含在BSP或BFP中。7.3.2方法汇总BIRGetAdaptedBIR(intunitID)如果由VerifyResultOptions指示,一旦被比对结果更新(例如用户的生物特征参考动态调整的情况),则该方法返回该模板的最终BIR。更新的BIR。如果没有更新的BIR,则返回NULL。intGetFMRAchieved(intunitID)GB/T41903.4—XXXXvector<Candidate>Identify(intunitID,intmaxFMRrequested,BIRprocessedBIR,boolbinning,intmaxResults,inttimeout)见。vector<Candidate>Identify(intunitID,intmaxFMRrequested,BIRprocessedBIR,vector<BIR>auxiliaryBIRs,boolbinning,intmaxResults,inttimeout)考BIR之间完成辨识(一对多)比对。输入的是为本次辨识专门采集的经过处理的BIR。与之进行比对的用户集应通过调用PresetIdent——maxFMRrequested:成功——binning:表明分箱是否运行的一个布尔值。分箱是BSP可以采用的最优化搜索技术。能是,搜索了一个应该包含但实际没有包含可匹配的BIR的分箱的情况这个值可以是任何正数。“-1”表示要使用BSP默认超时值。如果输入的参数无效,或者由于错误导致操作失败,则抛出BioAPIException,见11.1。voidPresetIdentifyPopulation(intunitID,Identifypopulationpopulation)保持有效,直到以不同的设置调用presetIdenti如果输入的参数无效,或者由于错误导致操作失败,则抛出BioAPIException,见11.1。boolVerify(intunitID,intmaxFMRrequested,BIRprocessedBIR,BIRreferenceTemplate,vector<ResultOptions>options)见。GB/T41903.4—XXXXboolVerify(intunitID,intmaxFMRrequested,BIRprocessedBIR,BIRreferenceTemplate,vector<BIR>auxiliaryBIRs,vector<ResultOptions>options)对现有的生物特征样本进行生物特征验证。该函数在两个BIR(输入BIR和生物特征参考)之间执行验证(一对一)比对。输入BIR是专门为验证而构造的经过处理的BIR。参考模板是在注AdditionalData)是否被更新。通过设置RequestAdaptedBir选项,应用可以请求通过使用输入的处理过的BIR更新参考模板来构造BIR。最终得到的、经过更新的BIR,宜被认为是最佳注册模板(使用还是或丢弃这些数据取决于应如果additionalData与参考模板相关,并且达到的FMR足够严格,则在验证成功后可返回如果输入的参数无效,或者由于错误导致操作失败,则抛出BioAPIException,见11.1。7.4IProcessing接口7.4.1说明表示使用处理类别的单元时,一组可用的生物特征识别操作。应用或框架不应访问该接口中的方法和属性,因为该接口只包含在BSP或BFP中。7.4.2方法汇总BIRCreateTemplate(intunitID,BIRcapturedBIR,BIRreferenceTemplate,RegistryIDoutputFormat,vector<unsignedchar>additionalData)见。BIRCreateTemplate(intunitID,vector<BIR>capturedBIRs,BIRreferenceTemplate,RegistryIDoutputFormat,vector<unsignedchar>additionalData)GB/T41903.4—XXXX——referenceTemplate:可选项——outputFormat:如果BSP支持多种格式,则指定返回的已处理过的BIR使用哪种BDB——additionalData:BSP将如果输入的参数无效,格式不支持或者由于错误导致操作失败,则抛出BioABIRProcess(intunitID,BIRcapturedBIR,RegistryIDoutputFormat)见。BIRProcess(intunitID,BIRcapturedBIR,vector<BIR>auxiliaryBIRs,RegistryIDoutputFormat)处理采集的生物特征样本,以创建一个处理过的生物特征样本,用于验证或辨识。通过重载方如果输入的参数无效,或者由于错误导致操作失败,则抛出BioAPIException,见11.1。unsignedcharAnalyseQuality(intunitID,BIRcapturedBIR)质量得分,可以是0(最低质量)到100(最高质量)之间的任何整数,如果质量算法未能提供评如果输入的参数无效,或者由于错误导致操作失败,则抛出BioAPIException,见11.1。GB/T41903.4—XXXX7.5.1说明表示在传感器单元中一组可用的生物特征识别操作,用于获取样本。应用或框架不应访问这个接口中的方法和属性,因为该接口只包含在BSP或BFP中。7.5.2方法汇总如果输入的参数无效,或者由于错误导致操作失败,则抛出BioAPIException,见11.1。BIRCapture(intunitID,vector<Purpos为指定目的采集样本,BSP返回中间类型的BIR或处理过的BIR。把目的记录在采集BIR的数——subtype:表示获取的生物特征样本的子类型。——timeout:表示操作超时值的整数如果BioAPI_Unit支持,则该函数将所选的BioAPI_Unit设置为所请求的指示器状态。GB/T41903.4—XXXX——indicatorStatus:设8BFP层8.1IBFP接口描述表示生物特征识别功能供方。该接口由BFP功能和BFP支持的BioAPI_Unit的集合组成。在同一个BFP中,应只包含一个类别的BioAPI_Unit。它还可以为与BSP和组件注册表的通信提供支持。8.2导入接口当BSP支持相应的BioAPI_Unit时,IBFP应导入以下接口之一,其次数与BSP支持的BioAPI_Unit数量一样多:——存档单元接口;——传感器单元接口;——处理单元接口;——比对单元接口。8.3属性汇总属性汇总如下:——BFPSchemaBFPSchema;——vector<unsignedchar>ACBioInstance。8.4事件汇总有一个公共事件允许BFP在发生关注的事情时启动相应事件:——BFPEventCallbackBFPEvent事件;——BFPGUIProgressCallbackBFPGUICallback事件。8.5方法汇总8.5.1概述除了BSP所选的单元类别的方法(在7.2、7.3、7.4或7.5给出)外,IBFP还应包括以下方法。8.5.2voidBFPLoad(BFPEventCallbackbfpNotifyCallback)初始化BFP。初始化包括为指定的BFP注册BSP事件句柄并激活所有事件。BS一个事件句柄函数来接收事件通知。许多BSP可以独立地、并发地加载相同的BFP,并且每个BSP可以建立自己的事件句柄。它们都将收到事件通知。如果一个BSP加载多个BFP,则可以对于给定的BFP,BSP可以通过一次或多次调用BFPLoad来为该BFP建立任意多的事件句柄。GB/T41903.4—XXXX事件通知可以在任何时候发生,无论是在BSP调用期间(与事件相关或无关),或在没有执行BSP调用时。无论BSP何时接收回调,BSP开bfpNotifyCallback:定义一个回调,用于向B如果任何参数无效或者初始化过程中出现任何其他错误,则抛出BioAPIException,见11.1。8.5.3voidBFPUnload()如果任何参数无效或者初始化过程中出现任何其他错误,则抛出BioAPIException,见11.1。8.5.4vector<unsignedchar>ControlUnit(intunitID,intcontrolCode,vector<unsignedchar>inputData)向BioAPI_Unit发送控制数据并从那里接收状态或操作数据。参数和输出的内容将在注:该方法用于向来自引用的BioAPI_Unit相关的内部方法发送询问。由于互操作性仅在BSP层上需要,因此这些相关内部方法调用的方式依赖于实现,8.5.5vector<unsignedchar>GetAuxiliaryData(intunitID)执行操作后,从引用的BioAPI_Unit(如传感器)获得任何可用的辅助数据。包含在前序函数运行结束后,从BioAPI_Unit接收到的辅助数据的数据缓存区。如果函数没有8.5.6vector<UnitSchema>QueryUnits()见8.5.7。GB/T41903.4—XXXX8.5.7vector<UnitSchema>QueryUnits(vector<UnitCategoryType>unitCategories)该函数返回由给定的BFP管理的,并且当前处于插入状态应只在为指定的BFP调用BFPLoad之后调用该函数。BFP中的所有单元应有定义的UnitSchema。种转换的目的是避免在BSP的范围内存在重复的单元ID。当BSP使用两),UnitSchema列表,其中每个元素描述当8.5.8voidSetPowerMode(intunitID,UnitPowerModepowerMode)如果BioAPI_Unit支持,该函数将加载的BSP所引用的BioAPI_Unit设置为要求的电源模式。9BSP层9.1IBSP接口描述表示生物特征识别服务供方。它是提供生物特征识别操作访问权限的会话对象工厂。该接口由BSP的功能和BSP支持的BioAPI_Unit的集合组成。它还可以支持与BFP和组件注册表的通信。BSP开发人员可以决定不支持发布受支持的BioAPI_Units的某些功能,向外界提供这些方法的调用,但会启动BioAPI异常,表明不支持此类方法。此外,通过继承IBSPUnitSet接口添加与框架交互所需的方法和属性。9.2导入接口当BSP支持相应的BioAPI_Unit时,IBSP应导入以下接口:——存档单元接口;——传感器单元接口;——处理单元接口;——比对单元接口。9.3属性汇总GB/T41903.4—XXXXBSP特性的公共只读属性如下:——BSPSchemaBSPSchema;——vector<unsignedchar>ACBioInstance。9.4事件汇总有一个公共事件允许BSP在发生关注的事情时启动相应事件:eventBSPEventCallbackBSPEvent。9.5方法汇总9.5.1概述除了在7.2、7.3、7.4和7.5中给出的所有BioAPI_Unit类别的方法,IBSP还应包括下列方法,尽管开发者可决定不支持其中的某些方法,但当相应的BioAPIException调用时会返回这些方法。见11.1。9.5.2voidBSPLoad(BSPEventCallbackbspNotifyCallback)初始化BSP。如果没有对BSPUnload()的相应bspNotifyCallback:定义一个回调,用如果任何参数无效,或初始化过程中出现任何其他错误,则抛出BioAPIException,见11.1。9.5.3voidBSPUnload()如果任何参数无效,或初始化过程中出现任何其他错误,则抛出BioAPIException,见11.1。9.5.4unsignedcharCheckQuality(BIRinputBIR,RegistryIDqualityAlgorithmID)该函数对包含在输入BIR中的生物特征数据进行质量评价。应用的质量算法。BSP可以通过调用BioAPI_EnumBSPs来确定支持哪些质量算法。如果请求的是不支持的算法,则应抛出BioAPIERR_UNSUPPORTED_ALGORITHMBioA——inputBIR:包含需要评价质量的生物特征数据的BIR;9.5.5vector<unsignedchar>ControlUnit(intunitID,intcontrolCode,vector<unsignedchar>inputData)向BioAPI_Unit发送控制数据并从那里接收状态或操作数据。参数和输出的内容将在注:该方法向来自引用的BioAPI_Unit相关的内部方法发送询问。由于互操作性仅在BSPGB/T41903.4—XXXX层上需要,因此这些相关内部方法调用的方式依赖于实现,这超9.5.6UUIDEnrol(UnitListunitList,BIRcapturedBIR,BIRreferenceTemplate,vector<Purpose>purpose,BiometricSubtypesubtype,RegistryIDoutputFormat,vector<unsignedchar>additionalData,vector<ResultOptions>options)见9.5.11。9.5.7UUIDEnrol(UnitListunitList,vector<BIR>capturedBIRs,BIRreferenceTemplate,vector<Purpose>purpose,BiometricSubtypesubtype,RegistryIDoutputFormat,vector<unsignedchar>additionalData,vector<ResultOptions>options)见9.5.11。9.5.8UUIDEnrol(UnitListunitList,intnumberOfPresentations,intnumberOfAttempts,BIRreferenceTemplate,vector<Purpose>purpose,BiometricSubtypesubtype,RegistryIDoutputFormat,vector<unsignedchar>additionalData,inttimeout,vector<ResultOptions>options)见9.5.11。9.5.9UUIDEnrol(UnitListunitList,BIRcapturedBIR,UUIDreferenceID,vector<Purpose>purpose,BiometricSubtypesubtype,RegistryIDoutputFormat,vector<unsignedchar>additionalData,vector<ResultOptions>options)见9.5.11。9.5.10UUIDEnrol(UnitListunitList,vector<BIR>capturedBIRs,UUIDreferenceID,vector<Purpose>purpose,BiometricSubtypesubtype,RegistryIDoutputFormat,vector<unsignedchar>additionalData,vector<ResultOptions>options)见9.5.11。9.5.11UUIDEnrol(UnitListunitList,intnumberOfPresentations,intnumberOfAttempts,UUIDreferenceID,vector<Purpose>purpose,BiometricSubtypesubtype,RegistryIDoutputFormat,vector<unsignedchar>additionalData,inttimeout,vector<ResultOptions>options)可以从初始注册开始,或者更新先前的注册。在第一种情况下,参数ReferenceTemplate或GB/T41903.4—XXXXReferenceID应是NULL。在第二种情况下,可以通过BIR(使用Refe成功注册的结果是:给创建的生物特征参考分配的UUID,以及该生物特征参考的BIR(可选它将位于BiometricReference属性中。如果出BSP负责提供与注册操作相关的默认用户接口。应用可以通过BSP.SubscribeToGUIEvents()方法提供GUI回调来请求对GUI“外观”的控制。因为Enrol()操作包括采集,所以感器设备的使用。如果有两个或两个以上应用在争用该设备,则失败的应用将等待操作完成或——capturedBIR:可选项,用于注册的BIR格式的生物特征样本,见6——numberOfAttempts:在返回一个注册失败(FTE)异常之前,该参数表示获取一个呈现——referenceID:可选项,将被更新的生物特征——outputFormat:如果BSP支持多种格式,该参数规定返回的NewTemplate使用哪种BDB格——additionalData:BSP将——timeout:表示操作超时值的整数值(以毫秒为单位),如果达到此超时值,函数将返回一个错误,并且不返回任何结果。这个值可以是任何正数。“-1”表示将使用BSP默认超时所存储的生物特征参考的UUID。如果任何参数错误,或者在处理过程中出现其他错误(例如不能访问数据库),则抛出9.5.12vector<unsignedchar>GetAuxiliaryData(intunitID)执行操作后,从引用的BioAPI_Unit(如传感器)获得任何可用的辅助数据。包含在前序函数运行结束之后,从BioAPI_Unit接收到的辅助数据的数据缓GB/T41903.4—XXXX9.5.13vector<Candidate>IdentifyAggregated(UnitListunitList,intmaxFMRrequested,BiometricSubtypesubtype,boolbinning,intmaxResults,inttimeout,vector<ResultOptions>options)见9.5.14。9.5.14vector<Candidate>IdentifyAggregated(UnitListunitList,BIRinputBIR,intmaxFMRrequested,BiometricSubtypesubtype,boolbinning,intmaxResults,inttimeout,vector<ResultOptions>options)该方法提供了聚合功能。它增加了IComparison(见6.3)中的Identify方法的功能。当BSPBSP负责提供与注册操作相关的默认用户接口。应用可以通过BSP.SubscribeToGUIEvents()方法提供GUI回调来请求对GUI“外观”的控制。因为这个操作包括采集,所以它序列化了传——inputBIR:待辨识的原始的或处理过的BIR;),9.5.15vector<BFPListElement>QueryBFPs(vector<UnitCategoryType>unitCategories)返回当前会话中BSP支持的可用的BFP的标识。unitCategories:可选项,请求枚举的单元模式9.5.16vector<UnitSchema>QueryUnits()见9.5.17。GB/T41903.4—XXXX9.5.17vector<UnitSchema>QueryUnits(vector<UnitCategoryType>unitCategories)BSP中的所有单元应有一个定义的UnitSchema。unitCategories:可选项,请求枚举的单元模式9.5.18boolVerifyAggregated(UnitListunitList,intmaxFMRrequested,BIRreferenceTemplate,BiometricSubtypesubtype,inttimeout,vector<ResultOptions>options)见9.5.21。9.5.19boolVerifyAggregated(UnitListunitList,intmaxFMRrequested,BIRinputBIR,BIRreferenceTemplate,BiometricSubtypesubtype,inttimeout,vector<ResultOptions>options)见9.5.21。9.5.20boolVerifyAggregated(UnitListunitList,intmaxFMRrequested,UUIDreferenceKey,BiometricSubtypesubtype,inttimeout,vector<ResultOptions>options)见9.5.21。9.5.21boolVerifyAggregated(UnitListunitList,intmaxFMRrequested,BIRinputBIR,UUIDreferenceKey,BiometricSubtypesubtype,inttimeout,vector<ResultOptions>options)法提供GUI回调来请求对GUI“外观”的控制。因为这个操作包括采集,所以它序列化了传感时过期。这种序列化发生在所有采集数据的函数中。BSP负责序列化。它可以通过抛出异常来——inputBIR:待验证的原始的或——referenceKey:用于验证的生物特——referenceTemplate:与用于验证的生物特征参GB/T41903.4—XXXX这个值可以是任何正数。“-1”表示将使用BSP默认超时值;如果出现任何Capture异常(7.5)或者Verify异常(7.3),则抛出BioAPIException,见9.5.22voidSetPowerMode(intunitID,UnitPowerModepowerMode)9.5.23voidSubscribeToGUIEvents(GUISelectEventCallbackguiSelectEventCallback,GUIStateEventCallbackguiStateEventCallback,GUIProgressEventCallbackguiProgressEventCallback)如果该方法是用先前已经分配回调函数的确定事件调用,则该方法只需简单的用当前调用中提——guiStateEventCall——guiProgressEventCallback9.5.24voidUnsubscribeFromGUIEvents()该方法清除之前订阅的回调地址。调用该函数后,BSP应停止向框架或应用通知GUI事件。10框架层10.1IComponentRegistry接口10.1.1说明表示组件注册表的接口。安装程序在框架管理的组件注册表中添加、删除和修改BSP及BFP的记录。由于组件是由所提供的方法管理的,因此组件注册表的实现方式取决于开发人员。有关组件注册表内部应包含的信息(例如框架、BSP、单元模式)的更多内容,见GB/T30267.1的“组件注册表接口”章节。10.1.2方法汇总GB/T41903.4—XXXXvoidInstallBFP(BFPSchemabfpSchema,boolupdate)——update:如果为真,则执行现有BFP的更新(即,如果尚未安装此类BFP,则返回ERR_COMPONENT_NOT_REGISTEREDBioAPIException)。如果为假,则安装一个新BFP。如果已经安装了BFP,则抛出ERR_COMPONENT_ALREADY_REGISTEREDvoidInstallBSP(BSPSchemabspSchema,boolupdate)在组件注册表中安装或更新对BSP的引用。该函数在BioAPI框架内部处理,不传递给BSP。——update:如果为真,则执行现有BSP的更新(即,如果尚未安装此类BSP,则返回ERR_COMPONENT_NOT_REGISTEREDBioAPIExcept已经安装了BSP,则抛出ERR_COMPONENT_ALREADY_REGISTEREDBivoidUninstallBFP(UUIDbfpUUID)该函数在BioAPI框架内部处理,不传递给BFP。voidUninstallBSP(UUIDbspUUID)该函数在BioAPI框架内部处理,不传递给BSP。10.2IFramework接口10.2.1说明表示生物特征识别系统。生物特征识别系统是一个层次结构系统,其根节点是框架组件。框架控制BSP。BSP使用BFP模块向框架提供必要的服务,这些BFP模块是实现生物特征识别算法的库,以及管理传感器硬件的代码。除了BSP,框架的另一部分是组件注册表,它存储关于BSP和BFP的信息。10.2.2继承接口IFramework继承了IComponentRegistry,用于维护组件注册表,并能够安装、卸载组件,以及访问其内部信息,以允许方法的执行,如enumBFPs、queryUnits等方法。GB/T41903.4—XXXX10.2.3属性汇总有一个公共只读属性用于说明BSP特性:FrameworkSchemaFrameworkSchema。10.2.4方法汇总voidBSPLoad(UUIDbspID,BFPEventCallbacknotifyCallback,BFPEnumerationCallbackbfpEnumeration,stringcontext)初始化BSP。初始化包括激活所有事件,在最近一次调用Enabl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论