证书模块

2024-01-23 15:56 更新

crypto framework提供证书相关接口。其中,依赖加解密算法库框架的基础算法能力的部分,详细接口说明可参考cryptoFramework API参考

说明

本模块首批接口从API version 9开始支持。

导入模块

  1. import cryptoCert from '@ohos.security.cert';
  2. import cryptoFramework from "@ohos.security.cryptoFramework"

CertResult

表示执行结果的枚举。

系统能力: SystemCapability.Security.Cert

名称

说明

INVALID_PARAMS

401

非法入参。

NOT_SUPPORT

801

操作不支持。

ERR_OUT_OF_MEMORY

19020001

内存错误。

ERR_RUNTIME_ERROR

19020002

运行时外部错误。

ERR_CRYPTO_OPERATION

19030001

调用三方算法库API出错。

ERR_CERT_SIGNATURE_FAILURE

19030002

证书签名验证错误。

ERR_CERT_NOT_YET_VALID

19030003

证书尚未生效。

ERR_CERT_HAS_EXPIRED

19030004

证书过期。

ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY

19030005

无法获取证书的颁发者。

ERR_KEYUSAGE_NO_CERTSIGN

19030006

证书的秘钥用途不含证书签名。

ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE

19030007

证书的秘钥用途不含数字签名。

DataBlob

buffer数组。

系统能力: SystemCapability.Security.Cert

名称

类型

可读

可写

说明

data

Uint8Array

数据。

DataArray

buffer数组的列表。

系统能力: SystemCapability.Security.Cert

名称

类型

可读

可写

说明

data

Uint8Array

数据列表。

EncodingFormat

表示证书编码格式的枚举。

系统能力: SystemCapability.Security.Cert

名称

说明

FORMAT_DER

0

DER格式。

FORMAT_PEM

1

PEM格式。

EncodingBlob

带编码格式的证书二进制数组。

属性

系统能力: SystemCapability.Security.Cert

名称

类型

可读

可写

说明

data

Uint8Array

传入的证书数据。

encodingFormat

EncodingFormat

指明证书编码格式。

CertChainData

证书链数据,在证书链校验时,作为入参传入。

属性

系统能力: SystemCapability.Security.Cert

名称

类型

可读

可写

说明

data

Uint8Array

证书数据,按照长度(2字节)-数据的形式传入,如:08ABCDEFGH07ABCDEFG,第一本证书,前2个字节表示证书的长度为8字节,后面附加8字节的证书数据;第2本证书前2个字节表示证书的长度为7字节,后面附加7字节的证书数据。

count

number

传入的数据中,包含的证书数量。

encodingFormat

EncodingFormat

指明证书编码格式。

cryptoCert.createX509Cert

createX509Cert(inStream : EncodingBlob, callback : AsyncCallback<X509Cert>) : void

表示创建X509证书对象。

系统能力: SystemCapability.Security.Cert

参数:

参数名

类型

必填

说明

inStream

EncodingBlob

X509证书序列化数据

callback

AsyncCallback<X509Cert>

回调函数。表示X509证书对象

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) {
  10. if (error != null) {
  11. console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Cert success");
  14. }
  15. });

cryptoCert.createX509Cert

createX509Cert(inStream : EncodingBlob) : Promise<X509Cert>

表示创建X509证书对象。

系统能力: SystemCapability.Security.Cert

参数:

参数名

类型

必填

说明

inStream

EncodingBlob

X509证书序列化数据

返回值:

类型

说明

Promise<X509Cert>

表示X509证书对象

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Cert(encodingBlob).then(x509Cert => {
  10. console.log("createX509Cert success");
  11. }, error => {
  12. console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message);
  13. });

X509Cert

X509证书类。

verify

verify(key : cryptoFramework.PubKey, callback : AsyncCallback<void>) : void

表示对证书验签。

系统能力: SystemCapability.Security.Cert

参数:

参数名

类型

必填

说明

key

cryptoFramework.PubKey

用于验签的公钥对象

callback

