openharmony 鸿蒙 js-apis-net-eap

2026-08-25 浏览 (1)

@ohos.net.eap (扩展认证)

该模块提供了第三方客户端接入802.1X认证(一种基于端口的网络接入控制协议)流程的机制,支撑客户端的定制认证等功能。

说明:

本模块首批接口从API version 20开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import {eap} from '@kit.NetworkKit';

eap.regCustomEapHandler

regCustomEapHandler(netType: number, eapCode: number, eapType: number, callback: Callback<EapData>): void

用于指定需要定制化处理的EAP报文类型和对应的处理callback。使用callback异步回调。

系统会将符合条件的EAP报文送入callback函数中供企业应用获取。

需要权限:ohos.permission.MANAGE_ENTERPRISE_WIFI_CONNECTION

系统能力:SystemCapability.Communication.NetManager.Eap

参数:

参数名类型必填说明
netTypenumber网络类型,取值为1或2。
netType=1表示WLAN,netType=2表示以太网。
eapCodenumber需要进行定制的EAP code,取值为1、2、3、4 。
code=1 Request、 code=2 Response、 code=3 Success、 code=4 Failure。
eapTypenumber需要进行定制处理的EAP method类型,取值范围[0, 255]。
常用取值包括:eapType=1 Identity,eapType=2 Notification,eapType=3 NAK,eapType=4 MD5-Challenge,eapType=5 OTP(One-Time Password),eapType=6 GTC(Generic Token Card),eapType=13 EAP-TLS,eapType=21 EAP-TTLS,eapType=25 EAP-PEAP,eapType=254 Expanded Types,eapType=255 Experimental use。
callbackCallback<EapData>回调函数,返回指定的eapCode+eapType的报文。

错误码

以下错误码的详细介绍请参见通用错误码扩展认证错误码

错误码ID错误信息
201Permission denied.
33200006Invalid net type.
33200007Invalid eap code.
33200008Invalid eap type.
33200009netmanager stop.
33200099internal error.

示例:

import {eap} from '@kit.NetworkKit';
let netType = 1;
let eapCode = 1;
let eapType = 25;
let  eapData = (eapData:eap.EapData):void => {
  console.info("rsp result",JSON.stringify(eapData))
}
    
try {
  eap.regCustomEapHandler(netType, eapCode, eapType, eapData);
  console.info('regCustomEapHandler success');
} catch (err) {
  console.error('errCode: ' + err.code + ', errMessage: ' + err.message);
}

eap.unregCustomEapHandler

unregCustomEapHandler(netType:number, eapCode: number, eapType: number, callback: Callback<EapData>): void

用于指定需要取消定制化处理的EAP报文类型和对应的处理callback。使用callback异步回调。

需要权限:ohos.permission.MANAGE_ENTERPRISE_WIFI_CONNECTION

系统能力:SystemCapability.Communication.NetManager.Eap

参数:

参数名类型必填说明
netTypenumber网络类型,取值为1或2。
netType=1表示WLAN,netType=2表示以太网。
eapCodenumber需要进行定制的EAP code,取值为1、2、3、4 。
code=1 Request、 code=2 Response、 code=3 Success、 code=4 Failure。
eapTypenumber需要进行定制处理的EAP method类型,取值范围[0, 255]。
常用取值包括:eapType=1 Identity,eapType=2 Notification,eapType=3 NAK,eapType=4 MD5-Challenge,eapType=5 OTP(One-Time Password),eapType=6 GTC(Generic Token Card),eapType=13 EAP-TLS,eapType=21 EAP-TTLS,eapType=25 EAP-PEAP,eapType=254 Expanded Types,eapType=255 Experimental use。
callbackCallback<EapData>回调函数,返回指定的eapCode+eapType的报文。

错误码

以下错误码的详细介绍请参见通用错误码扩展认证错误码

错误码ID错误信息
201Permission denied.
33200006Invalid net type.
33200007Invalid eap code.
33200008Invalid eap type.
33200009netmanager stop.
33200099internal error.

