createX509Cert 创建的证书信息无法获取

 let encodingBlob: cryptoCert.EncodingBlob = {
        data: certBytes,
        encodingFormat: cryptoCert.EncodingFormat.FORMAT_DER
      }
      cryptoCert.createX509Cert(encodingBlob).then(x509Cert => {
        console.log("createX509Cert success");
        resolve(x509Cert)
      }, error => {
        console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message);
        reject(error)
      });

certBytes:服务器返回的证书数据,在java中可以成功创建证书,也可以获取证书的信息,用于下次RSA获取公钥进行加密,但是ARKTS里我用createX509Cert 创建的证书getPublicKey() .getEncoded() 得到的是undefined,algName和format也是undefined,有哪位大神知道是什么情况吗?

程序框架
应用安全
2024-05-21 13:46:45
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Bowma

参考以下案例:

import certFramework from '@ohos.security.cert';
import { BusinessError } from '@ohos.base';

// string转Uint8Array
function stringToUint8Array(str: string): Uint8Array {
  let arr: Array<number> = [];
  for (let i = 0, j = str.length; i < j; i++) {
    arr.push(str.charCodeAt(i));
  }
  return new Uint8Array(arr);
}

// 证书二进制数据,需业务自行赋值
let certData = '-----BEGIN CERTIFICATE-----\n' +
  'MIIBHTCBwwICA+gwCgYIKoZIzj0EAwIwGjEYMBYGA1UEAwwPRXhhbXBsZSBSb290\n' +
  'IENBMB4XDTIzMDkwNTAyNDgyMloXDTI2MDUzMTAyNDgyMlowGjEYMBYGA1UEAwwP\n' +
  'RXhhbXBsZSBSb290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEHjG74yMI\n' +
  'ueO7z3T+dyuEIrhxTg2fqgeNB3SGfsIXlsiUfLTatUsU0i/sePnrKglj2H8Abbx9\n' +
  'PK0tsW/VgqwDIDAKBggqhkjOPQQDAgNJADBGAiEApVZno/Z7WyDc/muRN1y57uaY\n' +
  'Mjrgnvp/AMdE8qmFiDwCIQCrIYdHVO1awaPgcdALZY+uLQi6mEs/oMJLUcmaag3E\n' +
  'Qw==\n' +
  '-----END CERTIFICATE-----\n';

let encodingBlob: certFramework.EncodingBlob = {
  data: stringToUint8Array(certData),
  // 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
  encodingFormat: certFramework.EncodingFormat.FORMAT_PEM
};

certFramework.createX509Cert(encodingBlob).then(x509Cert => {
  console.log('createX509Cert success');
}).catch((error: BusinessError) => {
  console.error('createX509Cert failed, errCode: ' + error.code + ', errMsg: ' + error.message);
});
分享
微博
QQ
微信
回复
2024-05-21 14:43:23
相关问题
EnvironmentCallback无法获取信息
536浏览 • 1回复 待解决
设备信息udid无法获取
496浏览 • 1回复 待解决
场景化控件中无法获取到定位信息
611浏览 • 1回复 待解决
安卓app在鸿蒙2.0中无法获取定位信息
12801浏览 • 4回复 待解决
如何获取应用签名证书hash值
614浏览 • 1回复 待解决
如何获取组件属性信息
648浏览 • 1回复 待解决
如何获取设备CPU信息
676浏览 • 1回复 待解决
DevEco安装3.0无法创建JS Visual?
4688浏览 • 1回复 待解决
创建多个视频组件无法播放
770浏览 • 1回复 待解决
如何获取app配置版本信息
694浏览 • 1回复 待解决
如何获取窗口宽高信息
676浏览 • 1回复 待解决
如何获取手机屏幕信息
237浏览 • 1回复 待解决
如何获取应用版本信息
554浏览 • 1回复 待解决
PhotoViewPicker如何获取原始信息
1062浏览 • 1回复 待解决
arkTS无法创建子窗口有了解吗?
1214浏览 • 0回复 待解决