證書(shū)模塊

2024-01-23 15:56 更新

crypto framework提供證書(shū)相關(guān)接口。其中,依賴(lài)加解密算法庫(kù)框架的基礎(chǔ)算法能力的部分,詳細(xì)接口說(shuō)明可參考cryptoFramework API參考。

說(shuō)明

本模塊首批接口從API version 9開(kāi)始支持。

導(dǎo)入模塊

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

CertResult

表示執(zhí)行結(jié)果的枚舉。

系統(tǒng)能力: SystemCapability.Security.Cert

名稱(chēng)

說(shuō)明

INVALID_PARAMS

401

非法入?yún)ⅰ?/p>

NOT_SUPPORT

801

操作不支持。

ERR_OUT_OF_MEMORY

19020001

內(nèi)存錯(cuò)誤。

ERR_RUNTIME_ERROR

19020002

運(yùn)行時(shí)外部錯(cuò)誤。

ERR_CRYPTO_OPERATION

19030001

調(diào)用三方算法庫(kù)API出錯(cuò)。

ERR_CERT_SIGNATURE_FAILURE

19030002

證書(shū)簽名驗(yàn)證錯(cuò)誤。

ERR_CERT_NOT_YET_VALID

19030003

證書(shū)尚未生效。

ERR_CERT_HAS_EXPIRED

19030004

證書(shū)過(guò)期。

ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY

19030005

無(wú)法獲取證書(shū)的頒發(fā)者。

ERR_KEYUSAGE_NO_CERTSIGN

19030006

證書(shū)的秘鑰用途不含證書(shū)簽名。

ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE

19030007

證書(shū)的秘鑰用途不含數(shù)字簽名。

DataBlob

buffer數(shù)組。

系統(tǒng)能力: SystemCapability.Security.Cert

名稱(chēng)

類(lèi)型

可讀

可寫(xiě)

說(shuō)明

data

Uint8Array

數(shù)據(jù)。

DataArray

buffer數(shù)組的列表。

系統(tǒng)能力: SystemCapability.Security.Cert

名稱(chēng)

類(lèi)型

可讀

可寫(xiě)

說(shuō)明

data

Uint8Array

數(shù)據(jù)列表。

EncodingFormat

表示證書(shū)編碼格式的枚舉。

系統(tǒng)能力: SystemCapability.Security.Cert

名稱(chēng)

說(shuō)明

FORMAT_DER

0

DER格式。

FORMAT_PEM

1

PEM格式。

EncodingBlob

帶編碼格式的證書(shū)二進(jìn)制數(shù)組。

屬性

系統(tǒng)能力: SystemCapability.Security.Cert

名稱(chēng)

類(lèi)型

可讀

可寫(xiě)

說(shuō)明

data

Uint8Array

傳入的證書(shū)數(shù)據(jù)。

encodingFormat

EncodingFormat

指明證書(shū)編碼格式。

CertChainData

證書(shū)鏈數(shù)據(jù),在證書(shū)鏈校驗(yàn)時(shí),作為入?yún)魅搿?/p>

屬性

系統(tǒng)能力: SystemCapability.Security.Cert

名稱(chēng)

類(lèi)型

可讀

可寫(xiě)

說(shuō)明

data

Uint8Array

證書(shū)數(shù)據(jù),按照長(zhǎng)度(2字節(jié))-數(shù)據(jù)的形式傳入,如:08ABCDEFGH07ABCDEFG,第一本證書(shū),前2個(gè)字節(jié)表示證書(shū)的長(zhǎng)度為8字節(jié),后面附加8字節(jié)的證書(shū)數(shù)據(jù);第2本證書(shū)前2個(gè)字節(jié)表示證書(shū)的長(zhǎng)度為7字節(jié),后面附加7字節(jié)的證書(shū)數(shù)據(jù)。

count

number

傳入的數(shù)據(jù)中,包含的證書(shū)數(shù)量。

encodingFormat

EncodingFormat

指明證書(shū)編碼格式。

cryptoCert.createX509Cert

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

表示創(chuàng)建X509證書(shū)對(duì)象。

系統(tǒng)能力: SystemCapability.Security.Cert