示例:

import {eap} from '@kit.NetworkKit';
let netType = 1;
let eapCode = 1;
let eapType = 25;
let  eapData = (eapData:eap.EapData):void => {
  console.info("rsp result",JSON.stringify(eapData))
}
    
try {
  eap.unregCustomEapHandler(netType, eapCode, eapType, eapData);
  console.info('unregCustomEapHandler success');
} catch (err) {
  console.error('errCode: ' + err.code + ', errMessage: ' + err.message);
}

eap.replyCustomEapData

replyCustomEapData(result: CustomResult, data: EapData): void

该接口用于通知系统已完成该步定制化处理。

说明:

  • 若用于处理收EAP数据包(rx)时的callback,传给系统的EAP数据需要剥离服务器添加的定制部分。
  • 若用于处理发EAP数据包(tx)时的callback,传给系统的EAP数据为经过添加定制部分后的EAP数据。

需要权限:ohos.permission.MANAGE_ENTERPRISE_WIFI_CONNECTION

系统能力:SystemCapability.Communication.NetManager.Eap

参数:

参数名类型必填说明
resultCustomResult定制化判定结果。
dataEapData经过定制化的EAP数据。

错误码

以下错误码的详细介绍请参见通用错误码扩展认证错误码

错误码ID错误信息
201Permission denied.
33200004Invalid result.
33200005Invalid size of eap data.
33200009netmanager stop.
33200099internal error.
import {eap} from '@kit.NetworkKit';
let eapData:eap.EapData= {
  msgId: 1,
  eapBuffer: new Uint8Array([1, 2, 3, 4, 5]),
  bufferLen: 5,
};
let result = 1;

try {
  eap.replyCustomEapData(result, eapData);
  console.info('replyCustomEapData success');
} catch (err) {
  console.error('errCode: ' + err.code + ', errMessage: ' + err.message);
}

eap.startEthEap

startEthEap(netId: number, profile: EthEapProfile): void

该接口用于指定一个以太网卡发起EAP认证。

需要权限:ohos.permission.MANAGE_ENTERPRISE_WIFI_CONNECTION

系统能力:SystemCapability.Communication.NetManager.Eap

参数:

参数名类型必填说明
netIdnumber以太网卡Id。(传入默认参数-1,系统将自动匹配以太网卡发起EAP认证)
profileEthEapProfileEAP配置信息。

错误码

以下错误码的详细介绍请参见通用错误码扩展认证错误码

错误码ID错误信息
201Permission denied.
33200001Invalid netId.
33200003Invalid profile.
33200009netmanager stop.
33200010invalid eth state.
33200099internal error.

示例:

import {eap} from '@kit.NetworkKit';
let netId = 100;
let profile: eap.EthEapProfile = {
  eapMethod: eap.EapMethod.EAP_TTLS,
  phase2Method: eap.Phase2Method.PHASE2_AKA_PRIME,
  identity: "identity",
  anonymousIdentity: "anonymousIdentity",
  password: "password",
  caCertAliases: "caCertAliases",
  caPath: "caPath",
  clientCertAliases: "clientCertAliases",
  certEntry: new Uint8Array([5,6,7,8,9,10]),
  certPassword: "certPassword",
  altSubjectMatch: "altSubjectMatch",
  domainSuffixMatch: "domainSuffixMatch",
  realm: "realm",
  plmn: "plmn",
  eapSubId: 1
};
    
try {
  eap.startEthEap(netId, profile);
  console.info('startEthEap success');
} catch (err) {
  console.error('errCode: ' + err.code + ', errMessage: ' + err.message);
}

eap.logOffEthEap

logOffEthEap(netId: number): void

该接口用于指定一个以太网卡从EAP已认证状态退出。

需要权限:ohos.permission.MANAGE_ENTERPRISE_WIFI_CONNECTION

系统能力:SystemCapability.Communication.NetManager.Eap

参数:

