跳到内容
  • 福昕首页
  • 开发中心
  • SDK文档资料
  • 福昕首页
  • 开发中心
  • SDK文档资料
申请试用
  • 企业自动化
    • Compressor
  • 福昕CloudAPI
  • 福昕PDF SDK 软件开发工具包
    • 福昕PDF SDK(ActiveX)
    • 福昕PDF SDK(桌面/服务器)
    • 福昕PDF SDK(Plug-in)
    • 福昕 PDF SDK(安卓)
    • 福昕PDF SDK(iOS)
    • 福昕PDF SDK(Web)
  • 福昕管理控制台
    • 公有云
    • 私有云
    • 通用情况
  • 福昕阅读器
    • RMS插件
  • 福昕高级编辑器
    • AI助手
    • Mac版本
      • 常规问题
    • windows版本
      • ECM集成
      • 互联PDF
      • 企业管理指南
      • 保护
      • 内容编辑
      • 创建PDF
      • 压缩
      • 图章
      • 安装与卸载
      • 常见问题
      • 打印
      • 注释/评论
      • 福昕插件
      • 翻译助手
      • 翻译助手教程
      • 试用与激活
      • 转换
      • 页面管理
    • 教育用户
      • 论文查重
      • 论文畅
    • 网页版
      • 电子签章
    • 订阅
    • 资源
  • 福昕高级编辑器Linux版本
  • 福船图纸管理系统
  • 福昕PDF SDK 软件开发工具包
  • 标签:

【Foxit PDF SDK】福昕GSDK如何使用默认的sub filter "ETSI.RFC3161" 签名回调及默认的 RevocationCallback进行长期签名验证?

  • 福昕知识库
  • 2023-11-09

以下为部分样例代码:

//初始化时间戳服务器管理器,添加并设置一个默认的时间戳服务器,它将默认使用签名回调用于时间戳签名。

TimeStampServerMgr.initialize();

TimeStampServer timestamp_server = TimeStampServerMgr.addServer(server_name, server_url,

server_username, server_password);

TimeStampServerMgr.setDefaultServer(timestamp_server);

// 假设“signed_pdf_path”表示包含签名的已签名PDF文档。

PDFDoc pdf_doc = new PDFDoc(signed_pdf_path);

pdf_doc.startLoad(null, false, null);

{

// 使用LTVVerifier验证并添加DSS。

LTVVerifier ltv_verifier = new LTVVerifier(pdf_doc, true, true, false, LTVVerifier.e_SignatureCreationTime);

// 设置必要的验证模式。

ltv_verifier.setVerifyMode(LTVVerifier.e_VerifyModeAcrobat);

SignatureVerifyResultArray sig_verify_result_array = ltv_verifier.verify();

for (long i = 0; i < sig_verify_result_array.getSize(); i++) {

//ltv状态在这里是e_LTVStateNotEnable。

int ltv_state = sig_verify_result_array.getAt(i).getLTVState();

if ((sig_verify_result_array.getAt(i).getSignatureState() & Signature.e_StateVerifyValid) ==

Signature.e_StateVerifyValid)

ltv_verifier.addDSS(sig_verify_result_array.getAt(i));

}

}

//将时间戳签名添加为DTS并对其进行签名。“saved_ltv_pdf_path”表示新保存的签名PDF 文件。

PDFPage pdf_page = pdf_doc.getPage(0);

//新的时间戳签名将具有默认的过滤器名称“Adobe”。默认子过滤器名称 “ETSI.RFC3161”。

Signature timestamp_signature = pdf_page.addSignature(new RectF(), "",

Signature.e_SignatureTypeTimeStamp, true);

Progressive sign_progressive = timestamp_signature.startSign("", empty_str.getBytes(),

Signature.e_DigestSHA256, saved_ltv_pdf_path, null, null);

if (sign_progressive.getRateOfProgress() != 100)

sign_progressive.resume();

// 然后使用ltvverify来验证新签名的PDF文件。

PDFDoc check_pdf_doc = new PDFDoc(saved_ltv_pdf_path);

check_pdf_doc.startLoad(null, false, null);

{

// 使用ltvverify进行验证。

LTVVerifier ltv_verifier = new LTVVerifier(pdf_doc, true, true, false, LTVVerifier.e_SignatureCreationTime);

// 设置必要的验证模式。

ltv_verifier.setVerifyMode(LTVVerifier.e_VerifyModeAcrobat);

SignatureVerifyResultArray sig_verify_result_array = ltv_verifier.verify();

for (long i = 0; i < sig_verify_result_array.getSize(); i++) {

//ltv状态在这里是e_LTVStateEnable。

int ltv_state = sig_verify_result_array.getAt(i).getLTVState();

... // 用户可以从SignatureVerifyResult中获取其他信息。

}

}

// 完成所有操作后,释放时间戳服务器管理器。

TimeStampServerMgr::Release();

**完整样例请查看GSDK包中的ltv.java。

相关内容

【校园昕积分】邀请攻略:使用福昕合作高校发放教育专用激活码激活

【校园昕积分】邀请攻略:使用CARSI高校账户或高校EDU邮箱注册

在福昕高级PDF编辑器中如何自定义快速访问工具栏

在福昕高级PDF编辑器中如何设置常用图章

在对文件虚拟打印后如何设置文件不自动打开

通知消息关闭后如何开启

PDF文件奇偶页差异化页码添加

Web SDK 开发实战:动态自定义 PDF 注释右键菜单的 JavaScript 实现方案

无法安装服务“Foxit Document Management”(FoxitAssistantSvcPlus)

将3D文件添加作为信任文件

推荐内容

【校园昕积分】邀请攻略:使用福昕合作高校发放教育专用激活码激活

【校园昕积分】邀请攻略:使用CARSI高校账户或高校EDU邮箱注册

在福昕高级PDF编辑器中如何自定义快速访问工具栏

在福昕高级PDF编辑器中如何设置常用图章

在对文件虚拟打印后如何设置文件不自动打开

通知消息关闭后如何开启

PDF文件奇偶页差异化页码添加

Web SDK 开发实战:动态自定义 PDF 注释右键菜单的 JavaScript 实现方案

无法安装服务“Foxit Document Management”(FoxitAssistantSvcPlus)

将3D文件添加作为信任文件

产品
  • 应用行业
  • 白皮书
开发支持
  • 开发中心
  • SDK文档资料

销售咨询:010-50951668

客服电话:0591-38509808

销售咨询
微信公众号

©2025 福建福昕软件开发股份有限公司 版权所有

隐私策略