參數(shù):

參數(shù)名

類(lèi)型

必填

說(shuō)明

inStream

EncodingBlob

X509證書(shū)序列化數(shù)據(jù)

callback

AsyncCallback<X509Cert>

回調(diào)函數(shù)。表示X509證書(shū)對(duì)象

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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>

表示創(chuàng)建X509證書(shū)對(duì)象。

系統(tǒng)能力: SystemCapability.Security.Cert

參數(shù):

參數(shù)名

類(lèi)型

必填

說(shuō)明

inStream

EncodingBlob

X509證書(shū)序列化數(shù)據(jù)

返回值:

類(lèi)型

說(shuō)明

Promise<X509Cert>

表示X509證書(shū)對(duì)象

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)類(lèi)。

verify

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

表示對(duì)證書(shū)驗(yàn)簽。

系統(tǒng)能力: SystemCapability.Security.Cert

參數(shù):

參數(shù)名

類(lèi)型

必填

說(shuō)明

key

cryptoFramework.PubKey

用于驗(yàn)簽的公鑰對(duì)象

callback

AsyncCallback<void>

回調(diào)函數(shù)。使用AsyncCallback的第一個(gè)error參數(shù)判斷是否驗(yàn)簽成功,error為null表示成功,不為null表示失敗

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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. // 業(yè)務(wù)需通過(guò)上級(jí)X509Cert證書(shū)對(duì)象的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>

表示對(duì)證書(shū)驗(yàn)簽。

系統(tǒng)能力: SystemCapability.Security.Cert

參數(shù):

參數(shù)名

類(lèi)型

必填

說(shuō)明

key

cryptoFramework.PubKey

用于驗(yàn)簽的公鑰對(duì)象

返回值:

類(lèi)型

說(shuō)明

Promise<void>

Promise對(duì)象

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持FORMAT_PEM和FORMAT_DER
  7. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  8. };
  9. cryptoCert.createX509Cert(encodingBlob).then(x509Cert => {
  10. console.log("createX509Cert success");
  11. // 業(yè)務(wù)可通過(guò)上級(jí)X509Cert證書(shū)對(duì)象的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證書(shū)序列化數(shù)據(jù)。

系統(tǒng)能力: SystemCapability.Security.Cert

參數(shù)

參數(shù)名

類(lèi)型

必填

說(shuō)明

callback

AsyncCallback<EncodingBlob>

回調(diào)函數(shù)。表示X509證書(shū)序列化數(shù)據(jù)

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)序列化數(shù)據(jù)。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

Promise<EncodingBlob>

表示X509證書(shū)序列化數(shù)據(jù)

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)公鑰。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

cryptoFramework.PubKey

X509證書(shū)公鑰對(duì)象:僅用于X509Cert的verify接口

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. import cryptoFramework from "@ohos.security.cryptoFramework"
  3. // 證書(shū)二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  4. let encodingData = null;
  5. let encodingBlob = {
  6. data: encodingData,
  7. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)有效期。

系統(tǒng)能力: SystemCapability.Security.Cert

參數(shù)

參數(shù)名

類(lèi)型

必填

說(shuō)明

date

string

日期(格式:YYMMDDHHMMSSZ 或 YYYYMMDDHHMMSSZ,時(shí)間必須以Z結(jié)尾:表示標(biāo)準(zhǔn)時(shí)間)

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

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. // 證書(shū)二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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. // 校驗(yàn)證書(shū)有效期
  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證書(shū)版本。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

number

表示X509證書(shū)版本

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)序列號(hào)。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

number

表示X509證書(shū)序列號(hào)

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)頒發(fā)者名稱(chēng)。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

DataBlob

表示X509證書(shū)頒發(fā)者名稱(chēng)

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)主體名稱(chēng)。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

DataBlob

表示X509證書(shū)主體名稱(chēng)

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)有效期起始時(shí)間。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

string

表示X509證書(shū)有效期起始時(shí)間(格式:YYMMDDHHMMSSZ 或 YYYYMMDDHHMMSSZ,時(shí)間以Z結(jié)尾:表示標(biāo)準(zhǔn)時(shí)間)

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)有效期截止時(shí)間。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