参数名类型必填说明
netIdnumber以太网卡Id。(传入默认参数-1,系统将自动匹配以太网卡发起EAP认证)

错误码

以下错误码的详细介绍请参见通用错误码扩展认证错误码

错误码ID错误信息
201Permission denied.
33200001Invalid netId.
33200002Log off fail.
33200009netmanager stop.
33200010invalid eth state.
33200099internal error.

示例:

import {eap} from '@kit.NetworkKit';
let netId = 100;    
try{
  eap.logOffEthEap(netId);
  console.info("logOffEthEap success");
} catch (err) {
  console.error('errCode: ' + err.code + ', errMessage: ' + err.message);
}

EapData

EAP信息。

系统能力​:SystemCapability.Communication.NetManager.Eap

名称类型只读可选说明
msgIdnumber伪随机数,用于关联处理前后的EAP数据。
eapBufferUint8Array从EAP header开始的EAP原始数据,未加密。
bufferLennumber数据长度。

CustomResult

表示EAP认证处理结果的枚举。

系统能力​:SystemCapability.Communication.NetManager.Eap

名称说明
RESULT_FAIL0认证流程结束,结果失败。
RESULT_NEXT1认证当前流程成功,跳转到下一步。
RESULT_FINISH2认证流程结束,结果成功。

EapMethod

表示EAP认证方式的枚举。

系统能力: SystemCapability.Communication.NetManager.Eap

名称说明
EAP_NONE0不指定。
EAP_PEAP1PEAP类型。
EAP_TLS2TLS类型。
EAP_TTLS3TTLS类型。
EAP_PWD4PWD类型。
EAP_SIM5SIM类型。
EAP_AKA6AKA类型。
EAP_AKA_PRIME7AKA Prime类型。
EAP_UNAUTH_TLS8UNAUTH TLS类型。

Phase2Method

表示第二阶段认证方式的枚举。

系统能力: SystemCapability.Communication.NetManager.Eap

名称说明
PHASE2_NONE0不指定。
PHASE2_PAP1PAP类型。
PHASE2_MSCHAP2MSCHAP类型。
PHASE2_MSCHAPV23MSCHAPV2类型。
PHASE2_GTC4GTC类型。
PHASE2_SIM5SIM类型。
PHASE2_AKA6AKA类型。
PHASE2_AKA_PRIME7AKA Prime类型。

EthEapProfile

可扩展身份验证协议配置信息。

系统能力: SystemCapability.Communication.NetManager.Eap

名称类型只读可选说明
eapMethodEapMethodAP认证方式。
phase2MethodPhase2Method第二阶段认证方式。
identitystring身份信息。
anonymousIdentitystring匿名身份。
passwordstring密码。
caCertAliasesstringCA证书别名。
caPathstringCA证书路径。
clientCertAliasesstring客户端证书别名。
certEntryUint8ArrayCA证书内容。
certPasswordstringCA证书密码。
altSubjectMatchstring替代主题匹配。
domainSuffixMatchstring域后缀匹配。
realmstring通行证凭证的领域。
plmnstring公共陆地移动网的直通凭证提供商。
eapSubIdnumberSIM卡的子ID。

你可能感兴趣的鸿蒙文章

openharmony 鸿蒙 capi-netconnection-netconn-connectionproperties

openharmony 鸿蒙 errorcode-net-mdns

openharmony 鸿蒙 js-apis-net-ethernet-sys

openharmony 鸿蒙 errorcode-net-http

openharmony 鸿蒙 capi-netstack-http-proxy

openharmony 鸿蒙 js-apis-system-fetch

openharmony 鸿蒙 errorcode-kernel

openharmony 鸿蒙 capi-netstack-netstack-certblob

openharmony 鸿蒙 js-apis-net-mdns

openharmony 鸿蒙 capi-netstack-websocket-closeoption

  • 所属分类: 后端技术
  • 本文标签: 软件 鸿蒙
  • 版权声明: 本文链接 https://seaxiang.com/blog/ZXLJwFgs