AsyncCallback<void>

回调函数。使用AsyncCallback的第一个error参数判断是否验签成功,error为null表示成功,不为null表示失败

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) {
  10. if (error != null) {
  11. console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Cert success");
  14. // 业务需通过上级X509Cert证书对象的getPublicKey获取PubKey
  15. let pubKey = null;
  16. x509Cert.verify(pubKey, function (error, data) {
  17. if (error != null) {
  18. console.log("verify failed, errCode: " + error.code + ", errMsg: " + error.message);
  19. } else {
  20. console.log("verify success");
  21. }
  22. });
  23. }
  24. });

verify

verify(key : cryptoFramework.PubKey) : Promise<void>

表示对证书验签。

系统能力: SystemCapability.Security.Cert

参数:

参数名

类型

必填

说明

key

cryptoFramework.PubKey

用于验签的公钥对象

返回值:

类型

说明

Promise<void>

Promise对象

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Cert(encodingBlob).then(x509Cert => {
  10. console.log("createX509Cert success");
  11. // 业务可通过上级X509Cert证书对象的getPublicKey获取PubKey
  12. let pubKey = null;
  13. x509Cert.verify(pubKey).then(result => {
  14. console.log("verify success");
  15. }, error => {
  16. console.log("verify failed, errCode: " + error.code + ", errMsg: " + error.message);
  17. });
  18. }, error => {
  19. console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message);
  20. });

getEncoded

getEncoded(callback : AsyncCallback<EncodingBlob>) : void

表示获取X509证书序列化数据。

系统能力: SystemCapability.Security.Cert

参数

参数名

类型

必填

说明

callback

AsyncCallback<EncodingBlob>

回调函数。表示X509证书序列化数据

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) {
  10. if (error != null) {
  11. console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Cert success");
  14. x509Cert.getEncoded(function (error, data) {
  15. if (error != null) {
  16. console.log("getEncoded failed, errCode: " + error.code + ", errMsg: " + error.message);
  17. } else {
  18. console.log("getEncoded success");
  19. }
  20. });
  21. }
  22. });

getEncoded

getEncoded() : Promise<EncodingBlob>

表示获取X509证书序列化数据。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

Promise<EncodingBlob>

表示X509证书序列化数据

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Cert(encodingBlob).then(x509Cert => {
  10. console.log("createX509Cert success");
  11. x509Cert.getEncoded().then(result => {
  12. console.log("getEncoded success");
  13. }, error => {
  14. console.log("getEncoded failed, errCode: " + error.code + ", errMsg: " + error.message);
  15. });
  16. }, error => {
  17. console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message);
  18. });

getPublicKey

getPublicKey() : cryptoFramework.PubKey

表示获取X509证书公钥。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

cryptoFramework.PubKey

X509证书公钥对象:仅用于X509Cert的verify接口

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. import cryptoFramework from "@ohos.security.cryptoFramework"
  3. // 证书二进制数据,需业务自行赋值
  4. let encodingData = null;
  5. let encodingBlob = {
  6. data: encodingData,
  7. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  8. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  9. };
  10. cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) {
  11. if (error != null) {
  12. console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message);
  13. } else {
  14. console.log("createX509Cert success");
  15. let pubKey = null;
  16. try {
  17. pubKey = x509Cert.getPublicKey();
  18. } catch (error) {
  19. console.log("getPublicKey failed, errCode: " + error.code + ", errMsg: " + error.message);
  20. }
  21. }
  22. });

checkValidityWithDate

checkValidityWithDate(date: string) : void

表示检查X509证书有效期。

系统能力: SystemCapability.Security.Cert

参数

参数名

类型

必填

说明

date

string

日期(格式:YYMMDDHHMMSSZ 或 YYYYMMDDHHMMSSZ,时间必须以Z结尾:表示标准时间)

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19030001

crypto operation error.

19030003

the certificate has not taken effect.

19030004