string

表示X509證書(shū)有效期截止時(shí)間(格式:YYMMDDHHMMSSZ 或 YYYYMMDDHHMMSSZ,時(shí)間以Z結(jié)尾:表示標(biāo)準(zhǔn)時(shí)間)

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)簽名數(shù)據(jù)。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

DataBlob

表示X509證書(shū)簽名數(shù)據(jù)

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)簽名算法名稱(chēng)。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

string

表示X509證書(shū)簽名算法名稱(chēng)

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)簽名算法的對(duì)象標(biāo)志符OID(Object Identifier)。OID是由國(guó)際標(biāo)準(zhǔn)組織(ISO)的名稱(chēng)注冊(cè)機(jī)構(gòu)分配。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

string

表示X509證書(shū)簽名算法對(duì)象標(biāo)志符OID

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)簽名算法參數(shù)。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

DataBlob

表示X509證書(shū)簽名算法參數(shù)

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)秘鑰用途。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

DataBlob

表示X509證書(shū)秘鑰用途

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)擴(kuò)展秘鑰用途。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

DataArray

表示X509證書(shū)擴(kuò)展秘鑰用途

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)基本約束。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

number

表示X509證書(shū)基本約束

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)主體可選名稱(chēng)。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

DataArray

表示X509證書(shū)主體可選名稱(chēng)

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)頒發(fā)者可選名稱(chēng)。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

DataArray

表示X509證書(shū)頒發(fā)者可選名稱(chēng)

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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

表示創(chuàng)建X509證書(shū)吊銷(xiāo)列表的對(duì)象。

系統(tǒng)能力: SystemCapability.Security.Cert

參數(shù)

參數(shù)名

類(lèi)型

必填

說(shuō)明

inStream

EncodingBlob

表示證書(shū)吊銷(xiāo)列表序列化數(shù)據(jù)

callback

AsyncCallback<X509Crl>

回調(diào)函數(shù)。表示證書(shū)吊銷(xiāo)列表對(duì)象

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)吊銷(xiāo)列表二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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>

表示創(chuàng)建X509證書(shū)吊銷(xiāo)列表的對(duì)象。

系統(tǒng)能力: SystemCapability.Security.Cert

參數(shù)

參數(shù)名

類(lèi)型

必填

說(shuō)明

inStream

EncodingBlob

表示證書(shū)吊銷(xiāo)列表序列化數(shù)據(jù)

返回值

類(lèi)型

說(shuō)明

Promise<X509Crl>

表示證書(shū)吊銷(xiāo)列表對(duì)象

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)吊銷(xiāo)列表二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)吊銷(xiāo)列表對(duì)象。

isRevoked

isRevoked(cert : X509Cert) : boolean

表示檢查證書(shū)是否吊銷(xiāo)。

系統(tǒng)能力: SystemCapability.Security.Cert

參數(shù)

參數(shù)名

類(lèi)型

必填

說(shuō)明

cert

X509Cert

表示被檢查的證書(shū)對(duì)象

返回值

類(lèi)型

說(shuō)明

boolean

表示證書(shū)吊銷(xiāo)狀態(tài),true表示已吊銷(xiāo),false表示未吊銷(xiāo)

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)吊銷(xiāo)列表二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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. // 業(yè)務(wù)需自行生成X509Cert證書(shū)對(duì)象
  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

表示獲取證書(shū)吊銷(xiāo)列表類(lèi)型。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

string

表示證書(shū)吊銷(xiāo)列表類(lèi)型

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)吊銷(xiāo)列表二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)吊銷(xiāo)列表的序列化數(shù)據(jù)。

系統(tǒng)能力: SystemCapability.Security.Cert

參數(shù)

參數(shù)名

類(lèi)型

必填

說(shuō)明

callback

AsyncCallback<EncodingBlob>

回調(diào)函數(shù),表示X509證書(shū)吊銷(xiāo)列表的序列化數(shù)據(jù)

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)吊銷(xiāo)列表二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)吊銷(xiāo)列表的序列化數(shù)據(jù)。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

Promise<EncodingBlob>

