harmony(鸿蒙)TLSSocket

2022-10-28 浏览 (1241)

TLSSocket

TLS Socket通信是对Socket通信的拓展。在Socket通信的基础上添加了一层安全性保护,提供了更高的安全性,分为三个子模块,包括密钥,证书,通信。

说明:

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

导入模块

import socket from '@ohos.net.tlssocket'

socket.constructTLSSocketInstance

constructTLSSocketInstance(): TLSSocket

创建并返回一个TLSSocket对象。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

示例:

let tlssocket = socket.constructTLSSocketInstance();

tlssocket.connect

connect(options: TLSConnectOptions, callback: AsyncCallback<void>): void

在TLSSocket上进行通信连接,并创建和初始化TLS会话,实现建立连接过程,启动与服务器的TLS/SSL握手,实现数据传输功能,使用callback方式作为异步方法。

参数:

参数名类型必填说明
optionsTLSConnectOptions连接所需要的参数。
callbackAsyncCallback<void>回调函数,成功无返回,失败返回对应错误码。

示例:

let options = {
            ALPNProtocols: ["spdy/1", "http/1.1"],
            address: {
                address: "xxx",
                port: "xxxx",
                family: 1,
            },
            secureOptions: {
                key: "xxxx",
                cert: "xxxx",
                ca: ["xxxx"],
                passwd: "xxxx",
                protocols: "TlsV1_2",
                useRemoteCipherPrefer: true,
                signatureAlgorithms: SHA256,
                cipherSuites: AES256-SHA256,
            },
};

tlssocket.connect(options, (err, data) => {
    console.info(err);
    console.info(data);
});

tlssocket.connect

connect(options: TLSConnectOptions): Promise<void>;

在TLSSocket上进行通信连接,并创建和初始化TLS会话,实现建立连接过程,启动与服务器的TLS/SSL握手,实现数据传输功能,使用Promise方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
optionsTLSConnectOptions连接所需要的参数。

返回值:

类型说明
Promise<void>以Promise形式返回,成功无返回,失败返回对应错误码。

示例:

let options = {
            ALPNProtocols: ["spdy/1", "http/1.1"],
            address: {
                address: "xxxx",
                port: "xxxx",
                family: 1,
            },
            secureOptions: {
                key: "xxxx",
                cert: "xxxx",
                ca: ["xxxx"],
                passwd: "xxxx",
                protocols: "TlsV1_2",
                useRemoteCipherPrefer: true,
                signatureAlgorithms: SHA256,
                cipherSuites: AES256-SHA256,
            },
};

tlssocket.connect(options).then(data => {
    console.info(data);
}).catch(err => {
    console.error(err);
});

tlssocket.getCertificate

getCertificate(callback: AsyncCallback<string>): void;

在TLSSocket通信连接之后,获取本地的数字证书,使用callback方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
callbackAsyncCallback<string>回调函数,返回本地的证书。

示例:

tlssocket.getCertificate((err, data) => {
  if (err) {
    console.log("getCertificate callback error = " + err);
  } else {
    console.log("getCertificate callback = " + data);
  }
});

tlssocket.getCertificate

getCertificate():Promise<string>;

在TLSSocket通信连接之后,获取本地的数字证书,使用Promise方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

返回值:

类型说明
Promise<string>以Promise形式返回本地的数字证书。

示例:

tlssocket.getCertificate().then(data => {
  console.info(data);
}).catch(err => {
  console.error(err);
});

tlssocket.getRemoteCertificate

getRemoteCertificate(callback: AsyncCallback<string>): void;

在TLSSocket通信连接之后,获取对等方的数字证书,使用callback方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
callbackAsyncCallback<string>回调函数,返回对等方的证书。

示例:

tlssocket.getRemoteCertificate((err, data) => {
  if (err) {
    console.log("getRemoteCertificate callback error = " + err);
  } else {
    console.log("getRemoteCertificate callback = " + data);
  }
});

tlssocket.getRemoteCertificate

getRemoteCertificate():Promise<string>;

在TLSSocket通信连接之后,获取对等方的数字证书,使用Promise方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

返回值:

类型说明
Promise<string>以Promise形式返回对等方的数字证书。

示例:

tlssocket.getRemoteCertificate().then(data => {
  console.info(data);
}).catch(err => {
  console.error(err);
});

tlssocket.getProtocol

getProtocol(callback: AsyncCallback<string>): void;

在TLSSocket通信连接之后,获取通信的协议,使用callback方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
callbackAsyncCallback<string>回调函数,返回通信的协议。

示例:

