У меня есть файл word/docx, который был подписан цифровой подписью.Как получить данные цифровой подписи из файла Word с помощью Java?
мне нужно открыть файл и прочитать тему подписи, действующую от, действуют до и остальных деталей (в том числе открытого ключа RSA)
Как я могу сделать это с Java?
Следующая ссылка не помогла мне, поскольку у меня уже есть подписанный документ.
Я попытался с апача пои, но неуспех, возвращение обнуляет только
public static void main(String[] args) throws IOException, XmlException {
String fileName = "test.docx";
OPCPackage pkg = null;
try {
pkg = OPCPackage.open(fileName, PackageAccess.READ_WRITE);
} catch (InvalidFormatException ex) {
ex.printStackTrace();
}
SignatureConfig sic = new SignatureConfig();
sic.getProxyUrl();
sic.setOpcPackage(pkg);
SignatureInfo si = new SignatureInfo();
si.setSignatureConfig(sic);
boolean isValid = si.verifySignature();
System.out.println("isValid " + isValid);
Iterator<SignaturePart> iter = si.getSignatureParts().iterator();
while (iter.hasNext()) {
SignaturePart element = iter.next();
System.out.println("getSigner " + element.getSigner());
List<X509Certificate> list = element.getCertChain();
for (X509Certificate cc : list) {
System.out.println("getSigAlgName " + cc.getSigAlgName());
System.out.println("getSigAlgOID " + cc.getSigAlgOID());
System.out.println("getNotAfter " + cc.getNotAfter());
System.out.println("getNotBefore " + cc.getNotBefore());
}
}
но проверка IsValid, вернулся правда ..
Я пытался использовать Apache POI –
Пробовал ли вы [Apache POI exampl e при проверке подписи] (http://poi.apache.org/encryption.html#Validating+a+signed+office+document)? – Gagravarr
Можете ли вы предоставить мне этот файл или аналогичный подписанный файл фиктивного файла? либо через вход bugzilla, либо по электронной почте (kiwiwings ... apache.org) ... – kiwiwings