@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

参数:

参数名 类型 必填 说明
netType number 网络类型,取值为1或2。
netType=1表示WLAN,netType=2表示以太网。
eapCode number 需要进行定制的EAP code,取值为1、2、3、4 。
code=1 Request、 code=2 Response、 code=3 Success、 code=4 Failure。
eapType number 需要进行定制处理的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。
callback Callback<EapData> 回调函数,返回指定的eapCode+eapType的报文。

错误码

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

错误码ID 错误信息
201 Permission denied.
33200006 Invalid net type.
33200007 Invalid eap code.
33200008 Invalid eap type.
33200009 netmanager stop.
33200099 internal 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));
};

eap.regCustomEapHandler(netType, eapCode, eapType, eapData);
console.info('regCustomEapHandler success');

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

参数:

参数名 类型 必填 说明
netType number 网络类型,取值为1或2。
netType=1表示WLAN,netType=2表示以太网。
eapCode number 需要进行定制的EAP code,取值为1、2、3、4 。
code=1 Request、 code=2 Response、 code=3 Success、 code=4 Failure。
eapType number 需要进行定制处理的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。
callback Callback<EapData> 回调函数,返回指定的eapCode+eapType的报文。

错误码

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

错误码ID 错误信息
201 Permission denied.
33200006 Invalid net type.
33200007 Invalid eap code.
33200008 Invalid eap type.
33200009 netmanager stop.
33200099 internal 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));
};

eap.unregCustomEapHandler(netType, eapCode, eapType, eapData);
console.info('unregCustomEapHandler success');

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

参数:

参数名 类型 必填 说明
result CustomResult 定制化判定结果。
data EapData 经过定制化的EAP数据。

错误码

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

错误码ID 错误信息
201 Permission denied.
33200004 Invalid result.
33200005 Invalid size of eap data.
33200009 netmanager stop.
33200099 internal 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

参数:

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

错误码

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

错误码ID 错误信息
201 Permission denied.
33200001 Invalid netId.
33200003 Invalid profile.
33200009 netmanager stop.
33200010 invalid eth state.
33200099 internal 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

参数:

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

错误码

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

错误码ID 错误信息
201 Permission denied.
33200001 Invalid netId.
33200002 Log off fail.
33200009 netmanager stop.
33200010 invalid eth state.
33200099 internal 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

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

CustomResult

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

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

名称 说明
RESULT_FAIL 0 认证流程结束,结果失败。
RESULT_NEXT 1 认证当前流程成功,跳转到下一步。
RESULT_FINISH 2 认证流程结束,结果成功。

EapMethod

表示EAP认证方式的枚举。

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

名称 说明
EAP_NONE 0 不指定。
EAP_PEAP 1 PEAP类型。
EAP_TLS 2 TLS类型。
EAP_TTLS 3 TTLS类型。
EAP_PWD 4 PWD类型。
EAP_SIM 5 SIM类型。
EAP_AKA 6 AKA类型。
EAP_AKA_PRIME 7 AKA Prime类型。
EAP_UNAUTH_TLS 8 UNAUTH TLS类型。

Phase2Method

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

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

名称 说明
PHASE2_NONE 0 不指定。
PHASE2_PAP 1 PAP类型。
PHASE2_MSCHAP 2 MSCHAP类型。
PHASE2_MSCHAPV2 3 MSCHAPV2类型。
PHASE2_GTC 4 GTC类型。
PHASE2_SIM 5 SIM类型。
PHASE2_AKA 6 AKA类型。
PHASE2_AKA_PRIME 7 AKA Prime类型。

EthEapProfile

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

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

名称 类型 只读 可选 说明
eapMethod EapMethod AP认证方式。
phase2Method Phase2Method 第二阶段认证方式。
identity string 身份信息。
anonymousIdentity string 匿名身份。
password string 密码。
caCertAliases string CA证书别名。
caPath string CA证书路径。
clientCertAliases string 客户端证书别名。
certEntry Uint8Array CA证书内容。
certPassword string CA证书密码。
altSubjectMatch string 替代主题匹配。
domainSuffixMatch string 域后缀匹配。
realm string 通行证凭证的领域。
plmn string 公共陆地移动网的直通凭证提供商。
eapSubId number SIM卡的子ID。