客户端 API

Client 初始化

  • 函数原型
  1. public AliCloudMytfClient(AliCloudClientConfig config);
  • 请求参数
参数 类型 说明
config AliCloudClientConfig 配置信息

获取 MYTF 平台信息

客户端初始化时,会自动获取 MYTF 身份信息,并根据用户设置的配置信息对 MYTF 可信计算引擎进行核身。

  • 函数原型
  1. public MYTFInfo getMYTFInfo();
  • 示例
  1. // 获取 MYTF 信息
  2. MYTFInfo mytfInfo = restClient.getMYTFInfo();
  3. Assert.assertNotNull(mytfInfo);
  4. // 获取该 MYTF 实例可信区代码签发者的公钥测量
  5. byte[] MRSigner = mytfInfo.getMrSigner();
  6. // 获取该 MYTF 实例中可信区代码的度量值
  7. byte[] MREnclave = mytfInfo.getMrEnclave();
  8. // 获取该 MYTF 实例所在域名
  9. String domainName = mytfInfo.getDomainName();
  10. // 获取该 MYTF 实例所在区名
  11. String regionName = mytfInfo.getRegionName();
  12. // 获取该 MYTF 版本号
  13. int Version = mytfInfo.getVersion();
  14. // 获取该 MYTF ECDSA 签名公钥
  15. byte[] signPK = mytfInfo.getECDSAPubKey();
  16. // 获取该 MYTF ECIES 加密公钥
  17. byte[] encPK = mytfInfo.getECIESPubKey();

获取用户所有 TAPP

  • 函数原型
  1. public List<TAPPInfo> getAllTAPP();
  • 示例
  1. List<TAPPInfo> allTAPP = restClient.getAllTAPP();
  2. Assert.assertNotNull(allTAPP);

获取 TAPP 信息

  • 函数原型
  1. public TappInfo getTappInfo(String tappId, int version);
  • 请求参数
参数 类型 说明
tappId String TAPP 名称
version int TAPP 版本号
  • 返回字段
返回字段 字段类型 说明
tappInfo TappInfo TAPPInfo 结构体
  • 示例
  1. // 获取 TAPP 信息
  2. TappInfo tappInfo = restClient.getTappInfo(tappId, tappVersion);
  3. Assert.assertNotNull(tappInfo);
  4. // 获取 TAPP 名称
  5. String tappID = tappInfo.getTappId();
  6. // 获取 TAPP 版本号
  7. int tappVersion = tappInfo.getVersion();
  8. // 获取 TAPP 执行引擎类型
  9. String tappExeEngine = tappInfo.getExecEngine().getEngineType();
  10. // 获取 TAPP 字节码测量值
  11. byte[] tappCodeHash = tappInfo.getCodeHash();
  12. // 获取 TAPP 信息度量值
  13. byte[] MrTapp = tappInfo.getMrTapp();
  14. // 获取 TAPP 描述
  15. String tappDesc = tappInfo.getDescription();
  16. // 获取 TAPP ECIES加密公钥
  17. byte[] encPK = tappInfo.getEncryptionKeys().get(KeyType.ECIES_SECP256K1_KEY);
  18. // 获取 TAPP ECDSA签名公钥
  19. byte[] signPK = tappInfo.getVerificationKeys().get(KeyType.ECDSA_RAW_SECP256K1_KEY);

安装 TAPP

  • 函数原型
  1. TappInstallResponse installTapp(TappInstallRequest installRequest);
  • 请求参数
参数 类型 说明
installRequest TappInstallRequest TAPP 安装请求体
  • 返回字段
返回字段 字段类型 说明
installResponse TappInstallResponse TAPP安装响应体
  • 示例
  1. // 构造安装 TAPP 请求
  2. TappInstallRequest tappInstallRequest = TappInstallRequest.builder()
  3. .newTapp(tappId, tappVersion, bytecodes)
  4. .setTappDescription(tappDesc)
  5. .build();
  6. // 发送安装 TAPP 请求
  7. TappInstallResponse tappInstallResponse = restClient.installTapp(tappInstallRequest);

授权 TAPP

  • 函数原型
  1. TappAuthorizeResponse authorizeTapp(TappAuthorizeRequest authorizeRequest);
  • 请求参数
参数 类型 说明
authorizeRequest TappAuthorizeRequest TAPP 授权请求体
  • 返回字段
返回字段 字段类型 说明
authorizeResponse TappAuthorizeResponse TAPP 授权响应体
  • 示例
  1. // 构造被授权人信息,"user_id"为被授权人的AccessId
  2. UserIdentityData userIdData = new UserIdentityData(UserDomainEnum.BAASREST,"user_id","", AccessTypeEnum.EXECUTE);
  3. // 构造授权 TAPP 请求
  4. TappAuthorizeRequest tappAuthorizeRequest = TappAuthorizeRequest.builder()
  5. .setTappId(TappId)
  6. .setTappVersion(TappVersion)
  7. .setAuthData(userIdData)
  8. .build;
  9. // 发送授权 TAPP 请求
  10. TappAuthorizeResponse tappAuthorizeResponse = restClient.authorizeTapp(tappAuthorizeRequest);

执行 TAPP

  • 函数原型
  1. TappExecuteResponse executeTapp(TappExecuteRequest executeRequest);
  • 请求参数
参数 类型 说明
executeRequest TappExecuteRequest TAPP 执行请求体
  • 返回字段
返回字段 字段类型 说明
executeResponse TappExecuteResponse TAPP 执行响应体
  • 示例
  1. // 构造执行 TAPP 请求
  2. TappExecuteRequest tappExecuteRequest = TappExecuteRequest.builder()
  3. .defaultRequest(tappId, tappVersion, testReqMethod)
  4. .addString(tappArgs)
  5. .build();
  6. // 发送执行 TAPP 请求
  7. TappExecuteResponse tappExecuteResponse = restClient.executeTapp(tappExecuteRequest);