the certificate has expired.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) {
  10. if (error != null) {
  11. console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Cert success");
  14. let date = "150527000001Z";
  15. // 校验证书有效期
  16. try {
  17. x509Cert.checkValidityWithDate(date);
  18. } catch (error) {
  19. console.log("checkValidityWithDate failed, errCode: " + error.code + ", errMsg: " + error.message);
  20. }
  21. }
  22. });

getVersion

getVersion() : number

表示获取X509证书版本。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

number

表示X509证书版本

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) {
  10. if (error != null) {
  11. console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Cert success");
  14. let version = x509Cert.getVersion();
  15. }
  16. });

getSerialNumber

getSerialNumber() : number

表示获取X509证书序列号。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

number

表示X509证书序列号

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) {
  10. if (error != null) {
  11. console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Cert success");
  14. let serialNumber = x509Cert.getSerialNumber();
  15. }
  16. });

getIssuerName

getIssuerName() : DataBlob

表示获取X509证书颁发者名称。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

DataBlob

表示X509证书颁发者名称

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) {
  10. if (error != null) {
  11. console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Cert success");
  14. let issuerName = x509Cert.getIssuerName();
  15. }
  16. });

getSubjectName

getSubjectName() : DataBlob

表示获取X509证书主体名称。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

DataBlob

表示X509证书主体名称

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) {
  10. if (error != null) {
  11. console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Cert success");
  14. let subjectName = x509Cert.getSubjectName();
  15. }
  16. });

getNotBeforeTime

getNotBeforeTime() : string

表示获取X509证书有效期起始时间。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

string

表示X509证书有效期起始时间(格式:YYMMDDHHMMSSZ 或 YYYYMMDDHHMMSSZ,时间以Z结尾:表示标准时间)

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) {
  10. if (error != null) {
  11. console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Cert success");
  14. let notBefore = x509Cert.getNotBeforeTime();
  15. }
  16. });

getNotAfterTime

getNotAfterTime() : string

表示获取X509证书有效期截止时间。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

string

表示X509证书有效期截止时间(格式:YYMMDDHHMMSSZ 或 YYYYMMDDHHMMSSZ,时间以Z结尾:表示标准时间)

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) {
  10. if (error != null) {
  11. console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Cert success");
  14. let notAfter = x509Cert.getNotAfterTime();
  15. }
  16. });

getSignature

getSignature() : DataBlob

表示获取X509证书签名数据。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

DataBlob

表示X509证书签名数据

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) {
  10. if (error != null) {
  11. console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Cert success");
  14. let signature = x509Cert.getSignature();
  15. }
  16. });

getSignatureAlgName

getSignatureAlgName() : string

表示获取X509证书签名算法名称。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

string

表示X509证书签名算法名称

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) {
  10. if (error != null) {
  11. console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Cert success");
  14. let sigAlgName = x509Cert.getSignatureAlgName();
  15. }
  16. });

getSignatureAlgOid

getSignatureAlgOid() : string

表示获取X509证书签名算法的对象标志符OID(Object Identifier)。OID是由国际标准组织(ISO)的名称注册机构分配。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

string

表示X509证书签名算法对象标志符OID

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) {
  10. if (error != null) {
  11. console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Cert success");
  14. let sigAlgOid = x509Cert.getSignatureAlgOid();
  15. }
  16. });

getSignatureAlgParams

getSignatureAlgParams() : DataBlob

表示获取X509证书签名算法参数。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

DataBlob

表示X509证书签名算法参数

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) {
  10. if (error != null) {
  11. console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Cert success");
  14. let sigAlgParams = x509Cert.getSignatureAlgParams();
  15. }
  16. });

getKeyUsage

getKeyUsage() : DataBlob

表示获取X509证书秘钥用途。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

DataBlob

表示X509证书秘钥用途

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) {
  10. if (error != null) {
  11. console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Cert success");
  14. let keyUsage = x509Cert.getKeyUsage();
  15. }
  16. });

getExtKeyUsage

getExtKeyUsage() : DataArray

表示获取X509证书扩展秘钥用途。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

DataArray

