在pdf上進行數字簽名,在Java上可以使用開源庫itext進行,在iOS 平臺貌似還沒有開源庫,需要自己開發一個支持數字簽名的pdf組件或者使用第三方SDK,此過程可以參考相關Java源碼
1. 生成一張簽名對象,一般是簽名圖片
2. 生成包含數字簽名的簽名域對象
3.生成字節數組摘要,此過程需要解析數組證書文件
4.注入自己數組摘要到簽名域中
5.(可選)這樣一個帶有數字簽名的pdf文件就生成了,可以取出數字證書信息校驗簽名域了
下面來重點解析下第3步操作
一個基于DER編碼(Distinguished Encoding Rules,可辨別編碼規則)的PKCS#7 二進制文件里包含數字簽名可以被用于 摘要數據
如果是SHA1字節數組摘要 需要包裝成 PKCS#7的簽名數據作為字段. PKCS # 7對象必須符合 RFC 2315互聯網中的PKCS # 7規范
自己數組摘要至少要包含簽名者的X.509數字證書標準的簽名證書,該證書用于驗證簽名值
PKCS # 7對象可以包含一個或多個來自簽名者信任鏈的發行人(機構)證書