表示X509證書(shū)吊銷(xiāo)列表的序列化數(shù)據(jù)

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)吊銷(xiāo)列表二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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

表示對(duì)X509證書(shū)吊銷(xiāo)列表進(jìn)行驗(yàn)簽。驗(yàn)簽支持RSA算法。

系統(tǒng)能力: SystemCapability.Security.Cert

參數(shù)

參數(shù)名

類(lèi)型

必填

說(shuō)明

key

cryptoFramework.PubKey

表示用于驗(yàn)簽的公鑰對(duì)象

callback

AsyncCallback<void>

回調(diào)函數(shù),使用AsyncCallback的第一個(gè)error參數(shù)判斷是否驗(yàn)簽成功,error為null表示成功,error不為null表示失敗。

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. import cryptoFramework from "@ohos.security.cryptoFramework"
  3. // 證書(shū)吊銷(xiāo)列表二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  4. let encodingData = null;
  5. let encodingBlob = {
  6. data: encodingData,
  7. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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. // 業(yè)務(wù)需通過(guò)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>

表示對(duì)X509證書(shū)吊銷(xiāo)列表進(jìn)行驗(yàn)簽。驗(yàn)簽支持RSA算法。

系統(tǒng)能力: SystemCapability.Security.Cert

參數(shù)

參數(shù)名

類(lèi)型

必填

說(shuō)明

key

cryptoFramework.PubKey

表示用于驗(yàn)簽的公鑰對(duì)象。

返回值

類(lèi)型

說(shuō)明

Promise<void>

Promise對(duì)象

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼

錯(cuò)誤碼ID

錯(cuò)誤信息

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. import cryptoFramework from "@ohos.security.cryptoFramework"
  3. // 證書(shū)吊銷(xiāo)列表二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  4. let encodingData = null;
  5. let encodingBlob = {
  6. data: encodingData,
  7. // 根據(jù)encodingData的格式進(jìn)行賦值,支持FORMAT_PEM和FORMAT_DER
  8. encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM
  9. };
  10. cryptoCert.createX509Crl(encodingBlob).then(x509Crl => {
  11. console.log("createX509Crl success");
  12. // 業(yè)務(wù)需通過(guò)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證書(shū)吊銷(xiāo)列表的版本號(hào)。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

number

表示獲取X509證書(shū)吊銷(xiāo)列表的版本號(hào)

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)吊銷(xiāo)列表二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)吊銷(xiāo)列表頒發(fā)者名稱(chēng)。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

DataBlob

表示X509證書(shū)吊銷(xiāo)列表頒發(fā)者名稱(chēng)

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)吊銷(xiāo)列表二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)吊銷(xiāo)列表最后一次更新日期。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

string

表示X509證書(shū)吊銷(xiāo)列表最后一次更新日期

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)吊銷(xiāo)列表二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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

表示獲取證書(shū)吊銷(xiāo)列表下一次更新的日期。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

string

表示X509證書(shū)吊銷(xiāo)列表下一次更新的日期

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)吊銷(xiāo)列表二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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

表示通過(guò)指定證書(shū)序列號(hào)獲取被吊銷(xiāo)X509證書(shū)對(duì)象。

系統(tǒng)能力: SystemCapability.Security.Cert

參數(shù)

參數(shù)名

類(lèi)型

必填

說(shuō)明

serialNumber

number

表示證書(shū)序列號(hào)

返回值:

類(lèi)型

說(shuō)明

X509CrlEntry

表示被吊銷(xiāo)X509證書(shū)對(duì)象

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)吊銷(xiāo)列表二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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. // 業(yè)務(wù)需賦值為對(duì)應(yīng)證書(shū)的序列號(hào)
  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

表示通過(guò)指定證書(shū)對(duì)象獲取被吊銷(xiāo)X509證書(shū)對(duì)象。

系統(tǒng)能力: SystemCapability.Security.Cert

參數(shù)

參數(shù)名

類(lèi)型

必填

說(shuō)明

cert

X509Cert

表示證書(shū)對(duì)象

返回值:

類(lèi)型

說(shuō)明

X509CrlEntry