表示X509证书扩展秘钥用途

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) {
  10. if (error != null) {
  11. console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Cert success");
  14. let extKeyUsage = x509Cert.getExtKeyUsage();
  15. }
  16. });

getBasicConstraints

getBasicConstraints() : number

表示获取X509证书基本约束。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

number

表示X509证书基本约束

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) {
  10. if (error != null) {
  11. console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Cert success");
  14. let basicConstraints = x509Cert.getBasicConstraints();
  15. }
  16. });

getSubjectAltNames

getSubjectAltNames() : DataArray

表示获取X509证书主体可选名称。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

DataArray

表示X509证书主体可选名称

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) {
  10. if (error != null) {
  11. console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Cert success");
  14. let subjectAltNames = x509Cert.getSubjectAltNames();
  15. }
  16. });

getIssuerAltNames

getIssuerAltNames() : DataArray

表示获取X509证书颁发者可选名称。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

DataArray

表示X509证书颁发者可选名称

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) {
  10. if (error != null) {
  11. console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Cert success");
  14. let issuerAltNames = x509Cert.getIssuerAltNames();
  15. }
  16. });

cryptoCert.createX509Crl

createX509Crl(inStream : EncodingBlob, callback : AsyncCallback<X509Crl>) : void

表示创建X509证书吊销列表的对象。

系统能力: SystemCapability.Security.Cert

参数

参数名

类型

必填

说明

inStream

EncodingBlob

表示证书吊销列表序列化数据

callback

AsyncCallback<X509Crl>

回调函数。表示证书吊销列表对象

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书吊销列表二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) {
  10. if (error != null) {
  11. console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Crl success");
  14. }
  15. });

cryptoCert.createX509Crl

createX509Crl(inStream : EncodingBlob) : Promise<X509Crl>

表示创建X509证书吊销列表的对象。

系统能力: SystemCapability.Security.Cert

参数

参数名

类型

必填

说明

inStream

EncodingBlob

表示证书吊销列表序列化数据

返回值

类型

说明

Promise<X509Crl>

表示证书吊销列表对象

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书吊销列表二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Crl(encodingBlob).then(x509Crl => {
  10. console.log("createX509Crl success");
  11. }, error => {
  12. console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message);
  13. });

X509Crl

X509证书吊销列表对象。

isRevoked

isRevoked(cert : X509Cert) : boolean

表示检查证书是否吊销。

系统能力: SystemCapability.Security.Cert

参数

参数名

类型

必填

说明

cert

X509Cert

表示被检查的证书对象

返回值

类型

说明

boolean

表示证书吊销状态,true表示已吊销,false表示未吊销

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书吊销列表二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) {
  10. if (error != null) {
  11. console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Crl success");
  14. // 业务需自行生成X509Cert证书对象
  15. let x509Cert = null;
  16. try {
  17. let revokedFlag = x509Crl.isRevoked(x509Cert);
  18. } catch (error) {
  19. console.log("isRevoked failed, errCode: " + error.code + ", errMsg: " + error.message);
  20. }
  21. }
  22. });

getType

getType() : string

表示获取证书吊销列表类型。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

string

表示证书吊销列表类型

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书吊销列表二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) {
  10. if (error != null) {
  11. console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Crl success");
  14. let type = x509Crl.getType();
  15. }
  16. });

getEncoded

getEncoded(callback : AsyncCallback<EncodingBlob>) : void

表示获取X509证书吊销列表的序列化数据。

系统能力: SystemCapability.Security.Cert

参数

参数名

类型

必填

说明

callback

AsyncCallback<EncodingBlob>

回调函数,表示X509证书吊销列表的序列化数据

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书吊销列表二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) {
  10. if (error != null) {
  11. console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Crl success");
  14. x509Crl.getEncoded(function (error, data) {
  15. if (error != null) {
  16. console.log("getEncoded failed, errCode: " + error.code + ", errMsg: " + error.message);
  17. } else {
  18. console.log("getEncoded success");
  19. }
  20. });
  21. }
  22. });

getEncoded

