Я хочу проверить tsr с помощью p7m, чтобы убедиться, что временная метка соответствует файлу p7m. .
Для проверки я использовал Java (java11) и jumpycastle (1.56).
От tsd я получаю MessageImprintDigest:
Код: Выделить всё
byte[] byteTsr = org.apache.commons.io.FileUtils.readFileToByteArray(new File(fileTsr));
org.bouncycastle.tsp.TimeStampResponse response = new TimeStampResponse(byteTsr);
org.bouncycastle.tsp.TimeStampToken tstoken = response.getTimeStampToken();
TimeStampTokenInfo tstInfo = tstoken.getTimeStampInfo();
String responseMessageDigest = Base64.encode(tstInfo.getMessageImprintDigest());
Код: Выделить всё
TimeStampRequest request = null;
try(FileInputStream fis = new FileInputStream(new File(filep7m))){
CMSSignedData signedData = new CMSSignedData(fis);
SignerInformationStore signers = signedData.getSignerInfos();
SignerInformation si = (SignerInformation)signers.getSigners().iterator().next();
Security.addProvider(new BouncyCastleProvider());
TimeStampRequestGenerator generator = new TimeStampRequestGenerator();
request = generator.generate(TSPAlgorithms.SHA256, signDigest);
}
String requestMessageDigest = Base64.encode(request.getMessageImprintDigest());
Почему?
Если я проверю p7m и tsr с помощью внешнего инструмента, соответствие будет правильным и проверка будет успешной.Кто может мне помочь?
Заранее спасибо.
Я ожидал, что MessageImprintDigest из TimestampResponse равен MessageImprintDiget из TimestampRequest.
На самом деле это не так.
Подробнее здесь: https://stackoverflow.com/questions/790 ... cades-file