From 1639e0fc4c18f7bf9802c56d1245047a6e32a202 Mon Sep 17 00:00:00 2001 From: Anthony Stirling <77850077+Frooodle@users.noreply.github.com.> Date: Mon, 9 Dec 2024 20:41:13 +0000 Subject: [PATCH] format --- .../software/SPDF/EE/LicenseKeyChecker.java | 2 +- .../controller/api/security/GetInfoOnPDF.java | 4 +- .../security/ValidateSignatureController.java | 40 ++++++++++++------- .../security/SignatureValidationResult.java | 23 +++++------ .../service/CertificateValidationService.java | 3 +- 5 files changed, 43 insertions(+), 29 deletions(-) diff --git a/src/main/java/stirling/software/SPDF/EE/LicenseKeyChecker.java b/src/main/java/stirling/software/SPDF/EE/LicenseKeyChecker.java index 93648dfa..108ee302 100644 --- a/src/main/java/stirling/software/SPDF/EE/LicenseKeyChecker.java +++ b/src/main/java/stirling/software/SPDF/EE/LicenseKeyChecker.java @@ -28,7 +28,7 @@ public class LicenseKeyChecker { this.checkLicense(); } - @Scheduled(initialDelay = 604800000,fixedRate = 604800000) // 7 days in milliseconds + @Scheduled(initialDelay = 604800000, fixedRate = 604800000) // 7 days in milliseconds public void checkLicensePeriodically() { checkLicense(); } diff --git a/src/main/java/stirling/software/SPDF/controller/api/security/GetInfoOnPDF.java b/src/main/java/stirling/software/SPDF/controller/api/security/GetInfoOnPDF.java index 96745c4a..d6950e95 100644 --- a/src/main/java/stirling/software/SPDF/controller/api/security/GetInfoOnPDF.java +++ b/src/main/java/stirling/software/SPDF/controller/api/security/GetInfoOnPDF.java @@ -595,7 +595,9 @@ public class GetInfoOnPDF { permissionsNode.put("Document Assembly", getPermissionState(ap.canAssembleDocument())); permissionsNode.put("Extracting Content", getPermissionState(ap.canExtractContent())); - permissionsNode.put("Extracting for accessibility", getPermissionState(ap.canExtractForAccessibility())); + permissionsNode.put( + "Extracting for accessibility", + getPermissionState(ap.canExtractForAccessibility())); permissionsNode.put("Form Filling", getPermissionState(ap.canFillInForm())); permissionsNode.put("Modifying", getPermissionState(ap.canModify())); permissionsNode.put("Modifying annotations", getPermissionState(ap.canModifyAnnotations())); diff --git a/src/main/java/stirling/software/SPDF/controller/api/security/ValidateSignatureController.java b/src/main/java/stirling/software/SPDF/controller/api/security/ValidateSignatureController.java index 94e99dd9..317c6424 100644 --- a/src/main/java/stirling/software/SPDF/controller/api/security/ValidateSignatureController.java +++ b/src/main/java/stirling/software/SPDF/controller/api/security/ValidateSignatureController.java @@ -92,20 +92,29 @@ public class ValidateSignatureController { SignerInformationStore signerStore = signedData.getSignerInfos(); for (SignerInformation signer : signerStore.getSigners()) { - X509CertificateHolder certHolder = (X509CertificateHolder) certStore.getMatches(signer.getSID()).iterator().next(); - X509Certificate cert = new JcaX509CertificateConverter().getCertificate(certHolder); + X509CertificateHolder certHolder = + (X509CertificateHolder) + certStore.getMatches(signer.getSID()).iterator().next(); + X509Certificate cert = + new JcaX509CertificateConverter().getCertificate(certHolder); - boolean isValid = signer.verify(new JcaSimpleSignerInfoVerifierBuilder().build(cert)); + boolean isValid = + signer.verify(new JcaSimpleSignerInfoVerifierBuilder().build(cert)); result.setValid(isValid); // Additional validations - result.setChainValid(customCert != null - ? certValidationService.validateCertificateChainWithCustomCert(cert, customCert) - : certValidationService.validateCertificateChain(cert)); + result.setChainValid( + customCert != null + ? certValidationService + .validateCertificateChainWithCustomCert( + cert, customCert) + : certValidationService.validateCertificateChain(cert)); - result.setTrustValid(customCert != null - ? certValidationService.validateTrustWithCustomCert(cert, customCert) - : certValidationService.validateTrustStore(cert)); + result.setTrustValid( + customCert != null + ? certValidationService.validateTrustWithCustomCert( + cert, customCert) + : certValidationService.validateTrustStore(cert)); result.setNotRevoked(!certValidationService.isRevoked(cert)); result.setNotExpired(!cert.getNotAfter().before(new Date())); @@ -123,17 +132,18 @@ public class ValidateSignatureController { result.setValidFrom(cert.getNotBefore().toString()); result.setValidUntil(cert.getNotAfter().toString()); result.setSignatureAlgorithm(cert.getSigAlgName()); - + // Get key size (if possible) try { - result.setKeySize(((RSAPublicKey) cert.getPublicKey()).getModulus().bitLength()); + result.setKeySize( + ((RSAPublicKey) cert.getPublicKey()).getModulus().bitLength()); } catch (Exception e) { // If not RSA or error, set to 0 result.setKeySize(0); } result.setVersion(String.valueOf(cert.getVersion())); - + // Set key usage List keyUsages = new ArrayList<>(); boolean[] keyUsageFlags = cert.getKeyUsage(); @@ -150,9 +160,11 @@ public class ValidateSignatureController { } } result.setKeyUsages(keyUsages); - + // Check if self-signed - result.setSelfSigned(cert.getSubjectX500Principal().equals(cert.getIssuerX500Principal())); + result.setSelfSigned( + cert.getSubjectX500Principal() + .equals(cert.getIssuerX500Principal())); } } catch (Exception e) { result.setValid(false); diff --git a/src/main/java/stirling/software/SPDF/model/api/security/SignatureValidationResult.java b/src/main/java/stirling/software/SPDF/model/api/security/SignatureValidationResult.java index 1aafd8ec..b4c51f36 100644 --- a/src/main/java/stirling/software/SPDF/model/api/security/SignatureValidationResult.java +++ b/src/main/java/stirling/software/SPDF/model/api/security/SignatureValidationResult.java @@ -16,16 +16,15 @@ public class SignatureValidationResult { private boolean trustValid; private boolean notExpired; private boolean notRevoked; - - private String issuerDN; // Certificate issuer's Distinguished Name - private String subjectDN; // Certificate subject's Distinguished Name - private String serialNumber; // Certificate serial number - private String validFrom; // Certificate validity start date - private String validUntil; // Certificate validity end date - private String signatureAlgorithm;// Algorithm used for signing - private int keySize; // Key size in bits - private String version; // Certificate version - private List keyUsages; // List of key usage purposes - private boolean isSelfSigned; // Whether the certificate is self-signed - + + private String issuerDN; // Certificate issuer's Distinguished Name + private String subjectDN; // Certificate subject's Distinguished Name + private String serialNumber; // Certificate serial number + private String validFrom; // Certificate validity start date + private String validUntil; // Certificate validity end date + private String signatureAlgorithm; // Algorithm used for signing + private int keySize; // Key size in bits + private String version; // Certificate version + private List keyUsages; // List of key usage purposes + private boolean isSelfSigned; // Whether the certificate is self-signed } diff --git a/src/main/java/stirling/software/SPDF/service/CertificateValidationService.java b/src/main/java/stirling/software/SPDF/service/CertificateValidationService.java index 41f54f4a..550db680 100644 --- a/src/main/java/stirling/software/SPDF/service/CertificateValidationService.java +++ b/src/main/java/stirling/software/SPDF/service/CertificateValidationService.java @@ -1,6 +1,5 @@ package stirling.software.SPDF.service; -import io.github.pixee.security.BoundedLineReader; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -24,6 +23,8 @@ import java.util.Set; import org.springframework.stereotype.Service; +import io.github.pixee.security.BoundedLineReader; + import jakarta.annotation.PostConstruct; @Service