getEncoded() : Promise<EncodingBlob>

表示获取X509证书吊销列表的序列化数据。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

Promise<EncodingBlob>

表示X509证书吊销列表的序列化数据

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书吊销列表二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Crl(encodingBlob).then(x509Crl => {
  10. console.log("createX509Crl success");
  11. x509Crl.getEncoded().then(result => {
  12. console.log("getEncoded success");
  13. }, error => {
  14. console.log("getEncoded failed, errCode: " + error.code + ", errMsg: " + error.message);
  15. });
  16. }, error => {
  17. console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message);
  18. });

verify

verify(key : cryptoFramework.PubKey, callback : AsyncCallback<void>) : void

表示对X509证书吊销列表进行验签。验签支持RSA算法。

系统能力: SystemCapability.Security.Cert

参数

参数名

类型

必填

说明

key

cryptoFramework.PubKey

表示用于验签的公钥对象

callback

AsyncCallback<void>

回调函数,使用AsyncCallback的第一个error参数判断是否验签成功,error为null表示成功,error不为null表示失败。

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. import cryptoFramework from "@ohos.security.cryptoFramework"
  3. // 证书吊销列表二进制数据,需业务自行赋值
  4. let encodingData = null;
  5. let encodingBlob = {
  6. data: encodingData,
  7. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  8. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  9. };
  10. cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) {
  11. if (error != null) {
  12. console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message);
  13. } else {
  14. console.log("createX509Crl success");
  15. // 业务需通过AsyKeyGenerator生成PubKey
  16. let pubKey = null;
  17. x509Crl.verify(pubKey, function (error, data) {
  18. if (error != null) {
  19. console.log("verify failed, errCode: " + error.code + ", errMsg: " + error.message);
  20. } else {
  21. console.log("verify success");
  22. }
  23. });
  24. }
  25. });

verify

verify(key : cryptoFramework.PubKey) : Promise<void>

表示对X509证书吊销列表进行验签。验签支持RSA算法。

系统能力: SystemCapability.Security.Cert

参数

参数名

类型

必填

说明

key

cryptoFramework.PubKey

表示用于验签的公钥对象。

返回值

类型

说明

Promise<void>

Promise对象

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. import cryptoFramework from "@ohos.security.cryptoFramework"
  3. // 证书吊销列表二进制数据,需业务自行赋值
  4. let encodingData = null;
  5. let encodingBlob = {
  6. data: encodingData,
  7. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  8. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  9. };
  10. cryptoCert.createX509Crl(encodingBlob).then(x509Crl => {
  11. console.log("createX509Crl success");
  12. // 业务需通过AsyKeyGenerator生成PubKey
  13. let pubKey = null;
  14. x509Crl.verify(pubKey).then(result => {
  15. console.log("verify success");
  16. }, error => {
  17. console.log("verify failed, errCode: " + error.code + ", errMsg: " + error.message);
  18. });
  19. }, error => {
  20. console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message);
  21. });

getVersion

getVersion() : number

表示获取X509证书吊销列表的版本号。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

number

表示获取X509证书吊销列表的版本号

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书吊销列表二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) {
  10. if (error != null) {
  11. console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Crl success");
  14. let version = x509Crl.getVersion();
  15. }
  16. });

getIssuerName

getIssuerName() : DataBlob

表示获取X509证书吊销列表颁发者名称。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

DataBlob

表示X509证书吊销列表颁发者名称

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书吊销列表二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) {
  10. if (error != null) {
  11. console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Crl success");
  14. let issuerName = x509Crl.getIssuerName();
  15. }
  16. });

getLastUpdate

getLastUpdate() : string

表示获取X509证书吊销列表最后一次更新日期。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

string

表示X509证书吊销列表最后一次更新日期

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书吊销列表二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) {
  10. if (error != null) {
  11. console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Crl success");
  14. let lastUpdate = x509Crl.getLastUpdate();
  15. }
  16. });

getNextUpdate

getNextUpdate() : string

表示获取证书吊销列表下一次更新的日期。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