tlssocket.getProtocol((err, data) => {
  if (err) {
    console.log("getProtocol callback error = " + err);
  } else {
    console.log("getProtocol callback = " + data);
  }
});

tlssocket.getProtocol

getProtocol():Promise<string>;

在TLSSocket通信连接之后,获取通信的协议,使用Promise方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

返回值:

类型说明
Promise<string>以Promise形式返回通信的协议。

示例:

tlssocket.getProtocol().then(data => {
  console.info(data);
}).catch(err => {
  console.error(err);
});

tlssocket.getCipherSuites

getCipherSuites(callback: AsyncCallback<Array<string>>): void;

在TLSSocket通信连接之后,获取通信双方支持的加密套件,使用callback方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
callbackAsyncCallback<Array<string>>回调函数,返回通信双方支持的加密套件。

示例:

tlssocket.getCipherSuites((err, data) => {
  if (err) {
    console.log("getCipherSuites callback error = " + err);
  } else {
    console.log("getCipherSuites callback = " + data);
  }
});

tlssocket.getCipherSuites

getCipherSuites(): Promise<Array<string>>;

在TLSSocket通信连接之后,获取通信双方支持的加密套件,使用Promise方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

返回值:

类型说明
Promise<Array<string>>以Promise形式返回通信双方支持的加密套件。

示例:

tlssocket.getCipherSuites().then(data => {
  console.info(data);
}).catch(err => {
  console.error(err);
});

tlssocket.getSignatureAlgorithms

getSignatureAlgorithms(callback: AsyncCallback<Array<string>>): void;

在TLSSocket通信连接之后,获取通信双方支持的签名算法,使用callback方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
callbackAsyncCallback<Array<string>>回调函数,返回双方支持的签名算法。

示例:

tlssocket.getSignatureAlgorithms((err, data) => {
  if (err) {
    console.log("getSignatureAlgorithms callback error = " + err);
  } else {
    console.log("getSignatureAlgorithms callback = " + data);
  }
});

tlssocket.getSignatureAlgorithms

getSignatureAlgorithms(): Promise<Array<string>>;

在TLSSocket通信连接之后,获取通信双方支持的签名算法,使用Promise方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

返回值:

类型说明
Promise<Array<string>>以Promise形式返回获取到的双方支持的签名算法。

示例:

tlssocket.getSignatureAlgorithms().then(data => {
  console.info(data);
}).catch(err => {
  console.error(err);
});

tlssocket.close

close(callback: AsyncCallback<void>): void;

在TLSSocket通信连接之后,断开连接,使用callback方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
callbackAsyncCallback<void>回调函数,返回TLSSocket关闭连接的结果。

示例:

tlssocket.close((err) => {
  if (err) {
    console.log("close callback error = " + err);
  } else {
    console.log("close success");
  }
});

tlssocket.close

close(): Promise<void>;

在TLSSocket通信连接之后,断开连接,使用Promise方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

返回值:

类型说明
Promise<void>以Promise形式返回,返回TLSSocket关闭连接的结果。

示例:

tlssocket.close().then(() =>
  console.log("close success");
}).catch(err => {
  console.error(err);
});

TLSConnectOptions

TLS连接的操作。

系统能力:SystemCapability.Communication.NetStack

参数名类型说明
addressNetAddress网关地址。
secureOptionsTLSSecureOptionsTLS安全相关操作。
ALPNProtocolsArray<string>ALPN协议。

NetAddress

网络地址。

系统能力:SystemCapability.Communication.NetStack

参数名类型说明
addressstring地址。
familynumberIPv4 = 1,IPv6 = 2,默认IPv4。
portnumber端口,取值范围[0, 65535]。

TLSSecureOptions

TLS安全相关操作。

系统能力:SystemCapability.Communication.NetStack

参数名类型说明
castring |Array<string>ca证书。
certstring本地数字证书。
keystring本地数字证书私钥。
passwdstring密码。
protocolsstring协议名。
useRemoteCipherPreferboolean优先使用对等方的密码套件。
signatureAlgorithmsstring设置签名算法。
cipherSuitesstring加密套件。

你可能感兴趣的鸿蒙文章

harmony(鸿蒙)接口

harmony(鸿蒙)开发说明

harmony(鸿蒙)BundleStatusCallback

harmony(鸿蒙)innerBundleManager模块(JS端SDK接口)

harmony(鸿蒙)distributedBundle模块(JS端SDK接口)

harmony(鸿蒙)Bundle模块(JS端SDK接口)

harmony(鸿蒙)Context模块

harmony(鸿蒙)DataUriUtils模块

harmony(鸿蒙)EnterpriseAdminExtensionAbility

harmony(鸿蒙)延迟任务调度回调

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