表示被吊銷(xiāo)X509證書(shū)對(duì)象

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)吊銷(xiāo)列表二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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. // 業(yè)務(wù)需自行生成X509Cert證書(shū)對(duì)象
  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

表示獲取被吊銷(xiāo)X509證書(shū)列表。

系統(tǒng)能力: SystemCapability.Security.Cert

參數(shù)

參數(shù)名

類(lèi)型

必填

說(shuō)明

callback

AsyncCallback<Array<X509CrlEntry>>

回調(diào)函數(shù)。表示被吊銷(xiāo)X509證書(shū)列表

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)吊銷(xiāo)列表二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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>>

表示獲取被吊銷(xiāo)X509證書(shū)列表。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值:

類(lèi)型

說(shuō)明

Promise<Array<X509CrlEntry>>

表示被吊銷(xiāo)X509證書(shū)列表

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)吊銷(xiāo)列表二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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

表示獲取證書(shū)吊銷(xiāo)列表的tbsCertList信息。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值:

類(lèi)型

說(shuō)明

DataBlob

表示證書(shū)吊銷(xiāo)列表的tbsCertList信息

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)吊銷(xiāo)列表二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)吊銷(xiāo)列表的簽名數(shù)據(jù)。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

DataBlob

表示X509證書(shū)吊銷(xiāo)列表的簽名數(shù)據(jù)

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)吊銷(xiāo)列表二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)吊銷(xiāo)列表簽名的算法名稱(chēng)。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

string

表示X509證書(shū)吊銷(xiāo)列表簽名的算法名

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)吊銷(xiāo)列表二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)吊銷(xiāo)列表簽名算法的對(duì)象標(biāo)志符OID(Object Identifier)。OID是由國(guó)際標(biāo)準(zhǔn)組織(ISO)的名稱(chēng)注冊(cè)機(jī)構(gòu)分配。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

string

表示X509證書(shū)吊銷(xiāo)列表簽名算法的對(duì)象標(biāo)志符OID。

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)吊銷(xiāo)列表二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)吊銷(xiāo)列表簽名的算法參數(shù)。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

DataBlob