string

表示X509证书吊销列表下一次更新的日期

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书吊销列表二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) {
  10. if (error != null) {
  11. console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Crl success");
  14. let nextUpdate = x509Crl.getNextUpdate();
  15. }
  16. });

getRevokedCert

getRevokedCert(serialNumber : number) : X509CrlEntry

表示通过指定证书序列号获取被吊销X509证书对象。

系统能力: SystemCapability.Security.Cert

参数

参数名

类型

必填

说明

serialNumber

number

表示证书序列号

返回值:

类型

说明

X509CrlEntry

表示被吊销X509证书对象

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书吊销列表二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) {
  10. if (error != null) {
  11. console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Crl success");
  14. // 业务需赋值为对应证书的序列号
  15. let serialNumber = 1000;
  16. try {
  17. let entry = x509Crl.getRevokedCert(serialNumber);
  18. } catch (error) {
  19. console.log("getRevokedCert failed, errCode: " + error.code + ", errMsg: " + error.message);
  20. }
  21. }
  22. });

getRevokedCertWithCert

getRevokedCertWithCert(cert : X509Cert) : X509CrlEntry

表示通过指定证书对象获取被吊销X509证书对象。

系统能力: SystemCapability.Security.Cert

参数

参数名

类型

必填

说明

cert

X509Cert

表示证书对象

返回值:

类型

说明

X509CrlEntry

表示被吊销X509证书对象

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书吊销列表二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) {
  10. if (error != null) {
  11. console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Crl success");
  14. // 业务需自行生成X509Cert证书对象
  15. let x509Cert = null;
  16. try {
  17. let entry = x509Crl.getRevokedCertWithCert(x509Cert);
  18. } catch (error) {
  19. console.log("getRevokedCertWithCert failed, errCode: " + error.code + ", errMsg: " + error.message);
  20. }
  21. }
  22. });

getRevokedCerts

getRevokedCerts(callback : AsyncCallback<Array<X509CrlEntry>>) : void

表示获取被吊销X509证书列表。

系统能力: SystemCapability.Security.Cert

参数

参数名

类型

必填

说明

callback

AsyncCallback<Array<X509CrlEntry>>

回调函数。表示被吊销X509证书列表

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书吊销列表二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) {
  10. if (error != null) {
  11. console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Crl success");
  14. x509Crl.getRevokedCerts(function (error, array) {
  15. if (error != null) {
  16. console.log("getRevokedCerts failed, errCode: " + error.code + ", errMsg: " + error.message);
  17. } else {
  18. console.log("getRevokedCerts success");
  19. }
  20. });
  21. }
  22. });

getRevokedCerts

getRevokedCerts() : Promise<Array<X509CrlEntry>>

表示获取被吊销X509证书列表。

系统能力: SystemCapability.Security.Cert

返回值:

类型

说明

Promise<Array<X509CrlEntry>>

表示被吊销X509证书列表

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书吊销列表二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Crl(encodingBlob).then(x509Crl => {
  10. console.log("createX509Crl success");
  11. x509Crl.getRevokedCerts().then(array => {
  12. console.log("getRevokedCerts success");
  13. }, error => {
  14. console.log("getRevokedCerts failed, errCode: " + error.code + ", errMsg: " + error.message);
  15. });
  16. }, error => {
  17. console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message);
  18. });

getTbsInfo

getTbsInfo() : DataBlob

表示获取证书吊销列表的tbsCertList信息。

系统能力: SystemCapability.Security.Cert

返回值:

类型

说明

DataBlob

表示证书吊销列表的tbsCertList信息

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书吊销列表二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) {
  10. if (error != null) {
  11. console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Crl success");
  14. try {
  15. let tbsInfo = x509Crl.getTbsInfo();
  16. } catch (error) {
  17. console.log("getTbsInfo failed, errCode: " + error.code + ", errMsg: " + error.message);
  18. }
  19. }
  20. });

getSignature

getSignature() : DataBlob

表示获取X509证书吊销列表的签名数据。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

