Skip to content

Commit

Permalink
[RELEASE] iText 8.0.4
Browse files Browse the repository at this point in the history
  • Loading branch information
iText-CI committed Apr 18, 2024
2 parents 2e932a8 + 6527bf8 commit e46013d
Show file tree
Hide file tree
Showing 661 changed files with 32,680 additions and 2,078 deletions.
27 changes: 27 additions & 0 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,33 @@ $ mvn clean install \
> >(tee mvn.log) 2> >(tee mvn-error.log >&2)
```

iText is backwards compatible in minor releases. To ensure that code changes conform to this requirement we use japicmp.
Todo verify this execute following commands:

```bash
$ mvn clean install
$ mvn verify --activate-profiles qa \
-Dcheckstyle.skip=true \
-Ddependency-check.skip=true \
-Dpmd.skip=true \
-Dspotbugs.skip=true \
-Dmaven.main.skip=true \
-Dmaven.test.skip=true \
-Djapicmp.breakBuildOnModifications=true \
-Djapicmp.breakBuildOnBinaryIncompatibleModifications=true \
-Djapicmp.breakBuildOnSourceIncompatibleModifications=true
```

If you add new public methods or classes those should be documented.
To verify this you can execute the following commands:

```bash
$ mvn clean install
$ mvn javadoc:javadoc | grep -E "(: warning:)|(: error:)"
```



[1]: https://maven.apache.org/

[2]: https://www.ghostscript.com/
Expand Down
6 changes: 5 additions & 1 deletion barcodes/pom.xml
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.itextpdf</groupId>
<artifactId>root</artifactId>
<version>8.0.3</version>
<version>8.0.4</version>
</parent>

<artifactId>barcodes</artifactId>

<name>iText - barcodes</name>
<url>https://itextpdf.com/</url>

<dependencies>
<dependency>
<groupId>com.itextpdf</groupId>
Expand Down
8 changes: 6 additions & 2 deletions bouncy-castle-adapter/pom.xml
Original file line number Diff line number Diff line change
@@ -1,20 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.itextpdf</groupId>
<artifactId>root</artifactId>
<version>8.0.3</version>
<version>8.0.4</version>
</parent>

<artifactId>bouncy-castle-adapter</artifactId>

<name>iText - Bouncy Castle Adapter</name>
<url>https://itextpdf.com/</url>

<properties>
<sonar.coverage.exclusions>**/*</sonar.coverage.exclusions>
<sonar.cpd.exclusions>**/*</sonar.cpd.exclusions>
</properties>

<dependencies>
<dependency>
<groupId>org.bouncycastle</groupId>
Expand All @@ -32,6 +35,7 @@
<version>${project.version}</version>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,10 @@ This file is part of the iText (R) project.
import com.itextpdf.bouncycastle.asn1.x509.ExtensionsBC;
import com.itextpdf.bouncycastle.asn1.x509.GeneralNameBC;
import com.itextpdf.bouncycastle.asn1.x509.GeneralNamesBC;
import com.itextpdf.bouncycastle.asn1.x509.IssuingDistributionPointBC;
import com.itextpdf.bouncycastle.asn1.x509.KeyPurposeIdBC;
import com.itextpdf.bouncycastle.asn1.x509.KeyUsageBC;
import com.itextpdf.bouncycastle.asn1.x509.ReasonFlagsBC;
import com.itextpdf.bouncycastle.asn1.x509.SubjectPublicKeyInfoBC;
import com.itextpdf.bouncycastle.asn1.x509.TBSCertificateBC;
import com.itextpdf.bouncycastle.asn1.x509.TimeBC;
Expand Down Expand Up @@ -186,8 +188,10 @@ This file is part of the iText (R) project.
import com.itextpdf.commons.bouncycastle.asn1.x509.IExtensions;
import com.itextpdf.commons.bouncycastle.asn1.x509.IGeneralName;
import com.itextpdf.commons.bouncycastle.asn1.x509.IGeneralNames;
import com.itextpdf.commons.bouncycastle.asn1.x509.IIssuingDistributionPoint;
import com.itextpdf.commons.bouncycastle.asn1.x509.IKeyPurposeId;
import com.itextpdf.commons.bouncycastle.asn1.x509.IKeyUsage;
import com.itextpdf.commons.bouncycastle.asn1.x509.IReasonFlags;
import com.itextpdf.commons.bouncycastle.asn1.x509.ISubjectPublicKeyInfo;
import com.itextpdf.commons.bouncycastle.asn1.x509.ITBSCertificate;
import com.itextpdf.commons.bouncycastle.asn1.x509.ITime;
Expand Down Expand Up @@ -282,10 +286,14 @@ This file is part of the iText (R) project.
import org.bouncycastle.asn1.x509.AlgorithmIdentifier;
import org.bouncycastle.asn1.x509.BasicConstraints;
import org.bouncycastle.asn1.x509.CRLDistPoint;
import org.bouncycastle.asn1.x509.DistributionPointName;
import org.bouncycastle.asn1.x509.Extension;
import org.bouncycastle.asn1.x509.Extensions;
import org.bouncycastle.asn1.x509.GeneralNames;
import org.bouncycastle.asn1.x509.IssuingDistributionPoint;
import org.bouncycastle.asn1.x509.KeyPurposeId;
import org.bouncycastle.asn1.x509.KeyUsage;
import org.bouncycastle.asn1.x509.ReasonFlags;
import org.bouncycastle.asn1.x509.TBSCertificate;
import org.bouncycastle.asn1.x509.Time;
import org.bouncycastle.cert.jcajce.JcaCertStore;
Expand Down Expand Up @@ -1196,6 +1204,38 @@ public ICRLDistPoint createCRLDistPoint(Object object) {
((ASN1EncodableBC) object).getEncodable() : object));
}

/**
* {@inheritDoc}
*/
@Override
public IIssuingDistributionPoint createIssuingDistributionPoint(Object point) {
return new IssuingDistributionPointBC(IssuingDistributionPoint.getInstance(point instanceof ASN1EncodableBC ?
((ASN1EncodableBC) point).getEncodable() : point));
}

/**
* {@inheritDoc}
*/
@Override
public IIssuingDistributionPoint createIssuingDistributionPoint(IDistributionPointName distributionPoint,
boolean onlyContainsUserCerts,
boolean onlyContainsCACerts,
IReasonFlags onlySomeReasons, boolean indirectCRL,
boolean onlyContainsAttributeCerts) {
return new IssuingDistributionPointBC(new IssuingDistributionPoint(distributionPoint == null ? null :
((DistributionPointNameBC) distributionPoint).getDistributionPointName(), onlyContainsUserCerts,
onlyContainsCACerts, onlySomeReasons == null ? null :
((ReasonFlagsBC) onlySomeReasons).getReasonFlags(), indirectCRL, onlyContainsAttributeCerts));
}

/**
* {@inheritDoc}
*/
@Override
public IReasonFlags createReasonFlags(int reasons) {
return new ReasonFlagsBC(new ReasonFlags(reasons));
}

/**
* {@inheritDoc}
*/
Expand All @@ -1204,6 +1244,14 @@ public IDistributionPointName createDistributionPointName() {
return DistributionPointNameBC.getInstance();
}

/**
* {@inheritDoc}
*/
@Override
public IDistributionPointName createDistributionPointName(IGeneralNames generalNames) {
return new DistributionPointNameBC(new DistributionPointName(((GeneralNamesBC)generalNames).getGeneralNames()));
}

/**
* {@inheritDoc}
*/
Expand Down Expand Up @@ -1558,6 +1606,14 @@ public IBasicConstraints createBasicConstraints(boolean b) {
return new BasicConstraintsBC(new BasicConstraints(b));
}

/**
* {@inheritDoc}
*/
@Override
public IBasicConstraints createBasicConstraints(int pathLength) {
return new BasicConstraintsBC(new BasicConstraints(pathLength));
}

/**
* {@inheritDoc}
*/
Expand All @@ -1582,6 +1638,15 @@ public IKeyPurposeId createKeyPurposeId() {
return KeyPurposeIdBC.getInstance();
}

/**
* {@inheritDoc}
*/
@Override
public IKeyPurposeId createKeyPurposeId(IASN1ObjectIdentifier objectIdentifier) {
return new KeyPurposeIdBC(KeyPurposeId.getInstance(
((ASN1ObjectIdentifierBC) objectIdentifier).getASN1ObjectIdentifier()));
}

/**
* {@inheritDoc}
*/
Expand All @@ -1590,6 +1655,14 @@ public IExtendedKeyUsage createExtendedKeyUsage(IKeyPurposeId purposeId) {
return new ExtendedKeyUsageBC(purposeId);
}

/**
* {@inheritDoc}
*/
@Override
public IExtendedKeyUsage createExtendedKeyUsage(IKeyPurposeId[] purposeIds) {
return new ExtendedKeyUsageBC(purposeIds);
}

/**
* {@inheritDoc}
*/
Expand Down Expand Up @@ -1697,6 +1770,14 @@ public ITime createTime(Date date) {
return new TimeBC(new Time(date));
}

/**
* {@inheritDoc}
*/
@Override
public ITime createEndDate(X509Certificate certificate) {
return createTime(certificate.getNotAfter());
}

/**
* {@inheritDoc}
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,12 @@ public ASN1BitString getASN1BitString() {
public String getString() {
return getASN1BitString().getString();
}

/**
* {@inheritDoc}
*/
@Override
public int intValue() {
return getASN1BitString().intValue();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ public class CRLReasonBC extends ASN1EncodableBC implements ICRLReason {
private static final CRLReasonBC INSTANCE = new CRLReasonBC(null);

private static final int KEY_COMPROMISE = CRLReason.keyCompromise;
private static final int REMOVE_FROM_CRL = CRLReason.removeFromCRL;

/**
* Creates new wrapper instance for {@link CRLReason}.
Expand Down Expand Up @@ -69,4 +70,12 @@ public CRLReason getCRLReason() {
public int getKeyCompromise() {
return KEY_COMPROMISE;
}

/**
* {@inheritDoc}
*/
@Override
public int getRemoveFromCRL() {
return REMOVE_FROM_CRL;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ This file is part of the iText (R) project.
import com.itextpdf.commons.bouncycastle.asn1.x509.IDistributionPoint;
import com.itextpdf.commons.bouncycastle.asn1.x509.IDistributionPointName;

import com.itextpdf.commons.bouncycastle.asn1.x509.IGeneralNames;
import com.itextpdf.commons.bouncycastle.asn1.x509.IReasonFlags;
import org.bouncycastle.asn1.x509.DistributionPoint;

/**
Expand Down Expand Up @@ -57,4 +59,20 @@ public DistributionPoint getPoint() {
public IDistributionPointName getDistributionPoint() {
return new DistributionPointNameBC(getPoint().getDistributionPoint());
}

/**
* {@inheritDoc}
*/
@Override
public IGeneralNames getCRLIssuer() {
return new GeneralNamesBC(getPoint().getCRLIssuer());
}

/**
* {@inheritDoc}
*/
@Override
public IReasonFlags getReasons() {
return new ReasonFlagsBC(getPoint().getReasons());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ This file is part of the iText (R) project.
import com.itextpdf.commons.bouncycastle.asn1.x509.IKeyPurposeId;

import org.bouncycastle.asn1.x509.ExtendedKeyUsage;
import org.bouncycastle.asn1.x509.KeyPurposeId;

/**
* Wrapper class for {@link ExtendedKeyUsage}.
Expand All @@ -50,6 +51,15 @@ public ExtendedKeyUsageBC(IKeyPurposeId purposeId) {
super(new ExtendedKeyUsage(((KeyPurposeIdBC) purposeId).getKeyPurposeId()));
}

/**
* Creates new wrapper instance for {@link ExtendedKeyUsage}.
*
* @param purposeIds KeyPurposeId wrappers array
*/
public ExtendedKeyUsageBC(IKeyPurposeId[] purposeIds) {
super(new ExtendedKeyUsage(unwrapPurposeIds(purposeIds)));
}

/**
* Gets actual org.bouncycastle object being wrapped.
*
Expand All @@ -58,4 +68,12 @@ public ExtendedKeyUsageBC(IKeyPurposeId purposeId) {
public ExtendedKeyUsage getExtendedKeyUsage() {
return (ExtendedKeyUsage) getEncodable();
}

private static KeyPurposeId[] unwrapPurposeIds(IKeyPurposeId[] purposeIds) {
KeyPurposeId[] purposeIdsUnwrapped = new KeyPurposeId[purposeIds.length];
for (int i = 0; i < purposeIds.length; ++i) {
purposeIdsUnwrapped[i] = ((KeyPurposeIdBC) purposeIds[i]).getKeyPurposeId();
}
return purposeIdsUnwrapped;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,12 @@ This file is part of the iText (R) project.
public class ExtensionBC extends ASN1EncodableBC implements IExtension {
private static final ExtensionBC INSTANCE = new ExtensionBC(null);

private static final ASN1ObjectIdentifierBC C_RL_DISTRIBUTION_POINTS =
private static final ASN1ObjectIdentifierBC CRL_DISTRIBUTION_POINTS =
new ASN1ObjectIdentifierBC(Extension.cRLDistributionPoints);

private static final ASN1ObjectIdentifierBC ISSUING_DISTRIBUTION_POINT =
new ASN1ObjectIdentifierBC(Extension.issuingDistributionPoint);

private static final ASN1ObjectIdentifierBC AUTHORITY_INFO_ACCESS =
new ASN1ObjectIdentifierBC(Extension.authorityInfoAccess);

Expand Down Expand Up @@ -88,7 +91,15 @@ public Extension getExtension() {
*/
@Override
public IASN1ObjectIdentifier getCRlDistributionPoints() {
return C_RL_DISTRIBUTION_POINTS;
return CRL_DISTRIBUTION_POINTS;
}

/**
* {@inheritDoc}
*/
@Override
public IASN1ObjectIdentifier getIssuingDistributionPoint() {
return ISSUING_DISTRIBUTION_POINT;
}

/**
Expand Down
Loading

0 comments on commit e46013d

Please sign in to comment.