From 3f1918c831c919d0a8fcf18c36cf40118398b995 Mon Sep 17 00:00:00 2001
From: Marc Vinyals <[email protected]>
Date: Tue, 17 Oct 2023 21:51:23 +1300
Subject: [PATCH] Update dependencies

---
.gitlab-ci.yml                                         |  2 +-
build.gradle                                           |  4 ++--
ivy.xml                                                |  6 +++---
.../pdftk_java/com/lowagie/text/pdf/PdfPKCS7.java      | 10 +++++++---
4 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f3a0ef2..c3985ae 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -16,7 +16,7 @@ php-pdftk:
  extends: .ant-job
  script:
    - ant -lib /usr/share/java
-    - echo -e '#!/bin/bash\njava -cp' `pwd`'/build/jar/pdftk.jar:'`pwd`'/lib/bcprov-jdk18on-1.71.jar:'`pwd`'/lib/commons-lang3-3.12.0.jar com.gitlab.pdftk_java.pdftk "$@"' > /usr/bin/pdftk
+    - echo -e '#!/bin/bash\njava -cp' `pwd`'/build/jar/pdftk.jar:'`pwd`'/lib/bcprov-jdk18on-1.76.jar:'`pwd`'/lib/commons-lang3-3.12.0.jar com.gitlab.pdftk_java.pdftk "$@"' > /usr/bin/pdftk
    - chmod +x /usr/bin/pdftk
    - apt-get install php-mbstring php-xml composer -yqq
    - git clone --depth 1 https://github.com/marcvinyals/php-pdftk
diff --git a/build.gradle b/build.gradle
index 085b6f9..9f90074 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,7 +1,7 @@
plugins {
    id 'java'
    id 'application'
-    id 'com.diffplug.spotless' version '6.10.0'
+    id 'com.diffplug.spotless' version '6.13.0'
    id 'com.github.johnrengelman.shadow' version '7.1.2'
    id 'org.mikeneck.graalvm-native-image' version '1.4.1'
}
@@ -33,7 +33,7 @@ repositories {

dependencies {
    implementation 'org.apache.commons:commons-lang3:3.12.0'
-    implementation 'org.bouncycastle:bcprov-jdk18on:1.71'
+    implementation 'org.bouncycastle:bcprov-jdk18on:1.76'
}

nativeImage {
diff --git a/ivy.xml b/ivy.xml
index 700b1eb..14e7c07 100644
--- a/ivy.xml
+++ b/ivy.xml
@@ -6,10 +6,10 @@
    <conf name="test" extends="build"/>
  </configurations>
  <dependencies>
-    <dependency org="org.bouncycastle" name="bcprov-jdk18on" rev="1.71"/>
+    <dependency org="org.bouncycastle" name="bcprov-jdk18on" rev="1.76"/>
    <dependency org="org.apache.commons" name="commons-lang3" rev="3.12.0"/>
-    <dependency org="junit" name="junit" rev="4.12" conf="test"/>
+    <dependency org="junit" name="junit" rev="4.13.2" conf="test"/>
    <dependency org="com.github.stefanbirkner" name="system-rules" rev="1.19.0" conf="test"/>
-    <dependency org="org.jacoco" name="org.jacoco.ant" rev="0.8.4" conf="test"/>
+    <dependency org="org.jacoco" name="org.jacoco.ant" rev="0.8.10" conf="test"/>
  </dependencies>
</ivy-module>
diff --git a/java/com/gitlab/pdftk_java/com/lowagie/text/pdf/PdfPKCS7.java b/java/com/gitlab/pdftk_java/com/lowagie/text/pdf/PdfPKCS7.java
index 990d492..bd33e93 100644
--- a/java/com/gitlab/pdftk_java/com/lowagie/text/pdf/PdfPKCS7.java
+++ b/java/com/gitlab/pdftk_java/com/lowagie/text/pdf/PdfPKCS7.java
@@ -50,6 +50,10 @@
 * you aren't using an obsolete version:
 * http://www.lowagie.com/iText/
 */
+
+// pdftk-java iText base version 4.2.0
+// pdftk-java modified yes (compatibility with modern bcprov)
+
package com.gitlab.pdftk_java.com.lowagie.text.pdf;

import java.io.ByteArrayInputStream;
@@ -225,7 +229,7 @@ public class PdfPKCS7 {
        ASN1ObjectIdentifier objId = (ASN1ObjectIdentifier)signedData.getObjectAt(0);
        if (!objId.getId().equals(ID_PKCS7_SIGNED_DATA))
            throw new SecurityException("Not a valid PKCS#7 object - not signed data");
-        ASN1Sequence content = (ASN1Sequence)((DERTaggedObject)signedData.getObjectAt(1)).getObject();
+        ASN1Sequence content = (ASN1Sequence)((DERTaggedObject)signedData.getObjectAt(1)).getBaseObject();
        // the positions that we care are:
        //     0 - version
        //     1 - digestAlgorithms
@@ -258,7 +262,7 @@ public class PdfPKCS7 {
        // the possible ID_PKCS7_DATA
        ASN1Sequence rsaData = (ASN1Sequence)content.getObjectAt(2);
        if (rsaData.size() > 1) {
-            DEROctetString rsaDataContent = (DEROctetString)((DERTaggedObject)rsaData.getObjectAt(1)).getObject();
+            DEROctetString rsaDataContent = (DEROctetString)((DERTaggedObject)rsaData.getObjectAt(1)).getBaseObject();
            RSAdata = rsaDataContent.getOctets();
        }

@@ -294,7 +298,7 @@ public class PdfPKCS7 {
        next = 3;
        if (signerInfo.getObjectAt(next) instanceof ASN1TaggedObject) {
            ASN1TaggedObject tagsig = (ASN1TaggedObject)signerInfo.getObjectAt(next);
-            ASN1Sequence sseq = (ASN1Sequence)tagsig.getObject();
+            ASN1Sequence sseq = (ASN1Sequence)tagsig.getBaseObject();
            ByteArrayOutputStream bOut = new ByteArrayOutputStream();
            ASN1OutputStream dout = ASN1OutputStream.create(bOut);
            try {
--
GitLab