DataBlob

表示X509证书吊销列表的签名数据

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书吊销列表二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) {
  10. if (error != null) {
  11. console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Crl success");
  14. let signature = x509Crl.getSignature();
  15. }
  16. });

getSignatureAlgName

getSignatureAlgName() : string

表示获取X509证书吊销列表签名的算法名称。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

string

表示X509证书吊销列表签名的算法名

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书吊销列表二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) {
  10. if (error != null) {
  11. console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Crl success");
  14. let sigAlgName = x509Crl.getSignatureAlgName();
  15. }
  16. });

getSignatureAlgOid

getSignatureAlgOid() : string

表示获取X509证书吊销列表签名算法的对象标志符OID(Object Identifier)。OID是由国际标准组织(ISO)的名称注册机构分配。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

string

表示X509证书吊销列表签名算法的对象标志符OID。

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书吊销列表二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) {
  10. if (error != null) {
  11. console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Crl success");
  14. let sigAlgOid = x509Crl.getSignatureAlgOid();
  15. }
  16. });

getSignatureAlgParams

getSignatureAlgParams() : DataBlob

表示获取X509证书吊销列表签名的算法参数。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

DataBlob

表示X509证书吊销列表签名的算法参数

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 证书吊销列表二进制数据,需业务自行赋值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) {
  10. if (error != null) {
  11. console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message);
  12. } else {
  13. console.log("createX509Crl success");
  14. let sigAlgParams = x509Crl.getSignatureAlgParams();
  15. }
  16. });

cryptoCert.createCertChainValidator

createCertChainValidator(algorithm :string) : CertChainValidator

表示创建证书链校验器对象。

系统能力: SystemCapability.Security.Cert

参数

参数名

类型

必填

说明

algorithm

string

表示证书链校验器算法。当前仅支持输入“PKIX”

返回值

类型

说明

CertChainValidator

表示证书链校验器对象

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. let validator = cryptoCert.createCertChainValidator("PKIX");

CertChainValidator

证书链校验器对象。

属性

系统能力: SystemCapability.Security.Cert

名称

类型

可读

可写

说明

algorithm

string

X509证书链校验器算法名称。

validate

validate(certChain : CertChainData, callback : AsyncCallback<void>) : void

表示校验X509证书链。

由于端侧系统时间不可信,证书链校验不包含对证书有效时间的校验。如果需要检查证书的时间有效性,可使用X509证书的checkValidityWithDate方法进行检查。详见证书规格

系统能力: SystemCapability.Security.Cert

参数

参数名

类型

必填

说明

certChain

CertChainData

表示X509证书链序列化数据

callback

AsyncCallback<void>

回调函数。使用AsyncCallback的第一个error参数判断是否校验成功,error为null表示成功,error不为null表示失败

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

19030002

the certificate signature verification failed.

19030003

the certificate has not taken effect.

19030004

the certificate has expired.

19030005

failed to obtain the certificate issuer.

19030006

the key cannot be used for signing a certificate.

19030007

the key cannot be used for digital signature.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. let validator = cryptoCert.createCertChainValidator("PKIX");
  3. // 证书链二进制数据,需业务自行赋值
  4. let encodingData = null;
  5. // 证书链包含的证书个数,需业务自行赋值
  6. let certCount = 2;
  7. let certChainData = {
  8. data: encodingData,
  9. count: certCount,
  10. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  11. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  12. };
  13. validator.validate(certChainData, function (error, data) {
  14. if (error != null) {
  15. console.log("validate failed, errCode: " + error.code + ", errMsg: " + error.message);
  16. } else {
  17. console.log("validate success");
  18. }
  19. });

validate

validate(certChain : CertChainData) : Promise<void>

表示校验X509证书链。

由于端侧系统时间不可信,证书链校验不包含对证书有效时间的校验。如果需要检查证书的时间有效性,可使用X509证书的checkValidityWithDate方法进行检查。详见证书规格

系统能力: SystemCapability.Security.Cert

参数

