跳到内容
  • 福昕首页
  • 开发中心
  • 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
      • 压缩
      • 图章
      • 安装与卸载
      • 常见问题
      • 打印
      • 注释/评论
      • 福昕插件
      • 翻译助手
      • 翻译助手教程
      • 试用与激活
      • 转换
      • 页面管理
    • 教育用户
      • 论文查重
      • 论文畅
      • 操作指南
    • 网页版
      • Foxit eSign
      • 电子签章
    • 订阅
    • 资源
  • 福昕高级编辑器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。

相关内容

如何将彩色PDF一键转为黑白版?

PDFViewCtrl中如何隐藏文本选中菜单

【福昕管理控制台】自动停用功能常见问题解答

如何去除PDF中的水印?

版式识别功能Layout Recognition功能Demo简介

自v2025.2.1和v14.0.1版本开始以及之后的版本,如何获取到msi的包

云文档列表右键菜单与程序语言不一致

如何重复使用区域高亮的功能

如何在页面中总是显示文档页面大小

如何实现总是在新窗口中打开文件

推荐内容

如何将彩色PDF一键转为黑白版?

PDFViewCtrl中如何隐藏文本选中菜单

【福昕管理控制台】自动停用功能常见问题解答

如何去除PDF中的水印?

版式识别功能Layout Recognition功能Demo简介

自v2025.2.1和v14.0.1版本开始以及之后的版本,如何获取到msi的包

云文档列表右键菜单与程序语言不一致

如何重复使用区域高亮的功能

如何在页面中总是显示文档页面大小

如何实现总是在新窗口中打开文件

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

销售咨询:010-50951668

客服电话:0591-38509808

销售咨询
微信公众号

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

隐私策略