表示X509證書(shū)吊銷(xiāo)列表簽名的算法參數(shù)

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 證書(shū)吊銷(xiāo)列表二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  3. let encodingData = null;
  4. let encodingBlob = {
  5. data: encodingData,
  6. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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

表示創(chuàng)建證書(shū)鏈校驗(yàn)器對(duì)象。

系統(tǒng)能力: SystemCapability.Security.Cert

參數(shù)

參數(shù)名

類(lèi)型

必填

說(shuō)明

algorithm

string

表示證書(shū)鏈校驗(yàn)器算法。當(dāng)前僅支持輸入“PKIX”

返回值

類(lèi)型

說(shuō)明

CertChainValidator

表示證書(shū)鏈校驗(yàn)器對(duì)象

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

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

CertChainValidator

證書(shū)鏈校驗(yàn)器對(duì)象。

屬性

系統(tǒng)能力: SystemCapability.Security.Cert

名稱(chēng)

類(lèi)型

可讀

可寫(xiě)

說(shuō)明

algorithm

string

X509證書(shū)鏈校驗(yàn)器算法名稱(chēng)。

validate

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

表示校驗(yàn)X509證書(shū)鏈。

由于端側(cè)系統(tǒng)時(shí)間不可信,證書(shū)鏈校驗(yàn)不包含對(duì)證書(shū)有效時(shí)間的校驗(yàn)。如果需要檢查證書(shū)的時(shí)間有效性,可使用X509證書(shū)的checkValidityWithDate方法進(jìn)行檢查。詳見(jiàn)證書(shū)規(guī)格

系統(tǒng)能力: SystemCapability.Security.Cert

參數(shù)

參數(shù)名

類(lèi)型

必填

說(shuō)明

certChain

CertChainData

表示X509證書(shū)鏈序列化數(shù)據(jù)

callback

AsyncCallback<void>

回調(diào)函數(shù)。使用AsyncCallback的第一個(gè)error參數(shù)判斷是否校驗(yàn)成功,error為null表示成功,error不為null表示失敗

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

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. // 證書(shū)鏈二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  4. let encodingData = null;
  5. // 證書(shū)鏈包含的證書(shū)個(gè)數(shù),需業(yè)務(wù)自行賦值
  6. let certCount = 2;
  7. let certChainData = {
  8. data: encodingData,
  9. count: certCount,
  10. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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>

表示校驗(yàn)X509證書(shū)鏈。

由于端側(cè)系統(tǒng)時(shí)間不可信,證書(shū)鏈校驗(yàn)不包含對(duì)證書(shū)有效時(shí)間的校驗(yàn)。如果需要檢查證書(shū)的時(shí)間有效性,可使用X509證書(shū)的checkValidityWithDate方法進(jìn)行檢查。詳見(jiàn)證書(shū)規(guī)格

系統(tǒng)能力: SystemCapability.Security.Cert

參數(shù)

參數(shù)名

類(lèi)型

必填

說(shuō)明

certChain

CertChainData

表示X509證書(shū)鏈序列化數(shù)據(jù)。

返回值

類(lèi)型

說(shuō)明

Promise<void>

Promise對(duì)象

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

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. // 證書(shū)鏈二進(jìn)制數(shù)據(jù),需業(yè)務(wù)自行賦值
  4. let encodingData = null;
  5. // 證書(shū)鏈包含的證書(shū)個(gè)數(shù),需業(yè)務(wù)自行賦值
  6. let certCount = 2;
  7. let certChainData = {
  8. data: encodingData,
  9. count: certCount,
  10. // 根據(jù)encodingData的格式進(jìn)行賦值,支持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證書(shū)鏈校驗(yàn)器算法名稱(chēng)。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

string

表示證書(shū)鏈校驗(yàn)器算法名稱(chēng)

示例:

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

X509CrlEntry

被吊銷(xiāo)證書(shū)對(duì)象。

getEncoded

getEncoded(callback : AsyncCallback<EncodingBlob>) : void

表示獲取被吊銷(xiāo)證書(shū)的序列化數(shù)據(jù)。

系統(tǒng)能力: SystemCapability.Security.Cert

參數(shù)

參數(shù)名

類(lèi)型

必填

說(shuō)明

callback

AsyncCallback<EncodingBlob>

回調(diào)函數(shù)。表示被吊銷(xiāo)證書(shū)的序列化數(shù)據(jù)

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 業(yè)務(wù)需通過(guò)X509Crl的getRevokedCert相關(guān)方法獲取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>

表示獲取被吊銷(xiāo)證書(shū)的序列化數(shù)據(jù)。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

Promise<EncodingBlob>

表示被吊銷(xiāo)證書(shū)的序列化數(shù)據(jù)

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 業(yè)務(wù)需通過(guò)X509Crl的getRevokedCert相關(guān)方法獲取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

表示獲取被吊銷(xiāo)證書(shū)的序列號(hào)。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

number

表示被吊銷(xiāo)證書(shū)的序列號(hào)

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 業(yè)務(wù)需通過(guò)X509Crl的getRevokedCert相關(guān)方法獲取X509CrlEntry
  3. let x509CrlEntry = null;
  4. let serialNumber = x509CrlEntry.getSerialNumber();

getCertIssuer

getCertIssuer() : DataBlob

表示獲取被吊銷(xiāo)證書(shū)的頒發(fā)者信息。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

DataBlob

表示被吊銷(xiāo)證書(shū)的頒發(fā)者信息

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 業(yè)務(wù)需通過(guò)X509Crl的getRevokedCert相關(guān)方法獲取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

表示獲取證書(shū)被吊銷(xiāo)的日期。

系統(tǒng)能力: SystemCapability.Security.Cert

返回值

類(lèi)型

說(shuō)明

string

表示證書(shū)被吊銷(xiāo)的日期

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見(jiàn)cert錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

19020001

memory error.

19020002

runtime error.

19030001

crypto operation error.

示例:

  1. import cryptoCert from '@ohos.security.cert';
  2. // 業(yè)務(wù)需通過(guò)X509Crl的getRevokedCert相關(guān)方法獲取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);
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)