参数名

类型

必填

说明

certChain

CertChainData

表示X509证书链序列化数据。

返回值

类型

说明

Promise<void>

Promise对象

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

19030002

the certificate signature verification failed.

19030003

the certificate has not taken effect.

19030004

the certificate has expired.

19030005

failed to obtain the certificate issuer.

19030006

the key cannot be used for signing a certificate.

19030007

the key cannot be used for digital signature.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. let validator = cryptoCert.createCertChainValidator("PKIX");
  3. // 证书链二进制数据,需业务自行赋值
  4. let encodingData = null;
  5. // 证书链包含的证书个数,需业务自行赋值
  6. let certCount = 2;
  7. let certChainData = {
  8. data: encodingData,
  9. count: certCount,
  10. // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  11. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  12. };
  13. validator.validate(certChainData).then(result => {
  14. console.log("validate success");
  15. }, error => {
  16. console.log("validate failed, errCode: " + error.code + ", errMsg: " + error.message);
  17. });

algorithm

algorithm : string

表示X509证书链校验器算法名称。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

string

表示证书链校验器算法名称

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. let validator = cryptoCert.createCertChainValidator("PKIX");
  3. let algorithm = validator.algorithm;

X509CrlEntry

被吊销证书对象。

getEncoded

getEncoded(callback : AsyncCallback<EncodingBlob>) : void

表示获取被吊销证书的序列化数据。

系统能力: SystemCapability.Security.Cert

参数

参数名

类型

必填

说明

callback

AsyncCallback<EncodingBlob>

回调函数。表示被吊销证书的序列化数据

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 业务需通过X509Crl的getRevokedCert相关方法获取X509CrlEntry
  3. let x509CrlEntry = null;
  4. x509CrlEntry.getEncoded(function (error, data) {
  5. if (error != null) {
  6. console.log("getEncoded failed, errCode: " + error.code + ", errMsg: " + error.message);
  7. } else {
  8. console.log("getEncoded success");
  9. }
  10. });

getEncoded

getEncoded() : Promise<EncodingBlob>

表示获取被吊销证书的序列化数据。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

Promise<EncodingBlob>

表示被吊销证书的序列化数据

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 业务需通过X509Crl的getRevokedCert相关方法获取X509CrlEntry
  3. let x509CrlEntry = null;
  4. x509CrlEntry.getEncoded().then(result => {
  5. console.log("getEncoded success");
  6. }, error => {
  7. console.log("getEncoded failed, errCode: " + error.code + ", errMsg: " + error.message);
  8. });

getSerialNumber

getSerialNumber() : number

表示获取被吊销证书的序列号。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

number

表示被吊销证书的序列号

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 业务需通过X509Crl的getRevokedCert相关方法获取X509CrlEntry
  3. let x509CrlEntry = null;
  4. let serialNumber = x509CrlEntry.getSerialNumber();

getCertIssuer

getCertIssuer() : DataBlob

表示获取被吊销证书的颁发者信息。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

DataBlob

表示被吊销证书的颁发者信息

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 业务需通过X509Crl的getRevokedCert相关方法获取X509CrlEntry
  3. let x509CrlEntry = null;
  4. try {
  5. let issuer = x509CrlEntry.getCertIssuer();
  6. } catch (error) {
  7. console.log("getCertIssuer failed, errCode: " + error.code + ", errMsg: " + error.message);
  8. }

getRevocationDate

getRevocationDate() : string

表示获取证书被吊销的日期。

系统能力: SystemCapability.Security.Cert

返回值

类型

说明

string

表示证书被吊销的日期

错误码:

以下错误码的详细介绍请参见cert错误码

错误码ID

错误信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 业务需通过X509Crl的getRevokedCert相关方法获取X509CrlEntry
  3. let x509CrlEntry = null;
  4. try {
  5. let date = x509CrlEntry.getRevocationDate();
  6. } catch (error) {
  7. console.log("getRevocationDate failed, errCode: " + error.code + ", errMsg: " + error.message);
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号