diff --git a/barcodes/pom.xml b/barcodes/pom.xml index e1aa2840f0..027d8eef32 100644 --- a/barcodes/pom.xml +++ b/barcodes/pom.xml @@ -4,7 +4,7 @@ com.itextpdf root - 7.2.1 + 7.2.2 barcodes iText 7 - barcodes diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/Barcode128.java b/barcodes/src/main/java/com/itextpdf/barcodes/Barcode128.java index aced768181..4f3d9af44b 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/Barcode128.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/Barcode128.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/Barcode1D.java b/barcodes/src/main/java/com/itextpdf/barcodes/Barcode1D.java index 73aaab8a24..39bea8e418 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/Barcode1D.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/Barcode1D.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/Barcode2D.java b/barcodes/src/main/java/com/itextpdf/barcodes/Barcode2D.java index 90c2eb7b64..3b5044be47 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/Barcode2D.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/Barcode2D.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/Barcode39.java b/barcodes/src/main/java/com/itextpdf/barcodes/Barcode39.java index e9f313b468..d0a4061536 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/Barcode39.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/Barcode39.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeCodabar.java b/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeCodabar.java index b9034f1df0..385362829b 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeCodabar.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeCodabar.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeDataMatrix.java b/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeDataMatrix.java index 3cd3ea808c..5b5ba0d8ac 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeDataMatrix.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeDataMatrix.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeEAN.java b/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeEAN.java index 32aa3b4048..90d089b2e2 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeEAN.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeEAN.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeEANSUPP.java b/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeEANSUPP.java index 4d005520a0..c333c3ac82 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeEANSUPP.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeEANSUPP.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeInter25.java b/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeInter25.java index 5700fe66f1..060bc8519e 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeInter25.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeInter25.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeMSI.java b/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeMSI.java index ffe1d4aa27..791b9c4968 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeMSI.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeMSI.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/BarcodePDF417.java b/barcodes/src/main/java/com/itextpdf/barcodes/BarcodePDF417.java index f2f2cb90c5..41991e3980 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/BarcodePDF417.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/BarcodePDF417.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/BarcodePostnet.java b/barcodes/src/main/java/com/itextpdf/barcodes/BarcodePostnet.java index 6705438415..9368b63419 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/BarcodePostnet.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/BarcodePostnet.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeQRCode.java b/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeQRCode.java index 378ff2a840..1d5bbaccb7 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeQRCode.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/BarcodeQRCode.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/dmcode/DmParams.java b/barcodes/src/main/java/com/itextpdf/barcodes/dmcode/DmParams.java index 7e38f54d21..293f3d9382 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/dmcode/DmParams.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/dmcode/DmParams.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/dmcode/Placement.java b/barcodes/src/main/java/com/itextpdf/barcodes/dmcode/Placement.java index 202357a08c..71b538d7df 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/dmcode/Placement.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/dmcode/Placement.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/dmcode/ReedSolomon.java b/barcodes/src/main/java/com/itextpdf/barcodes/dmcode/ReedSolomon.java index 6ff85fec99..bc040eed6a 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/dmcode/ReedSolomon.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/dmcode/ReedSolomon.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/exceptions/BarcodeExceptionMessageConstant.java b/barcodes/src/main/java/com/itextpdf/barcodes/exceptions/BarcodeExceptionMessageConstant.java index 32998b5364..93dc31de9f 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/exceptions/BarcodeExceptionMessageConstant.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/exceptions/BarcodeExceptionMessageConstant.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/exceptions/WriterException.java b/barcodes/src/main/java/com/itextpdf/barcodes/exceptions/WriterException.java index c4c4adae71..eeb737b863 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/exceptions/WriterException.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/exceptions/WriterException.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/BitArray.java b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/BitArray.java index 76ab74f4db..357db75146 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/BitArray.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/BitArray.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/BitMatrix.java b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/BitMatrix.java index f4f5a73ef8..87df2c2edc 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/BitMatrix.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/BitMatrix.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/BitVector.java b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/BitVector.java index cbd8173654..4a87706f49 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/BitVector.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/BitVector.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/BlockPair.java b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/BlockPair.java index 637a06f0ad..11299b1690 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/BlockPair.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/BlockPair.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/ByteArray.java b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/ByteArray.java index 5577aa1aec..fc3798b3c8 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/ByteArray.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/ByteArray.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/ByteMatrix.java b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/ByteMatrix.java index bf49b68880..cb6520025b 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/ByteMatrix.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/ByteMatrix.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/CharacterSetECI.java b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/CharacterSetECI.java index a19c1161dc..ca3a10357e 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/CharacterSetECI.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/CharacterSetECI.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/EncodeHintType.java b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/EncodeHintType.java index 4f759fc750..38038a8b0e 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/EncodeHintType.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/EncodeHintType.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/Encoder.java b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/Encoder.java index 2d67fe3bbd..02bed14594 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/Encoder.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/Encoder.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/ErrorCorrectionLevel.java b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/ErrorCorrectionLevel.java index dccf4ff91b..18161e0e78 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/ErrorCorrectionLevel.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/ErrorCorrectionLevel.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/FormatInformation.java b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/FormatInformation.java index 4cd440e10e..2c8ee97b54 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/FormatInformation.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/FormatInformation.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/GF256.java b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/GF256.java index 1cec53e08c..5f6604b664 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/GF256.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/GF256.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/GF256Poly.java b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/GF256Poly.java index b9a5de1798..eb9c2ecf37 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/GF256Poly.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/GF256Poly.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/MaskUtil.java b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/MaskUtil.java index b5f293ba71..bb1d70a606 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/MaskUtil.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/MaskUtil.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/MatrixUtil.java b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/MatrixUtil.java index 8cfc6074f0..d5f6d42ff5 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/MatrixUtil.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/MatrixUtil.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/Mode.java b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/Mode.java index 25c0e1d1d4..476475985c 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/Mode.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/Mode.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/QRCode.java b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/QRCode.java index 867bb09419..ffbcfdd048 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/QRCode.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/QRCode.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/QRCodeWriter.java b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/QRCodeWriter.java index d9032e13ad..95cbf17045 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/QRCodeWriter.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/QRCodeWriter.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/ReedSolomonEncoder.java b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/ReedSolomonEncoder.java index d3bd873d9d..34082a3df7 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/ReedSolomonEncoder.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/ReedSolomonEncoder.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/Version.java b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/Version.java index ddcef56699..b12bb40097 100644 --- a/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/Version.java +++ b/barcodes/src/main/java/com/itextpdf/barcodes/qrcode/Version.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/test/java/com/itextpdf/barcodes/Barcode128Test.java b/barcodes/src/test/java/com/itextpdf/barcodes/Barcode128Test.java index 648c5cdc96..8a2fba138f 100644 --- a/barcodes/src/test/java/com/itextpdf/barcodes/Barcode128Test.java +++ b/barcodes/src/test/java/com/itextpdf/barcodes/Barcode128Test.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/test/java/com/itextpdf/barcodes/Barcode39Test.java b/barcodes/src/test/java/com/itextpdf/barcodes/Barcode39Test.java index 62cb7e1153..b3f718b973 100644 --- a/barcodes/src/test/java/com/itextpdf/barcodes/Barcode39Test.java +++ b/barcodes/src/test/java/com/itextpdf/barcodes/Barcode39Test.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeCodabarTest.java b/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeCodabarTest.java index 4be0b91cde..db2b6029c6 100644 --- a/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeCodabarTest.java +++ b/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeCodabarTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify @@ -57,29 +57,24 @@ This file is part of the iText (R) project. import java.io.IOException; import org.junit.Assert; import org.junit.BeforeClass; -import org.junit.Rule; import org.junit.Test; import org.junit.experimental.categories.Category; -import org.junit.rules.ExpectedException; @Category(IntegrationTest.class) public class BarcodeCodabarTest extends ExtendedITextTest { - public static final String sourceFolder = "./src/test/resources/com/itextpdf/barcodes/"; - public static final String destinationFolder = "./target/test/com/itextpdf/barcodes/Codabar/"; - - @Rule - public ExpectedException junitExpectedException = ExpectedException.none(); + private static final String SOURCE_FOLDER = "./src/test/resources/com/itextpdf/barcodes/"; + private static final String DESTINATION_FOLDER = "./target/test/com/itextpdf/barcodes/Codabar/"; @BeforeClass public static void beforeClass() { - createDestinationFolder(destinationFolder); + createDestinationFolder(DESTINATION_FOLDER); } @Test public void barcode01Test() throws IOException, PdfException, InterruptedException { String filename = "codabar.pdf"; - PdfWriter writer = new PdfWriter(destinationFolder + filename); + PdfWriter writer = new PdfWriter(DESTINATION_FOLDER + filename); PdfDocument document = new PdfDocument(writer); PdfPage page = document.addNewPage(); @@ -94,51 +89,47 @@ public void barcode01Test() throws IOException, PdfException, InterruptedExcepti document.close(); Assert.assertNull(new CompareTool() - .compareByContent(destinationFolder + filename, sourceFolder + "cmp_" + filename, destinationFolder, + .compareByContent(DESTINATION_FOLDER + filename, SOURCE_FOLDER + "cmp_" + filename, DESTINATION_FOLDER, "diff_")); } @Test public void barcodeHasNoAbcdAsStartCharacterTest() { - junitExpectedException.expect(IllegalArgumentException.class); - junitExpectedException.expectMessage( - BarcodeExceptionMessageConstant.CODABAR_MUST_HAVE_ONE_ABCD_AS_START_STOP_CHARACTER); - PdfDocument pdfDocument = new PdfDocument(new PdfWriter(new ByteArrayOutputStream())); BarcodeCodabar codabar = new BarcodeCodabar(pdfDocument); - codabar.getBarsCodabar("qbcd"); + Exception exception = Assert.assertThrows(IllegalArgumentException.class, + () -> codabar.getBarsCodabar("qbcd")); + Assert.assertEquals(BarcodeExceptionMessageConstant.CODABAR_MUST_HAVE_ONE_ABCD_AS_START_STOP_CHARACTER, + exception.getMessage()); } @Test public void barcodeHasNoAbcdAsStopCharacterTest() { - junitExpectedException.expect(IllegalArgumentException.class); - junitExpectedException.expectMessage( - BarcodeExceptionMessageConstant.CODABAR_MUST_HAVE_ONE_ABCD_AS_START_STOP_CHARACTER); - PdfDocument pdfDocument = new PdfDocument(new PdfWriter(new ByteArrayOutputStream())); BarcodeCodabar codabar = new BarcodeCodabar(pdfDocument); - codabar.getBarsCodabar("abcf"); + Exception exception = Assert.assertThrows(IllegalArgumentException.class, + () -> codabar.getBarsCodabar("abcf")); + Assert.assertEquals(BarcodeExceptionMessageConstant.CODABAR_MUST_HAVE_ONE_ABCD_AS_START_STOP_CHARACTER, + exception.getMessage()); } @Test public void barcodeHasNoAbcdAsStartAndStopCharacterTest() { - junitExpectedException.expect(IllegalArgumentException.class); - junitExpectedException.expectMessage( - BarcodeExceptionMessageConstant.CODABAR_MUST_HAVE_ONE_ABCD_AS_START_STOP_CHARACTER); - PdfDocument pdfDocument = new PdfDocument(new PdfWriter(new ByteArrayOutputStream())); BarcodeCodabar codabar = new BarcodeCodabar(pdfDocument); - codabar.getBarsCodabar("qbcq"); + Exception exception = Assert.assertThrows(IllegalArgumentException.class, + () -> codabar.getBarsCodabar("qbcq")); + Assert.assertEquals(BarcodeExceptionMessageConstant.CODABAR_MUST_HAVE_ONE_ABCD_AS_START_STOP_CHARACTER, + exception.getMessage()); } @Test public void barcodeHasNoStartAndStopCharacterTest() { - junitExpectedException.expect(IllegalArgumentException.class); - junitExpectedException.expectMessage( - BarcodeExceptionMessageConstant.CODABAR_MUST_HAVE_AT_LEAST_START_AND_STOP_CHARACTER); - PdfDocument pdfDocument = new PdfDocument(new PdfWriter(new ByteArrayOutputStream())); BarcodeCodabar codabar = new BarcodeCodabar(pdfDocument); - codabar.getBarsCodabar(""); + Exception exception = Assert.assertThrows(IllegalArgumentException.class, + () -> codabar.getBarsCodabar("")); + Assert.assertEquals(BarcodeExceptionMessageConstant.CODABAR_MUST_HAVE_AT_LEAST_START_AND_STOP_CHARACTER, + exception.getMessage()); } } diff --git a/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeDataMatrixTest.java b/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeDataMatrixTest.java index 8a72e0dd63..a1205d0769 100644 --- a/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeDataMatrixTest.java +++ b/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeDataMatrixTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeEANTest.java b/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeEANTest.java index 292ec84d62..3172390988 100644 --- a/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeEANTest.java +++ b/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeEANTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeEANUnitTest.java b/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeEANUnitTest.java index d361bca2a7..e8eef55073 100644 --- a/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeEANUnitTest.java +++ b/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeEANUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeInter25Test.java b/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeInter25Test.java index 977bdb3d04..bd949d31f1 100644 --- a/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeInter25Test.java +++ b/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeInter25Test.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeMSITest.java b/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeMSITest.java index dacb232a5c..ea45bc5a59 100644 --- a/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeMSITest.java +++ b/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeMSITest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeMultiThreadingTest.java b/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeMultiThreadingTest.java index 3bd961419b..c1812e4cc0 100644 --- a/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeMultiThreadingTest.java +++ b/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeMultiThreadingTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/test/java/com/itextpdf/barcodes/BarcodePDF417Test.java b/barcodes/src/test/java/com/itextpdf/barcodes/BarcodePDF417Test.java index 7ecab0e0a9..784a49ac12 100644 --- a/barcodes/src/test/java/com/itextpdf/barcodes/BarcodePDF417Test.java +++ b/barcodes/src/test/java/com/itextpdf/barcodes/BarcodePDF417Test.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify @@ -42,11 +42,11 @@ This file is part of the iText (R) project. */ package com.itextpdf.barcodes; +import com.itextpdf.barcodes.exceptions.BarcodeExceptionMessageConstant; import com.itextpdf.io.image.ImageData; import com.itextpdf.io.image.ImageDataFactory; -import com.itextpdf.barcodes.exceptions.BarcodeExceptionMessageConstant; -import com.itextpdf.kernel.exceptions.PdfException; import com.itextpdf.kernel.colors.ColorConstants; +import com.itextpdf.kernel.exceptions.PdfException; import com.itextpdf.kernel.pdf.PdfDocument; import com.itextpdf.kernel.pdf.PdfPage; import com.itextpdf.kernel.pdf.PdfReader; @@ -63,28 +63,24 @@ This file is part of the iText (R) project. import java.io.IOException; import org.junit.Assert; import org.junit.BeforeClass; -import org.junit.Rule; import org.junit.Test; import org.junit.experimental.categories.Category; -import org.junit.rules.ExpectedException; @Category(IntegrationTest.class) public class BarcodePDF417Test extends ExtendedITextTest { - public static final String sourceFolder = "./src/test/resources/com/itextpdf/barcodes/"; - public static final String destinationFolder = "./target/test/com/itextpdf/barcodes/BarcodePDF417/"; - @Rule - public ExpectedException junitExpectedException = ExpectedException.none(); + private static final String SOURCE_FOLDER = "./src/test/resources/com/itextpdf/barcodes/"; + private static final String DESTINATION_FOLDER = "./target/test/com/itextpdf/barcodes/BarcodePDF417/"; @BeforeClass public static void beforeClass() { - createDestinationFolder(destinationFolder); + createOrClearDestinationFolder(DESTINATION_FOLDER); } @Test public void barcode01Test() throws IOException, PdfException, InterruptedException { String filename = "barcode417_01.pdf"; - PdfWriter writer = new PdfWriter(destinationFolder + filename); + PdfWriter writer = new PdfWriter(DESTINATION_FOLDER + filename); PdfDocument document = new PdfDocument(writer); PdfPage page = document.addNewPage(); @@ -101,14 +97,15 @@ public void barcode01Test() throws IOException, PdfException, InterruptedExcepti document.close(); - Assert.assertNull(new CompareTool().compareByContent(destinationFolder + filename, sourceFolder + "cmp_" + filename, destinationFolder, "diff_")); + Assert.assertNull(new CompareTool().compareByContent(DESTINATION_FOLDER + filename, SOURCE_FOLDER + "cmp_" + filename, + DESTINATION_FOLDER, "diff_")); } @Test public void barcode02Test() throws IOException, PdfException, InterruptedException { String filename = "barcode417_02.pdf"; - PdfWriter writer = new PdfWriter(destinationFolder + filename); - PdfReader reader = new PdfReader(sourceFolder + "DocumentWithTrueTypeFont1.pdf"); + PdfWriter writer = new PdfWriter(DESTINATION_FOLDER + filename); + PdfReader reader = new PdfReader(SOURCE_FOLDER + "DocumentWithTrueTypeFont1.pdf"); PdfDocument document = new PdfDocument(reader, writer); PdfCanvas canvas = new PdfCanvas(document.getLastPage()); @@ -124,13 +121,14 @@ public void barcode02Test() throws IOException, PdfException, InterruptedExcepti document.close(); - Assert.assertNull(new CompareTool().compareByContent(destinationFolder + filename, sourceFolder + "cmp_" + filename, destinationFolder, "diff_")); + Assert.assertNull(new CompareTool().compareByContent(DESTINATION_FOLDER + filename, SOURCE_FOLDER + "cmp_" + filename, + DESTINATION_FOLDER, "diff_")); } @Test public void macroPDF417Test01() throws IOException, InterruptedException { String filename = "barcode417Macro_01.pdf"; - PdfWriter writer = new PdfWriter(destinationFolder + filename); + PdfWriter writer = new PdfWriter(DESTINATION_FOLDER + filename); PdfDocument pdfDocument = new PdfDocument(writer); PdfCanvas pdfCanvas = new PdfCanvas(pdfDocument.addNewPage()); @@ -140,7 +138,8 @@ public void macroPDF417Test01() throws IOException, InterruptedException { pdfDocument.close(); - Assert.assertNull(new CompareTool().compareByContent(destinationFolder + filename, sourceFolder + "cmp_" + filename, destinationFolder, "diff_")); + Assert.assertNull(new CompareTool().compareByContent(DESTINATION_FOLDER + filename, SOURCE_FOLDER + "cmp_" + filename, + DESTINATION_FOLDER, "diff_")); } @Test @@ -195,7 +194,7 @@ public void barcode417DefaultParamsTest() { @Test public void barcode417CreateAWTImageTest() throws IOException, InterruptedException { String filename = "barcode417CreateAWTImageTest.pdf"; - PdfWriter writer = new PdfWriter(destinationFolder + filename); + PdfWriter writer = new PdfWriter(DESTINATION_FOLDER + filename); PdfDocument document = new PdfDocument(writer); PdfPage page = document.addNewPage(); @@ -216,14 +215,14 @@ public void barcode417CreateAWTImageTest() throws IOException, InterruptedExcept document.close(); - Assert.assertNull(new CompareTool().compareByContent(destinationFolder + filename, - sourceFolder + "cmp_" + filename, destinationFolder)); + Assert.assertNull(new CompareTool().compareByContent(DESTINATION_FOLDER + filename, + SOURCE_FOLDER + "cmp_" + filename, DESTINATION_FOLDER)); } @Test public void barcode417XObjectTest() throws IOException, InterruptedException { String filename = "barcode417XObjectTest.pdf"; - PdfWriter writer = new PdfWriter(destinationFolder + filename); + PdfWriter writer = new PdfWriter(DESTINATION_FOLDER + filename); PdfDocument document = new PdfDocument(writer); PdfPage page = document.addNewPage(); @@ -242,8 +241,8 @@ public void barcode417XObjectTest() throws IOException, InterruptedException { document.close(); - Assert.assertNull(new CompareTool().compareByContent(destinationFolder + filename, - sourceFolder + "cmp_" + filename, destinationFolder)); + Assert.assertNull(new CompareTool().compareByContent(DESTINATION_FOLDER + filename, + SOURCE_FOLDER + "cmp_" + filename, DESTINATION_FOLDER)); } @Test @@ -273,7 +272,7 @@ public void barcode417YHeightTest() { @Test public void barcode417CodeReuseTest() throws IOException, InterruptedException { String filename = "barcode417CodeReuseTest.pdf"; - PdfWriter writer = new PdfWriter(destinationFolder + filename); + PdfWriter writer = new PdfWriter(DESTINATION_FOLDER + filename); PdfDocument document = new PdfDocument(writer); PdfCanvas canvas = new PdfCanvas(document.addNewPage()); @@ -295,14 +294,14 @@ public void barcode417CodeReuseTest() throws IOException, InterruptedException { document.close(); - Assert.assertNull(new CompareTool().compareByContent(destinationFolder + filename, - sourceFolder + "cmp_" + filename, destinationFolder)); + Assert.assertNull(new CompareTool().compareByContent(DESTINATION_FOLDER + filename, + SOURCE_FOLDER + "cmp_" + filename, DESTINATION_FOLDER)); } @Test public void barcode417NumbersTest() throws IOException, InterruptedException { String filename = "barcode417NumbersTest.pdf"; - PdfWriter writer = new PdfWriter(destinationFolder + filename); + PdfWriter writer = new PdfWriter(DESTINATION_FOLDER + filename); PdfDocument document = new PdfDocument(writer); PdfCanvas canvas = new PdfCanvas(document.addNewPage()); @@ -315,14 +314,14 @@ public void barcode417NumbersTest() throws IOException, InterruptedException { document.close(); - Assert.assertNull(new CompareTool().compareByContent(destinationFolder + filename, - sourceFolder + "cmp_" + filename, destinationFolder)); + Assert.assertNull(new CompareTool().compareByContent(DESTINATION_FOLDER + filename, + SOURCE_FOLDER + "cmp_" + filename, DESTINATION_FOLDER)); } @Test public void barcode417ByteLessThanSixSizeNumbersTest() throws IOException, InterruptedException { String filename = "barcode417ByteLessThanSixSizeNumbersTest.pdf"; - PdfWriter writer = new PdfWriter(destinationFolder + filename); + PdfWriter writer = new PdfWriter(DESTINATION_FOLDER + filename); PdfDocument document = new PdfDocument(writer); PdfCanvas canvas = new PdfCanvas(document.addNewPage()); @@ -335,14 +334,14 @@ public void barcode417ByteLessThanSixSizeNumbersTest() throws IOException, Inter document.close(); - Assert.assertNull(new CompareTool().compareByContent(destinationFolder + filename, - sourceFolder + "cmp_" + filename, destinationFolder)); + Assert.assertNull(new CompareTool().compareByContent(DESTINATION_FOLDER + filename, + SOURCE_FOLDER + "cmp_" + filename, DESTINATION_FOLDER)); } @Test public void barcode417ByteMoreThanSixSizeNumbersTest() throws IOException, InterruptedException { String filename = "barcode417ByteMoreThanSixSizeNumbersTest.pdf"; - PdfWriter writer = new PdfWriter(destinationFolder + filename); + PdfWriter writer = new PdfWriter(DESTINATION_FOLDER + filename); PdfDocument document = new PdfDocument(writer); PdfCanvas canvas = new PdfCanvas(document.addNewPage()); @@ -355,8 +354,8 @@ public void barcode417ByteMoreThanSixSizeNumbersTest() throws IOException, Inter document.close(); - Assert.assertNull(new CompareTool().compareByContent(destinationFolder + filename, - sourceFolder + "cmp_" + filename, destinationFolder)); + Assert.assertNull(new CompareTool().compareByContent(DESTINATION_FOLDER + filename, + SOURCE_FOLDER + "cmp_" + filename, DESTINATION_FOLDER)); } @Test @@ -460,36 +459,33 @@ public void barcode417OptionsWithBarcodeGenerationInvalidSizeTest() { @Test public void lenCodewordsIsNotEnoughTest() { - junitExpectedException.expect(PdfException.class); - junitExpectedException.expectMessage(BarcodeExceptionMessageConstant.INVALID_CODEWORD_SIZE); - BarcodePDF417 barcodePDF417 = new BarcodePDF417(); barcodePDF417.setOptions(BarcodePDF417.PDF417_USE_RAW_CODEWORDS); - barcodePDF417.paintCode(); + Exception exception = Assert.assertThrows(PdfException.class, + () -> barcodePDF417.paintCode()); + Assert.assertEquals(BarcodeExceptionMessageConstant.INVALID_CODEWORD_SIZE, exception.getMessage()); } @Test public void lenCodewordsIsTooSmallTest() { - junitExpectedException.expect(PdfException.class); - junitExpectedException.expectMessage(BarcodeExceptionMessageConstant.INVALID_CODEWORD_SIZE); - BarcodePDF417 barcodePDF417 = new BarcodePDF417(); barcodePDF417.setOptions(BarcodePDF417.PDF417_USE_RAW_CODEWORDS); // lenCodeWords should be bigger than 1 barcodePDF417.setLenCodewords(0); - barcodePDF417.paintCode(); + Exception exception = Assert.assertThrows(PdfException.class, + () -> barcodePDF417.paintCode()); + Assert.assertEquals(BarcodeExceptionMessageConstant.INVALID_CODEWORD_SIZE, exception.getMessage()); } @Test public void lenCodewordsMoreThanMaxDataCodewordsTest() { - junitExpectedException.expect(PdfException.class); - junitExpectedException.expectMessage(BarcodeExceptionMessageConstant.INVALID_CODEWORD_SIZE); - BarcodePDF417 barcodePDF417 = new BarcodePDF417(); barcodePDF417.setOptions(BarcodePDF417.PDF417_USE_RAW_CODEWORDS); // lenCodeWords should be smaller than MAX_DATA_CODEWORDS barcodePDF417.setLenCodewords(927); - barcodePDF417.paintCode(); + Exception exception = Assert.assertThrows(PdfException.class, + () -> barcodePDF417.paintCode()); + Assert.assertEquals(BarcodeExceptionMessageConstant.INVALID_CODEWORD_SIZE, exception.getMessage()); } private PdfFormXObject createMacroBarcodePart(PdfDocument document, String text, float mh, float mw, int segmentId) { diff --git a/barcodes/src/test/java/com/itextpdf/barcodes/BarcodePDF417UnitTest.java b/barcodes/src/test/java/com/itextpdf/barcodes/BarcodePDF417UnitTest.java index e8ad24e40b..c8f5f262d5 100644 --- a/barcodes/src/test/java/com/itextpdf/barcodes/BarcodePDF417UnitTest.java +++ b/barcodes/src/test/java/com/itextpdf/barcodes/BarcodePDF417UnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/test/java/com/itextpdf/barcodes/BarcodePostnetTest.java b/barcodes/src/test/java/com/itextpdf/barcodes/BarcodePostnetTest.java index a075d04509..d36a07067b 100644 --- a/barcodes/src/test/java/com/itextpdf/barcodes/BarcodePostnetTest.java +++ b/barcodes/src/test/java/com/itextpdf/barcodes/BarcodePostnetTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeQRCodeTest.java b/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeQRCodeTest.java index 92ac008c0b..433db622a4 100644 --- a/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeQRCodeTest.java +++ b/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeQRCodeTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeUnitTest.java b/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeUnitTest.java index dfc83c2cf6..d0c5538234 100644 --- a/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeUnitTest.java +++ b/barcodes/src/test/java/com/itextpdf/barcodes/BarcodeUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/pom.xml b/commons/pom.xml index 787ccd8470..1f6ce9530e 100644 --- a/commons/pom.xml +++ b/commons/pom.xml @@ -4,7 +4,7 @@ com.itextpdf root - 7.2.1 + 7.2.2 commons iText 7 - commons diff --git a/commons/src/main/java/com/itextpdf/commons/actions/AbstractContextBasedEventHandler.java b/commons/src/main/java/com/itextpdf/commons/actions/AbstractContextBasedEventHandler.java index ddc2c78603..8d33a168a6 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/AbstractContextBasedEventHandler.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/AbstractContextBasedEventHandler.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/AbstractContextBasedITextEvent.java b/commons/src/main/java/com/itextpdf/commons/actions/AbstractContextBasedITextEvent.java index 2ffd74b4e5..11a3abb8c5 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/AbstractContextBasedITextEvent.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/AbstractContextBasedITextEvent.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/AbstractEventWrapper.java b/commons/src/main/java/com/itextpdf/commons/actions/AbstractEventWrapper.java index c417c635b0..8fae98fb88 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/AbstractEventWrapper.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/AbstractEventWrapper.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/AbstractITextConfigurationEvent.java b/commons/src/main/java/com/itextpdf/commons/actions/AbstractITextConfigurationEvent.java index 0b56109a67..18a5ce4f59 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/AbstractITextConfigurationEvent.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/AbstractITextConfigurationEvent.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/AbstractITextEvent.java b/commons/src/main/java/com/itextpdf/commons/actions/AbstractITextEvent.java index 8209dd07b9..4711500e54 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/AbstractITextEvent.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/AbstractITextEvent.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/AbstractProductITextEvent.java b/commons/src/main/java/com/itextpdf/commons/actions/AbstractProductITextEvent.java index b65bb75457..053f883393 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/AbstractProductITextEvent.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/AbstractProductITextEvent.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/AbstractProductProcessITextEvent.java b/commons/src/main/java/com/itextpdf/commons/actions/AbstractProductProcessITextEvent.java index 88ea797ca4..6eeed9447c 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/AbstractProductProcessITextEvent.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/AbstractProductProcessITextEvent.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/AbstractStatisticsAggregator.java b/commons/src/main/java/com/itextpdf/commons/actions/AbstractStatisticsAggregator.java index 0503c552fb..2cfcdb062f 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/AbstractStatisticsAggregator.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/AbstractStatisticsAggregator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/AbstractStatisticsEvent.java b/commons/src/main/java/com/itextpdf/commons/actions/AbstractStatisticsEvent.java index aa6bda862a..dd5822d9c8 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/AbstractStatisticsEvent.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/AbstractStatisticsEvent.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/EventManager.java b/commons/src/main/java/com/itextpdf/commons/actions/EventManager.java index bab25a13e8..c9a7ee8179 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/EventManager.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/EventManager.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/IEvent.java b/commons/src/main/java/com/itextpdf/commons/actions/IEvent.java index 48a61f50b9..c48c3b8e71 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/IEvent.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/IEvent.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/IEventHandler.java b/commons/src/main/java/com/itextpdf/commons/actions/IEventHandler.java index 4e3636a0be..e133a69cbc 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/IEventHandler.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/IEventHandler.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/NamespaceConstant.java b/commons/src/main/java/com/itextpdf/commons/actions/NamespaceConstant.java index 8aa632a3a7..543a9ab38f 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/NamespaceConstant.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/NamespaceConstant.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -47,6 +47,9 @@ This file is part of the iText (R) project. import java.util.Collections; import java.util.List; +/** + * Class that stores namespaces of iText open source products. + */ public final class NamespaceConstant { public static final String ITEXT = "com.itextpdf"; diff --git a/commons/src/main/java/com/itextpdf/commons/actions/ProductEventHandler.java b/commons/src/main/java/com/itextpdf/commons/actions/ProductEventHandler.java index 51c7cf5791..aab4656411 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/ProductEventHandler.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/ProductEventHandler.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/ProductNameConstant.java b/commons/src/main/java/com/itextpdf/commons/actions/ProductNameConstant.java index 3f853ba70e..28bab38e29 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/ProductNameConstant.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/ProductNameConstant.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/confirmations/ConfirmEvent.java b/commons/src/main/java/com/itextpdf/commons/actions/confirmations/ConfirmEvent.java index 8c35650bc9..72b452da9e 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/confirmations/ConfirmEvent.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/confirmations/ConfirmEvent.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/confirmations/ConfirmedEventWrapper.java b/commons/src/main/java/com/itextpdf/commons/actions/confirmations/ConfirmedEventWrapper.java index ad70019fd3..a37a47104b 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/confirmations/ConfirmedEventWrapper.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/confirmations/ConfirmedEventWrapper.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/confirmations/EventConfirmationType.java b/commons/src/main/java/com/itextpdf/commons/actions/confirmations/EventConfirmationType.java index ad3713cd12..74a96ef068 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/confirmations/EventConfirmationType.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/confirmations/EventConfirmationType.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/contexts/AbstractContextManagerConfigurationEvent.java b/commons/src/main/java/com/itextpdf/commons/actions/contexts/AbstractContextManagerConfigurationEvent.java index fac2f1276d..5be2e9c3c2 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/contexts/AbstractContextManagerConfigurationEvent.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/contexts/AbstractContextManagerConfigurationEvent.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. @@ -37,10 +37,21 @@ protected AbstractContextManagerConfigurationEvent() { super(); } + /** + * Registers generic context for products and namespaces which are associated with them. + * + * @param namespaces namespaces of the products to be registered + * @param products the products to be registered + */ protected void registerGenericContext(Collection namespaces, Collection products) { ContextManager.getInstance().registerGenericContext(namespaces, products); } + /** + * Unregisters certain namespaces. + * + * @param namespaces the namespaces to be unregisted + */ protected void unregisterContext(Collection namespaces) { ContextManager.getInstance().unregisterContext(namespaces); } diff --git a/commons/src/main/java/com/itextpdf/commons/actions/contexts/ContextManager.java b/commons/src/main/java/com/itextpdf/commons/actions/contexts/ContextManager.java index b25ca48806..080c64b853 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/contexts/ContextManager.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/contexts/ContextManager.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/commons/src/main/java/com/itextpdf/commons/actions/contexts/GenericContext.java b/commons/src/main/java/com/itextpdf/commons/actions/contexts/GenericContext.java index c8f34570e7..c6b8468362 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/contexts/GenericContext.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/contexts/GenericContext.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/commons/src/main/java/com/itextpdf/commons/actions/contexts/IContext.java b/commons/src/main/java/com/itextpdf/commons/actions/contexts/IContext.java index 8bc0720ad1..7632dfa1e9 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/contexts/IContext.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/contexts/IContext.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/commons/src/main/java/com/itextpdf/commons/actions/contexts/IMetaInfo.java b/commons/src/main/java/com/itextpdf/commons/actions/contexts/IMetaInfo.java index afb1110d68..00a5091beb 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/contexts/IMetaInfo.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/contexts/IMetaInfo.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/commons/src/main/java/com/itextpdf/commons/actions/contexts/UnknownContext.java b/commons/src/main/java/com/itextpdf/commons/actions/contexts/UnknownContext.java index 7e37d3af19..8154c47721 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/contexts/UnknownContext.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/contexts/UnknownContext.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -61,6 +61,11 @@ public class UnknownContext implements IContext { private final boolean allowEvents; + /** + * Creates a fallback {@link IContext}. + * + * @param allowEvents defines whether the context allows all events or not + */ public UnknownContext(boolean allowEvents) { this.allowEvents = allowEvents; } diff --git a/commons/src/main/java/com/itextpdf/commons/actions/data/CommonsProductData.java b/commons/src/main/java/com/itextpdf/commons/actions/data/CommonsProductData.java index 13d4acf417..6c723ec134 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/data/CommonsProductData.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/data/CommonsProductData.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. @@ -28,9 +28,9 @@ This file is part of the iText (R) project. public final class CommonsProductData { static final String COMMONS_PUBLIC_PRODUCT_NAME = "Commons"; static final String COMMONS_PRODUCT_NAME = "commons"; - static final String COMMONS_VERSION = "7.2.1"; + static final String COMMONS_VERSION = "7.2.2"; static final int COMMONS_COPYRIGHT_SINCE = 2000; - static final int COMMONS_COPYRIGHT_TO = 2021; + static final int COMMONS_COPYRIGHT_TO = 2022; private static final ProductData COMMONS_PRODUCT_DATA = new ProductData(COMMONS_PUBLIC_PRODUCT_NAME, COMMONS_PRODUCT_NAME, COMMONS_VERSION, COMMONS_COPYRIGHT_SINCE, COMMONS_COPYRIGHT_TO); diff --git a/commons/src/main/java/com/itextpdf/commons/actions/data/ProductData.java b/commons/src/main/java/com/itextpdf/commons/actions/data/ProductData.java index fccda50c2e..65961a11f0 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/data/ProductData.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/data/ProductData.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/processors/AbstractITextProductEventProcessor.java b/commons/src/main/java/com/itextpdf/commons/actions/processors/AbstractITextProductEventProcessor.java index 257de91be0..610d6f1227 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/processors/AbstractITextProductEventProcessor.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/processors/AbstractITextProductEventProcessor.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. @@ -25,10 +25,18 @@ This file is part of the iText (R) project. import com.itextpdf.commons.actions.AbstractProductProcessITextEvent; import com.itextpdf.commons.exceptions.CommonsExceptionMessageConstant; +/** + * Abstract class with some standard functionality for product event processing. + */ public abstract class AbstractITextProductEventProcessor implements ITextProductEventProcessor { private final String productName; + /** + * Creates a new instance of an abstract processor for the provided product. + * + * @param productName the product which will be handled by this processor + */ public AbstractITextProductEventProcessor(String productName) { if (productName == null) { throw new IllegalArgumentException(CommonsExceptionMessageConstant.PRODUCT_NAME_CAN_NOT_BE_NULL); diff --git a/commons/src/main/java/com/itextpdf/commons/actions/processors/DefaultITextProductEventProcessor.java b/commons/src/main/java/com/itextpdf/commons/actions/processors/DefaultITextProductEventProcessor.java index 0186684465..57fec94333 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/processors/DefaultITextProductEventProcessor.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/processors/DefaultITextProductEventProcessor.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/processors/ITextProductEventProcessor.java b/commons/src/main/java/com/itextpdf/commons/actions/processors/ITextProductEventProcessor.java index d3ca7a5608..81b767bb0a 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/processors/ITextProductEventProcessor.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/processors/ITextProductEventProcessor.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/producer/AbstractFormattedPlaceholderPopulator.java b/commons/src/main/java/com/itextpdf/commons/actions/producer/AbstractFormattedPlaceholderPopulator.java index e8085fc673..16a05aa7e4 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/producer/AbstractFormattedPlaceholderPopulator.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/producer/AbstractFormattedPlaceholderPopulator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/producer/CopyrightSincePlaceholderPopulator.java b/commons/src/main/java/com/itextpdf/commons/actions/producer/CopyrightSincePlaceholderPopulator.java index 7f1ec3753d..a4d6d87e8d 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/producer/CopyrightSincePlaceholderPopulator.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/producer/CopyrightSincePlaceholderPopulator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/producer/CopyrightToPlaceholderPopulator.java b/commons/src/main/java/com/itextpdf/commons/actions/producer/CopyrightToPlaceholderPopulator.java index 829d676663..9e19adf52d 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/producer/CopyrightToPlaceholderPopulator.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/producer/CopyrightToPlaceholderPopulator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/producer/CurrentDatePlaceholderPopulator.java b/commons/src/main/java/com/itextpdf/commons/actions/producer/CurrentDatePlaceholderPopulator.java index 3cb2b4a535..8a37d714b0 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/producer/CurrentDatePlaceholderPopulator.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/producer/CurrentDatePlaceholderPopulator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/producer/IPlaceholderPopulator.java b/commons/src/main/java/com/itextpdf/commons/actions/producer/IPlaceholderPopulator.java index de0d7c5f8c..b7b8f49357 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/producer/IPlaceholderPopulator.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/producer/IPlaceholderPopulator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/producer/ProducerBuilder.java b/commons/src/main/java/com/itextpdf/commons/actions/producer/ProducerBuilder.java index b9a0505abe..68d079487b 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/producer/ProducerBuilder.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/producer/ProducerBuilder.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. @@ -62,8 +62,9 @@ public final class ProducerBuilder extends AbstractITextConfigurationEvent { * ${ and ended with } without } character inside. * These substrings are interpreted as placeholders and the first group is the content of the * placeholder. + * Note: The escape on '}' is necessary for regex dialect compatibility reasons. */ - private static final String PATTERN_STRING = "\\$\\{([^}]*)}"; + private static final String PATTERN_STRING = "\\$\\{([^}]*)\\}"; private static final Pattern PATTERN = Pattern.compile(PATTERN_STRING); private static final Map PLACEHOLDER_POPULATORS; diff --git a/commons/src/main/java/com/itextpdf/commons/actions/producer/UsedProductsPlaceholderPopulator.java b/commons/src/main/java/com/itextpdf/commons/actions/producer/UsedProductsPlaceholderPopulator.java index ef29001bab..d9c2805125 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/producer/UsedProductsPlaceholderPopulator.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/producer/UsedProductsPlaceholderPopulator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/sequence/AbstractIdentifiableElement.java b/commons/src/main/java/com/itextpdf/commons/actions/sequence/AbstractIdentifiableElement.java index 15d600e680..b740fa39f9 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/sequence/AbstractIdentifiableElement.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/sequence/AbstractIdentifiableElement.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/sequence/SequenceId.java b/commons/src/main/java/com/itextpdf/commons/actions/sequence/SequenceId.java index de03790e77..852011611e 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/sequence/SequenceId.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/sequence/SequenceId.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/actions/sequence/SequenceIdManager.java b/commons/src/main/java/com/itextpdf/commons/actions/sequence/SequenceIdManager.java index 2a2959dcf7..228e848230 100644 --- a/commons/src/main/java/com/itextpdf/commons/actions/sequence/SequenceIdManager.java +++ b/commons/src/main/java/com/itextpdf/commons/actions/sequence/SequenceIdManager.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/exceptions/AggregatedException.java b/commons/src/main/java/com/itextpdf/commons/exceptions/AggregatedException.java index 320fa71424..2e32b22dd2 100644 --- a/commons/src/main/java/com/itextpdf/commons/exceptions/AggregatedException.java +++ b/commons/src/main/java/com/itextpdf/commons/exceptions/AggregatedException.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/exceptions/CommonsExceptionMessageConstant.java b/commons/src/main/java/com/itextpdf/commons/exceptions/CommonsExceptionMessageConstant.java index 67e2764b23..417a7f7c18 100644 --- a/commons/src/main/java/com/itextpdf/commons/exceptions/CommonsExceptionMessageConstant.java +++ b/commons/src/main/java/com/itextpdf/commons/exceptions/CommonsExceptionMessageConstant.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/exceptions/ITextException.java b/commons/src/main/java/com/itextpdf/commons/exceptions/ITextException.java index b4a9532d1b..a5df538270 100644 --- a/commons/src/main/java/com/itextpdf/commons/exceptions/ITextException.java +++ b/commons/src/main/java/com/itextpdf/commons/exceptions/ITextException.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/exceptions/ProductEventHandlerRepeatException.java b/commons/src/main/java/com/itextpdf/commons/exceptions/ProductEventHandlerRepeatException.java index 781c761abd..4299219a9e 100644 --- a/commons/src/main/java/com/itextpdf/commons/exceptions/ProductEventHandlerRepeatException.java +++ b/commons/src/main/java/com/itextpdf/commons/exceptions/ProductEventHandlerRepeatException.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/exceptions/UnknownProductException.java b/commons/src/main/java/com/itextpdf/commons/exceptions/UnknownProductException.java index aee05c6dde..9c936f65ff 100644 --- a/commons/src/main/java/com/itextpdf/commons/exceptions/UnknownProductException.java +++ b/commons/src/main/java/com/itextpdf/commons/exceptions/UnknownProductException.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/logs/CommonsLogMessageConstant.java b/commons/src/main/java/com/itextpdf/commons/logs/CommonsLogMessageConstant.java index 008455eab6..518bf7d64e 100644 --- a/commons/src/main/java/com/itextpdf/commons/logs/CommonsLogMessageConstant.java +++ b/commons/src/main/java/com/itextpdf/commons/logs/CommonsLogMessageConstant.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/commons/src/main/java/com/itextpdf/commons/utils/Action.java b/commons/src/main/java/com/itextpdf/commons/utils/Action.java new file mode 100644 index 0000000000..abc5586c9b --- /dev/null +++ b/commons/src/main/java/com/itextpdf/commons/utils/Action.java @@ -0,0 +1,34 @@ +/* + This file is part of the iText (R) project. + Copyright (c) 1998-2022 iText Group NV + Authors: iText Software. + + This program is offered under a commercial and under the AGPL license. + For commercial licensing, contact us at https://itextpdf.com/sales. For AGPL licensing, see below. + + AGPL licensing: + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + */ +package com.itextpdf.commons.utils; + +/** + * Functional interface which takes 0 parameters and returns nothing. + */ +@FunctionalInterface +public interface Action { + /** + * Execute action. + */ + void execute(); +} diff --git a/commons/src/main/java/com/itextpdf/commons/utils/DateTimeUtil.java b/commons/src/main/java/com/itextpdf/commons/utils/DateTimeUtil.java index 04c87f94cc..f1c1d17fdf 100644 --- a/commons/src/main/java/com/itextpdf/commons/utils/DateTimeUtil.java +++ b/commons/src/main/java/com/itextpdf/commons/utils/DateTimeUtil.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -66,6 +66,7 @@ private DateTimeUtil() { * Gets the {@link Calendar} as UTC milliseconds from the epoch. * * @param calendar the calendar to be converted to millis + * * @return the date as UTC milliseconds from the epoch */ public static double getUtcMillisFromEpoch(Calendar calendar) { @@ -79,6 +80,7 @@ public static double getUtcMillisFromEpoch(Calendar calendar) { * Gets the date as {@link Calendar}. * * @param date the date to be returned as {@link Calendar} + * * @return the date as {@link Calendar} */ public static Calendar getCalendar(Date date) { @@ -87,27 +89,72 @@ public static Calendar getCalendar(Date date) { return calendar; } + /** + * Gets a default {@link GregorianCalendar}. + * + * @return a default {@link GregorianCalendar} using the current time in the default + * time zone with the default locale + */ public static Calendar getCurrentTimeCalendar() { return new GregorianCalendar(); } + + /** + * Gets current time consistently. + * + * @return the time at which it was allocated, measured to the nearest millisecond + */ public static Date getCurrentTimeDate() { return new Date(); } + /** + * Adds the specified amount of days to the given calendar field. + * + * @param calendar the calendar field where to add + * @param days the amount of days to be added + * + * @return the time at which it was allocated, measured to the nearest millisecond + */ public static Calendar addDaysToCalendar(Calendar calendar, int days) { calendar.add(Calendar.DAY_OF_YEAR, days); return calendar; } + /** + * Defines if date is in past. + * + * @param date the date to be compared with current date + * + * @return true if given date is in past, false instead + */ public static boolean isInPast(Date date) { return date.before(getCurrentTimeDate()); } + /** + * Gets the number of milliseconds since January 1, 1970, 00:00:00 GMT + * represented by specified date. + * + * @param date the specified date to get time + * + * @return the number of milliseconds since January 1, 1970, 00:00:00 GMT + * represented by the specified date + */ public static long getRelativeTime(Date date) { return date.getTime(); } + /** + * Adds the specified amount of days to the given date. + * + * @param date the specified date to add + * @param days the amount of days to be added + * + * @return a {@link Date} object representing the calendar's time value (millisecond + * offset from the Epoch) + */ public static Date addDaysToDate(Date date, int days) { Calendar cal = new GregorianCalendar(); cal.setTime(date); @@ -116,15 +163,24 @@ public static Date addDaysToDate(Date date, int days) { } /** - * Parses passing date with default {@code yyyy-MM-dd} pattern. + * Parses passing date with default yyyy-MM-dd pattern. * * @param date is date to be parse + * * @return parse date */ public static Date parseWithDefaultPattern(String date) { return parse(date, DEFAULT_PATTERN); } + /** + * Parses passing date with specified format. + * + * @param date the date to be parsed + * @param format the format of parsing the date + * + * @return parsed date + */ public static Date parse(String date, String format) { try { return initParserSDF(format).parse(date); @@ -134,22 +190,52 @@ public static Date parse(String date, String format) { } /** - * Format passing date with default {@code yyyy-MM-dd} pattern. + * Format passing date with default yyyy-MM-dd pattern. + * + * @param date the date to be formatted * - * @param date is date to be format - * @return format date + * @return formatted date */ public static String formatWithDefaultPattern(Date date) { return format(date, DEFAULT_PATTERN); } + /** + * Format passing date with specified pattern. + * + * @param date date to be formatted + * @param pattern pattern for format + * + * @return formatted date + */ public static String format(Date date, String pattern) { return initParserSDF(pattern).format(date); } + /** + * Gets the offset of time zone from UTC + * + * @return the offset of time zone from UTC + * + * @deprecated Unused and will be removed in the next major release. + * Use {@link DateTimeUtil#getCurrentTimeZoneOffset(Date)} instead. + */ + @Deprecated public static long getCurrentTimeZoneOffset() { + return getCurrentTimeZoneOffset(getCurrentTimeDate()); + } + + /** + * Gets the offset of time zone from UTC at the specified date. + * + * @param date the date represented in milliseconds since January 1, 1970 00:00:00 GMT + * + * @return the offset of time zone from UTC at the specified date adjusted with the amount + * of daylight saving. + */ + public static long getCurrentTimeZoneOffset(Date date) { TimeZone tz = TimeZone.getDefault(); - return tz.getOffset(getCurrentTimeDate().getTime()); + return tz.getOffset(date.getTime()); } private static DateFormat initParserSDF(String pattern) { diff --git a/commons/src/main/java/com/itextpdf/commons/utils/EncodingUtil.java b/commons/src/main/java/com/itextpdf/commons/utils/EncodingUtil.java index bab316066c..4e17396772 100644 --- a/commons/src/main/java/com/itextpdf/commons/utils/EncodingUtil.java +++ b/commons/src/main/java/com/itextpdf/commons/utils/EncodingUtil.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -58,11 +58,19 @@ This file is part of the iText (R) project. public final class EncodingUtil { private static final String UTF8 = "UTF-8"; - - private EncodingUtil() { } + /** + * Converts to byte array an array of chars, taking the provided encoding into account. + * + * @param chars an array of chars to be converted to bytes + * @param encoding the encoding to be taken into account while converting the provided array of chars + * + * @return the resultant array of bytes + * + * @throws CharacterCodingException if anything goes wrong while encoding + */ public static byte[] convertToBytes(char[] chars, String encoding) throws CharacterCodingException { Charset cc = Charset.forName(encoding); CharsetEncoder ce = cc.newEncoder(); @@ -81,6 +89,16 @@ public static byte[] convertToBytes(char[] chars, String encoding) throws Charac return br; } + /** + * Converts to String an array of bytes, taking the provided encoding into account. + * + * @param bytes an array of bytes to be converted to String + * @param encoding the encoding to be taken into account while converting the provided bytes + * + * @return the resultant string + * + * @throws UnsupportedEncodingException if anything goes wrong while encoding + */ public static String convertToString(byte[] bytes, String encoding) throws UnsupportedEncodingException { if (bytes[0] == (byte) 0xEF && bytes[1] == (byte) 0xBB && bytes[2] == (byte) 0xBF && encoding.equals(EncodingUtil.UTF8)) { diff --git a/commons/src/main/java/com/itextpdf/commons/utils/FileUtil.java b/commons/src/main/java/com/itextpdf/commons/utils/FileUtil.java index 1a44b5af95..e2091bf467 100644 --- a/commons/src/main/java/com/itextpdf/commons/utils/FileUtil.java +++ b/commons/src/main/java/com/itextpdf/commons/utils/FileUtil.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -78,6 +78,11 @@ public final class FileUtil { private FileUtil() { } + /** + * Gets the default windows font directory. + * + * @return the default windows font directory + */ public static String getFontsDir() { try { String winDir = System.getenv("windir"); @@ -90,6 +95,13 @@ public static String getFontsDir() { } } + /** + * Checks whether there is a file at the provided path. + * + * @param path the path to the file to be checked on existence + * + * @return {@code true} if such a file exists, otherwise {@code false} + */ public static boolean fileExists(String path) { if (path != null) { File f = new File(path); @@ -98,6 +110,14 @@ public static boolean fileExists(String path) { return false; } + /** + * Checks whether there is a directory at the provided path. + * + * @param path the path to the directory to be checked on existence + * + * @return {@code true} if such a directory exists, otherwise {@code false} + */ + public static boolean directoryExists(String path) { if (path != null) { File f = new File(path); @@ -106,6 +126,14 @@ public static boolean directoryExists(String path) { return false; } + /** + * Lists all the files located at the provided directory. + * + * @param path path to the directory + * @param recursive if {@code true}, files from all the subdirectories will be returned + * + * @return all the files located at the provided directory + */ public static String[] listFilesInDirectory(String path, boolean recursive) { if (path != null) { File root = new File(path); @@ -129,6 +157,14 @@ public static String[] listFilesInDirectory(String path, boolean recursive) { return null; } + /** + * Lists all the files located at the provided directory, which are accepted by the provided filter. + * + * @param outPath path to the directory + * @param fileFilter filter to accept files to be listed + * + * @return all the files located at the provided directory, which are accepted by the provided filter + */ public static File[] listFilesInDirectoryByFilter(String outPath, FileFilter fileFilter) { File[] result = null; if (outPath != null && !outPath.isEmpty()) { @@ -173,6 +209,16 @@ public static java.io.OutputStream wrapWithBufferedOutputStream(OutputStream out } } + /** + * Creates a temporary file at the provided path. + * + * @param path path to the temporary file to be created. If it is a directory, then the temporary file + * will be created at this directory + * + * @return the created temporary file + * + * @throws IOException signals that an I/O exception has occurred + */ public static File createTempFile(String path) throws IOException { File tempFile = new File(path); if (tempFile.isDirectory()) { @@ -193,6 +239,11 @@ public static RandomAccessFile getRandomAccessFile(File tempFile) throws FileNot return new RandomAccessFile(tempFile, "rw"); } + /** + * Creates a directory at the provided path. + * + * @param outPath path to the directory to be created + */ public static void createDirectories(String outPath) { new File(outPath).mkdirs(); } @@ -298,7 +349,7 @@ public static String createTempDirectory(String tempFilePrefix) * * @param paths paths to files, which should be removed * - * @return true if all the files have been successfully removed, false otherwise + * @return {@code true} if all the files have been successfully removed, {@code false} otherwise */ public static boolean removeFiles(String[] paths) { boolean allFilesAreRemoved = true; diff --git a/commons/src/main/java/com/itextpdf/commons/utils/MapUtil.java b/commons/src/main/java/com/itextpdf/commons/utils/MapUtil.java index 1b1bfd6431..3387b6176f 100644 --- a/commons/src/main/java/com/itextpdf/commons/utils/MapUtil.java +++ b/commons/src/main/java/com/itextpdf/commons/utils/MapUtil.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/utils/MessageFormatUtil.java b/commons/src/main/java/com/itextpdf/commons/utils/MessageFormatUtil.java index 6ad693b9ba..9362598b38 100644 --- a/commons/src/main/java/com/itextpdf/commons/utils/MessageFormatUtil.java +++ b/commons/src/main/java/com/itextpdf/commons/utils/MessageFormatUtil.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/commons/src/main/java/com/itextpdf/commons/utils/ProcessInfo.java b/commons/src/main/java/com/itextpdf/commons/utils/ProcessInfo.java index d86867ca1d..a1ed565398 100644 --- a/commons/src/main/java/com/itextpdf/commons/utils/ProcessInfo.java +++ b/commons/src/main/java/com/itextpdf/commons/utils/ProcessInfo.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/main/java/com/itextpdf/commons/utils/SystemUtil.java b/commons/src/main/java/com/itextpdf/commons/utils/SystemUtil.java index 616973f067..6a65d5e6b9 100644 --- a/commons/src/main/java/com/itextpdf/commons/utils/SystemUtil.java +++ b/commons/src/main/java/com/itextpdf/commons/utils/SystemUtil.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/commons/src/test/java/com/itextpdf/commons/actions/AbstractContextBasedEventHandlerTest.java b/commons/src/test/java/com/itextpdf/commons/actions/AbstractContextBasedEventHandlerTest.java index 2ac7006507..a1ffb5794f 100644 --- a/commons/src/test/java/com/itextpdf/commons/actions/AbstractContextBasedEventHandlerTest.java +++ b/commons/src/test/java/com/itextpdf/commons/actions/AbstractContextBasedEventHandlerTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/test/java/com/itextpdf/commons/actions/AbstractContextBasedITextEventTest.java b/commons/src/test/java/com/itextpdf/commons/actions/AbstractContextBasedITextEventTest.java index 6dadff4502..567af51d25 100644 --- a/commons/src/test/java/com/itextpdf/commons/actions/AbstractContextBasedITextEventTest.java +++ b/commons/src/test/java/com/itextpdf/commons/actions/AbstractContextBasedITextEventTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/test/java/com/itextpdf/commons/actions/AbstractITextConfigurationEventTest.java b/commons/src/test/java/com/itextpdf/commons/actions/AbstractITextConfigurationEventTest.java index a38f4b9ede..24d08a0afb 100644 --- a/commons/src/test/java/com/itextpdf/commons/actions/AbstractITextConfigurationEventTest.java +++ b/commons/src/test/java/com/itextpdf/commons/actions/AbstractITextConfigurationEventTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/test/java/com/itextpdf/commons/actions/AbstractProductITextEventTest.java b/commons/src/test/java/com/itextpdf/commons/actions/AbstractProductITextEventTest.java index 8b8642af04..cbfc20aa66 100644 --- a/commons/src/test/java/com/itextpdf/commons/actions/AbstractProductITextEventTest.java +++ b/commons/src/test/java/com/itextpdf/commons/actions/AbstractProductITextEventTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/test/java/com/itextpdf/commons/actions/AbstractStatisticsEventTest.java b/commons/src/test/java/com/itextpdf/commons/actions/AbstractStatisticsEventTest.java index 34c1b945ff..a680cfd446 100644 --- a/commons/src/test/java/com/itextpdf/commons/actions/AbstractStatisticsEventTest.java +++ b/commons/src/test/java/com/itextpdf/commons/actions/AbstractStatisticsEventTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/test/java/com/itextpdf/commons/actions/EventManagerTest.java b/commons/src/test/java/com/itextpdf/commons/actions/EventManagerTest.java index 72c1401243..09326e4d49 100644 --- a/commons/src/test/java/com/itextpdf/commons/actions/EventManagerTest.java +++ b/commons/src/test/java/com/itextpdf/commons/actions/EventManagerTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. @@ -22,10 +22,10 @@ This file is part of the iText (R) project. */ package com.itextpdf.commons.actions; +import com.itextpdf.commons.actions.sequence.SequenceId; import com.itextpdf.commons.ecosystem.ITextTestEvent; import com.itextpdf.commons.ecosystem.TestConfigurationEvent; import com.itextpdf.commons.exceptions.AggregatedException; -import com.itextpdf.commons.actions.sequence.SequenceId; import com.itextpdf.test.AssertUtil; import com.itextpdf.test.ExtendedITextTest; import com.itextpdf.test.annotations.LogMessage; @@ -34,17 +34,12 @@ This file is part of the iText (R) project. import java.util.List; import org.junit.Assert; -import org.junit.Rule; import org.junit.Test; import org.junit.experimental.categories.Category; -import org.junit.rules.ExpectedException; @Category(UnitTest.class) public class EventManagerTest extends ExtendedITextTest { - @Rule - public ExpectedException junitExpectedException = ExpectedException.none(); - @Test @LogMessages(messages = { @LogMessage(messageTemplate = TestConfigurationEvent.MESSAGE) @@ -86,13 +81,12 @@ public void throwOneUncheckedExceptionsTest() { EventManager eventManager = EventManager.getInstance(); IEventHandler handler1 = new ThrowArithmeticExpHandler(); eventManager.register(handler1); - try { SequenceId sequenceId = new SequenceId(); - - junitExpectedException.expect(ArithmeticException.class); - junitExpectedException.expectMessage("ThrowArithmeticExpHandler"); - eventManager.onEvent(new ITextTestEvent(sequenceId, null, "test-event", ProductNameConstant.ITEXT_CORE)); + Exception exception = Assert.assertThrows(ArithmeticException.class, + () -> eventManager.onEvent( + new ITextTestEvent(sequenceId, null, "test-event", ProductNameConstant.ITEXT_CORE))); + Assert.assertEquals("ThrowArithmeticExpHandler", exception.getMessage()); } finally { eventManager.unregister(handler1); } diff --git a/commons/src/test/java/com/itextpdf/commons/actions/ProductEventHandlerTest.java b/commons/src/test/java/com/itextpdf/commons/actions/ProductEventHandlerTest.java index 035b7dc094..7e8ca6413e 100644 --- a/commons/src/test/java/com/itextpdf/commons/actions/ProductEventHandlerTest.java +++ b/commons/src/test/java/com/itextpdf/commons/actions/ProductEventHandlerTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/test/java/com/itextpdf/commons/actions/confirmations/ConfirmEventTest.java b/commons/src/test/java/com/itextpdf/commons/actions/confirmations/ConfirmEventTest.java index 0aefe40e48..7b850a11d1 100644 --- a/commons/src/test/java/com/itextpdf/commons/actions/confirmations/ConfirmEventTest.java +++ b/commons/src/test/java/com/itextpdf/commons/actions/confirmations/ConfirmEventTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/test/java/com/itextpdf/commons/actions/contexts/ContextManagerTest.java b/commons/src/test/java/com/itextpdf/commons/actions/contexts/ContextManagerTest.java index 8c4c5d0d25..d547e33d0d 100644 --- a/commons/src/test/java/com/itextpdf/commons/actions/contexts/ContextManagerTest.java +++ b/commons/src/test/java/com/itextpdf/commons/actions/contexts/ContextManagerTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/commons/src/test/java/com/itextpdf/commons/actions/data/CommonsProductDataTest.java b/commons/src/test/java/com/itextpdf/commons/actions/data/CommonsProductDataTest.java index f0464a6a6c..f2f60d6255 100644 --- a/commons/src/test/java/com/itextpdf/commons/actions/data/CommonsProductDataTest.java +++ b/commons/src/test/java/com/itextpdf/commons/actions/data/CommonsProductDataTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/test/java/com/itextpdf/commons/actions/data/ProductDataTest.java b/commons/src/test/java/com/itextpdf/commons/actions/data/ProductDataTest.java index c1525e8f4a..ff8a69559d 100644 --- a/commons/src/test/java/com/itextpdf/commons/actions/data/ProductDataTest.java +++ b/commons/src/test/java/com/itextpdf/commons/actions/data/ProductDataTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/test/java/com/itextpdf/commons/actions/processors/DefaultITextProductEventProcessorTest.java b/commons/src/test/java/com/itextpdf/commons/actions/processors/DefaultITextProductEventProcessorTest.java index 31fa5f704a..6c084b840d 100644 --- a/commons/src/test/java/com/itextpdf/commons/actions/processors/DefaultITextProductEventProcessorTest.java +++ b/commons/src/test/java/com/itextpdf/commons/actions/processors/DefaultITextProductEventProcessorTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/test/java/com/itextpdf/commons/actions/producer/CopyrightSincePlaceholderPopulatorTest.java b/commons/src/test/java/com/itextpdf/commons/actions/producer/CopyrightSincePlaceholderPopulatorTest.java index 98f063faf0..30144e09f5 100644 --- a/commons/src/test/java/com/itextpdf/commons/actions/producer/CopyrightSincePlaceholderPopulatorTest.java +++ b/commons/src/test/java/com/itextpdf/commons/actions/producer/CopyrightSincePlaceholderPopulatorTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/test/java/com/itextpdf/commons/actions/producer/CopyrightToPlaceholderPopulatorTest.java b/commons/src/test/java/com/itextpdf/commons/actions/producer/CopyrightToPlaceholderPopulatorTest.java index 0e473aafc7..2cb941530c 100644 --- a/commons/src/test/java/com/itextpdf/commons/actions/producer/CopyrightToPlaceholderPopulatorTest.java +++ b/commons/src/test/java/com/itextpdf/commons/actions/producer/CopyrightToPlaceholderPopulatorTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/test/java/com/itextpdf/commons/actions/producer/CurrentDatePlaceholderPopulatorTest.java b/commons/src/test/java/com/itextpdf/commons/actions/producer/CurrentDatePlaceholderPopulatorTest.java index d23d03e008..f0d28eee76 100644 --- a/commons/src/test/java/com/itextpdf/commons/actions/producer/CurrentDatePlaceholderPopulatorTest.java +++ b/commons/src/test/java/com/itextpdf/commons/actions/producer/CurrentDatePlaceholderPopulatorTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. @@ -31,24 +31,19 @@ This file is part of the iText (R) project. import java.util.Date; import org.junit.Assert; -import org.junit.Rule; import org.junit.Test; import org.junit.experimental.categories.Category; -import org.junit.rules.ExpectedException; @Category(UnitTest.class) public class CurrentDatePlaceholderPopulatorTest extends ExtendedITextTest { private final CurrentDatePlaceholderPopulator populator = new CurrentDatePlaceholderPopulator(); - @Rule - public ExpectedException junitExpectedException = ExpectedException.none(); - @Test public void nullTest() { - junitExpectedException.expect(IllegalArgumentException.class); - junitExpectedException.expectMessage(MessageFormatUtil.format(CommonsExceptionMessageConstant.INVALID_USAGE_FORMAT_REQUIRED, "currentDate")); - - populator.populate(null, null); + Exception exception = Assert.assertThrows(IllegalArgumentException.class, + () -> populator.populate(null, null)); + Assert.assertEquals(MessageFormatUtil.format(CommonsExceptionMessageConstant.INVALID_USAGE_FORMAT_REQUIRED, "currentDate"), + exception.getMessage()); } @Test @@ -89,26 +84,26 @@ public void plainTextWithUnquotedCharactersTest() { @Test public void plainTextEndlessQuotationErrorTest() { - junitExpectedException.expect(IllegalArgumentException.class); - junitExpectedException.expectMessage(CommonsExceptionMessageConstant.PATTERN_CONTAINS_OPEN_QUOTATION); - - populator.populate(null, "'plain text"); + Exception exception = Assert.assertThrows(IllegalArgumentException.class, + () -> populator.populate(null, "'plain text")); + Assert.assertEquals(CommonsExceptionMessageConstant.PATTERN_CONTAINS_OPEN_QUOTATION, + exception.getMessage()); } @Test public void plainTextMultipleQuotationsEndlessQuotationErrorTest() { - junitExpectedException.expect(IllegalArgumentException.class); - junitExpectedException.expectMessage(CommonsExceptionMessageConstant.PATTERN_CONTAINS_OPEN_QUOTATION); - - populator.populate(null, "'plain'' ''text"); + Exception exception = Assert.assertThrows(IllegalArgumentException.class, + () -> populator.populate(null, "'plain'' ''text")); + Assert.assertEquals(CommonsExceptionMessageConstant.PATTERN_CONTAINS_OPEN_QUOTATION, + exception.getMessage()); } @Test public void plainTextEscapedApostropheEndlessQuotationErrorTest() { - junitExpectedException.expect(IllegalArgumentException.class); - junitExpectedException.expectMessage(CommonsExceptionMessageConstant.PATTERN_CONTAINS_OPEN_QUOTATION); - - populator.populate(null, "'plain text\\'"); + Exception exception = Assert.assertThrows(IllegalArgumentException.class, + () -> populator.populate(null, "'plain text\\'")); + Assert.assertEquals(CommonsExceptionMessageConstant.PATTERN_CONTAINS_OPEN_QUOTATION, + exception.getMessage()); } @Test @@ -128,25 +123,25 @@ public void validComponentsComparisonTest() { @Test public void unexpectedLetterComponentTest() { - junitExpectedException.expect(IllegalArgumentException.class); - junitExpectedException.expectMessage(MessageFormatUtil.format(CommonsExceptionMessageConstant.PATTERN_CONTAINS_UNEXPECTED_COMPONENT, "t")); - - populator.populate(null, "dd MM tyy yyyy HH"); + Exception exception = Assert.assertThrows(IllegalArgumentException.class, + () -> populator.populate(null, "dd MM tyy yyyy HH")); + Assert.assertEquals(MessageFormatUtil.format(CommonsExceptionMessageConstant.PATTERN_CONTAINS_UNEXPECTED_COMPONENT, "t"), + exception.getMessage()); } @Test public void unexpectedLongComponentTest() { - junitExpectedException.expect(IllegalArgumentException.class); - junitExpectedException.expectMessage(MessageFormatUtil.format(CommonsExceptionMessageConstant.PATTERN_CONTAINS_UNEXPECTED_COMPONENT, "MMMMM")); - - populator.populate(null, "dd MMMMM yy yyyy HH"); + Exception exception = Assert.assertThrows(IllegalArgumentException.class, + () -> populator.populate(null, "dd MMMMM yy yyyy HH")); + Assert.assertEquals(MessageFormatUtil.format(CommonsExceptionMessageConstant.PATTERN_CONTAINS_UNEXPECTED_COMPONENT, "MMMMM"), + exception.getMessage()); } @Test public void unexpectedShortComponentTest() { - junitExpectedException.expect(IllegalArgumentException.class); - junitExpectedException.expectMessage(MessageFormatUtil.format(CommonsExceptionMessageConstant.PATTERN_CONTAINS_UNEXPECTED_COMPONENT, "y")); - - populator.populate(null, "dd MM y yyyy HH"); + Exception exception = Assert.assertThrows(IllegalArgumentException.class, + () -> populator.populate(null, "dd MM y yyyy HH")); + Assert.assertEquals(MessageFormatUtil.format(CommonsExceptionMessageConstant.PATTERN_CONTAINS_UNEXPECTED_COMPONENT, "y"), + exception.getMessage()); } } diff --git a/commons/src/test/java/com/itextpdf/commons/actions/producer/ProducerBuilderTest.java b/commons/src/test/java/com/itextpdf/commons/actions/producer/ProducerBuilderTest.java index e5b3bd609d..1ce5c82c3f 100644 --- a/commons/src/test/java/com/itextpdf/commons/actions/producer/ProducerBuilderTest.java +++ b/commons/src/test/java/com/itextpdf/commons/actions/producer/ProducerBuilderTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. @@ -41,31 +41,26 @@ This file is part of the iText (R) project. import java.util.Collections; import java.util.List; import org.junit.Assert; -import org.junit.Rule; import org.junit.Test; import org.junit.experimental.categories.Category; -import org.junit.rules.ExpectedException; @Category(UnitTest.class) public class ProducerBuilderTest extends ExtendedITextTest { - @Rule - public ExpectedException junitExpectedException = ExpectedException.none(); - @Test public void emptyEventsProducerLineTest() { - junitExpectedException.expect(IllegalArgumentException.class); - junitExpectedException.expectMessage(CommonsExceptionMessageConstant.NO_EVENTS_WERE_REGISTERED_FOR_THE_DOCUMENT); - - ProducerBuilder.modifyProducer(Collections.emptyList(), null); + Exception exception = Assert.assertThrows(IllegalArgumentException.class, + () -> ProducerBuilder.modifyProducer(Collections.emptyList(), null)); + Assert.assertEquals(CommonsExceptionMessageConstant.NO_EVENTS_WERE_REGISTERED_FOR_THE_DOCUMENT, + exception.getMessage()); } @Test public void nullEventsProducerLineTest() { - junitExpectedException.expect(IllegalArgumentException.class); - junitExpectedException.expectMessage(CommonsExceptionMessageConstant.NO_EVENTS_WERE_REGISTERED_FOR_THE_DOCUMENT); - - ProducerBuilder.modifyProducer((List)null, null); + Exception exception = Assert.assertThrows(IllegalArgumentException.class, + () -> ProducerBuilder.modifyProducer((List)null, null)); + Assert.assertEquals(CommonsExceptionMessageConstant.NO_EVENTS_WERE_REGISTERED_FOR_THE_DOCUMENT, + exception.getMessage()); } @Test @@ -145,11 +140,10 @@ public void currentDatePlaceholderFormatProducerLineTest() { @Test public void currentDateNoFormatProducerLineTest() { List events = getEvents("Created at ${currentDate}", 1, 2, 3); - - junitExpectedException.expect(IllegalArgumentException.class); - junitExpectedException.expectMessage(MessageFormatUtil.format(CommonsExceptionMessageConstant.INVALID_USAGE_FORMAT_REQUIRED, "currentDate")); - - ProducerBuilder.modifyProducer(events, null); + Exception exception = Assert.assertThrows(IllegalArgumentException.class, + () -> ProducerBuilder.modifyProducer(events, null)); + Assert.assertEquals(MessageFormatUtil.format(CommonsExceptionMessageConstant.INVALID_USAGE_FORMAT_REQUIRED, "currentDate"), + exception.getMessage()); } @Test @@ -173,11 +167,10 @@ public void usedProductsProducerLineTest() { @Test public void usedProductsEmptyFormatProducerLineTest() { List events = getEvents("Used products: ${usedProducts}", 1, 2, 3); - - junitExpectedException.expect(IllegalArgumentException.class); - junitExpectedException.expectMessage(MessageFormatUtil.format(CommonsExceptionMessageConstant.INVALID_USAGE_FORMAT_REQUIRED, "usedProducts")); - - ProducerBuilder.modifyProducer(events, null); + Exception exception = Assert.assertThrows(IllegalArgumentException.class, + () -> ProducerBuilder.modifyProducer(events, null)); + Assert.assertEquals(MessageFormatUtil.format(CommonsExceptionMessageConstant.INVALID_USAGE_FORMAT_REQUIRED, "usedProducts"), + exception.getMessage()); } @Test diff --git a/commons/src/test/java/com/itextpdf/commons/actions/producer/UsedProductsPlaceholderPopulatorTest.java b/commons/src/test/java/com/itextpdf/commons/actions/producer/UsedProductsPlaceholderPopulatorTest.java index 212942383b..5ba8869904 100644 --- a/commons/src/test/java/com/itextpdf/commons/actions/producer/UsedProductsPlaceholderPopulatorTest.java +++ b/commons/src/test/java/com/itextpdf/commons/actions/producer/UsedProductsPlaceholderPopulatorTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. @@ -24,9 +24,9 @@ This file is part of the iText (R) project. import com.itextpdf.commons.actions.confirmations.ConfirmedEventWrapper; import com.itextpdf.commons.actions.data.ProductData; +import com.itextpdf.commons.actions.sequence.SequenceId; import com.itextpdf.commons.ecosystem.ITextTestEvent; import com.itextpdf.commons.exceptions.CommonsExceptionMessageConstant; -import com.itextpdf.commons.actions.sequence.SequenceId; import com.itextpdf.commons.utils.MessageFormatUtil; import com.itextpdf.test.ExtendedITextTest; import com.itextpdf.test.annotations.type.UnitTest; @@ -35,23 +35,20 @@ This file is part of the iText (R) project. import java.util.Arrays; import java.util.List; import org.junit.Assert; -import org.junit.Rule; import org.junit.Test; import org.junit.experimental.categories.Category; -import org.junit.rules.ExpectedException; @Category(UnitTest.class) public class UsedProductsPlaceholderPopulatorTest extends ExtendedITextTest { + private final UsedProductsPlaceholderPopulator populator = new UsedProductsPlaceholderPopulator(); - @Rule - public ExpectedException junitExpectedException = ExpectedException.none(); @Test public void nullTest() { - junitExpectedException.expect(IllegalArgumentException.class); - junitExpectedException.expectMessage(MessageFormatUtil.format(CommonsExceptionMessageConstant.INVALID_USAGE_FORMAT_REQUIRED, "usedProducts")); - - populator.populate(getEvents(1), null); + Exception exception = Assert.assertThrows(IllegalArgumentException.class, + () -> populator.populate(getEvents(1), null)); + Assert.assertEquals(MessageFormatUtil.format(CommonsExceptionMessageConstant.INVALID_USAGE_FORMAT_REQUIRED, "usedProducts"), + exception.getMessage()); } @Test @@ -138,10 +135,11 @@ public void humanReadableNormalizationTest() { @Test public void invalidLetterFormatTest() { - junitExpectedException.expect(IllegalArgumentException.class); - junitExpectedException.expectMessage(MessageFormatUtil.format(CommonsExceptionMessageConstant.PATTERN_CONTAINS_UNEXPECTED_CHARACTER, "X")); - - populator.populate(getEvents(1), "PVTX"); + Exception exception = Assert.assertThrows(IllegalArgumentException.class, + () -> populator.populate(getEvents(1), "PVTX")); + Assert.assertEquals( + MessageFormatUtil.format(CommonsExceptionMessageConstant.PATTERN_CONTAINS_UNEXPECTED_CHARACTER, "X"), + exception.getMessage()); } private List getEvents(int ... indexes) { diff --git a/commons/src/test/java/com/itextpdf/commons/actions/sequence/SequenceIdManagerTest.java b/commons/src/test/java/com/itextpdf/commons/actions/sequence/SequenceIdManagerTest.java index 47d6640d67..3877aec6bf 100644 --- a/commons/src/test/java/com/itextpdf/commons/actions/sequence/SequenceIdManagerTest.java +++ b/commons/src/test/java/com/itextpdf/commons/actions/sequence/SequenceIdManagerTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/test/java/com/itextpdf/commons/actions/sequence/SequenceIdTest.java b/commons/src/test/java/com/itextpdf/commons/actions/sequence/SequenceIdTest.java index f350f35977..0bd1c317a8 100644 --- a/commons/src/test/java/com/itextpdf/commons/actions/sequence/SequenceIdTest.java +++ b/commons/src/test/java/com/itextpdf/commons/actions/sequence/SequenceIdTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/test/java/com/itextpdf/commons/ecosystem/ITextTestEvent.java b/commons/src/test/java/com/itextpdf/commons/ecosystem/ITextTestEvent.java index 17315cada1..a6e4e0aa24 100644 --- a/commons/src/test/java/com/itextpdf/commons/ecosystem/ITextTestEvent.java +++ b/commons/src/test/java/com/itextpdf/commons/ecosystem/ITextTestEvent.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/test/java/com/itextpdf/commons/ecosystem/TestConfigurationEvent.java b/commons/src/test/java/com/itextpdf/commons/ecosystem/TestConfigurationEvent.java index 605009af69..640a3ef8ad 100644 --- a/commons/src/test/java/com/itextpdf/commons/ecosystem/TestConfigurationEvent.java +++ b/commons/src/test/java/com/itextpdf/commons/ecosystem/TestConfigurationEvent.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/test/java/com/itextpdf/commons/ecosystem/TestMetaInfo.java b/commons/src/test/java/com/itextpdf/commons/ecosystem/TestMetaInfo.java index e6a001e923..004f149309 100644 --- a/commons/src/test/java/com/itextpdf/commons/ecosystem/TestMetaInfo.java +++ b/commons/src/test/java/com/itextpdf/commons/ecosystem/TestMetaInfo.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/test/java/com/itextpdf/commons/exceptions/AggregatedExceptionTest.java b/commons/src/test/java/com/itextpdf/commons/exceptions/AggregatedExceptionTest.java index fe7a175ff7..733aff451c 100644 --- a/commons/src/test/java/com/itextpdf/commons/exceptions/AggregatedExceptionTest.java +++ b/commons/src/test/java/com/itextpdf/commons/exceptions/AggregatedExceptionTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/test/java/com/itextpdf/commons/exceptions/ITextExceptionTest.java b/commons/src/test/java/com/itextpdf/commons/exceptions/ITextExceptionTest.java index d42e1e114e..983ea0e353 100644 --- a/commons/src/test/java/com/itextpdf/commons/exceptions/ITextExceptionTest.java +++ b/commons/src/test/java/com/itextpdf/commons/exceptions/ITextExceptionTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/test/java/com/itextpdf/commons/utils/Base64Test.java b/commons/src/test/java/com/itextpdf/commons/utils/Base64Test.java index 0494be9819..0debc5cf23 100644 --- a/commons/src/test/java/com/itextpdf/commons/utils/Base64Test.java +++ b/commons/src/test/java/com/itextpdf/commons/utils/Base64Test.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/test/java/com/itextpdf/commons/utils/DateTimeUtilTest.java b/commons/src/test/java/com/itextpdf/commons/utils/DateTimeUtilTest.java index 2b000c8fec..3c25d260b5 100644 --- a/commons/src/test/java/com/itextpdf/commons/utils/DateTimeUtilTest.java +++ b/commons/src/test/java/com/itextpdf/commons/utils/DateTimeUtilTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. @@ -51,15 +51,18 @@ public void isInPastTest() { @Test public void parseDateAndGetUtcMillisFromEpochTest() { - Calendar parsedDate = DateTimeUtil.getCalendar(DateTimeUtil.parseWithDefaultPattern("2020-05-05")); + Date date = DateTimeUtil.parseWithDefaultPattern("2020-05-05"); + Calendar parsedDate = DateTimeUtil.getCalendar(date); + double millisFromEpochTo2020_05_05 = DateTimeUtil.getUtcMillisFromEpoch(parsedDate); - long offset = DateTimeUtil.getCurrentTimeZoneOffset(); + long offset = DateTimeUtil.getCurrentTimeZoneOffset(date); + Assert.assertEquals(1588636800000d - offset, millisFromEpochTo2020_05_05, ZERO_DELTA); } @Test - public void compareUtcMillisFromEpochWithNullParamAndCurrentTimeTest() throws InterruptedException { + public void compareUtcMillisFromEpochWithNullParamAndCurrentTimeTest() { double getUtcMillisFromEpochWithNullParam = DateTimeUtil.getUtcMillisFromEpoch(null); double millisFromEpochToCurrentTime = DateTimeUtil.getUtcMillisFromEpoch(DateTimeUtil.getCurrentTimeCalendar()); @@ -68,9 +71,17 @@ public void compareUtcMillisFromEpochWithNullParamAndCurrentTimeTest() throws In @Test public void parseDateAndGetRelativeTimeTest() { - double relativeTime = DateTimeUtil.getRelativeTime(DateTimeUtil.parseWithDefaultPattern("2020-05-05")); + Date date = DateTimeUtil.parseWithDefaultPattern("2020-05-05"); + double relativeTime = DateTimeUtil.getRelativeTime(date); + + long offset = DateTimeUtil.getCurrentTimeZoneOffset(date); - long offset = DateTimeUtil.getCurrentTimeZoneOffset(); Assert.assertEquals(1588636800000d - offset, relativeTime, ZERO_DELTA); } + + @Test + public void getCurrentTimeZoneOffsetTest() { + Assert.assertEquals(DateTimeUtil.getCurrentTimeZoneOffset(DateTimeUtil.getCurrentTimeDate()), + DateTimeUtil.getCurrentTimeZoneOffset()); + } } diff --git a/commons/src/test/java/com/itextpdf/commons/utils/MapUtilTest.java b/commons/src/test/java/com/itextpdf/commons/utils/MapUtilTest.java index 83e8370d64..7726e1a24c 100644 --- a/commons/src/test/java/com/itextpdf/commons/utils/MapUtilTest.java +++ b/commons/src/test/java/com/itextpdf/commons/utils/MapUtilTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/test/java/com/itextpdf/commons/utils/ProcessInfoTest.java b/commons/src/test/java/com/itextpdf/commons/utils/ProcessInfoTest.java index 9e8bf185c5..013ee06943 100644 --- a/commons/src/test/java/com/itextpdf/commons/utils/ProcessInfoTest.java +++ b/commons/src/test/java/com/itextpdf/commons/utils/ProcessInfoTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/commons/src/test/java/com/itextpdf/commons/utils/StringUtilTest.java b/commons/src/test/java/com/itextpdf/commons/utils/StringUtilTest.java index 00839e111e..258e72b739 100644 --- a/commons/src/test/java/com/itextpdf/commons/utils/StringUtilTest.java +++ b/commons/src/test/java/com/itextpdf/commons/utils/StringUtilTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/commons/src/test/java/com/itextpdf/commons/utils/SystemUtilTest.java b/commons/src/test/java/com/itextpdf/commons/utils/SystemUtilTest.java index 8b5772d1b4..78116afde0 100644 --- a/commons/src/test/java/com/itextpdf/commons/utils/SystemUtilTest.java +++ b/commons/src/test/java/com/itextpdf/commons/utils/SystemUtilTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/font-asian/pom.xml b/font-asian/pom.xml index 03ca569696..157b75d2e6 100644 --- a/font-asian/pom.xml +++ b/font-asian/pom.xml @@ -4,7 +4,7 @@ com.itextpdf root - 7.2.1 + 7.2.2 font-asian iText 7 - Asian fonts diff --git a/forms/pom.xml b/forms/pom.xml index 85f191ca6f..11be0647f7 100644 --- a/forms/pom.xml +++ b/forms/pom.xml @@ -4,7 +4,7 @@ com.itextpdf root - 7.2.1 + 7.2.2 forms iText 7 - forms diff --git a/forms/src/main/java/com/itextpdf/forms/PdfAcroForm.java b/forms/src/main/java/com/itextpdf/forms/PdfAcroForm.java index ecd20efc5b..9894987eaf 100644 --- a/forms/src/main/java/com/itextpdf/forms/PdfAcroForm.java +++ b/forms/src/main/java/com/itextpdf/forms/PdfAcroForm.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -87,6 +87,8 @@ This file is part of the iText (R) project. */ public class PdfAcroForm extends PdfObjectWrapper { + private static final Logger LOGGER = LoggerFactory.getLogger(PdfAcroForm.class); + /** * To be used with {@link #setSignatureFlags}. *
@@ -137,7 +139,6 @@ public class PdfAcroForm extends PdfObjectWrapper { private PdfDictionary defaultResources; private Set fieldsForFlattening = new LinkedHashSet<>(); private XfaForm xfaForm; - private static Logger logger = LoggerFactory.getLogger(PdfAcroForm.class); /** * Creates a PdfAcroForm as a wrapper of a dictionary. @@ -720,7 +721,7 @@ public void flattenFields() { } } } else { - logger.error(IoLogMessageConstant.N_ENTRY_IS_REQUIRED_FOR_APPEARANCE_DICTIONARY); + LOGGER.error(IoLogMessageConstant.N_ENTRY_IS_REQUIRED_FOR_APPEARANCE_DICTIONARY); } PdfArray fFields = getFields(); @@ -861,7 +862,7 @@ public void replaceField(String name, PdfFormField field) { protected PdfArray getFields() { PdfArray fields = getPdfObject().getAsArray(PdfName.Fields); if (fields == null) { - logger.warn(IoLogMessageConstant.NO_FIELDS_IN_ACROFORM); + LOGGER.warn(IoLogMessageConstant.NO_FIELDS_IN_ACROFORM); fields = new PdfArray(); getPdfObject().put(PdfName.Fields, fields); } @@ -877,12 +878,12 @@ private Map iterateFields(PdfArray array, Map. + */ +package com.itextpdf.forms.fields; + +import com.itextpdf.commons.utils.Action; +import com.itextpdf.layout.renderer.MetaInfoContainer; + +/** + * Class to store meta info that will be used in forms module in static context. + */ +public final class FormsMetaInfoStaticContainer { + + private static ThreadLocal metaInfoForLayout = new ThreadLocal<>(); + + private FormsMetaInfoStaticContainer() { + // Empty constructor. + } + + /** + * Sets meta info related to forms into static context, executes the action and then cleans meta info. + * + *

+ * Keep in mind that this instance will only be accessible from the same thread. + * + * @param metaInfoContainer instance to be set. + * @param action action which will be executed while meta info is set to static context. + */ + // TODO DEVSIX-6368 We want to prevent customer code being run while meta info is in the static context + public static void useMetaInfoDuringTheAction(MetaInfoContainer metaInfoContainer, Action action) { + try { + metaInfoForLayout.set(metaInfoContainer); + action.execute(); + } finally { + metaInfoForLayout.set(null); + } + } + + /** + * Gets meta info which was set previously. + * + *

+ * Keep in mind that this operation will return meta info instance which was set previously from the same thread. + * + * @return meta info instance. + */ + static MetaInfoContainer getMetaInfoForLayout() { + return metaInfoForLayout.get(); + } +} diff --git a/forms/src/main/java/com/itextpdf/forms/fields/PdfButtonFormField.java b/forms/src/main/java/com/itextpdf/forms/fields/PdfButtonFormField.java index 0714b2f0b6..ac79864b8c 100644 --- a/forms/src/main/java/com/itextpdf/forms/fields/PdfButtonFormField.java +++ b/forms/src/main/java/com/itextpdf/forms/fields/PdfButtonFormField.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/fields/PdfChoiceFormField.java b/forms/src/main/java/com/itextpdf/forms/fields/PdfChoiceFormField.java index 519786c7bf..a219ed26e0 100644 --- a/forms/src/main/java/com/itextpdf/forms/fields/PdfChoiceFormField.java +++ b/forms/src/main/java/com/itextpdf/forms/fields/PdfChoiceFormField.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/fields/PdfFormField.java b/forms/src/main/java/com/itextpdf/forms/fields/PdfFormField.java index 22cdfef6d1..ee943ce66f 100644 --- a/forms/src/main/java/com/itextpdf/forms/fields/PdfFormField.java +++ b/forms/src/main/java/com/itextpdf/forms/fields/PdfFormField.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -106,6 +106,7 @@ This file is part of the iText (R) project. import com.itextpdf.layout.properties.TransparentColor; import com.itextpdf.layout.properties.VerticalAlignment; import com.itextpdf.layout.renderer.IRenderer; +import com.itextpdf.layout.renderer.MetaInfoContainer; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -117,6 +118,7 @@ This file is part of the iText (R) project. import java.util.List; import java.util.Map; import java.util.Set; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -2432,6 +2434,8 @@ protected void drawTextAppearance(Rectangle rect, PdfFont font, float fontSize, Canvas modelCanvas = new Canvas(canvas, new Rectangle(0, -height, 0, 2 * height)); modelCanvas.setProperty(Property.APPEARANCE_STREAM_LAYOUT, true); + setMetaInfoToCanvas(modelCanvas); + Style paragraphStyle = new Style().setFont(font).setFontSize(fontSize); paragraphStyle.setProperty(Property.LEADING, new Leading(Leading.MULTIPLIED, 1)); if (color != null) @@ -2489,6 +2493,8 @@ protected void drawMultiLineTextAppearance(Rectangle rect, PdfFont font, String Canvas modelCanvas = new Canvas(canvas, areaRect); modelCanvas.setProperty(Property.APPEARANCE_STREAM_LAYOUT, true); + setMetaInfoToCanvas(modelCanvas); + Paragraph paragraph = createParagraphForTextFieldValue(value).setFont(font) .setMargin(0) .setPadding(3) @@ -2545,6 +2551,9 @@ private void drawChoiceAppearance(Rectangle rect, float fontSize, String value, Canvas modelCanvas = new Canvas(canvas, new Rectangle(3, 0, Math.max(0, width - widthBorder), Math.max(0, height - heightBorder))); modelCanvas.setProperty(Property.APPEARANCE_STREAM_LAYOUT, true); + + setMetaInfoToCanvas(modelCanvas); + Div div = new Div(); if(getFieldFlag(PdfChoiceFormField.FF_COMBO)) { div.setVerticalAlignment(VerticalAlignment.MIDDLE); @@ -2865,6 +2874,9 @@ protected void drawButton(PdfCanvas canvas, float x, float y, float width, float setVerticalAlignment(VerticalAlignment.MIDDLE); Canvas modelCanvas = new Canvas(canvas, new Rectangle(0, -height, width, 2 * height)); modelCanvas.setProperty(Property.APPEARANCE_STREAM_LAYOUT, true); + + setMetaInfoToCanvas(modelCanvas); + modelCanvas.showTextAligned(paragraph, width / 2, height / 2, TextAlignment.CENTER, VerticalAlignment.MIDDLE); } @@ -2922,6 +2934,13 @@ protected void drawPdfACheckBox(PdfCanvas canvas, float width, float height, boo } } + static void setMetaInfoToCanvas(Canvas canvas) { + MetaInfoContainer metaInfo = FormsMetaInfoStaticContainer.getMetaInfoForLayout(); + if (metaInfo != null) { + canvas.setProperty(Property.META_INFO, metaInfo); + } + } + private String getRadioButtonValue() { for (String state : getAppearanceStates()) { if (!"Off".equals(state)) { diff --git a/forms/src/main/java/com/itextpdf/forms/fields/PdfSignatureFormField.java b/forms/src/main/java/com/itextpdf/forms/fields/PdfSignatureFormField.java index beea9421c2..c660312983 100644 --- a/forms/src/main/java/com/itextpdf/forms/fields/PdfSignatureFormField.java +++ b/forms/src/main/java/com/itextpdf/forms/fields/PdfSignatureFormField.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/fields/PdfTextFormField.java b/forms/src/main/java/com/itextpdf/forms/fields/PdfTextFormField.java index 99d861f849..512094af2a 100644 --- a/forms/src/main/java/com/itextpdf/forms/fields/PdfTextFormField.java +++ b/forms/src/main/java/com/itextpdf/forms/fields/PdfTextFormField.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/fields/borders/AbstractFormBorder.java b/forms/src/main/java/com/itextpdf/forms/fields/borders/AbstractFormBorder.java index d00374be35..89fa77efd9 100644 --- a/forms/src/main/java/com/itextpdf/forms/fields/borders/AbstractFormBorder.java +++ b/forms/src/main/java/com/itextpdf/forms/fields/borders/AbstractFormBorder.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/fields/borders/BeveledBorder.java b/forms/src/main/java/com/itextpdf/forms/fields/borders/BeveledBorder.java index 5899202c80..d274ce5324 100644 --- a/forms/src/main/java/com/itextpdf/forms/fields/borders/BeveledBorder.java +++ b/forms/src/main/java/com/itextpdf/forms/fields/borders/BeveledBorder.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/fields/borders/FormBorderFactory.java b/forms/src/main/java/com/itextpdf/forms/fields/borders/FormBorderFactory.java index bbc440e8ae..30eb0fc40d 100644 --- a/forms/src/main/java/com/itextpdf/forms/fields/borders/FormBorderFactory.java +++ b/forms/src/main/java/com/itextpdf/forms/fields/borders/FormBorderFactory.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/fields/borders/InsetBorder.java b/forms/src/main/java/com/itextpdf/forms/fields/borders/InsetBorder.java index bef9ede53b..b8d7d25d9f 100644 --- a/forms/src/main/java/com/itextpdf/forms/fields/borders/InsetBorder.java +++ b/forms/src/main/java/com/itextpdf/forms/fields/borders/InsetBorder.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/fields/borders/UnderlineBorder.java b/forms/src/main/java/com/itextpdf/forms/fields/borders/UnderlineBorder.java index f215a3d4c9..e23f1b30ea 100644 --- a/forms/src/main/java/com/itextpdf/forms/fields/borders/UnderlineBorder.java +++ b/forms/src/main/java/com/itextpdf/forms/fields/borders/UnderlineBorder.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/util/DrawingUtil.java b/forms/src/main/java/com/itextpdf/forms/util/DrawingUtil.java index f66961e8a4..e46af8b1fb 100644 --- a/forms/src/main/java/com/itextpdf/forms/util/DrawingUtil.java +++ b/forms/src/main/java/com/itextpdf/forms/util/DrawingUtil.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfa/AcroFieldsSearch.java b/forms/src/main/java/com/itextpdf/forms/xfa/AcroFieldsSearch.java index ac720988d7..18c9800f8f 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfa/AcroFieldsSearch.java +++ b/forms/src/main/java/com/itextpdf/forms/xfa/AcroFieldsSearch.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfa/InverseStore.java b/forms/src/main/java/com/itextpdf/forms/xfa/InverseStore.java index f6abc13df7..50d308a305 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfa/InverseStore.java +++ b/forms/src/main/java/com/itextpdf/forms/xfa/InverseStore.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfa/XfaForm.java b/forms/src/main/java/com/itextpdf/forms/xfa/XfaForm.java index f25263bdf2..540ca6457b 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfa/XfaForm.java +++ b/forms/src/main/java/com/itextpdf/forms/xfa/XfaForm.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfa/Xml2Som.java b/forms/src/main/java/com/itextpdf/forms/xfa/Xml2Som.java index 7ab5d58bff..0af5c532f7 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfa/Xml2Som.java +++ b/forms/src/main/java/com/itextpdf/forms/xfa/Xml2Som.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfa/Xml2SomDatasets.java b/forms/src/main/java/com/itextpdf/forms/xfa/Xml2SomDatasets.java index 56c04da527..4062add1e3 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfa/Xml2SomDatasets.java +++ b/forms/src/main/java/com/itextpdf/forms/xfa/Xml2SomDatasets.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfdf/ActionObject.java b/forms/src/main/java/com/itextpdf/forms/xfdf/ActionObject.java index 5d78f0020b..0cc564a5a1 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfdf/ActionObject.java +++ b/forms/src/main/java/com/itextpdf/forms/xfdf/ActionObject.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfdf/AnnotObject.java b/forms/src/main/java/com/itextpdf/forms/xfdf/AnnotObject.java index 8c194d1499..f1ded4ef9f 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfdf/AnnotObject.java +++ b/forms/src/main/java/com/itextpdf/forms/xfdf/AnnotObject.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfdf/AnnotsObject.java b/forms/src/main/java/com/itextpdf/forms/xfdf/AnnotsObject.java index 5775e89594..2ef54927b7 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfdf/AnnotsObject.java +++ b/forms/src/main/java/com/itextpdf/forms/xfdf/AnnotsObject.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfdf/AttributeObject.java b/forms/src/main/java/com/itextpdf/forms/xfdf/AttributeObject.java index 7ce5610b22..90b4c9c60b 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfdf/AttributeObject.java +++ b/forms/src/main/java/com/itextpdf/forms/xfdf/AttributeObject.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfdf/BorderStyleAltObject.java b/forms/src/main/java/com/itextpdf/forms/xfdf/BorderStyleAltObject.java index ff21daf85e..a584f20a2b 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfdf/BorderStyleAltObject.java +++ b/forms/src/main/java/com/itextpdf/forms/xfdf/BorderStyleAltObject.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfdf/DestObject.java b/forms/src/main/java/com/itextpdf/forms/xfdf/DestObject.java index afcea1e46b..3d22cfef6e 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfdf/DestObject.java +++ b/forms/src/main/java/com/itextpdf/forms/xfdf/DestObject.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfdf/ElementContentEncodingFormat.java b/forms/src/main/java/com/itextpdf/forms/xfdf/ElementContentEncodingFormat.java index 46db319355..a32d85d786 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfdf/ElementContentEncodingFormat.java +++ b/forms/src/main/java/com/itextpdf/forms/xfdf/ElementContentEncodingFormat.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfdf/FObject.java b/forms/src/main/java/com/itextpdf/forms/xfdf/FObject.java index 0149905980..67e3520503 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfdf/FObject.java +++ b/forms/src/main/java/com/itextpdf/forms/xfdf/FObject.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfdf/FieldObject.java b/forms/src/main/java/com/itextpdf/forms/xfdf/FieldObject.java index 1261dcfe95..9a716273e6 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfdf/FieldObject.java +++ b/forms/src/main/java/com/itextpdf/forms/xfdf/FieldObject.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfdf/FieldsObject.java b/forms/src/main/java/com/itextpdf/forms/xfdf/FieldsObject.java index 2f9e72099c..75d8459a8a 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfdf/FieldsObject.java +++ b/forms/src/main/java/com/itextpdf/forms/xfdf/FieldsObject.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfdf/FitObject.java b/forms/src/main/java/com/itextpdf/forms/xfdf/FitObject.java index 2963056557..cfc9ac4c73 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfdf/FitObject.java +++ b/forms/src/main/java/com/itextpdf/forms/xfdf/FitObject.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfdf/IdsObject.java b/forms/src/main/java/com/itextpdf/forms/xfdf/IdsObject.java index 26cab1f81a..b93b19f41c 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfdf/IdsObject.java +++ b/forms/src/main/java/com/itextpdf/forms/xfdf/IdsObject.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfdf/Mode.java b/forms/src/main/java/com/itextpdf/forms/xfdf/Mode.java index 1e220d1de5..4da8650a33 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfdf/Mode.java +++ b/forms/src/main/java/com/itextpdf/forms/xfdf/Mode.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfConstants.java b/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfConstants.java index f2df25bc63..3aab13cec8 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfConstants.java +++ b/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfConstants.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfFileUtils.java b/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfFileUtils.java index 90ffc1b385..0e83156ffd 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfFileUtils.java +++ b/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfFileUtils.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfObject.java b/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfObject.java index 8523ab6b0a..aabe9ed2de 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfObject.java +++ b/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfObject.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfObjectFactory.java b/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfObjectFactory.java index 34adf621b2..35c072160b 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfObjectFactory.java +++ b/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfObjectFactory.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfObjectUtils.java b/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfObjectUtils.java index d106cdc481..1de13e850c 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfObjectUtils.java +++ b/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfObjectUtils.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfReader.java b/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfReader.java index 6f814f7fb2..48a028b840 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfReader.java +++ b/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfReader.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfWriter.java b/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfWriter.java index 544473e079..4d5271e553 100644 --- a/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfWriter.java +++ b/forms/src/main/java/com/itextpdf/forms/xfdf/XfdfWriter.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/test/java/com/itextpdf/forms/FlatteningRotatedTest.java b/forms/src/test/java/com/itextpdf/forms/FlatteningRotatedTest.java index 1d2db17517..045ad16929 100644 --- a/forms/src/test/java/com/itextpdf/forms/FlatteningRotatedTest.java +++ b/forms/src/test/java/com/itextpdf/forms/FlatteningRotatedTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/test/java/com/itextpdf/forms/FlatteningTest.java b/forms/src/test/java/com/itextpdf/forms/FlatteningTest.java index 2ea471db1d..85b4a4a193 100644 --- a/forms/src/test/java/com/itextpdf/forms/FlatteningTest.java +++ b/forms/src/test/java/com/itextpdf/forms/FlatteningTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/test/java/com/itextpdf/forms/FlatteningWithNullKidElementTest.java b/forms/src/test/java/com/itextpdf/forms/FlatteningWithNullKidElementTest.java index fb84eb7fab..3b9aabdc18 100644 --- a/forms/src/test/java/com/itextpdf/forms/FlatteningWithNullKidElementTest.java +++ b/forms/src/test/java/com/itextpdf/forms/FlatteningWithNullKidElementTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/test/java/com/itextpdf/forms/FormFieldAppendTest.java b/forms/src/test/java/com/itextpdf/forms/FormFieldAppendTest.java index 4925394434..3006aff545 100644 --- a/forms/src/test/java/com/itextpdf/forms/FormFieldAppendTest.java +++ b/forms/src/test/java/com/itextpdf/forms/FormFieldAppendTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/test/java/com/itextpdf/forms/FormFieldFlatteningTest.java b/forms/src/test/java/com/itextpdf/forms/FormFieldFlatteningTest.java index ca5c68d5f3..2f1cb2783e 100644 --- a/forms/src/test/java/com/itextpdf/forms/FormFieldFlatteningTest.java +++ b/forms/src/test/java/com/itextpdf/forms/FormFieldFlatteningTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/test/java/com/itextpdf/forms/FormFieldsTaggingTest.java b/forms/src/test/java/com/itextpdf/forms/FormFieldsTaggingTest.java index 4247bda205..fc41c8dd1d 100644 --- a/forms/src/test/java/com/itextpdf/forms/FormFieldsTaggingTest.java +++ b/forms/src/test/java/com/itextpdf/forms/FormFieldsTaggingTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/test/java/com/itextpdf/forms/PdfAcroFormInAppendModeTest.java b/forms/src/test/java/com/itextpdf/forms/PdfAcroFormInAppendModeTest.java index b666a5c518..64153c6153 100644 --- a/forms/src/test/java/com/itextpdf/forms/PdfAcroFormInAppendModeTest.java +++ b/forms/src/test/java/com/itextpdf/forms/PdfAcroFormInAppendModeTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/forms/src/test/java/com/itextpdf/forms/PdfAcroFormTest.java b/forms/src/test/java/com/itextpdf/forms/PdfAcroFormTest.java index 56fe60a4c0..e75c67a726 100644 --- a/forms/src/test/java/com/itextpdf/forms/PdfAcroFormTest.java +++ b/forms/src/test/java/com/itextpdf/forms/PdfAcroFormTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/forms/src/test/java/com/itextpdf/forms/PdfCheckBoxFieldTest.java b/forms/src/test/java/com/itextpdf/forms/PdfCheckBoxFieldTest.java index e4976e9ee6..05368cd109 100644 --- a/forms/src/test/java/com/itextpdf/forms/PdfCheckBoxFieldTest.java +++ b/forms/src/test/java/com/itextpdf/forms/PdfCheckBoxFieldTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/test/java/com/itextpdf/forms/PdfChoiceFieldTest.java b/forms/src/test/java/com/itextpdf/forms/PdfChoiceFieldTest.java index cb8fb73246..fbbbc67674 100644 --- a/forms/src/test/java/com/itextpdf/forms/PdfChoiceFieldTest.java +++ b/forms/src/test/java/com/itextpdf/forms/PdfChoiceFieldTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/forms/src/test/java/com/itextpdf/forms/PdfEncryptionTest.java b/forms/src/test/java/com/itextpdf/forms/PdfEncryptionTest.java index c48d2eb9ec..d44202a92a 100644 --- a/forms/src/test/java/com/itextpdf/forms/PdfEncryptionTest.java +++ b/forms/src/test/java/com/itextpdf/forms/PdfEncryptionTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/test/java/com/itextpdf/forms/PdfFormCopyTest.java b/forms/src/test/java/com/itextpdf/forms/PdfFormCopyTest.java index 4318ec438c..8683115e66 100644 --- a/forms/src/test/java/com/itextpdf/forms/PdfFormCopyTest.java +++ b/forms/src/test/java/com/itextpdf/forms/PdfFormCopyTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/test/java/com/itextpdf/forms/PdfFormFieldMultilineTextTest.java b/forms/src/test/java/com/itextpdf/forms/PdfFormFieldMultilineTextTest.java index 7ae781e791..49e614f518 100644 --- a/forms/src/test/java/com/itextpdf/forms/PdfFormFieldMultilineTextTest.java +++ b/forms/src/test/java/com/itextpdf/forms/PdfFormFieldMultilineTextTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/forms/src/test/java/com/itextpdf/forms/PdfFormFieldTest.java b/forms/src/test/java/com/itextpdf/forms/PdfFormFieldTest.java index 340b80b662..d49f313b75 100644 --- a/forms/src/test/java/com/itextpdf/forms/PdfFormFieldTest.java +++ b/forms/src/test/java/com/itextpdf/forms/PdfFormFieldTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/test/java/com/itextpdf/forms/PdfFormFieldTextTest.java b/forms/src/test/java/com/itextpdf/forms/PdfFormFieldTextTest.java index c0cbee466b..b5d3422287 100644 --- a/forms/src/test/java/com/itextpdf/forms/PdfFormFieldTextTest.java +++ b/forms/src/test/java/com/itextpdf/forms/PdfFormFieldTextTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/forms/src/test/java/com/itextpdf/forms/PdfFormFieldsHierarchyTest.java b/forms/src/test/java/com/itextpdf/forms/PdfFormFieldsHierarchyTest.java index ad6085cb39..00e9e382c2 100644 --- a/forms/src/test/java/com/itextpdf/forms/PdfFormFieldsHierarchyTest.java +++ b/forms/src/test/java/com/itextpdf/forms/PdfFormFieldsHierarchyTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/forms/src/test/java/com/itextpdf/forms/Utf8FormsTest.java b/forms/src/test/java/com/itextpdf/forms/Utf8FormsTest.java index 3a7161b014..35caeaa1bd 100644 --- a/forms/src/test/java/com/itextpdf/forms/Utf8FormsTest.java +++ b/forms/src/test/java/com/itextpdf/forms/Utf8FormsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/test/java/com/itextpdf/forms/XfdfReaderTest.java b/forms/src/test/java/com/itextpdf/forms/XfdfReaderTest.java index 25eb5688fc..34524d68e2 100644 --- a/forms/src/test/java/com/itextpdf/forms/XfdfReaderTest.java +++ b/forms/src/test/java/com/itextpdf/forms/XfdfReaderTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/test/java/com/itextpdf/forms/XfdfUnitTest.java b/forms/src/test/java/com/itextpdf/forms/XfdfUnitTest.java index 6fad446439..c86ede3ed4 100644 --- a/forms/src/test/java/com/itextpdf/forms/XfdfUnitTest.java +++ b/forms/src/test/java/com/itextpdf/forms/XfdfUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/forms/src/test/java/com/itextpdf/forms/XfdfWriterTest.java b/forms/src/test/java/com/itextpdf/forms/XfdfWriterTest.java index 8402858abb..0fa9259d0a 100644 --- a/forms/src/test/java/com/itextpdf/forms/XfdfWriterTest.java +++ b/forms/src/test/java/com/itextpdf/forms/XfdfWriterTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/test/java/com/itextpdf/forms/fields/FormsMetaInfoStaticContainerTest.java b/forms/src/test/java/com/itextpdf/forms/fields/FormsMetaInfoStaticContainerTest.java new file mode 100644 index 0000000000..c1771631cf --- /dev/null +++ b/forms/src/test/java/com/itextpdf/forms/fields/FormsMetaInfoStaticContainerTest.java @@ -0,0 +1,102 @@ +/* + This file is part of the iText (R) project. + Copyright (c) 1998-2022 iText Group NV + Authors: iText Software. + + This program is offered under a commercial and under the AGPL license. + For commercial licensing, contact us at https://itextpdf.com/sales. For AGPL licensing, see below. + + AGPL licensing: + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + */ +package com.itextpdf.forms.fields; + +import com.itextpdf.commons.actions.contexts.IMetaInfo; +import com.itextpdf.layout.renderer.MetaInfoContainer; +import com.itextpdf.test.ExtendedITextTest; +import com.itextpdf.test.annotations.type.UnitTest; +import org.junit.Assert; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(UnitTest.class) +public class FormsMetaInfoStaticContainerTest extends ExtendedITextTest { + + @Test + public void useMetaInfoDuringTheActionOneThreadTest() { + MetaInfoContainer metaInfo1 = new MetaInfoContainer(new IMetaInfo() {}); + MetaInfoContainer metaInfo2 = new MetaInfoContainer(new IMetaInfo() {}); + + FormsMetaInfoStaticContainer.useMetaInfoDuringTheAction(metaInfo1, () -> { + Assert.assertSame(metaInfo1, FormsMetaInfoStaticContainer.getMetaInfoForLayout()); + + FormsMetaInfoStaticContainer.useMetaInfoDuringTheAction(metaInfo2, + () -> Assert.assertSame(metaInfo2, FormsMetaInfoStaticContainer.getMetaInfoForLayout())); + + Assert.assertNull(FormsMetaInfoStaticContainer.getMetaInfoForLayout()); + }); + + Assert.assertNull(FormsMetaInfoStaticContainer.getMetaInfoForLayout()); + } + + @Test + public void useMetaInfoDuringTheActionSeveralThreadsTest() throws InterruptedException { + MetaInfoCheckClass metaInfoCheckClass1 = new MetaInfoCheckClass(null); + MetaInfoCheckClass metaInfoCheckClass2 = new MetaInfoCheckClass(metaInfoCheckClass1); + MetaInfoCheckClass metaInfoCheckClass3 = new MetaInfoCheckClass(metaInfoCheckClass2); + + Thread thread = new Thread(() -> metaInfoCheckClass3.checkMetaInfo()); + thread.start(); + thread.join(); + + Assert.assertFalse(metaInfoCheckClass1.isCheckFailed()); + Assert.assertFalse(metaInfoCheckClass2.isCheckFailed()); + Assert.assertFalse(metaInfoCheckClass3.isCheckFailed()); + } + + private static class MetaInfoCheckClass { + + private MetaInfoCheckClass metaInfoCheckClass = null; + private boolean checkFailed = false; + + public MetaInfoCheckClass(MetaInfoCheckClass metaInfoCheckClass) { + this.metaInfoCheckClass = metaInfoCheckClass; + } + + public void checkMetaInfo() { + MetaInfoContainer metaInfo = new MetaInfoContainer(new IMetaInfo() { + }); + + FormsMetaInfoStaticContainer.useMetaInfoDuringTheAction(metaInfo, () -> { + if (metaInfoCheckClass != null) { + Thread thread = new Thread(() -> metaInfoCheckClass.checkMetaInfo()); + thread.start(); + try { + thread.join(); + } catch (Exception ignored) { + checkFailed = true; + } + } + + checkFailed |= metaInfo != FormsMetaInfoStaticContainer.getMetaInfoForLayout(); + }); + + checkFailed |= FormsMetaInfoStaticContainer.getMetaInfoForLayout() != null; + } + + public boolean isCheckFailed() { + return checkFailed; + } + } +} \ No newline at end of file diff --git a/forms/src/test/java/com/itextpdf/forms/fields/PdfFormFieldIntegrationTest.java b/forms/src/test/java/com/itextpdf/forms/fields/PdfFormFieldIntegrationTest.java index 99a724d386..2c2499a04d 100644 --- a/forms/src/test/java/com/itextpdf/forms/fields/PdfFormFieldIntegrationTest.java +++ b/forms/src/test/java/com/itextpdf/forms/fields/PdfFormFieldIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/forms/src/test/java/com/itextpdf/forms/fields/PdfFormFieldUnitTest.java b/forms/src/test/java/com/itextpdf/forms/fields/PdfFormFieldUnitTest.java index a563546fb8..bc7fd815a4 100644 --- a/forms/src/test/java/com/itextpdf/forms/fields/PdfFormFieldUnitTest.java +++ b/forms/src/test/java/com/itextpdf/forms/fields/PdfFormFieldUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. @@ -22,34 +22,65 @@ This file is part of the iText (R) project. */ package com.itextpdf.forms.fields; +import com.itextpdf.commons.actions.contexts.IMetaInfo; import com.itextpdf.forms.exceptions.FormsExceptionMessageConstant; import com.itextpdf.io.source.ByteArrayOutputStream; import com.itextpdf.kernel.exceptions.PdfException; +import com.itextpdf.kernel.geom.Rectangle; import com.itextpdf.kernel.pdf.PdfDictionary; import com.itextpdf.kernel.pdf.PdfDocument; +import com.itextpdf.kernel.pdf.PdfResources; +import com.itextpdf.kernel.pdf.PdfStream; import com.itextpdf.kernel.pdf.PdfWriter; +import com.itextpdf.kernel.pdf.canvas.PdfCanvas; +import com.itextpdf.layout.Canvas; +import com.itextpdf.layout.properties.Property; +import com.itextpdf.layout.renderer.MetaInfoContainer; import com.itextpdf.test.ExtendedITextTest; import com.itextpdf.test.annotations.type.UnitTest; -import org.junit.Rule; +import org.junit.Assert; import org.junit.Test; import org.junit.experimental.categories.Category; -import org.junit.rules.ExpectedException; @Category(UnitTest.class) public class PdfFormFieldUnitTest extends ExtendedITextTest { - @Rule - public ExpectedException junitExpectedException = ExpectedException.none(); @Test public void cannotGetRectangleIfKidsIsNullTest() { - junitExpectedException.expect(PdfException.class); - junitExpectedException - .expectMessage(FormsExceptionMessageConstant.WRONG_FORM_FIELD_ADD_ANNOTATION_TO_THE_FIELD); - PdfDocument pdfDocument = new PdfDocument(new PdfWriter(new ByteArrayOutputStream())); PdfDictionary pdfDictionary = new PdfDictionary(); PdfFormField pdfFormField = new PdfFormField(pdfDocument); - pdfFormField.getRect(pdfDictionary); + Exception exception = Assert.assertThrows(PdfException.class, + () -> pdfFormField.getRect(pdfDictionary)); + Assert.assertEquals(FormsExceptionMessageConstant.WRONG_FORM_FIELD_ADD_ANNOTATION_TO_THE_FIELD, exception.getMessage()); + } + + @Test + public void setMetaInfoToCanvasMetaInfoUsedTest() { + Canvas canvas = createCanvas(); + MetaInfoContainer metaInfoContainer = new MetaInfoContainer(new IMetaInfo() { + }); + FormsMetaInfoStaticContainer.useMetaInfoDuringTheAction(metaInfoContainer, + () -> PdfFormField.setMetaInfoToCanvas(canvas)); + + Assert.assertSame(metaInfoContainer, canvas.getProperty(Property.META_INFO)); + } + + @Test + public void setMetaInfoToCanvasMetaInfoNotUsedTest() { + Canvas canvas = createCanvas(); + PdfFormField.setMetaInfoToCanvas(canvas); + + Assert.assertNull(canvas.getProperty(Property.META_INFO)); + } + + private static Canvas createCanvas() { + try (PdfDocument document = new PdfDocument(new PdfWriter(new ByteArrayOutputStream()))) { + PdfStream stream = (PdfStream) new PdfStream().makeIndirect(document); + PdfResources resources = new PdfResources(); + PdfCanvas pdfCanvas = new PdfCanvas(stream, resources, document); + return new Canvas(pdfCanvas, new Rectangle(100, 100)); + } } } diff --git a/forms/src/test/java/com/itextpdf/forms/widget/AppearanceCharacteristicsTest.java b/forms/src/test/java/com/itextpdf/forms/widget/AppearanceCharacteristicsTest.java index 3288bba41e..146645ed52 100644 --- a/forms/src/test/java/com/itextpdf/forms/widget/AppearanceCharacteristicsTest.java +++ b/forms/src/test/java/com/itextpdf/forms/widget/AppearanceCharacteristicsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/test/java/com/itextpdf/forms/xfa/SecurityTestXmlParserFactory.java b/forms/src/test/java/com/itextpdf/forms/xfa/SecurityTestXmlParserFactory.java index 699721b0ee..e74f473386 100644 --- a/forms/src/test/java/com/itextpdf/forms/xfa/SecurityTestXmlParserFactory.java +++ b/forms/src/test/java/com/itextpdf/forms/xfa/SecurityTestXmlParserFactory.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify @@ -72,4 +72,4 @@ public InputSource resolveEntity(String publicId, String systemId) { throw new PdfException(ExceptionTestUtil.getXxeTestMessage()); } } -} \ No newline at end of file +} diff --git a/forms/src/test/java/com/itextpdf/forms/xfa/XFAFormTest.java b/forms/src/test/java/com/itextpdf/forms/xfa/XFAFormTest.java index 72f2921157..8fc869598f 100644 --- a/forms/src/test/java/com/itextpdf/forms/xfa/XFAFormTest.java +++ b/forms/src/test/java/com/itextpdf/forms/xfa/XFAFormTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/test/java/com/itextpdf/forms/xfa/XfaSecurityTest.java b/forms/src/test/java/com/itextpdf/forms/xfa/XfaSecurityTest.java index 888f6c4868..3c72029ac3 100644 --- a/forms/src/test/java/com/itextpdf/forms/xfa/XfaSecurityTest.java +++ b/forms/src/test/java/com/itextpdf/forms/xfa/XfaSecurityTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/test/java/com/itextpdf/forms/xfdf/ExceptionTestXmlParserFactory.java b/forms/src/test/java/com/itextpdf/forms/xfdf/ExceptionTestXmlParserFactory.java index d1d37f1fba..22486b39ce 100644 --- a/forms/src/test/java/com/itextpdf/forms/xfdf/ExceptionTestXmlParserFactory.java +++ b/forms/src/test/java/com/itextpdf/forms/xfdf/ExceptionTestXmlParserFactory.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/forms/src/test/java/com/itextpdf/forms/xfdf/SecurityTestXmlParserFactory.java b/forms/src/test/java/com/itextpdf/forms/xfdf/SecurityTestXmlParserFactory.java index fb78bc6682..02efe8a82f 100644 --- a/forms/src/test/java/com/itextpdf/forms/xfdf/SecurityTestXmlParserFactory.java +++ b/forms/src/test/java/com/itextpdf/forms/xfdf/SecurityTestXmlParserFactory.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify @@ -69,4 +69,4 @@ public InputSource resolveEntity(String publicId, String systemId) { throw new PdfException("Test message"); } } -} \ No newline at end of file +} diff --git a/forms/src/test/java/com/itextpdf/forms/xfdf/XfdfReaderUnitTest.java b/forms/src/test/java/com/itextpdf/forms/xfdf/XfdfReaderUnitTest.java index 82e27a8036..f0ec93c961 100644 --- a/forms/src/test/java/com/itextpdf/forms/xfdf/XfdfReaderUnitTest.java +++ b/forms/src/test/java/com/itextpdf/forms/xfdf/XfdfReaderUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/forms/src/test/java/com/itextpdf/forms/xfdf/XfdfSecurityTest.java b/forms/src/test/java/com/itextpdf/forms/xfdf/XfdfSecurityTest.java index 60e4be1680..aaad30fef8 100644 --- a/forms/src/test/java/com/itextpdf/forms/xfdf/XfdfSecurityTest.java +++ b/forms/src/test/java/com/itextpdf/forms/xfdf/XfdfSecurityTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/forms/src/test/java/com/itextpdf/forms/xfdf/XfdfWriterUnitTest.java b/forms/src/test/java/com/itextpdf/forms/xfdf/XfdfWriterUnitTest.java index 83cd0090a5..fe870b2235 100644 --- a/forms/src/test/java/com/itextpdf/forms/xfdf/XfdfWriterUnitTest.java +++ b/forms/src/test/java/com/itextpdf/forms/xfdf/XfdfWriterUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/hyph/pom.xml b/hyph/pom.xml index d92651dc98..522f49dcbb 100644 --- a/hyph/pom.xml +++ b/hyph/pom.xml @@ -4,7 +4,7 @@ com.itextpdf root - 7.2.1 + 7.2.2 hyph iText 7 - hyph diff --git a/hyph/src/main/resources/com/itextpdf/hyph/da.xml b/hyph/src/main/resources/com/itextpdf/hyph/da.xml index 5caa986a94..f61efffe43 100644 --- a/hyph/src/main/resources/com/itextpdf/hyph/da.xml +++ b/hyph/src/main/resources/com/itextpdf/hyph/da.xml @@ -1,4 +1,4 @@ - + .ex1a2 .ex3em .fal6sc .fe6st5a .flu4g3 .furch8 .ga6ner .ge3n4a -.ge5rö +.ge5rö .ges6 .halb5 .halbe6 .hal6br .haup4 .hau4t .heima6 .he4r3e .her6za .he5x .hin3 .hir8sc .ho4c .hu3sa .hy5o .ibe5 .ima6ge .in1 -.ini6 .is5chi .jagd5 .kal6k5o .ka6ph .ki4e .kop6f3 .kraf6 .kü5ra -.lab6br .liie6 .lo6s5k .lö4s3t .ma5d .mi2t1 .no6th .no6top +.ini6 .is5chi .jagd5 .kal6k5o .ka6ph .ki4e .kop6f3 .kraf6 .kü5ra +.lab6br .liie6 .lo6s5k .lö4s3t .ma5d .mi2t1 .no6th .no6top .obe8ri .ob1l .obs2 .ob6st5e .or3c .ort6s5e .ost3a .oste8r .pe4re -.pe3ts .ph6 .po8str .rau4m3 .re5an .ro8q .ru5the .rü5be - +.pe3ts .ph6 .po8str .rau4m3 .re5an .ro8q .ru5the .rü5be + .sch8 .se6e .se5n6h .se5ra .si2e .spi6ke .st4 .sy2n .tages5 .tan6kl .ta8th .te6e .te8str .to6der .to8nin .to6we .um1 .umpf4 .un1 .une6 .unge5n .ur1c .ur5en .ve6rin .vora8 .wah6l5 .we8ges .we8s2t .wes3te -.wo6r .wor3a .wun4s .zi4e .zuch8 .ände8re .öch8 aa1c aa2gr +.wo6r .wor3a .wun4s .zi4e .zuch8 .ände8re .öch8 aa1c aa2gr aal5e aa6r5a a5arti aa2s1t aat2s 6aba ab3art 1abdr 6abel aben6dr -ab5erk ab5err ab5esse 1abf 1abg 1abhä ab1ir 1abko a1bl ab1la -5ablag a6blaß ab4ler ab1lu a8blä 5a6blö abma5c +ab5erk ab5err ab5esse 1abf 1abg 1abhä ab1ir 1abko a1bl ab1la +5ablag a6blaß ab4ler ab1lu a8blä 5a6blö abma5c 1abn ab1ra ab1re 5a6brec ab1ro ab1s ab8sk abs2z 3abtei ab1ur 1abw -5abze 5abzu ab1än abäu8 a4ce. a5chal ach5art ach5au a1che +5abze 5abzu ab1än abäu8 a4ce. a5chal ach5art ach5au a1che a8chent ach6er. a6ch5erf a1chi ach1l ach3m ach5n a1cho ach3re a1chu -ach1w a1chy ach5äf ack1o acks6t ack5sta a1d 8ad. a6d5ac ad3ant +ach1w a1chy ach5äf ack1o acks6t ack5sta a1d 8ad. a6d5ac ad3ant ad8ar 5addi a8dein ade5o8 adi5en 1adj 1adle ad1op a2dre 3adres adt1 -1adv a6dä a1e2d ae1r a1er. 1aero 8afa a3fal af1an a5far a5fat +1adv a6dä a1e2d ae1r a1er. 1aero 8afa a3fal af1an a5far a5fat af1au a6fentl a2f1ex af1fr af5rau af1re 1afri af6tent af6tra aft5re -a6f5um 8afä ag5abe 5a4gent ag8er ages5e 1aggr ag5las ag1lo a1gn +a6f5um 8afä ag5abe 5a4gent ag8er ages5e 1aggr ag5las ag1lo a1gn ag2ne 1agog a6g5und a1ha a1he ah5ein a4h3erh a1hi ahl1a ah1le ah4m3ar ahn1a a5ho ahra6 ahr5ab ah1re ah8rei ahren8s ahre4s3 ahr8ti ah1ru a1hu -ah8ö ai3d2s ai1e aif6 a3inse ai4re. a5isch. ais8e a3ismu ais6n +ah8ö ai3d2s ai1e aif6 a3inse ai4re. a5isch. ais8e a3ismu ais6n aiso6 a1j 1akad a4kade a1ke a1ki 1akko 5akro1 a5lal al5ans 3al8arm al8beb al8berw alb5la 3album al1c a1le a6l5e6be a4l3ein a8lel a8lerb a8lerh a6lert 5a6l5eth 1algi al4gli al3int al4lab al8lan al4l3ar alle3g a1lo a4l5ob al6schm al4the al4t3re 8a1lu alu5i a6lur -alu3ta a1lä a6mate 8ame. 5a6meise am6m5ei am6mum am2n ampf3a -am6schw am2ta a1mu a1mä a3nac a1nad anadi5e an3ako an3alp 3analy +alu3ta a1lä a6mate 8ame. 5a6meise am6m5ei am6mum am2n ampf3a +am6schw am2ta a1mu a1mä a3nac a1nad anadi5e an3ako an3alp 3analy an3ame an3ara a1nas an5asti a1nat anat5s an8dent ande4s3 an1ec an5eis -an1e2k 4aner. a6n5erd a8nerf a6n5erke 1anfa 5anfert 1anfä 3angab -5angebo an3gli ang6lis an2gn 3angri ang5t6 5anhä ani5g ani4ka +an1e2k 4aner. a6n5erd a8nerf a6n5erke 1anfa 5anfert 1anfä 3angab +5angebo an3gli ang6lis an2gn 3angri ang5t6 5anhä ani5g ani4ka an5i8on an1kl an6kno an4kro 1anl anma5c anmar4 3annah anne4s3 a1no 5a6n1o2d 5a6n3oma 5a6nord 1anr an1sa 5anschl an4soz an1st 5anstal -an1s2z 5antenn an1th 5anwä a5ny an4z3ed 5anzeig 5anzieh 3anzug -an1ä 5anäs a1nö anö8d a1os a1pa 3apfel a2ph1t -aph5ä6 a1pi 8apl apo1c apo1s +an1s2z 5antenn an1th 5anwä a5ny an4z3ed 5anzeig 5anzieh 3anzug +an1ä 5anäs a1nö anö8d a1os a1pa 3apfel a2ph1t +aph5ä6 a1pi 8apl apo1c apo1s a6pos2t a6poth 1appa ap1pr a1pr -a5pä a3pü a1ra a4r3af ar3all 3arbei 2arbt ar1c 2a1re ar3ein +a5pä a3pü a1ra a4r3af ar3all 3arbei 2arbt ar1c 2a1re ar3ein ar2gl 2a1ri ari5es ar8kers ar6les ar4nan ar5o6ch ar1o2d a1rol ar3ony a8ror a3ros ar5ox ar6schl 8artei ar6t5ri a1ru a1ry 1arzt arz1w -ar8zä arä8m arö6 ar5öm ar1ü2 a1sa a6schec +ar8zä arä8m arö6 ar5öm ar1ü2 a1sa a6schec asch5l asch3m a6schn a3s4hi as1pa asp5l as5tev 1asth a1str ast3re 8a1ta ata5c ata3la a6tapf ata5pl a1te a6teli aten5a ate5ran 6atf 6atg a1th at3hal 1athl 2a1ti 5atlant 3atlas 8atmus 6atn -a1to a6t5ops ato6ra a6t5ort. 4a1tr a6t5ru at2t1h at5t6hä 6a1tu -atz1w a1tä a1tü au1a au6bre auch3a au1e aue4l 5aufent -3auffü 3aufga 1aufn auf1t 3auftr 1aufw 3auge. au4kle aule8s 6aum +a1to a6t5ops ato6ra a6t5ort. 4a1tr a6t5ru at2t1h at5t6hä 6a1tu +atz1w a1tä a1tü au1a au6bre auch3a au1e aue4l 5aufent +3auffü 3aufga 1aufn auf1t 3auftr 1aufw 3auge. au4kle aule8s 6aum au8mar aum5p 1ausb 3ausd 1ausf 1ausg au8sin au4sta 1ausw 1ausz -aut5eng au1th 1auto auße8 a1v ave5r6a aver6i a1w a6wes a1x -a2xia a6xio a1ya a1z azi5er. 8aß 1ba 8ba8del ba1la ba1na +aut5eng au1th 1auto auße8 a1v ave5r6a aver6i a1w a6wes a1x +a2xia a6xio a1ya a1z azi5er. 8aß 1ba 8ba8del ba1la ba1na ban6k5r ba5ot bardi6n ba1ro basten6 bau3sp 2b1b bb6le b2bli 2b1c 2b1d 1be be1a be8at. be1ch 8becht 8becke. be5el be1en bee8rei be5eta bef2 -8beff be1g2 behö8 bei1s 6b5eisen bei3tr b8el bel8o belu3t be3nac -bend6o be6ners be6nerw be4nor ben4se6 bens5el be1nä be1nü -be1o2 b8er. be1ra be8rac ber8gab. ber1r be1rü bes8c bes5erh +8beff be1g2 behö8 bei1s 6b5eisen bei3tr b8el bel8o belu3t be3nac +bend6o be6ners be6nerw be4nor ben4se6 bens5el be1nä be1nü +be1o2 b8er. be1ra be8rac ber8gab. ber1r be1rü bes8c bes5erh bes2p be5tha bet5sc be1un be1ur 8bex be6zwec 2b1f8 2b1g2 -bga2s5 bge1 2b1h bhole6 1bi bi1bl b6ie bi1el bi1la bilä5 bi1na +bga2s5 bge1 2b1h bhole6 1bi bi1bl b6ie bi1el bi1la bilä5 bi1na bi4nok -bi6stu bi5tr bit4t5r b1j 2b1k2 bkü6 bl8 b6la. +bi6stu bi5tr bit4t5r b1j 2b1k2 bkü6 bl8 b6la. 6b1lad 6blag 8blam 1blat b8latt 3blau. b6lav 3ble. b1leb b1led 8b1leg 8b1leh 8bleid 8bleih 6b3lein ble4m3o 4blich b4lind 8bling b2lio 5blit b4litz b1loh 8b1los 1blu 5blum 2blun blut3a blut5sc -3blä bläs5c 5blö 3blü blü8sc 2b1m 2b1n 1bo +3blä bläs5c 5blö 3blü blü8sc 2b1m 2b1n 1bo bo1ch bo5d6s boe5 8boff 8bonk bo1ra b1ort 2b1p2 b1q 1br brail6 brast8 -bre4a b5red 8bref 8b5riem b6riga bro1s b1rup b2ruz 8bröh -brös5c 8bs b1sa b8sang b2s1ar b1sc bs3erl bs3erz b8sof b1s2p -bst1h b3stru b5stä b6sun 2b1t b2t1h 1bu bu1ie bul6k b8ure bu6sin +bre4a b5red 8bref 8b5riem b6riga bro1s b1rup b2ruz 8bröh +brös5c 8bs b1sa b8sang b2s1ar b1sc bs3erl bs3erz b8sof b1s2p +bst1h b3stru b5stä b6sun 2b1t b2t1h 1bu bu1ie bul6k b8ure bu6sin 6b1v 2b1w 1by1 by6te. 8b1z -1bä b5ä6s5 1bü -b6ü5bere büge6 bügel5e bür6sc 1ca cag6 ca5la ca6re +1bä b5ä6s5 1bü +b6ü5bere büge6 bügel5e bür6sc 1ca cag6 ca5la ca6re ca5y c1c 1ce celi4c celich5 ce1ro c8h 2ch. 1chae ch1ah ch3akt cha6mer 8chanz 5chara 3chari 5chato 6chb 1chef 6chei ch3eil ch3eis 6cherkl 6chf 4chh 5chiad 5chias 6chins 8chj chl6 5chlor 6ch2m 2chn6 ch8nie -5cho. 8chob choi8d 6chp ch3ren ch6res ch3rü 2chs 2cht cht5ha +5cho. 8chob choi8d 6chp ch3ren ch6res ch3rü 2chs 2cht cht5ha cht3hi 5chthon ch6tin 6chuh chu4la 6ch3unt chut6t 8chw 1ci ci5tr c2k 2ck. ck1ei 4ckh ck3l ck3n ck5o8f ck1r 2cks ck5stra ck6s5u c2l 1c8o -con6ne 8corb cos6t c3q 1c6r 8c1t 1cu 1cy 5cä1 cö5 1da. +con6ne 8corb cos6t c3q 1c6r 8c1t 1cu 1cy 5cä1 cö5 1da. 8daas 2dabg 8dabr 6dabt 6dabw 1dac da2gr 6d5alk 8d5amt dan6ce. dani5er dan8ker 2danl danla6 6dans 8danzi 6danzu d1ap da2r1a8 2d1arb d3arc dar6men 4d3art 8darz 1dat 8datm 2d1auf 2d1aus 2d1b 2d1c 2d1d -d5de d3d2h ddämme8 1de 2deal de5an de3cha de1e defe6 6deff 2d1ehr +d5de d3d2h ddämme8 1de 2deal de5an de3cha de1e defe6 6deff 2d1ehr 5d4eic de5isc de8lar del6s5e del6spr de4mag de8mun de8nep dene6r 8denge. 8dengen de5o6d 2deol de5ram 8derdb der5ein de1ro der1r d8ers der5um de4s3am de4s3an de4sau de6sil de4sin de8sor de4spr de2su 8deul @@ -354,65 +354,65 @@ di8tan di8tin d1j 6dje 2dju 2d1k 2d1l 2d1m 6doth dott8e 2d1p d5q dr4 1drah 8drak d5rand 6dre. 4drech d6reck 4d3reg 8d3reic d5reife 8drem 8d1ren 2drer 8dres. 6d5rh 1dria -d1ric 8drind droi6 dro5x 1dru 8drut drös5c 1drü drü5b -drü8sc 2ds d1sa d6san dsat6 d1sc 5d6scha. 5dschik dse8e d8serg -8dsl d1sp d4spak ds2po d8spä d1st d1sü 2dt d1ta d1te d1ti -d1to dt1s6 d1tu d5tä 1du du5als du1b6 du1e duf4t3r 4d3uh du5ie +d1ric 8drind droi6 dro5x 1dru 8drut drös5c 1drü drü5b +drü8sc 2ds d1sa d6san dsat6 d1sc 5d6scha. 5dschik dse8e d8serg +8dsl d1sp d4spak ds2po d8spä d1st d1sü 2dt d1ta d1te d1ti +d1to dt1s6 d1tu d5tä 1du du5als du1b6 du1e duf4t3r 4d3uh du5ie 8duml 8dumw 2d1und du8ni 6d5unt dur2c durch3 6durl 6dursa 8durt dus1t -du8schr 2d1v 2d1w dwa8l 2d1z 1dä 6däh 8dänd dä6r -dö8bl d5öl dör6fl dö8sc d5ö4st - -1dü ea4ben e1ac e1ah e1akt e1al. e5alf e1alg e5a8lin e1alk e1all +du8schr 2d1v 2d1w dwa8l 2d1z 1dä 6däh 8dänd dä6r +dö8bl d5öl dör6fl dö8sc d5ö4st + +1dü ea4ben e1ac e1ah e1akt e1al. e5alf e1alg e5a8lin e1alk e1all e5alp e1alt e5alw e1am e1and ea6nim e1ar. e5arf e1ark e5arm e3art e5at. e6ate e6a5t6l e8ats e5att e6au. e1aus e1b e6b5am ebens5e eb4lie eb4ser eb4s3in e1che e8cherz e1chi ech3m 8ech3n ech1r ech8send ech4su e1chu eck5an e5cl e1d ee5a ee3e ee5g e1ei ee5isc eei4s3t -ee6lend e1ell ee5lö e1erd ee3r4e ee8reng eere6s5 ee5rä +ee6lend e1ell ee5lö e1erd ee3r4e ee8reng eere6s5 ee5rä ee6tat e1ex e1f e6fau e8fe8b 3effek ef3rom ege6ra eglo6si 1egy e1ha e6h5ach eh5ans e6hap eh5auf e1he e1hi ehl3a eh1le ehl5ein eh1mu ehn5ec -e1ho ehr1a eh1re ehre6n eh1ri eh1ru ehr5um e1hu eh1w e1hy e1hä -e1hö e3hüt ei1a eia6s ei6bar eich3a eich5r ei4dar ei6d5ei +e1ho ehr1a eh1re ehre6n eh1ri eh1ru ehr5um e1hu eh1w e1hy e1hä +e1hö e3hüt ei1a eia6s ei6bar eich3a eich5r ei4dar ei6d5ei ei8derf ei3d4sc ei1e 8eifen 3eifri 1eign eil1d ei6mab ei8mag ein1a4 ei8nat ei8nerh ei8ness ei6nete ein1g e8ini ein1k ei6n5od ei8nok ei4nor -e3insä ei1o e1irr ei5ru ei8sab ei5schn ei6s5ent ei8sol ei4t3al +e3insä ei1o e1irr ei5ru ei8sab ei5schn ei6s5ent ei8sol ei4t3al eit3ar eit1h ei6thi ei8tho eit8samt ei6t5um e1j 1ekd e1ke e1ki e1k2l e1kn ekni4 e1la e2l1al 6elan e6lanf e8lanl e6l5ans el3arb el3arm e6l3art 5e6lasti e6lauge elbst5a e1le 6elef ele6h e6l5ehe e8leif e6l5einh 1elek e8lel 3eleme e6lemen e6lente el5epi e4l3err e6l5ersc elf2l elg2 e6l5ins ell8er 4e1lo e4l3ofe el8soh el8tent 5eltern e1lu -elut2 e1lä e1lü em8dei em8meis 4emo emo5s 1emp1f 1empt 1emto -e1mu emurk4 emurks5 e1mä en5a6ben en5achs en5ack e1nad en5af +elut2 e1lä e1lü em8dei em8meis 4emo emo5s 1emp1f 1empt 1emto +e1mu emurk4 emurks5 e1mä en5a6ben en5achs en5ack e1nad en5af en5all en3alt en1am en3an. en3ant en3anz en1a6p en1ar en1a6s 6e1nat en3auf en3aus en2ce enda6l end5erf end5erg en8dess 4ene. en5eck e8neff e6n5ehr e6n5eim en3eis 6enem. 6enen e4nent 4ener. e8nerd e6n3erf e4nerg 5energi e6n5erla en5ers e6nerst en5erw 6enes e6n5ess e2nex en3glo 2eni enni6s5 ennos4 enns8 e1no e6nober eno8f en5opf e4n3ord en8sers ens8kl en1sp ens6por en5t6ag enta5go en8terbu en6tid -3entla ent5ric 5entwic 5entwu 1entz enu5i e3ny en8zan en1öf -e1nös e1nüg eo1c e5o6fe e5okk e1on. e3onf e5onk e5onl e5onr +3entla ent5ric 5entwic 5entwu 1entz enu5i e3ny en8zan en1öf +e1nös e1nüg eo1c e5o6fe e5okk e1on. e3onf e5onk e5onl e5onr e5opf e5ops e5or. e1ord e1org eo5r6h eo1t e1pa e8pee e6p5e6g ep5ent -e1p2f e1pi 5epid e6pidem e1pl 5epos e6pos. ep4p3a e1pr e1pä e1q +e1p2f e1pi 5epid e6pidem e1pl 5epos e6pos. ep4p3a e1pr e1pä e1q e1ra. er5aal 8eraba e5rabel er5a6ben e5rabi er3abs er3ach era5e era5k6l er3all er3amt e3rand e3rane er3ans e5ranz. e1rap er3arc e3rari er3a6si e1rat erat3s er3auf e3raum 3erbse er1c e1re 4e5re. er3eck er5egg er5e2h 2erei e3rei. e8reine er5einr 6eren. e4r3enm -4erer. e6r5erm er5ero er5erst e4r3erz er3ess 5erfül er8gan. -5ergebn er2g5h 5ergänz 5erhöhu 2e1ri eri5ak e6r5iat e4r3ind -e6r5i6n5i6 er5ins e6r5int er5itio er1kl 3erklä 5erlös. +4erer. e6r5erm er5ero er5erst e4r3erz er3ess 5erfül er8gan. +5ergebn er2g5h 5ergänz 5erhöhu 2e1ri eri5ak e6r5iat e4r3ind +e6r5i6n5i6 er5ins e6r5int er5itio er1kl 3erklä 5erlös. ermen6s er6nab 3ernst 6e1ro. e1rod er1o2f e1rog 6e3roi ero8ide e3rol e1rom e1ron e3rop8 e2r1or e1ros e1rot er5ox ersch4 5erstat er6t5ein er2t1h er5t6her 2e1ru eruf4s3 e4r3uhr er3ums e5rus 5erwerb e1ry er5zwa -er3zwu erä8m er5äs erö8 e3rös. e6r1ü2b e1sa +er3zwu erä8m er5äs erö8 e3rös. e6r1ü2b e1sa esa8b e8sap e6s5a6v e1sc esch4l ese1a es5ebe eserve5 e8sh es5ill es3int es4kop e2sl eso8b e1sp espei6s5 es2po es2pu 5essenz e6stabs -e6staf e6st5ak est3ar e8stob e1str est5res es3ur e2sz e1sü e1ta +e6staf e6st5ak est3ar e8stob e1str est5res es3ur e2sz e1sü e1ta et8ag etari5e eta8ta e1te eten6te et5hal e5thel e1ti 1etn e1to e1tr et3rec e8tscha et8se et6tei et2th et2t1r e1tu etu1s et8zent et8zw -e1tä e1tö e1tü eu1a2 eu1e eue8rei eu5fe euin5 euk2 +e1tä e1tö e1tü eu1a2 eu1e eue8rei eu5fe euin5 euk2 e1um. eu6nio e5unter eu1o6 eu5p 3europ eu1sp eu5str eu8zo e1v eval6s -eve5r6en ever4i e1w e2wig ex1or 1exp 1extr ey3er. e1z e1ä2 -e5ö8 e1ü e8ßes fa6ch5i fade8 fa6del fa5el. +eve5r6en ever4i e1w e2wig ex1or 1exp 1extr ey3er. e1z e1ä2 +e5ö8 e1ü e8ßes fa6ch5i fade8 fa6del fa5el. fal6lo falt8e fa1na fan4gr 6fanl 6fap far6ba far4bl far6r5a 2f1art fa1sc fau8str fa3y 2f1b2 6f1c 2f1d 1fe 2f1eck fe6dr feh6lei f6eim 8feins f5eis fel5en 8feltern 8femp fe5rant 4ferd. ferri8 fe8stof @@ -420,73 +420,73 @@ fe6str fe6stum fe8tag fet6ta fex1 2ff f1fa f6f5arm f5fe ffe5in ffe6la ffe8ler ff1f f1fla ff3lei ff4lie ff8sa ff6s5ta 2f1g2 fgewen6 4f1h 1fi fid4 fi3ds fieb4 fi1la fi8lei fil4m5a f8in. fi1na 8finf fi8scho fi6u 6f1j 2f1k2 f8lanz fl8e 4f3lein 8flib 4fling f2lix 6f3lon 5flop 1flor -5f8läc 3flöt 2f1m 2f1n 1fo foh1 f2on fo6na 2f1op fo5ra +5f8läc 3flöt 2f1m 2f1n 1fo foh1 f2on fo6na 2f1op fo5ra for8mei for8str for8th for6t5r fo5ru 6f5otte 2f1p8 f1q fr6 f5ram -1f8ran f8raß f8re. frei1 5frei. f3reic f3rest f1rib -8f1ric 6frig 1fris fro8na fräs5t 2fs f1sc f2s1er f5str -fs3tät 2ft f1tak f1te ft5e6h ftere6 ft1h f1ti f5to f1tr ft5rad -ft1sc ft2so f1tu ftwi3d4 ft1z 1fu 6f5ums 6funf fun4ka fu8ßend -6f1v 2f1w 2f1z 1fä fä1c 8färm 6fäug -fä8ß föde3 8föf 3för 1fü -fün4f3u 1ga ga6bl 6gabw 8gabz g3a4der ga8ho ga5isc 4gak ga1la +1f8ran f8raß f8re. frei1 5frei. f3reic f3rest f1rib +8f1ric 6frig 1fris fro8na fräs5t 2fs f1sc f2s1er f5str +fs3tät 2ft f1tak f1te ft5e6h ftere6 ft1h f1ti f5to f1tr ft5rad +ft1sc ft2so f1tu ftwi3d4 ft1z 1fu 6f5ums 6funf fun4ka fu8ßend +6f1v 2f1w 2f1z 1fä fä1c 8färm 6fäug +fä8ß föde3 8föf 3för 1fü +fün4f3u 1ga ga6bl 6gabw 8gabz g3a4der ga8ho ga5isc 4gak ga1la 6g5amt ga1na gan5erb gan6g5a ga5nj 6ganl 8gansc 6garb 2g1arc 2g1arm ga5ro 6g3arti ga8sa ga8sc ga6stre 2g1atm 6g5auf gau5fr g5aus 2g1b g5c 6gd g1da 1ge ge1a2 ge6an ge8at. ge1e2 ge6es gef2 8geff ge1g2l ge1im -4g3eise geist5r gel8bra gelt8s ge5lö ge8nin gen3k 6g5entf -ge3nä ge1or ge1ra ge6rab ger8au 8gerhö ger8ins ge1ro 6g5erz. -ge1rä ge1rü ge1s ges2p +4g3eise geist5r gel8bra gelt8s ge5lö ge8nin gen3k 6g5entf +ge3nä ge1or ge1ra ge6rab ger8au 8gerhö ger8ins ge1ro 6g5erz. +ge1rä ge1rü ge1s ges2p ge2s7te. ge2s7ten ge2s7ter ge2s7tik ge5unt 4g3ex3 2g1f8 2g1g g1ha 6g1hei -5ghel. g5henn 6g1hi g1ho 1ghr g1hö 1gi gi5la gi8me. gi1na +5ghel. g5henn 6g1hi g1ho 1ghr g1hö 1gi gi5la gi8me. gi1na 4g3ins gis1tr g1j 2g1k 8gl. 1glad g5lag glan4z3 1glas 6glass 5glaub g3lauf 1gle. g5leb 3gleic g3lein 5gleis 1glem 2gler 8g3leu gli8a g2lie 3glied 1g2lik 1g2lim g6lio 1gloa 5glom 1glon 1glop g1los g4loss -g5luf 1g2ly 1glü 2g1m gn8 6gn. 1gna 8gnach 2gnah g1nas g8neu +g5luf 1g2ly 1glü 2g1m gn8 6gn. 1gna 8gnach 2gnah g1nas g8neu g2nie g3nis 1gno 8gnot 1go goe1 8gof 2gog 5gogr 6g5oh goni5e 6gonist go1ra 8gord 2g1p2 g1q 1gr4 g5rahm gra8m gra4s3t 6g1rec gre6ge 4g3reic -g5reit 8grenn gri4e g5riem 5grif 2grig g5ring 6groh 2grot gro6ß +g5reit 8grenn gri4e g5riem 5grif 2grig g5ring 6groh 2grot gro6ß 4grut 2gs gs1ab g5sah gs1ak gs1an gs8and gs1ar gs1au g1sc gs1ef g5seil gs5ein g2s1er gs1in g2s1o gso2r gs1pr g2s1u 2g1t g3te g2t1h 1gu gu5as gu2e 2gue. 6gued 4g3uh 8gums 6g5unt gut3h gu2tu -4g1v 2g1w gy1n g1z 1gä 8gä8m 6gärm 1gö 1gü -6güb 1haa hab8r ha8del hade4n 8hae ha5el. haf6tr 2hal. ha1la +4g1v 2g1w gy1n g1z 1gä 8gä8m 6gärm 1gö 1gü +6güb 1haa hab8r ha8del hade4n 8hae ha5el. haf6tr 2hal. ha1la hal4b5a 6hale 8han. ha1na han6dr han6ge. 2hani h5anth 6hanz 6harb -h3arbe h3arme ha5ro ha2t1h h1atm hau6san ha8ß h1b2 h1c h1d +h3arbe h3arme ha5ro ha2t1h h1atm hau6san ha8ß h1b2 h1c h1d he2bl he3cho h3echt he5d6s 5heft h5e6he. hei8ds h1eif 2hein he3ism he5ist. heit8s3 hek6ta hel8lau 8helt he6mer 1hemm 6h1emp hen5end hen5klo hen6tri he2nu 8heo he8q her3ab he5rak her3an 4herap her3au h3erbi he1ro he8ro8b he4r3um her6z5er he4spe he1st heta6 het5am he5th heu3sc he1xa hey5e h1f2 h1g hgol8 h1h h1iat hie6r5i hi5kt hil1a2 hil4fr hi5nak hin4ta hi2nu hi5ob hirn5e hir6ner hi1sp hi1th hi5tr -5hitz h1j h6jo h1k2 hlabb4 hla4ga hla6gr h5lai hl8am h1las h1laß +5hitz h1j h6jo h1k2 hlabb4 hla4ga hla6gr h5lai hl8am h1las h1laß hl1c h1led h3lein h5ler. h2lif h2lim h8linf hl5int h2lip -h2lit h4lor h3lose h1läs hme5e h2nee h2nei hn3eig h2nel hne8n +h2lit h4lor h3lose h1läs hme5e h2nee h2nei hn3eig h2nel hne8n hne4p3f hn8erz h6netz h2nip h2nit h1nol hn5sp h2nuc h2nud h2nul hoch1 1hoh hoh8lei 2hoi ho4l3ar 1holz h2on ho1ra 6horg 5horn. ho3sl hos1p ho4spi h1p hpi6 h1q 6hr h1rai h8rank h5raum hr1c hrcre8 h1red h3reg h8rei. h4r3erb h8rert hrg2 h1ric hr5ins h2rom hr6t5erl hr2t1h hr6t5ra hr8tri h6rum hr1z hs3ach h6s5amt h1sc h6s5ec h6s5erl hs8erle h4sob -h1sp h8spaß h8spel hs6po h4spun h1str h4s3tum hs3und -h1sü h5ta. h5tab ht3ac ht1ak ht3ang h5tanz ht1ar ht1at h5taub +h1sp h8spaß h8spel hs6po h4spun h1str h4s3tum hs3und +h1sü h5ta. h5tab ht3ac ht1ak ht3ang h5tanz ht1ar ht1at h5taub h1te h2t1ec ht3eff ht3ehe h4t3eif h8teim h4t3ein ht3eis h6temp h8tentf -hte8ren h6terfü h8tergr h4t3erh h6t5ersc h8terst h8tese h8tess +hte8ren h6terfü h8tergr h4t3erh h6t5ersc h8terst h8tese h8tess h2t1eu h4t3ex ht1he ht5hu h1ti ht5rak hts3ah ht1sc ht6sex ht8sk ht8so -h1tu htz8 h5tüm hub5l hu6b5r huh1l h5uhr. huld5a6 hu8lent -hu8lä h5up. h1v h5weib h3weis h1z hä8kl häl8s -häma8tu8 hä8sche. hät1s häu4s3c 2hö. -2höe 8höi hö6s hös5c hühne6 hül4s3t -hütte8re i5adn i1af i5ak. i1al. i1al1a i1alb i1ald i5alei i1alf +h1tu htz8 h5tüm hub5l hu6b5r huh1l h5uhr. huld5a6 hu8lent +hu8lä h5up. h1v h5weib h3weis h1z hä8kl häl8s +häma8tu8 hä8sche. hät1s häu4s3c 2hö. +2höe 8höi hö6s hös5c hühne6 hül4s3t +hütte8re i5adn i1af i5ak. i1al. i1al1a i1alb i1ald i5alei i1alf i1alg i3alh i1alk i1all i1alp i1alr i1als i1alt i1alv i5alw i3alz i1an. ia5na i3and ian8e ia8ne8b i1ang i3ank i5ann i1ant i1anz i6apo i1ar. ia6rab i5arr i1as. i1asm i1ass i5ast. i1at. i5ats i1au i5azz -i6b5eig i6b5eis ib2le i4blis i6brig i6b5unt i6büb i1che ich5ei +i6b5eig i6b5eis ib2le i4blis i6brig i6b5unt i6büb i1che ich5ei i6cherb i1chi ich5ins ich1l ich3m ich1n i1cho icht5an icht3r i1chu -ich1w ick6s5te ic5l i1d id3arm 3ideal ide8na 3ideol ide5rö i6diot -id5rec id1t ie1a ie6b5ar iebe4s3 ie2bl ieb1r ie8bra ie4bre ie8bä +ich1w ick6s5te ic5l i1d id3arm 3ideal ide8na 3ideol ide5rö i6diot +id5rec id1t ie1a ie6b5ar iebe4s3 ie2bl ieb1r ie8bra ie4bre ie8bä ie2dr ie1e8 ie6f5ad ief5f ie2f1l ie4fro ief1t i1ei ie4l3ec ie8lei ie4lek i3ell i1en. i1end ien6e i3enf i5enn ien6ne. i1enp i1enr i5ensa ien8stal i5env i1enz ie5o ier3a4b ie4rap i2ere ie4rec ie6r5ein @@ -496,34 +496,34 @@ i1fre ift5a if6t5r ig3art 2ige i8gess ig5he i5gla ig2ni i5go ig3rot ig3s2p i1ha i8ham i8hans i1he i1hi ih1n ih1r i1hu i8hum ih1w 8i1i ii2s ii2t i1j i1k i6kak i8kerz i6kes ik4ler i6k5unt 2il i5lac i1lag il3ans i5las i1lau il6auf i1le ile8h i8lel il2fl il3ipp il6l5enn i1lo ilt8e -i1lu i1lä i8mart imb2 i8mele i8mid imme6l5a i1mu i1mä -i5mö ina5he i1nat in1au inau8s 8ind. in4d3an 5index ind2r 3indus +i1lu i1lä i8mart imb2 i8mele i8mid imme6l5a i1mu i1mä +i5mö ina5he i1nat in1au inau8s 8ind. in4d3an 5index ind2r 3indus i5nec i2n1ei i8nerw 3infek 1info 5ingeni ing5s6o 5inhab ini5er. 5inj -in8kät in8nan i1no inoi8d in3o4ku in5sau in1sp 5inspe 5instit -5instru ins4ze 5intere 5interv in3the in5t2r i5ny inä2 i1när -in1äs inö8 in5öd i1nös 2io io1a8 io1c iode4 io2di +in8kät in8nan i1no inoi8d in3o4ku in5sau in1sp 5inspe 5instit +5instru ins4ze 5intere 5interv in3the in5t2r i5ny inä2 i1när +in1äs inö8 in5öd i1nös 2io io1a8 io1c iode4 io2di ioi8 i1ol. i1om. i1on. i5onb ion2s1 i1ont i5ops i5o8pt i1or. i3oral io3rat i5orc i1os. i1ot. i1o8x 2ip i1pa i1pi i1p2l i1pr i1q i1ra ir6bl i1re i1ri ir8me8d ir2m1o2 ir8nak i1ro ir5rho ir6schl -ir6sch5r i5rus i5ry i5rä i1sa i8samt i6sar i2s1au i8scheh i8schei -isch5m isch3r ischä8 is8ele ise3ra i4s3erh is3err isi6de i8sind -is4kop ison5e is6por i8s5tum i5sty i5sö i1ta it5ab. i2t1a2m -i8tax i1te i8tersc i1thi i1tho i5thr it8hä i1ti i8ti8d iti6kl +ir6sch5r i5rus i5ry i5rä i1sa i8samt i6sar i2s1au i8scheh i8schei +isch5m isch3r ischä8 is8ele ise3ra i4s3erh is3err isi6de i8sind +is4kop ison5e is6por i8s5tum i5sty i5sö i1ta it5ab. i2t1a2m +i8tax i1te i8tersc i1thi i1tho i5thr it8hä i1ti i8ti8d iti6kl itmen4 i1to i8tof it3ran it3rau i1tri itri5o it1sc it2se it5spa it8tru -i1tu it6z5erg it6z1w i1tä itä6r5e ität2 itäts5 -i1tü i1u iu6r 2i1v i6vad iva8tin i8vei i6v5ene i8verh i2vob i8vur -i1w iwi2 i5xa i1xe i1z ize8n i8zir i6z5w iä8m i1ä6r -i5ät. i5äv i1ö8 iü8 i6ß5ers ja5la +i1tu it6z5erg it6z1w i1tä itä6r5e ität2 itäts5 +i1tü i1u iu6r 2i1v i6vad iva8tin i8vei i6v5ene i8verh i2vob i8vur +i1w iwi2 i5xa i1xe i1z ize8n i8zir i6z5w iä8m i1ä6r +i5ät. i5äv i1ö8 iü8 i6ß5ers ja5la je2t3r 6jm 5jo jo5as jo1ra jou6l ju5cha jugen4 jugend5 jung5s6 -3jä 1ka 8kachs 8kakz ka1la kal5d kam5t ka1na 2kanl 8kapf ka6pl -ka5r6a 6k3arbe ka1ro kar6p5f 4k3arti 8karz ka1rä kasi5e ka6teb +3jä 1ka 8kachs 8kakz ka1la kal5d kam5t ka1na 2kanl 8kapf ka6pl +ka5r6a 6k3arbe ka1ro kar6p5f 4k3arti 8karz ka1rä kasi5e ka6teb kat8ta kauf6s kau3t2 2k1b 2k1c 4k1d kehr6s kehrs5a 8keic 2k1eig 6k5ein 6k5eis ke6lar ke8leis ke8lo 8kemp k5ente. k3entf 8k5ents 6kentz ke1ra k5erlau 2k1f8 2k1g 2k1h ki5fl 8kik king6s5 6kinh ki5os ki5sp ki5th -8ki8ö 2k1k2 kl8 1kla 8klac k5lager kle4br k3leib 3kleid kle5isc +8ki8ö 2k1k2 kl8 1kla 8klac k5lager kle4br k3leib 3kleid kle5isc 4k3leit k3lek 6k5ler. 5klet 2klic 8klig k2lim k2lin 5klip 5klop k3lor -1klä 2k1m kmani5e kn8 6kner k2ni knä8 1k2o ko1a2 ko6de. +1klä 2k1m kmani5e kn8 6kner k2ni knä8 1k2o ko1a2 ko6de. ko1i koi8t ko6min ko1op ko1or ko6pht ko3ra kor6d5er ko5ru ko5t6sc k3ou 3kow 6k5ox 2k1p2 k1q 1kr8 4k3rad 2k1rec 4k3reic kre5ie 2krib 6krig 2krip 6kroba 2ks k1sa k6sab ksal8s k8samt k6san k1sc k2s1ex k5spat @@ -531,177 +531,177 @@ k5spe k8spil ks6por k1spr kst8 k2s1uf 2k1t kta8l kt5a6re k8tein kte8re k2t1h k8tinf kt3rec kt1s 1ku ku1ch kuck8 k3uhr ku5ie kum2s1 kunfts5 kun2s kunst3 ku8rau ku4ro kurz1 -4kusti ku1ta ku8ß -6k1v 2k1w ky5n 2k1z 1kä kä4m 4k3ämi käse5 1kö -kö1c kö1s 1kü kü1c kür6sc - +4kusti ku1ta ku8ß +6k1v 2k1w ky5n 2k1z 1kä kä4m 4k3ämi käse5 1kö +kö1c kö1s 1kü kü1c kür6sc + 1la. 8labf 8labh lab2r 2l1abs lach3r la8dr 5ladu 8ladv 6laff laf5t la2gn 5laken 8lamb la6mer 5lampe. 2l1amt la1na 1land lan4d3a lan4d3r lan4gr -8lanme 6lann 8lanw 6lanä 8lappa lap8pl lap6pr l8ar. la5ra lar4af +8lanme 6lann 8lanw 6lanä 8lappa lap8pl lap6pr l8ar. la5ra lar4af la8rag la8ran la6r5a6s l3arbe la8rei 6larm. la8sa la1sc la8sta lat8i 6l5atm 4lauss 4lauto 1law 2lb l8bab l8bauf l8bede l4b3ins l5blo lbst5an lbst3e 8lc l1che l8chert l1chi lch3m l5cho lch5w 6ld l4d3ei -ld1re l6düb le2bl le8bre lecht6s5 led2r 6leff le4gas 1lehr lei6br +ld1re l6düb le2bl le8bre lecht6s5 led2r 6leff le4gas 1lehr lei6br le8inf 8leinn 5leistu 4lektr le6l5ers lemo2 8lemp l8en. 8lends 6lendun le8nend len8erw 6l5ents 4l3entw 4lentz 8lenzy 8leoz 6lepi le6pip 8lepo 1ler l6er. 8lerbs 6l5erde le8reis le8rend le4r3er 4l3erg -l8ergr 6lerkl 6l5erzie 8lerö 8lesel lesi5e le3sko le3tha let1s +l8ergr 6lerkl 6l5erzie 8lerö 8lesel lesi5e le3sko le3tha let1s 5leuc 4leuro leu4s3t le5xe 6lexp l1f 2l1g lgend8 l8gh lglie3 lglied6 -6l1h 1li li1ar li1as 2lick li8dr li1en lien6n li8ers li8ert 2ließ +6l1h 1li li1ar li1as 2lick li8dr li1en lien6n li8ers li8ert 2ließ 3lig li8ga8b li1g6n li1l8a 8limb li1na 4l3indu lings5 4l3inh 6linj link4s3 4linkt 2lint 8linv 4lipp 5lipt 4lisam livi5e 6l1j 6l1k l8keim l8kj lk2l lko8f lkor8 lk2sa lk2se 6ll l1la ll3a4be l8labt ll8anl ll1b ll1c ll1d6 l1le l4l3eim l6l5eise ller3a -l4leti l5lip l1lo ll3ort ll5ov ll6spr llte8 l1lu ll3urg l1lä -l5lü l6lüb 2l1m l6m5o6d 6ln l1na l1no 8lobl lo6br 3loch. +l4leti l5lip l1lo ll3ort ll5ov ll6spr llte8 l1lu ll3urg l1lä +l5lü l6lüb 2l1m l6m5o6d 6ln l1na l1no 8lobl lo6br 3loch. l5o4fen 5loge. 5lohn 4l3ohr 1lok l2on 4l3o4per lo1ra 2l1ord 6lorg 4lort lo1ru 1los. lo8sei 3losig lo6ve lowi5 6l1p lp2f l8pho l8pn lp4s3te l2pt l1q 8l1r 2ls l1sa l6sarm l1sc l8sec l6s5erg l4s3ers l8sh -l5s6la l1sp ls4por ls2pu l1str l8suni l1sü 2l1t lt5amp l4t3ein -l5ten l6t5eng l6t5erp l4t3hei lt3her l2t1ho l6t5i6b lti1l l8trö +l5s6la l1sp ls4por ls2pu l1str l8suni l1sü 2l1t lt5amp l4t3ein +l5ten l6t5eng l6t5erp l4t3hei lt3her l2t1ho l6t5i6b lti1l l8trö lt1sc lt6ser lt4s3o lt5ums lu8br lu2dr lu1en8 8lu8fe luft3a luf8tr lu6g5r 2luh l1uhr lu5it 5luk 2l1umf 2l1umw 1lun 6l5u6nio 4l3unte lu5ol 4lurg 6lurs l3urt lu4sto lus1tr lu6st5re lu8su lu6tal lu6t5e6g lu8terg -lu3the lu6t5or lu2t1r lu6ß5 l1v lve5r6u 2l1w 1ly lya6 -6lymp ly1no l8zess l8zo8f l3zwei lz5wu 3länd lä5on -lä6sc lät1s 5läuf 2läug läu6s5c lä5v -l1öl 1lös lö1ß6t 6l1übe 1ma +lu3the lu6t5or lu2t1r lu6ß5 l1v lve5r6u 2l1w 1ly lya6 +6lymp ly1no l8zess l8zo8f l3zwei lz5wu 3länd lä5on +lä6sc lät1s 5läuf 2läug läu6s5c lä5v +l1öl 1lös lö1ß6t 6l1übe 1ma 8mabg ma5chan mad2 ma5el 4magg mag8n ma1la ma8lau mal5d 8malde mali5e malu8 ma8lut 2m1amp 3man mand2 man3ds 8mangr mani5o 8m5anst 6mappa -4m3arbe mar8kr ma1r4o mar8schm 3mas ma1sc ma1tö 4m5auf ma5yo 2m1b -mb6r 2m1c 2m1d md6sä 1me me1ch me5isc 5meld mel8sa 8memp me5nal +4m3arbe mar8kr ma1r4o mar8schm 3mas ma1sc ma1tö 4m5auf ma5yo 2m1b +mb6r 2m1c 2m1d md6sä 1me me1ch me5isc 5meld mel8sa 8memp me5nal men4dr men8schl men8schw 8mentsp me1ra mer4gl me1ro 3mes me6s5ei me1th -me8ß 2m1f6 2m1g 2m1h 1mi mi1a mi6ale mi1la 2m1imm mi1na -mi5nü mi4s3an mit1h mi5t6ra 3mitt mitta8 mi6ß5 6mj +me8ß 2m1f6 2m1g 2m1h 1mi mi1a mi6ale mi1la 2m1imm mi1na +mi5nü mi4s3an mit1h mi5t6ra 3mitt mitta8 mi6ß5 6mj 2m1k8 2m1l 2m1m m6mad m6m5ak m8menth m8mentw mme6ra m2mn mm5sp mm5ums -mmut5s m8män m1n8 m5ni 1mo mo5ar mo4dr 8mof mo8gal mo4kla mol5d +mmut5s m8män m1n8 m5ni 1mo mo5ar mo4dr 8mof mo8gal mo4kla mol5d m2on mon8do mo4n3od mon2s1tr mont8a 6m5ony mopa6 mo1ra mor8d5a mo1sc mo1sp 5mot moy5 2mp m1pa mpfa6 mpf3l mphe6 m1pi mpin6 m1pl mp2li m2plu mpo8ste -m1pr mprä5 mp8th mput6 mpu5ts m1pö 8m1q 2m1r 2ms ms5au m1sc -msch4l ms6po m3spri m1str 2m1t mt1ar m8tein m2t1h mt6se mt8sä +m1pr mprä5 mp8th mput6 mpu5ts m1pö 8m1q 2m1r 2ms ms5au m1sc +msch4l ms6po m3spri m1str 2m1t mt1ar m8tein m2t1h mt6se mt8sä mu5e 6m5uh mumi1 1mun mun6dr muse5e mu1ta 2m1v mvol2 mvoll3 2m1w 1my -2m1z mä6kl 1män mä1s mä5tr mäu4s3c 3mäß -möb2 6möl 1mü 5mün 3müt 1na. -n5ab. 8nabn n1abs n1abz na6bä na2c nach3e 3nacht 1nae na5el +2m1z mä6kl 1män mä1s mä5tr mäu4s3c 3mäß +möb2 6möl 1mü 5mün 3müt 1na. +n5ab. 8nabn n1abs n1abz na6bä na2c nach3e 3nacht 1nae na5el n1afr 1nag 1n2ah na8ha na8ho 1nai 6nair na4kol n1akt nal1a 8naly 1nama na4mer na1mn n1amp 8n1amt 5nanc nan6ce n1and n6and. 2n1ang 1nani 1nann n1ans 8nanw 5napf. 1n2ar. na2ra 2n1arc n8ard 1nari n8ark 6n1arm 5n6ars 2n1art n8arv 6natm nat6s5e 1naue 4nauf n3aug 5naui n5auk -na5um 6nausb 6nauto 1nav 2nax 3naz 1naß n1b2 nbau5s n1c +na5um 6nausb 6nauto 1nav 2nax 3naz 1naß n1b2 nbau5s n1c nche5e nch5m 2n1d nda8d n2d1ak nd5ans n2d1ei nde8lac ndel6sa n8derhi nde4se nde8stal n2dj ndnis5 n6d5or6t nd3rec nd3rot nd8samt nd6sau ndt1h n8dumd 1ne ne5as ne2bl 6n5ebn 2nec 5neei ne5en ne1g4l 2negy 4n1ein 8neis 4n3e4lem 8nemb 2n1emp nen1a 6n5energ nen3k 8nentb 4n3en3th 8nentl 8n5entn 8n5ents ne1ra ne5r8al ne8ras 8nerbi 6n5erde. -nere5i6d nerfor6 6n5erhö 8nerlö 2n1err n8ers. 6n5ertra -2n1erz nesi3e net1h neu4ra neu5sc 8neuß n1f nf5f nf2l +nere5i6d nerfor6 6n5erhö 8nerlö 2n1err n8ers. 6n5ertra +2n1erz nesi3e net1h neu4ra neu5sc 8neuß n1f nf5f nf2l nflei8 nf5lin nft8st n8g5ac ng5d ng8en nge8ram ngg2 ng1h n6glic ng3rip -ng8ru ng2se4 ng2si n2g1um n1gy n8gäl n1h nhe6r5e 1ni ni1bl -ni5chä ni8dee n6ie ni1en nie6s5te niet5h ni8etn 4n3i6gel n6ik +ng8ru ng2se4 ng2si n2g1um n1gy n8gäl n1h nhe6r5e 1ni ni1bl +ni5chä ni8dee n6ie ni1en nie6s5te niet5h ni8etn 4n3i6gel n6ik ni1la 2n1imp ni5na 2n1ind 8ninf 6n5inh ni8nit 6n5inn 2n1ins 4n1int n6is nis1tr ni1th ni1tr n1j n6ji n8kad nk5ans n1ke n8kerla n1ki nk5inh -n5klö n1k2n n8k5not nk3rot n8krü nk5spo nk6t5r n8kuh -n6küb n5l6 nli4mi n1m nmen4s n1na n8nerg nni5o n1no nn4t3ak nnt1h -nnu1e n1ny n1nä n1nö n1nü no5a no4b3la 4n3obs 2nobt +n5klö n1k2n n8k5not nk3rot n8krü nk5spo nk6t5r n8kuh +n6küb n5l6 nli4mi n1m nmen4s n1na n8nerg nni5o n1no nn4t3ak nnt1h +nnu1e n1ny n1nä n1nö n1nü no5a no4b3la 4n3obs 2nobt noche8 no6die no4dis no8ia no5isc 6n5o6leu no4mal noni6er 2n1onk n1ony 4n3o4per 6nopf 6nopti no3ra no4ram nor6da 4n1org 2n1ort n6os no1st -8nost. no8tan no8ter noty6pe 6n5ox n1p2 n1q n1r nrös3 6ns n1sac +8nost. no8tan no8ter noty6pe 6n5ox n1p2 n1q n1r nrös3 6ns n1sac ns3ang n1sc n8self n8s5erf n8serg n6serk ns5erw n8sint n1s2pe n1spr n6s5tat. n6stob n1str n1ta n4t3a4go nt5anh nt3ark nt3art n1te nt3eis nte5n6ar nte8nei nter3a nte6rei nt1ha nt6har n3ther nt5hie n3thus n1ti nti1c n8tinh nti1t ntlo6b ntmen8 n1to nt3o4ti n1tr ntra5f -ntra5ut nt8rea nt3rec nt8rep n4t3rin nt8rop n4t3rot n4trü nt1s -nts6an nt2sk n1tu nt1z n1tä n1tö n8töl n1tü 1nu +ntra5ut nt8rea nt3rec nt8rep n4t3rin nt8rop n4t3rot n4trü nt1s +nts6an nt2sk n1tu nt1z n1tä n1tö n8töl n1tü 1nu nu1a nu5el nu5en 4n1uhr nu5ie 8numl 6n5ums 6n5umw 2n1und 6nuni 6n5unr 2n1unt 2nup 2nu6r n5uri nu3skr nu5ta n1v 8n1w 1nys n1za n6zab n2z1ar -n6zaus nzi4ga n8zof n6z5unt n1zw n6zwir 1näc 5näe 5näi -n8äl nä6m nä6re n5ärz 5näus n1öl -1nöt n5öz 5nü. 6n1ü2b 5nüß +n6zaus nzi4ga n8zof n6z5unt n1zw n6zwir 1näc 5näe 5näi +n8äl nä6m nä6re n5ärz 5näus n1öl +1nöt n5öz 5nü. 6n1ü2b 5nüß o5ab. oa2l o8ala o1a2m o1an ob1ac obe4ra o6berh 5o4bers o4beru obe6ser 1obj o1bl o2bli ob5sk 3obst. ob8sta obst5re ob5sz o1che oche8b o8chec o3chi och1l och3m ocho8f o3chro och3to o3chu och1w o1d o2d1ag od2dr ode5i ode6n5e od1tr o5e6b o5e6der. oe8du o1ef o1e2l o1e2p o1er. o5e8x o1fa of8fan 1offi of8fin of6f5la o5fla o1fr 8o1g og2n o1ha o1he o6h5eis o1hi ohl1a oh1le oh4l3er 5ohm. oh2ni o1ho -oh1re oh1ru o1hu oh1w o1hy o1hä o5ia o1id. o8idi oi8dr o5ids -o5isch. oiset6 o1ism o3ist. o5i6tu o1j o1k ok2l ok3lau o8klä +oh1re oh1ru o1hu oh1w o1hy o1hä o5ia o1id. o8idi oi8dr o5ids +o5isch. oiset6 o1ism o3ist. o5i6tu o1j o1k ok2l ok3lau o8klä 1okta o1la old5am old5r o1le ole5in ole1r ole3u ol6gl ol2kl olk4s1 ol8lak ol8lauf. ol6lel ol8less o1lo ol1s ol2ster ol6sk o1lu oly1e2 5olym -o2mab om6an o8mau ombe4 o8merz om5sp o1mu o8munt o1mä o1mö +o2mab om6an o8mau ombe4 o8merz om5sp o1mu o8munt o1mä o1mö o1na ona8m on1ax on8ent o6n5erb 8oni oni5er. on1k on6n5a6b o1no ono1c -o4nokt 1ons onts8 o1nä oo8f 1oog oo2pe oo2sa o1pa 3o4pera o3pfli +o4nokt 1ons onts8 o1nä oo8f 1oog oo2pe oo2sa o1pa 3o4pera o3pfli opf3lo opf3r o1pi o1pl o2pli o5p6n op8pa op6pl o1pr o3p4ter 1opti -o1pä o5pö o1q o1ra. o3rad o8radd 1oram o6rang o5ras o8rauf +o1pä o5pö o1q o1ra. o3rad o8radd 1oram o6rang o5ras o8rauf or5cha or4d3a4m or8dei or8deu 1ordn or4dos o1re o5re. ore2h o8r5ein ore5isc or6enn or8fla or8fli 1orga 5orgel. or2gl o1ri 5o6rient or8nan -or8nä o1ro or1r2h or6t5an or8tau or8tere o1rus o1ry o1rä -or1ü2 o1sa osa3i 6ose o8serk o1sk o6ske o6ski os2kl os2ko os2kr +or8nä o1ro or1r2h or6t5an or8tau or8tere o1rus o1ry o1rä +or1ü2 o1sa osa3i 6ose o8serk o1sk o6ske o6ski os2kl os2ko os2kr osni5e o2s1o2d o3s4per o4stam o6stau o3stra ost3re osu6 o6s5ur o5s6ze o1ta ot3auf o6taus o1te o6terw o1th othe5u o2th1r o1ti o1to oto1a -ot1re o1tri o1tro ot1sc o3tsu ot6t5erg ot2t3h ot2t5r ot8tö o1tu +ot1re o1tri o1tro ot1sc o3tsu ot6t5erg ot2t3h ot2t5r ot8tö o1tu ou3e ouf1 ou5f6l o5u6gr ou5ie ou6rar ou1t6a o1v o1wa o1we o6wer. o1wi owid6 o1wo o5wu o1xe oy5al. oy1e oy1i o5yo o1z oza2r 1o2zea ozo3is -oö8 oß5elt oß1t 3paa pa6ce 5pad pag2 1pak +oö8 oß5elt oß1t 3paa pa6ce 5pad pag2 1pak pa1la pa8na8t pani5el pa4nor pan1s2 1pap pap8s pa8rei par8kr paro8n par5o6ti part8e 5partei 3partn pas6sep pa4tha 1pau 6paug pau3sc p1b 8p5c 4p1d 1pe 4peic pe5isc 2pek pen3k pen8to8 p8er pe1ra pere6 per5ea -per5eb pe4rem 2perr per8ran 3pers 4persi pe3rü pe4sta pet2s +per5eb pe4rem 2perr per8ran 3pers 4persi pe3rü pe4sta pet2s p2f1ec p4fei pf1f pf2l 5pflanz pf8leg pf3lei 2pft pf3ta p1g 1ph 2ph. 2p1haf 6phb 8phd 6p5heit ph5eme 6phg phi6e 8phk 6phn p5holl pht2 ph3tha 4ph3the phu6 6phz pi1en pi5err pi1la pi1na 5pinse pioni8e 1pis pi1s2k pi1th p1k pl8 5pla p2lau 4plei p3lein 2pler 6p5les 2plig p6lik 6p5ling p2liz plo8min 6p1m p1n 1p2o 8poh 5pol po8lan poly1 po3ny po1ra -2porn por4t3h po5rö 5poti p1pa p6p5ei ppe6la pp5f p2p1h p1pi pp1l +2porn por4t3h po5rö 5poti p1pa p6p5ei ppe6la pp5f p2p1h p1pi pp1l ppp6 pp5ren pp1s pp2ste -p5pö pr6 3preis 1pres 2p3rig 5prinz 1prob 1prod -5prog pro8pt pro6t5a prote5i 8proß prä3l 1präs -präte4 1prüf p5schl 2pst 1p2sy p1t p8to8d pt1s 5p6ty 1pu +p5pö pr6 3preis 1pres 2p3rig 5prinz 1prob 1prod +5prog pro8pt pro6t5a prote5i 8proß prä3l 1präs +präte4 1prüf p5schl 2pst 1p2sy p1t p8to8d pt1s 5p6ty 1pu pu1b2 2puc pu2dr puf8fr 6p5uh pun8s pu8rei pu5s6h pu1ta p1v p3w 5py -py5l p1z pä6der p5ä6m pä8nu 8pär pät5h -pät1s qu6 1qui 8rabk ra6bla 3rable ra2br r1abt 6rabz ra4dan ra2dr +py5l p1z pä6der p5ä6m pä8nu 8pär pät5h +pät1s qu6 1qui 8rabk ra6bla 3rable ra2br r1abt 6rabz ra4dan ra2dr 5rafal ra4f3er ra5gla ra2g3n 6raha ral5am 5rald 4ralg ra8lins 2rall ral5t 8ramei r3anal r6and ran8der ran4dr 8ranf 6ranga 5rangi ran8gli r3angr rans5pa 8ranw r8anz. ra5or 6rapf ra5pl rap6s5er 2r1arb 1rarh r1arm ra5ro 2r1art 6r1arz ra8tei ra6t5he 6ratl ra4t3ro r5atta raue4n 6raus. r5austa rau8tel raut5s ray1 r1b rb5lass r6bler rb4lie rbon6n -r8brecht rb6s5tä r8ces r1che rch1l rch3m rch3re rch3tr rch1w 8rd +r8brecht rb6s5tä r8ces r1che rch1l rch3m rch3re rch3tr rch1w 8rd r1da r8dachs r8dap rda5ro rde5ins rdio5 r8dir rd3ost r1dr r8drau 1re. re1ak 3reakt re3als re6am. re1as 4reben re6bl rech5a r8edi re3er 8reff 3refl 2reh 5reha r4ei. reich6s5 8reier 6reign re5imp 4r3eina 6r3einb 6reing 6r5einn 6reinr 4r3eins r3eint reli3e 8r5elt 6rempf 2remt ren5a6b ren8gl r3enni 1reno 5rente 4r3enth 8rentl 4r3entw 8rentz -ren4zw re1on requi5 1rer rer4bl 6rerbs 4r3erd 8rerhö 8rerkl -4r3erla 8rerlö 4r3erns 6r5ernä rer5o 6r5erreg r5ertr r5erwec -r5erö re2sa re8schm 2ress re5u8ni 6rewo 2r1ex r1f r8ferd rf4lie +ren4zw re1on requi5 1rer rer4bl 6rerbs 4r3erd 8rerhö 8rerkl +4r3erla 8rerlö 4r3erns 6r5ernä rer5o 6r5erreg r5ertr r5erwec +r5erö re2sa re8schm 2ress re5u8ni 6rewo 2r1ex r1f r8ferd rf4lie 8r1g r8gah rge4bl rge5na rgest4 rg6ne r2gni2 r8gob r4g3ret rg8sel r1h8 r2hy 5rhyt ri1ar ri5cha rid2g r2ie rieg4s5 ri8ei ri1el ri6ele ri1en -ri3er. ri5ers. ri6fan ri8fer ri8fr 1r2ig ri8kn ri5la rimä8 +ri3er. ri5ers. ri6fan ri8fer ri8fr 1r2ig ri8kn ri5la rimä8 ri1na r8inde rin4ga rin6gr 1rinn 6rinner rino1 r8insp 4rinst -ri1nä ri5o6ch ri1o2d ri3o6st 2r1ir r2is ri3sko ri8spr - +ri1nä ri5o6ch ri1o2d ri3o6st 2r1ir r2is ri3sko ri8spr + ri5sv r2it 6r5i6tal ri5tr ri6ve. 8r1j 6rk r1ke rkehrs5 r1ki r3klin -r1k2n rk3str rk4t3an rk6to r6kuh rkä4s3t r1l r5li rline5a 6r1m +r1k2n rk3str rk4t3an rk6to r6kuh rkä4s3t r1l r5li rline5a 6r1m r6manl rma4p r4m3aph r8minf r8mob rm5sa 2rn r1na rna8be r5ne rn2ei -r6neif r6nex r6nh rn1k r1no r6n5oc rn1sp r1nä r1nü ro6bern +r6neif r6nex r6nh rn1k r1no r6n5oc rn1sp r1nä r1nü ro6bern 6robs ro1ch 3rock. ro5de ro1e 4rofe ro8hert 1rohr ro5id ro1in ro5isc 6rolym r2on 6roog ro6phan r3ort ro1s2p ro5s6w ro4tau ro1tr ro6ts 5rout r1p rpe8re rp2f r2ps r2pt r1q 2rr r1ra r1re rrer6 -rr6hos r5rhö -r1ri r1ro rro8f rr8or rror5a r1ru r3ry r1rä r1rö r1rü +rr6hos r5rhö +r1ri r1ro rro8f rr8or rror5a r1ru r3ry r1rä r1rö r1rü 2r1s r2ste r2sti r6sab r4sanf rse6e rse5na r2sh r6ska r6ski rs2kl r8sko r2sl rs2p @@ -712,37 +712,37 @@ rt6s5o rt6s5u rt5und r8turt rube6 ru1en 1r4uf ruf4st ru1ie 2r1umg ru6sta rus1tr ru6tr 1ruts r1v rven1 rvi2c r1w r1x r1za rz5ac r6z5al -r8z1ar r8zerd r6z5erf rz8erh rz4t3h r8zum rä4ste räu8sc -r1öf 5röhr rö5le 3röll 5römis r1ör -rö2sc 3rümp 1sa. 1saa s3a4ben sa2bl 2s1abs 6s1abt 6sabw +r8z1ar r8zerd r6z5erf rz8erh rz4t3h r8zum rä4ste räu8sc +r1öf 5röhr rö5le 3röll 5römis r1ör +rö2sc 3rümp 1sa. 1saa s3a4ben sa2bl 2s1abs 6s1abt 6sabw 3sack. 6s3a4der 1saf sa1fa 4s1aff sa5fr 1sag 1sai sa1i2k1 4s1akt 1sal sa1la 4s3alpi 6salter salz3a 1sam s5anb san2c 1sand s5angeh 6sanl 2s1ans 6s3antr 8s1anw s1ap s6aph 8sapo sap5p6 s8ar. 2s1arb 3sarg s1arm sa5ro 2s1art 6s1arz 1sas 1sat sat8a 2s1atl sa8tom 3s8aue s5auff sau5i s6aur 2s1aus 5s6ause 2s1b2 2sca s4ce 8sch. 3scha. 5schade 3schaf 3schal sch5ame 8schanc 8schb 1sche 6schef 8schex 2schf 2schg -2schh 1schi 2schk 5schlag 5schlu 6schmäß -6schnaß 1scho 6schord 6schp 3schri 8schric 8schrig -8schrou 6schs 2scht sch3ta sch3tr 1schu 8schunt 6schv 2schz 5schö -5schü 2sco scre6 6scu 2s1d 1se se5an se1ap se6ben se5ec see5i6g -se3erl 8seff se6han se8hi se8hö 6s5eid. 2s1eig s8eil 5sein. +2schh 1schi 2schk 5schlag 5schlu 6schmäß +6schnaß 1scho 6schord 6schp 3schri 8schric 8schrig +8schrou 6schs 2scht sch3ta sch3tr 1schu 8schunt 6schv 2schz 5schö +5schü 2sco scre6 6scu 2s1d 1se se5an se1ap se6ben se5ec see5i6g +se3erl 8seff se6han se8hi se8hö 6s5eid. 2s1eig s8eil 5sein. sei5n6e 6s5einh 3s8eit 3sel. se4lar selb4 6s3e4lem se8lerl 2s1emp -sen3ac se5nec 6s5ents 4sentz s8er. se8reim ser5inn 8sermä -8s5erzi 6seröf se1um 8sexa 6sexp 2s1f2 sfal8ler 2s3g2 sge5b2 s1h +sen3ac se5nec 6s5ents 4sentz s8er. se8reim ser5inn 8sermä +8s5erzi 6seröf se1um 8sexa 6sexp 2s1f2 sfal8ler 2s3g2 sge5b2 s1h s8hew 5s6hip 5s4hop 1si 2siat si1b sicht6s 6s5i6dee siege6s5 si1en -si5err si1f2 si1g2n si6g5r si8kau sik1i si4kin si2kl si8kü si1la +si5err si1f2 si1g2n si6g5r si8kau sik1i si4kin si2kl si8kü si1la sil6br si1na 2s1inf sin5gh 2s1inh sinne6s5 2s1ins si5ru si5str 4s1j s1k2 6sk. 2skau skel6c skelch5 s6kele 1s2ki. 3s4kin. s6kiz s8kj -6skn 2skow 3skrib 3skrip 2sku 8skü s1l s8lal slei3t s4low 2s1m +6skn 2skow 3skrib 3skrip 2sku 8skü s1l s8lal slei3t s4low 2s1m s1n 6sna 6snot 1so so1ch 2s1odo so4dor 6s5o4fen solo3 s2on so5of 4sope so1ra 2s1ord 4sorga sou5c so3un 4s3ox sp2 8spaa 5spal 1span 2spap -s2pec s4peis 1spek s6perg 4spers s6pes 2s1pf 8sphi 1s2phä 1spi +s2pec s4peis 1spek s6perg 4spers s6pes 2s1pf 8sphi 1s2phä 1spi spi4e 6s5pig 6spinse 2spis 2spla 2spol 5s6pom 6s5pos 6spoti 1spra -3s8prec 6spreis 5spring 6sprob 1spru s2pul 1s2pur 6spy 5spän -1spü s1q 2s1r +3s8prec 6spreis 5spring 6sprob 1spru s2pul 1s2pur 6spy 5spän +1spü s1q 2s1r - -2ssa 2sse 2ssi 2sso 2ssä 2ssö 2ssü 2s1sch + +2ssa 2sse 2ssi 2sso 2ssä 2ssö 2ssü 2s1sch sse8nu ssini6s ssoi6r 2st. 1sta 4stafe 2stag sta3la 6stale @@ -768,7 +768,7 @@ s2ti8r 4strai s3tral -6s5traum 3straß +6s5traum 3straß 3strec 6s3tref 8streib 5streif 6streno 6stres 6strev 2st5rig @@ -776,15 +776,15 @@ s3tral 8s2t1ris s8troma st5rose 4struf 3strum -6sträg 2st1s6 2stt +6sträg 2st1s6 2stt 1stu stu5a 4stuc 2stue 8stun. 2stv 2stw s2tyl -6stz 1stä 8stäg -1stö -1stü 8stüch 4stür. +6stz 1stä 8stäg +1stö +1stü 8stüch 4stür. 1su su2b1 3suc su1e su2fe su8mar 6sumfa 8sumk 2s1unt sup1p2 6s5u6ran 6surte 2s1v 2s1w 1sy 8syl. sy5la syn1 sy2na syne4 s1z s4zend 5s6zene. -8szu 1sä 6s5änd 6säugi 6säuß -5söm 2s1ü2b 1süc sü8di 1sün 5süß +8szu 1sä 6s5änd 6säugi 6säuß +5söm 2s1ü2b 1süc sü8di 1sün 5süß taats3 4tab. taba6k ta8ban tab2l ta6bre 4tabs t3absc 8tabz 6t3acht ta6der 6tadr tad6s tad2t 1tafe4 1tag ta6ga6 ta8gei tage4s tag6s5t tah8 tahl3 tai6ne. ta5ir. tak8ta tal3au 1tale ta8leng @@ -797,12 +797,12 @@ t6chu 2t1d te2am tea4s te8ben 5techn 4teff te4g3re te6hau 2tehe te4hel 8teiw te8lam te4lar 4telek 8telem te6man te6n5ag ten8erw ten5k tens4p ten8tro 4t3entw 8tentz te6pli 5teppi ter5a6b te3ral ter5au 8terbar t5erbe. 6terben 8terbs 4t3erbt t5erde. ter5ebe ter5ein te8rers terf4 -8terhö 6terklä ter8nor ter6re. t8erscha t5e6sel te8stau +8terhö 6terklä ter8nor ter6re. t8erscha t5e6sel te8stau t3euro te1xa tex3e 8texp tex6ta 2t1f2 2t1g2 2th. th6a 5tha. 2thaa 6t1hab 6t5haf t5hah 8thak 3thal. 6thals 6t3hand 2t1hau 1the. 3t4hea t1heb t5heil t3heit t3helf 1theo 5therap 5therf 6t5herz 1thes 1thet 5thi. 2t1hil t3him 8thir 3this t5hj 2th1l 2th1m th1n t5hob t5hof -4tholz 6thopti 1thr6 4ths t1hum 1thy 4t1hä 2t1hö t1hü +4tholz 6thopti 1thr6 4ths t1hum 1thy 4t1hä 2t1hö t1hü ti1a2m ti1b tie6fer ti1en ti8gerz tig3l ti8kin ti5lat 1tilg t1ind tin4k3l ti3spa ti5str 5tite ti5tr ti8vel ti8vr 2t1j 2t1k2 2t1l tl8a 2t1m8 2t1n 3tobe 8tobj to3cha 5tocht 8tock tode4 to8del to8du to1e @@ -814,9 +814,9 @@ tra8far traf5t 1trag tra6gl tra6gr t3rahm 1trai t6rans tra3sc tra6st 3traue t4re. 2trec t3rech t8reck 6t1red t8ree 4t1reg 3treib 4treif 8t3reis 8trepo tre6t5r t3rev 4t3rez 1trib t6rick tri6er 2trig t8rink tri6o5d trizi5 tro1a 3troc trocke6 troi8d tro8man. tro3ny 5tropf -6t5rosa t5roß 5trub 5trup trut5 1träg 6t1röh -5trüb trü3bu t1rüc t1rüs 2ts ts1ab t1sac tsa8d -ts1ak t6s5alt ts1an ts1ar ts3auf t3schr t5schä tse6e tsee5i +6t5rosa t5roß 5trub 5trup trut5 1träg 6t1röh +5trüb trü3bu t1rüc t1rüs 2ts ts1ab t1sac tsa8d +ts1ak t6s5alt ts1an ts1ar ts3auf t3schr t5schä tse6e tsee5i tsein6s ts3ent ts1er t8serf t4serk t8sh 5t6sik t4s3int ts5ort. t5s6por t6sprei t1st t2ste @@ -825,35 +825,35 @@ t8sum. t2s1u8n t2s1ur 2t1t tt5eif tte6sa tt1ha tt8ret tt1sc tt8ser tt5s6z 1tuc tuch5a 1tu1e 6tuh t5uhr tu1i tu6it 1tumh 6t5umr 1tums 8tumt 6tund 6tunf 2t1unt tu5ra tu6rau tu6re. tu4r3er 2t1v 2t1w 1ty1 ty6a ty8la 8tym 6ty6o 2tz tz5al tz1an tz1ar t8zec tzeh6 tzehn5 t6z5ei. -t6zor t4z3um t6zäu 5täg 6täh t5ält t8än -täre8 8tä8st 6täuß t5öffen -8tö8k 1tön 4tüb t6ü5ber. 5tüch 1tür. +t6zor t4z3um t6zäu 5täg 6täh t5ält t8än +täre8 8tä8st 6täuß t5öffen +8tö8k 1tön 4tüb t6ü5ber. 5tüch 1tür. u3al. u5alb u5alf u3alh u5alk u3alp u3an. ua5na u3and u5ans u5ar. -ua6th u1au ua1y u2bab ubi5er. u6b5rit ubs2k u5bö u8büb 2uc +ua6th u1au ua1y u2bab ubi5er. u6b5rit ubs2k u5bö u8büb 2uc u1che u6ch5ec u1chi uch1l uch3m uch5n uch1r uch5to ucht5re u1chu uch1w uck1a uck5in u1d ud4a u1ei u6ela uene8 u6ep u1er uer1a ue8rerl uer5o u8esc u2est u8ev u1fa u2f1ei u4f3ent u8ferh uf1fr uf1l uf1ra uf1re -uf1rä uf1rü uf1s2p uf1st uft1s u8gabt u8gad u6gap ugeb8 u8gn -ugo3s4 u1ha u1he u1hi uh1le u1ho uh1re u1hu uh1w u1hä u1hö +uf1rä uf1rü uf1s2p uf1st uft1s u8gabt u8gad u6gap ugeb8 u8gn +ugo3s4 u1ha u1he u1hi uh1le u1ho uh1re u1hu uh1w u1hä u1hö 6ui ui5en u1ig u3ins uin8tes u5isch. u1j 6uk u1ke u1ki u1kl u8klu u1k6n u5ky u1la uld8se u1le ul8lac ul6lau ul6le6l ul6lo ulni8 u1lo -ulo6i ult6a ult8e u1lu ul2vr u1lä u1lö 3umfan 5umlau umo8f -um8pho u1mu umu8s u5mö u1n1a un2al un6at unau2 6und. 5undein -un4d3um 3undzw undü8 un8düb une2b un1ec une2h un3eis 3unfal -1unfä 5ungea 3unglü ung2s1 un8gä 1u2nif un4it un8kro +ulo6i ult6a ult8e u1lu ul2vr u1lä u1lö 3umfan 5umlau umo8f +um8pho u1mu umu8s u5mö u1n1a un2al un6at unau2 6und. 5undein +un4d3um 3undzw undü8 un8düb une2b un1ec une2h un3eis 3unfal +1unfä 5ungea 3unglü ung2s1 un8gä 1u2nif un4it un8kro unk5s u1no unpa2 uns2p unvol4 unvoll5 u5os. u1pa u1pi u1p2l u1pr up4s3t up2t1a u1q u1ra ur5abs ura8d ur5ah u6rak ur3alt u6rana u6r5ans u8rap ur5a6ri u8ratt u1re ur3eig ur8gri u1ri ur5ins 3urlau urmen6 ur8nan u1ro 3ursac ur8sau ur8sei ur4sk 3urtei u1ru uru5i6 uru6r u1ry -ur2za ur6zä ur5ä6m u5rö u1rü urück3 u1sa +ur2za ur6zä ur5ä6m u5rö u1rü urück3 u1sa usa4gi u2s1ar u2s1au u8schec usch5wi u2s1ei use8kel u8sl u4st3a4b us3tau u2s1uf u8surn ut1ac u1tal uta8m u1tan ut1ar u1tas ut1au u1te u8teic u4tent u8terf u6terin u4t3hei ut5ho ut1hu u1ti utine5 uti6q u1to uto5c u1tr ut1sa ut1s6p ut6stro u1tu utz5w u1u u1v uve5n -uve3r4ä u1w u1xe u5ya uy5e6 u1yi u2z1eh u8zerh u5ö uße6n -ußen5e 8vanb 6vang 6varb var8d va6t5a va8tei +uve3r4ä u1w u1xe u5ya uy5e6 u1yi u2z1eh u8zerh u5ö uße6n +ußen5e 8vanb 6vang 6varb var8d va6t5a va8tei va2t1r 2v1b 6v5c 6vd 1ve 6ve5g6 ver1 ver5b verb8l ve2re2 verg8 ve2ru8 ve1s ve2s3p ve3xe 2v1f 2v1g 6v5h vi6el vie6w5 vi1g4 vi8leh vil6le. 8vint vi1ru vi1tr 2v1k 2v1l 2v1m 4v5n 8vo8f voi6le vol8lend vol8li @@ -867,9 +867,9 @@ wer4ka wer8ku wer4ta wer8term we2sp we8s4tend we8str -we8stö wet8ta wich6s5t 1wid wi2dr wiede4 wieder5 wik6 wim6ma +we8stö wet8ta wich6s5t 1wid wi2dr wiede4 wieder5 wik6 wim6ma win4d3r 5wirt wisch5l 1wj 6wk 2w1l 8w1n wo1c woche6 wol6f wor6t5r 6ws2 -w1sk 6w5t 5wunde. wun6gr wu1sc wu2t1 6w5w wy5a wärme5 wä1sc +w1sk 6w5t 5wunde. wun6gr wu1sc wu2t1 6w5w wy5a wärme5 wä1sc 1xag x1ak x3a4men 8xamt x1an 8x1b x1c 1xe. x3e4g 1xen xe1ro x1erz 1xes 8xf x1g 8x1h 1xi 8xid xi8so 4xiste x1k 6x1l x1m 8xn 1xo 8x5o6d 8x3p2 x1r x1s6 8x1t x6tak x8terf x2t1h 1xu xu1e x5ul 6x3w x1z 5ya. @@ -878,64 +878,64 @@ y1k2 y1lak yl1al yla8m y5lax y1le y1lo y5lu y8mn ym1p2 y3mu y1na yno2d yn1t y1on. y1o4p y5ou ypo1 y1pr y8ps y1r yri3e yr1r2 ys5iat ys8ty -y1t y3w y1z yä8m z5a6b zab5l 8za6d 1zah za5is 4z3ak 6z1am 5zange. +y1t y3w y1z yä8m z5a6b zab5l 8za6d 1zah za5is 4z3ak 6z1am 5zange. 8zanl 2z1ara 6z5as z5auf 3zaun 2z1b 6z1c 6z1d 1ze ze4dik 4z3eff 8zein -zei4ta zei8ters ze6la ze8lec zel8th 4zemp 6z5engel zen8zin 8zergä +zei4ta zei8ters ze6la ze8lec zel8th 4zemp 6z5engel zen8zin 8zergä zer8i ze1ro zers8 zerta8 zer8tab zer8tag 8zerz ze8ste zeu6gr 2z1ex 2z1f8 z1g 4z1h 1zi zi1en zi5es. 4z3imp zi1na 6z5inf 6z5inni zin6s5er 8zinsuf zist5r zi5th zi1tr 6z1j 2z1k 2z1l 2z1m 6z1n 1zo zo6gl 4z3oh zo1on zor6na8 4z1p z5q 6z1r 2z1s8 2z1t z4t3end z4t3hei z8thi 1zu zu3al zu1b4 zu1f2 6z5uhr zun2a 8zunem zunf8 8zungl zu1o zup8fi zu1s8 zu1z 2z1v zw8 z1wal 5zweck zwei3s z1wel z1wer z6werg 8z5wes 1zwi zwi1s -6z1wo 1zy 2z1z zz8a zzi1s 1zä 1zö 6zöl. zö1le -1zü 2z1ü2b ä1a6 äb1l ä1che ä3chi -äch8sc äch8sp ä5chu äck5a äd1a äd5era -ä6d5ia ä1e ä5fa äf1l äft6s äg1h -äg3le ä6g5nan äg5str ä1he ä1hi äh1le -äh5ne 1ähnl äh1re äh5ri äh1ru ä1hu -äh1w 6äi ä1isc ä6ische ä5ism ä5j -ä1k äl1c ä1le ä8lei äl6schl ämi1e -äm8n äm8s ä5na 5änderu äne5i8 äng3l -änk5l ä1no än6s5c ä1pa äp6s5c 3äq -är1c ä1re äre8m 5ärgern är6gl ä1ri -3ärmel ä1ro ärt6s5 ä1ru 3ärztl ä5rö -ä6s5chen äsen8s äs1th äta8b ä1te äteri4 -äter5it ä6thy ä1ti 3ätk ä1to ät8schl -äts1p ä5tu äub1l äu1e 1äug äu8ga -äu5i ä1um. ä1us. 1äuß ä1z -ö1b ö1che ö5chi -öch8s2tei -öch8str öcht6 -5ö6dem 5öffn ö1he öh1l8 öh1re ö1hu -ö1is ö1ke 1ö2ko 1öl. öl6k5l öl8pl -ö1mu ö5na önig6s3 ö1no ö5o6t öpf3l -öp6s5c ö1re ör8gli ö1ri ör8tr ö1ru -5österr ö1te ö5th ö1ti ö1tu ö1v ö1w -öwe8 ö2z üb6e2 3ü4ber1 üb1l üb1r -5ü2bu ü1che ü1chi ü8ch3l üch6s5c ü8ck -ück1a ück5ers üd1a2 ü6deu üdi8t ü2d1o4 -üd5s6 üge4l5a üg1l üh5a ü1he ü8heh -ü6h5erk üh1le üh1re üh1ru ü1hu üh1w -ü3k ü1le ül4l5a ül8lo ül4ps ül6s5c -ü1lu ün8da ün8fei ünk5l ün8za ün6zw -ü5pi ü1re ü8rei ür8fl ür8fr ür8geng -ü1ri ü1ro ür8sta - -ü1ru üse8n -ü8sta ü8stes - - ü3ta ü1te ü1ti -üt8tr ü1tu üt8zei ü1v ß1a8 5ßa. -ß8as ß1b8 ß1c ß1d -1ße ß5ec 8ße8g 8ße8h -2ß1ei 8ßem ß1f8 ß1g ß1h -1ßi ß1k ß1l ß1m - -ß1n ß1o ß1p8 ß5q -ß1r ß1s2 ßst8 ß1ta -ß1te ßt3hei ß1ti ß5to -ß1tr 1ßu8 6ß5um ß1v ß1w -ß1z +6z1wo 1zy 2z1z zz8a zzi1s 1zä 1zö 6zöl. zö1le +1zü 2z1ü2b ä1a6 äb1l ä1che ä3chi +äch8sc äch8sp ä5chu äck5a äd1a äd5era +ä6d5ia ä1e ä5fa äf1l äft6s äg1h +äg3le ä6g5nan äg5str ä1he ä1hi äh1le +äh5ne 1ähnl äh1re äh5ri äh1ru ä1hu +äh1w 6äi ä1isc ä6ische ä5ism ä5j +ä1k äl1c ä1le ä8lei äl6schl ämi1e +äm8n äm8s ä5na 5änderu äne5i8 äng3l +änk5l ä1no än6s5c ä1pa äp6s5c 3äq +är1c ä1re äre8m 5ärgern är6gl ä1ri +3ärmel ä1ro ärt6s5 ä1ru 3ärztl ä5rö +ä6s5chen äsen8s äs1th äta8b ä1te äteri4 +äter5it ä6thy ä1ti 3ätk ä1to ät8schl +äts1p ä5tu äub1l äu1e 1äug äu8ga +äu5i ä1um. ä1us. 1äuß ä1z +ö1b ö1che ö5chi +öch8s2tei +öch8str öcht6 +5ö6dem 5öffn ö1he öh1l8 öh1re ö1hu +ö1is ö1ke 1ö2ko 1öl. öl6k5l öl8pl +ö1mu ö5na önig6s3 ö1no ö5o6t öpf3l +öp6s5c ö1re ör8gli ö1ri ör8tr ö1ru +5österr ö1te ö5th ö1ti ö1tu ö1v ö1w +öwe8 ö2z üb6e2 3ü4ber1 üb1l üb1r +5ü2bu ü1che ü1chi ü8ch3l üch6s5c ü8ck +ück1a ück5ers üd1a2 ü6deu üdi8t ü2d1o4 +üd5s6 üge4l5a üg1l üh5a ü1he ü8heh +ü6h5erk üh1le üh1re üh1ru ü1hu üh1w +ü3k ü1le ül4l5a ül8lo ül4ps ül6s5c +ü1lu ün8da ün8fei ünk5l ün8za ün6zw +ü5pi ü1re ü8rei ür8fl ür8fr ür8geng +ü1ri ü1ro ür8sta + +ü1ru üse8n +ü8sta ü8stes + + ü3ta ü1te ü1ti +üt8tr ü1tu üt8zei ü1v ß1a8 5ßa. +ß8as ß1b8 ß1c ß1d +1ße ß5ec 8ße8g 8ße8h +2ß1ei 8ßem ß1f8 ß1g ß1h +1ßi ß1k ß1l ß1m + +ß1n ß1o ß1p8 ß5q +ß1r ß1s2 ßst8 ß1ta +ß1te ßt3hei ß1ti ß5to +ß1tr 1ßu8 6ß5um ß1v ß1w +ß1z 2s1ta. i2s1tal @@ -989,42 +989,42 @@ aus3s4 ens3s4 gs3s4 .mis2s1 -s2s1b8 - +s2s1b8 + s2s3chen -s2s3d -s2s5ec - - -2s2s1ei -s2s3f -s2s1g -s2s3h -s2s3k -s2s3l -s2s3m - -s2s3n -s2s3p8 -s2s5q -s2s3r -s2s3s2 -sss2t8 - - +s2s3d +s2s5ec + + +2s2s1ei +s2s3f +s2s1g +s2s3h +s2s3k +s2s3l +s2s3m + +s2s3n +s2s3p8 +s2s5q +s2s3r +s2s3s2 +sss2t8 + + as2s3te is2s3te us2s3te -üs2s3te -s2st3hei -s2s3ti -s2s1to -s2s1tr +üs2s3te +s2st3hei +s2s3ti +s2s1to +s2s1tr -6ss5um -s2s3v -s2s3w -s2s3z +6ss5um +s2s3v +s2s3w +s2s3z @@ -1085,7 +1085,7 @@ s2s3z -1ba 1be 1bo 1bá 1bé 1bí 1bó 1bú 1bi 1bu 1bü -1ca 1ce 1co 1cá 1cé 1cí 1có 1cú 1ci 1cu 1cü -1da 1de 1do 1dá 1dé 1dí 1dó 1dú 1di 1du 1dü -1fa 1fe 1fo 1fá 1fé 1fí 1fó 1fú 1fi 1fu 1fü -1ga 1ge 1go 1gá 1gé 1gí 1gó 1gú 1gi 1gu 1gü -1ja 1je 1jo 1já 1jé 1jí 1jó 1jú 1ji 1ju 1jü -1ka 1ke 1ko 1ká 1ké 1kí 1kó 1kú 1ki 1ku 1kü -1la 1le 1lo 1lá 1lé 1lí 1ló 1lú 1li 1lu 1lü -1ma 1me 1mo 1má 1mé 1mí 1mó 1mú 1mi 1mu 1mü -1na 1ne 1no 1ná 1né 1ní 1nó 1nú 1ni 1nu 1nü -1pa 1pe 1po 1pá 1pé 1pí 1pó 1pú 1pi 1pu 1pü -1qa 1qe 1qo 1qá 1qé 1qí 1qó 1qú 1qi 1qu 1qü -1ra 1re 1ro 1rá 1ré 1rí 1ró 1rú 1ri 1ru 1rü -1sa 1se 1so 1sá 1sé 1sí 1só 1sú 1si 1su 1sü -1ta 1te 1to 1tá 1té 1tí 1tó 1tú 1ti 1tu 1tü -1va 1ve 1vo 1vá 1vé 1ví 1vó 1vú 1vi 1vu 1vü -1wa 1we 1wo 1wá 1wé 1wí 1wó 1wú 1wi 1wu 1wü -1xa 1xe 1xo 1xá 1xé 1xí 1xó 1xú 1xi 1xu 1xü -1ya 1ye 1yo 1yá 1yé 1yí 1yó 1yú 1yi 1yu 1yü -1za 1ze 1zo 1zá 1zé 1zí 1zó 1zú 1zi 1zu 1zü -1ña 1ñe 1ño 1ñá 1ñé 1ñí 1ñó 1ñú 1ñi 1ñu 1ñü +1ba 1be 1bo 1bá 1bé 1bí 1bó 1bú 1bi 1bu 1bü +1ca 1ce 1co 1cá 1cé 1cí 1có 1cú 1ci 1cu 1cü +1da 1de 1do 1dá 1dé 1dí 1dó 1dú 1di 1du 1dü +1fa 1fe 1fo 1fá 1fé 1fí 1fó 1fú 1fi 1fu 1fü +1ga 1ge 1go 1gá 1gé 1gí 1gó 1gú 1gi 1gu 1gü +1ja 1je 1jo 1já 1jé 1jí 1jó 1jú 1ji 1ju 1jü +1ka 1ke 1ko 1ká 1ké 1kí 1kó 1kú 1ki 1ku 1kü +1la 1le 1lo 1lá 1lé 1lí 1ló 1lú 1li 1lu 1lü +1ma 1me 1mo 1má 1mé 1mí 1mó 1mú 1mi 1mu 1mü +1na 1ne 1no 1ná 1né 1ní 1nó 1nú 1ni 1nu 1nü +1pa 1pe 1po 1pá 1pé 1pí 1pó 1pú 1pi 1pu 1pü +1qa 1qe 1qo 1qá 1qé 1qí 1qó 1qú 1qi 1qu 1qü +1ra 1re 1ro 1rá 1ré 1rí 1ró 1rú 1ri 1ru 1rü +1sa 1se 1so 1sá 1sé 1sí 1só 1sú 1si 1su 1sü +1ta 1te 1to 1tá 1té 1tí 1tó 1tú 1ti 1tu 1tü +1va 1ve 1vo 1vá 1vé 1ví 1vó 1vú 1vi 1vu 1vü +1wa 1we 1wo 1wá 1wé 1wí 1wó 1wú 1wi 1wu 1wü +1xa 1xe 1xo 1xá 1xé 1xí 1xó 1xú 1xi 1xu 1xü +1ya 1ye 1yo 1yá 1yé 1yí 1yó 1yú 1yi 1yu 1yü +1za 1ze 1zo 1zá 1zé 1zí 1zó 1zú 1zi 1zu 1zü +1ña 1ñe 1ño 1ñá 1ñé 1ñí 1ñó 1ñú 1ñi 1ñu 1ñü -1c2ha 1c2he 1c2ho 1c2há 1c2hé 1c2hí 1c2hó 1c2hú 1c2hi 1c2hu 1c2hü -1l2la 1l2le 1l2lo 1l2lá 1l2lé 1l2lí 1l2ló 1l2lú 1l2li 1l2lu 1l2lü -1r2ra 1r2re 1r2ro 1r2rá 1r2ré 1r2rí 1r2ró 1r2rú 1r2ri 1r2ru 1r2rü -1b2la 1b2le 1b2lo 1b2lá 1b2lé 1b2lí 1b2ló 1b2lú 1b2li 1b2lu 1b2lü -1b2ra 1b2re 1b2ro 1b2rá 1b2ré 1b2rí 1b2ró 1b2rú 1b2ri 1b2ru 1b2rü -1c2la 1c2le 1c2lo 1c2lá 1c2lé 1c2lí 1c2ló 1c2lú 1c2li 1c2lu 1c2lü -1c2ra 1c2re 1c2ro 1c2rá 1c2ré 1c2rí 1c2ró 1c2rú 1c2ri 1c2ru 1c2rü -1d2ra 1d2re 1d2ro 1d2rá 1d2ré 1d2rí 1d2ró 1d2rú 1d2ri 1d2ru 1d2rü -1f2la 1f2le 1f2lo 1f2lá 1f2lé 1f2lí 1f2ló 1f2lú 1f2li 1f2lu 1f2lü -1f2ra 1f2re 1f2ro 1f2rá 1f2ré 1f2rí 1f2ró 1f2rú 1f2ri 1f2ru 1f2rü -1g2la 1g2le 1g2lo 1g2lá 1g2lé 1g2lí 1g2ló 1g2lú 1g2li 1g2lu 1g2lü -1g2ra 1g2re 1g2ro 1g2rá 1g2ré 1g2rí 1g2ró 1g2rú 1g2ri 1g2ru 1g2rü -1k2la 1k2le 1k2lo 1k2lá 1k2lé 1k2lí 1k2ló 1k2lú 1k2li 1k2lu 1k2lü -1k2ra 1k2re 1k2ro 1k2rá 1k2ré 1k2rí 1k2ró 1k2rú 1k2ri 1k2ru 1k2rü -1p2la 1p2le 1p2lo 1p2lá 1p2lé 1p2lí 1p2ló 1p2lú 1p2li 1p2lu 1p2lü -1p2ra 1p2re 1p2ro 1p2rá 1p2ré 1p2rí 1p2ró 1p2rú 1p2ri 1p2ru 1p2rü -1t2ra 1t2re 1t2ro 1t2rá 1t2ré 1t2rí 1t2ró 1t2rú 1t2ri 1t2ru 1t2rü +1c2ha 1c2he 1c2ho 1c2há 1c2hé 1c2hí 1c2hó 1c2hú 1c2hi 1c2hu 1c2hü +1l2la 1l2le 1l2lo 1l2lá 1l2lé 1l2lí 1l2ló 1l2lú 1l2li 1l2lu 1l2lü +1r2ra 1r2re 1r2ro 1r2rá 1r2ré 1r2rí 1r2ró 1r2rú 1r2ri 1r2ru 1r2rü +1b2la 1b2le 1b2lo 1b2lá 1b2lé 1b2lí 1b2ló 1b2lú 1b2li 1b2lu 1b2lü +1b2ra 1b2re 1b2ro 1b2rá 1b2ré 1b2rí 1b2ró 1b2rú 1b2ri 1b2ru 1b2rü +1c2la 1c2le 1c2lo 1c2lá 1c2lé 1c2lí 1c2ló 1c2lú 1c2li 1c2lu 1c2lü +1c2ra 1c2re 1c2ro 1c2rá 1c2ré 1c2rí 1c2ró 1c2rú 1c2ri 1c2ru 1c2rü +1d2ra 1d2re 1d2ro 1d2rá 1d2ré 1d2rí 1d2ró 1d2rú 1d2ri 1d2ru 1d2rü +1f2la 1f2le 1f2lo 1f2lá 1f2lé 1f2lí 1f2ló 1f2lú 1f2li 1f2lu 1f2lü +1f2ra 1f2re 1f2ro 1f2rá 1f2ré 1f2rí 1f2ró 1f2rú 1f2ri 1f2ru 1f2rü +1g2la 1g2le 1g2lo 1g2lá 1g2lé 1g2lí 1g2ló 1g2lú 1g2li 1g2lu 1g2lü +1g2ra 1g2re 1g2ro 1g2rá 1g2ré 1g2rí 1g2ró 1g2rú 1g2ri 1g2ru 1g2rü +1k2la 1k2le 1k2lo 1k2lá 1k2lé 1k2lí 1k2ló 1k2lú 1k2li 1k2lu 1k2lü +1k2ra 1k2re 1k2ro 1k2rá 1k2ré 1k2rí 1k2ró 1k2rú 1k2ri 1k2ru 1k2rü +1p2la 1p2le 1p2lo 1p2lá 1p2lé 1p2lí 1p2ló 1p2lú 1p2li 1p2lu 1p2lü +1p2ra 1p2re 1p2ro 1p2rá 1p2ré 1p2rí 1p2ró 1p2rú 1p2ri 1p2ru 1p2rü +1t2ra 1t2re 1t2ro 1t2rá 1t2ré 1t2rí 1t2ró 1t2rú 1t2ri 1t2ru 1t2rü -b1h d1h f1h g1h j1h k1h l1h m1h n1h p1h q1h r1h s1h t1h v1h w1h x1h y1h z1h ñ1h +b1h d1h f1h g1h j1h k1h l1h m1h n1h p1h q1h r1h s1h t1h v1h w1h x1h y1h z1h ñ1h su2b2r su2b2l @@ -180,29 +180,29 @@ zZ -ä2y +ä2y y1a2 y1o2 o1y -ö2y +ö2y u1y2 y1u2 -ö3a2 -ö3o2 -ä3a2 -ä3o2 -ä1u2 -ö1u2 -a1ä -a1ö -o1ä -o1ö -u1ä2 -u1ö2 -ä2ä -ö2ö -ä2ö -ö2ä +ö3a2 +ö3o2 +ä3a2 +ä3o2 +ä1u2 +ö1u2 +a1ä +a1ö +o1ä +o1ö +u1ä2 +u1ö2 +ä2ä +ö2ö +ä2ö +ö2ä aa1i2 aa1e2 @@ -228,13 +228,13 @@ a1uu i1uu e1uu o1uu -ää1i -ää1e -ää3y -i1ää -e1ää -y1ää -i1öö +ää1i +ää1e +ää3y +i1ää +e1ää +y1ää +i1öö @@ -274,9 +274,9 @@ uo1a uo1u -e1ö2 -ö1e2 -.ä2 +e1ö2 +ö1e2 +.ä2 diff --git a/hyph/src/main/resources/com/itextpdf/hyph/fr.xml b/hyph/src/main/resources/com/itextpdf/hyph/fr.xml index e30d5605e7..570dc429b9 100644 --- a/hyph/src/main/resources/com/itextpdf/hyph/fr.xml +++ b/hyph/src/main/resources/com/itextpdf/hyph/fr.xml @@ -1,4 +1,4 @@ - + @@ -123,11 +123,11 @@ zZ 2'2 .a4 'a4 -.â4 -'â4 - .ab3réa - 'ab3réa - a1è2dre +.â4 +'â4 + .ab3réa + 'ab3réa + a1è2dre .ae3s4ch 'ae3s4ch 1alcool @@ -136,21 +136,21 @@ zZ 'amino1a2c .ana3s4tr 'ana3s4tr - 1a2nesthési + 1a2nesthési .anti1a2 'anti1a2 .anti1e2 'anti1e2 - .anti1é2 + .anti1é2 .anti2enne 'anti2enne - 'anti1é2 + 'anti1é2 .anti1s2 'anti1s2 .apo2s3ta 'apo2s3ta apo2s3tr - archi1é2pis + archi1é2pis .as2ta 'as2ta a2s3tro @@ -160,17 +160,17 @@ zZ %==================-%======================-% %%b --> 1ba -1bâ +1bâ .bai2se3main 1be -1bé -1bè -1bê +1bé +1bè +1bê 4be. 4bes. 2bent. 1bi -1bî0 +1bî0 .bi1a2c .bi1a2t .bi1au @@ -182,13 +182,13 @@ zZ 4bles. 2blent. 1bo -1bô +1bô 1b2r 4bre. 4bres. 2brent. 1bu -1bû +1bû 1by @@ -196,21 +196,21 @@ zZ 1\cc 1ca -1câ +1câ ca3ou3t2 1ce -1cé -1cè -1cê +1cé +1cè +1cê 4ce. 4ces. 2cent. ja3cent. ac3cent. - é3cent. + é3cent. munifi3cent. - réti3cent. + réti3cent. privatdo3cent. inno3cent. es3cent. @@ -225,13 +225,13 @@ privatdo3cent. 4che. 4ches. 2chent. - .chè2vre3feuille + .chè2vre3feuille 2chg ch2l 4chle. 4chles. chlo2r3a2c - chlo2r3é2t + chlo2r3é2t 2chm 2chn 2chp @@ -242,7 +242,7 @@ ch2r 2cht 2chw 1ci -1cî0 +1cî0 .ci2s1alp 1c2k 4ck. @@ -261,7 +261,7 @@ ch2r 4cles. 2clent. 1co -1cô +1cô co1acc co1acq co1a2d @@ -271,14 +271,14 @@ ch2r co1assur co1au co1ax - co1é2 + co1é2 co1ef co1en co1ex .con4 .cons4 .contre1s2c - .contre3maî0tre + .contre3maî0tre co2nurb .co1o2 .co2o3lie @@ -287,7 +287,7 @@ ch2r 4cres. 2crent. 1cu -1cû +1cû 1cy .cul4 @@ -296,19 +296,19 @@ ch2r 1d' 1da -1dâ +1dâ .dacryo1a2 d1d2h 1de -1dé -1dè -1dê +1dé +1dè +1dê 4de. 4des. 2dent. -déca3dent. - é3dent. +déca3dent. + é3dent. cci3dent. inci3dent. confi3dent. @@ -319,53 +319,53 @@ d impu3dent. pru3dent. - .dé1a2 - .dé1io - .dé1o2 - .dé2s - + .dé1a2 + .dé1io + .dé1o2 + .dé2s + - .dé3s2a3cr - .dés2a3m - - - .dé3s2a3tell - .dé3s2astr - .dé3s2c - + .dé3s2a3cr + .dés2a3m + + + .dé3s2a3tell + .dé3s2astr + .dé3s2c + - .dé2s1é2 - .dé3s2é3gr - .dé3s2ensib - .dé3s2ert - .dé3s2exu - + .dé2s1é2 + .dé3s2é3gr + .dé3s2ensib + .dé3s2ert + .dé3s2exu + - .dé2s1i2 - .dé3s2i3d - .dé3s2i3gn - .dé3s2i3li - .dé3s2i3nen - .dé3s2invo - .dé3s2i3r - .dé3s2ist - + .dé2s1i2 + .dé3s2i3d + .dé3s2i3gn + .dé3s2i3li + .dé3s2i3nen + .dé3s2invo + .dé3s2i3r + .dé3s2ist + - .dé3s2o3dé - .dé3s2o3l - .dé3s2o3pil - .dé3s2orm - .dé3s2orp - .dé3s2oufr - .dé3s2p - .dé3s2t - .dé2s1u2n + .dé3s2o3dé + .dé3s2o3l + .dé3s2o3pil + .dé3s2orm + .dé3s2orp + .dé3s2oufr + .dé3s2p + .dé3s2t + .dé2s1u2n 3d2hal 3d2houd 1di -1dî0 +1dî0 di2s3cop - .di1a2cé + .di1a2cé .di1a2cid dia2g3n .di1ald @@ -375,14 +375,14 @@ d .di2s3h 2dlent. 1do -1dô +1dô 1d2r 4dre. 4dres. 2drent. d1s2 1du -1dû +1dû 1dy .dy2s3 .dy2s1a2 @@ -395,24 +395,24 @@ d1s2 .e4 'e4 -.ê4 -'ê4 -.é4 -'é4 -.è4 -'è4 - 1é2drie - 1é2drique - 1é2lectr - 1é2lément +.ê4 +'ê4 +.é4 +'é4 +.è4 +'è4 + 1é2drie + 1é2drique + 1é2lectr + 1é2lément .en1a2 'en1a2 - 1é2nerg + 1é2nerg e2n1i2vr .en1o2 'en1o2 - épi2s3cop - épi3s4cope + épi2s3cop + épi3s4cope e2s3cop .eu2r1a2 'eu2r1a2 @@ -425,46 +425,46 @@ d1s2 1fa -1fâ +1fâ 1fe -1fé -1fè -1fê +1fé +1fè +1fê 4fe. 4fes. 2fent. 1fi -1fî0 +1fî0 1f2l 4fle. 4fles. 2flent. 1fo -1fô +1fô 1f2r 4fre. 4fres. 2frent. f1s2 1fu -1fû +1fû 1fy 1ga -1gâ +1gâ 1ge -1gé -1gè -1gê +1gé +1gè +1gê 4ge. 4ges. 2gent. - ré3gent. + ré3gent. entre3gent. indi3gent. dili3gent. @@ -477,7 +477,7 @@ intelli3gent. 'ar3gent. ser3gent. ter3gent. -résur3gent. +résur3gent. 1g2ha 1g2he @@ -485,7 +485,7 @@ r 1g2ho 1g2hy 1gi -1gî0 +1gî0 1g2l 4gle. 4gles. @@ -497,13 +497,13 @@ r 4gnes. 2gnent. 1go -1gô +1gô 1g2r 4gre. 4gres. 2grent. 1gu -1gû +1gû g1s2 4gue. 4gues. @@ -518,25 +518,25 @@ g1s2 1ha -1hâ +1hâ 1he -1hé -1hè -1hê - hémi1é - hémo1p2t +1hé +1hè +1hê + hémi1é + hémo1p2t 4he. 4hes. 1hi -1hî0 +1hî0 1ho -1hô +1hô 1hu -1hû +1hû 1hy hypera2 hypere2 - hyperé2 + hyperé2 hyperi2 hypero2 hypers2 @@ -544,7 +544,7 @@ g1s2 hyperu2 hypo1a2 hypo1e2 - hypo1é2 + hypo1é2 hypo1i2 hypo1o2 hypo1s2 @@ -555,11 +555,11 @@ g1s2 .i4 'i4 -.î4 -'î4 +.î4 +'î4 i1algi i1arthr - i1è2dre + i1è2dre il2l cil3l @@ -572,7 +572,7 @@ g1s2 l3lion mil3l mil4let -émil4l +émil4l semil4l rmil4l armil5l @@ -610,14 +610,14 @@ chevil4l 'in2augur .in1e2 'in1e2 - .in1é2 - 'in1é2 + .in1é2 + 'in1é2 .in2effab 'in2effab - .in2é3lucta - 'in2é3lucta - .in2é3narra - 'in2é3narra + .in2é3lucta + 'in2é3lucta + .in2é3narra + 'in2é3narra .in2ept 'in2ept .in2er @@ -645,8 +645,8 @@ chevil4l 'intera2 .intere2 'intere2 - .interé2 - 'interé2 + .interé2 + 'interé2 .interi2 'interi2 .intero2 @@ -673,17 +673,17 @@ chevil4l 2jk 4je. 4jes. -2jent. +2jent. 1ka -1kâ +1kâ 1ke -1ké -1kè -1kê +1ké +1kè +1kê 4ke. 4kes. 2kent. @@ -691,32 +691,32 @@ chevil4l 4kh. .kh4 1ki -1kî0 +1kî0 1ko -1kô +1kô 1k2r 1ku -1kû +1kû 1ky 1la -1lâ -1là +1lâ +1là la2w3re 1le -1lé -1lè -1lê +1lé +1lè +1lê 4le. 4les. 2lent. .ta3lent. iva3lent. -équiva4lent. +équiva4lent. monova3lent. polyva3lent. re3lent. @@ -725,7 +725,7 @@ chevil4l inso3lent. turbu3lent. succu3lent. - fécu3lent. + fécu3lent. trucu3lent. opu3lent. corpu3lent. @@ -733,24 +733,24 @@ chevil4l sporu4lent. 1li -1lî0 +1lî0 1lo -1lô +1lô l1s2t 1lu -1lû +1lû 1ly 1ma -1mâ +1mâ .ma2c3k .macro1s2c .ma2l1a2dres .ma2l1a2dro - .ma2l1aisé + .ma2l1aisé .ma2l1ap .ma2l1a2v .ma2l1en @@ -759,46 +759,46 @@ l1s2t .ma2l1o2d .ma2r1x 1me -1mé -1mè -1mê - .mé2g1oh - .mé2sa - .mé3san - .mé2s1es - .mé2s1i - .mé2s1u2s - .méta1s2ta +1mé +1mè +1mê + .mé2g1oh + .mé2sa + .mé3san + .mé2s1es + .mé2s1i + .mé2s1u2s + .méta1s2ta 4me. 4mes. - â2ment. + â2ment. da2ment. fa2ment. amalga2ment. cla2ment. ra2ment. -tempéra3ment. +tempéra3ment. ta2ment. testa3ment. qua2ment. - è2ment. - carê2ment. + è2ment. + carê2ment. diaphrag2ment. ryth2ment. ai2ment. rai3ment. - abî2ment. - éci2ment. + abî2ment. + éci2ment. vidi2ment. subli2ment. - éli2ment. + éli2ment. reli2ment. mi2ment. ani2ment. veni2ment. ri2ment. - détri3ment. + détri3ment. nutri3ment. inti2ment. esti2ment. @@ -808,7 +808,7 @@ temp .gem2ment. om2ment. .com3ment. - ô2ment. + ô2ment. slalo2ment. chro2ment. to2ment. @@ -821,7 +821,7 @@ temp or2ment. as2ment. au2ment. - écu2ment. + écu2ment. fu2ment. hu2ment. fichu3ment. @@ -833,60 +833,60 @@ temp tu2ment. 1mi -1mî0 +1mî0 .milli1am - 1m2némo - 1m2nès - 1m2nési + 1m2némo + 1m2nès + 1m2nési 1mo -1mô +1mô .mono1a2 .mono1e2 - .mono1é2 + .mono1é2 .mono1i2 - .mono1ï2dé + .mono1ï2dé .mono1o2 .mono1u2 .mono1s2 - mon2t3réal + mon2t3réal m1s2 1mu -1mû +1mû 1my - moye2n1â2g + moye2n1â2g 1na -1nâ +1nâ 1ne -1né -1nè -1nê +1né +1nè +1nê 4ne. 4nes. 2nent. - réma3nent. + réma3nent. imma3nent. perma3nent. - .émi3nent. -préémi3nent. - proémi3nent. - surémi3nent. + .émi3nent. +préémi3nent. + proémi3nent. + surémi3nent. immi3nent. conti3nent. perti3nent. absti3nent. 1ni -1nî0 +1nî0 1no -1nô +1nô .no2n1obs 1nu -1nû +1nû n3s2at. n3s2ats. n1x @@ -897,19 +897,19 @@ n1x .o4 'o4 -'ô4 -.ô4 +'ô4 +.ô4 o2b3long 1octet o1d2l - o1è2dre + o1è2dre o1ioni ombud2s3 omni1s2 o1s2tas o1s2tat - o1s2téro + o1s2téro o1s2tim o1s2tom o1s2trad @@ -925,22 +925,22 @@ n1x 1pa -1pâ - paléo1é2 +1pâ + paléo1é2 .pa2n1a2f - .pa2n1a2mé + .pa2n1a2mé .pa2n1a2ra .pa2n1is .pa2n1o2ph .pa2n1opt .pa2r1a2che - .pa2r1a2chè + .pa2r1a2chè .para1s2 - .pa2r3hé + .pa2r3hé 1pe -1pé -1pè -1pê +1pé +1pè +1pê 4pe. 4pes. @@ -952,20 +952,20 @@ ser3pent. .pen2ta per3h - pé2nul + pé2nul .pe4r .per1a2 .per1e2 - .per1é2 + .per1é2 .per1i2 .per1o2 .per1u2 - pé1r2é2q - .péri1os - .péri1s2 - .péri2s3s - .péri2s3ta - .péri1u2 + pé1r2é2q + .péri1os + .péri1s2 + .péri2s3s + .péri2s3ta + .péri1u2 1p2h .ph4 4ph. @@ -983,27 +983,27 @@ ph2r 4phres. 2phs 2pht - 3ph2talé + 3ph2talé 3ph2tis 1pi -1pî0 +1pî0 1p2l 4ple. 4ples. 2plent. .pluri1a - 1p2né + 1p2né 1p2neu 1po -1pô +1pô po1astre poly1a2 poly1e2 - poly1é2 - poly1è2 + poly1é2 + poly1è2 poly1i2 poly1o2 poly1s2 @@ -1018,26 +1018,26 @@ ph2r 4pre. 4pres. 2prent. - .pré1a2 - .pré2a3la - .pré2au - .pré1é2 - .pré1e2 - .pré1i2 - .pré1o2 - .pré1u2 - .pré1s2 - .pro1é2 - .pro1s2cé + .pré1a2 + .pré2a3la + .pré2au + .pré1é2 + .pré1e2 + .pré1i2 + .pré1o2 + .pré1u2 + .pré1s2 + .pro1é2 + .pro1s2cé pro2s3tat .prou3d2h 1p2sych .psycho1a2n - 1p2tèr - 1p2tér + 1p2tèr + 1p2tér 1pu .pud1d2l -1pû +1pû 1py @@ -1048,33 +1048,33 @@ ph2r 4ques. 2quent. - é3quent. - élo3quent. + é3quent. + élo3quent. grandilo3quent. 1ra -1râ +1râ radio1a2 1re -1ré -1rè -1rê - .ré1a2 - .ré2a3le - .ré2a3lis - .ré2a3lit - .ré2aux - .ré1é2 - .ré1e2 - .ré2el - .ré2er - .ré2èr - .ré1i2 - .ré2i3fi - .ré1o2 +1ré +1rè +1rê + .ré1a2 + .ré2a3le + .ré2a3lis + .ré2a3lit + .ré2aux + .ré1é2 + .ré1e2 + .ré2el + .ré2er + .ré2èr + .ré1i2 + .ré2i3fi + .ré1o2 .re1s2 .re2s3cap .re2s3cisi @@ -1092,8 +1092,8 @@ grandilo3quent. .re3s4tag .re3s4tand .re3s4tat - .re3s4tén - .re3s4tér + .re3s4tén + .re3s4tér .re3s4tim .re3s4tip .re3s4toc @@ -1104,18 +1104,18 @@ grandilo3quent. .re4s5trin .re3s4tu .re3s4ty - .réu2 - - .ré2uss - .rétro1a2 + .réu2 + + .ré2uss + .rétro1a2 4re. 4res. - 2rent. + 2rent. .pa3rent. appa3rent. transpa3rent. - é3rent. + é3rent. tor3rent. cur3rent. @@ -1125,25 +1125,25 @@ transpa3rent. 2r3heur 2r3hydr 1ri -1rî0 +1rî0 1ro -1rô +1rô 1ru -1rû +1rû 1ry 1sa -1sâ +1sâ .sch4 1s2caph - 1s2clér + 1s2clér 1s2cop 1s2ch e2s3ch -i2s3ché +i2s3ché i2s3chia i2s3chio 4sch. @@ -1151,16 +1151,16 @@ i2s3chio 4sches. 2schs 1se -1sé -1sè -1sê +1sé +1sè +1sê sesqui1a2 4se. 4ses. 2sent. ab3sent. -pré3sent. +pré3sent. .res3sent. .seu2le @@ -1175,21 +1175,21 @@ pr 2shr 2shs 1si -1sî0 +1sî0 1s2lav 1s2lov 1so -1sô +1sô 1s2patia 1s2perm 1s2por - 1s2phèr - 1s2phér + 1s2phèr + 1s2phér 1s2piel 1s2piros 1s2tandard 1s2tein - stéréo1s2 + stéréo1s2 1s2tigm 1s2tock 1s2tomos @@ -1197,11 +1197,11 @@ pr 1s2tructu 1s2tyle 1su -1sû +1sû .su2b1a2 .su3b2alt - .su2b1é2 - .su3b2é3r + .su2b1é2 + .su3b2é3r .su2b1in .su2b3limin .su2b3lin @@ -1218,7 +1218,7 @@ pr .su3r2eau .su3r2ell .su3r2et - .su2r1é2 + .su2r1é2 .su2r3h .su2r1i2m .su2r1inf @@ -1231,31 +1231,31 @@ pr 1ta -1tâ -1tà +1tâ +1tà tachy1a2 tchin3t2 1te -1té -1tè -1tê - télé1e2 - télé1i2 - télé1o2b - télé1o2p - télé1s2 +1té +1tè +1tê + télé1e2 + télé1i2 + télé1o2b + télé1o2p + télé1s2 4te. 4tes. 2tent. .la3tent. .pa3tent. - compé3tent. - éni3tent. - mécon3tent. + compé3tent. + éni3tent. + mécon3tent. omnipo3tent. ventripo3tent. -équipo3tent. +équipo3tent. impo3tent. mit3tent. @@ -1274,9 +1274,9 @@ th2r 4thres. 2ths 1ti -1tî0 +1tî0 1to -1tô +1tô 1t2r tran2s1a2 tran3s2act @@ -1294,7 +1294,7 @@ th2r .tri1o2n t1t2l 1tu -1tû +1tû tung2s3 1ty @@ -1303,8 +1303,8 @@ tung2s3 .u4 'u4 -.û4 -'û4 +.û4 +'û4 uni1o2v uni1a2x u2s3tr @@ -1313,12 +1313,12 @@ tung2s3 1va -1vâ +1vâ 1ve -1vé -1vè -1vê - vélo1s2ki +1vé +1vè +1vê + vélo1s2ki 4ve. 4ves. @@ -1327,16 +1327,16 @@ conni3vent. .sou3vent. 1vi -1vî0 +1vî0 1vo -1vô +1vô vol2t1amp 1v2r 4vre. 4vres. 2vrent. 1vu -1vû +1vû 1vy @@ -1371,8 +1371,8 @@ conni3vent. 1za 1ze -1zé -1zè +1zé +1zè 4ze. 4zes. diff --git a/hyph/src/main/resources/com/itextpdf/hyph/hu.xml b/hyph/src/main/resources/com/itextpdf/hyph/hu.xml index 3766ac1a1b..1422343aba 100644 --- a/hyph/src/main/resources/com/itextpdf/hyph/hu.xml +++ b/hyph/src/main/resources/com/itextpdf/hyph/hu.xml @@ -1,9 +1,9 @@ - + - + aA @@ -11,30 +11,30 @@ bB cC dD eE -éÉ +éÉ fF gG hH iI -íÍ +íà jJ kK lL mM nN oO -óÓ -öÖ -õÕ +óÓ +öÖ +Å‘Å pP qQ rR sS tT uU -úÚ -üÜ -üÛ +úÚ +üÜ +üŰ vV wW xX @@ -71,8 +71,8 @@ zZ % dctexfo < dchuhyph.cwi > dchuhyph.t1 % to create DCHUHYPH.T1). % -% MHSz10 = A Magyar Helyesírás Szab 10. kiad. -% MHSz10 p.8-9. földolgozatlan +% MHSz10 = A Magyar Helyesírás Szab 10. kiad. +% MHSz10 p.8-9. földolgozatlan --> 1ba -1bá +1bá 1be -1bé +1bé 1bi -1bí +1bí 1bo -1bó -1bö -1bõ +1bó +1bö +1bÅ‘ 1bu -1bú -1bü -1bû +1bú +1bü +1bű 1ca -1cá +1cá 1ce -1cé +1cé 1ci -1cí +1cí 1co -1có -1cö -1cõ +1có +1cö +1cÅ‘ 1cu -1cú -1cü -1cû +1cú +1cü +1cű 1csa -1csá +1csá 1cse -1csé +1csé 1csi -1csí +1csí 1cso -1csó -1csö -1csõ +1csó +1csö +1csÅ‘ 1csu -1csú -1csü -1csû +1csú +1csü +1csű 1csy 1cha -1chá +1chá 1che -1ché +1ché 1chi -1chí +1chí 1cho -1chó -1chö -1chõ +1chó +1chö +1chÅ‘ 1chu -1chú -1chü -1chû +1chú +1chü +1chű 1da -1dá +1dá 1de -1dé +1dé 1di -1dí +1dí 1do -1dó -1dö -1dõ +1dó +1dö +1dÅ‘ 1du -1dú -1dü -1dû +1dú +1dü +1dű 1dza -1dzá +1dzá 1dze -1dzé +1dzé 1dzi -1dzí +1dzí 1dzo -1dzó -1dzö -1dzõ +1dzó +1dzö +1dzÅ‘ 1dzu -1dzú -1dzü -1dzû +1dzú +1dzü +1dzű 1dzsa -1dzsá +1dzsá 1dzse -1dzsé +1dzsé 1dzsi -1dzsí +1dzsí 1dzso -1dzsó -1dzsö -1dzsõ +1dzsó +1dzsö +1dzsÅ‘ 1dzsu -1dzsú -1dzsü -1dzsû +1dzsú +1dzsü +1dzsű 1fa -1fá +1fá 1fe -1fé +1fé 1fi -1fí +1fí 1fo -1fó -1fö -1fõ +1fó +1fö +1fÅ‘ 1fu -1fú -1fü -1fû +1fú +1fü +1fű 1ga -1gá +1gá 1ge -1gé +1gé 1gi -1gí +1gí 1go -1gó -1gö -1gõ +1gó +1gö +1gÅ‘ 1gu -1gú -1gü -1gû +1gú +1gü +1gű 1gya -1gyá +1gyá 1gye -1gyé +1gyé 1gyi -1gyí +1gyí 1gyo -1gyó -1gyö -1gyõ +1gyó +1gyö +1gyÅ‘ 1gyu -1gyú -1gyü -1gyû +1gyú +1gyü +1gyű 1ha -1há +1há 1he -1hé +1hé 1hi -1hí +1hí 1ho -1hó -1hö -1hõ +1hó +1hö +1hÅ‘ 1hu -1hú -1hü -1hû +1hú +1hü +1hű 1ja -1já +1já 1je -1jé +1jé 1ji -1jí +1jí 1jo -1jó -1jö -1jõ +1jó +1jö +1jÅ‘ 1ju -1jú -1jü -1jû +1jú +1jü +1jű 1ka -1ká +1ká 1ke -1ké +1ké 1ki -1kí +1kí 1ko -1kó -1kö -1kõ +1kó +1kö +1kÅ‘ 1ku -1kú -1kü -1kû +1kú +1kü +1kű 1la -1lá +1lá 1le -1lé +1lé 1li -1lí +1lí 1lo -1ló -1lö -1lõ +1ló +1lö +1lÅ‘ 1lu -1lú -1lü -1lû +1lú +1lü +1lű 1lya -1lyá +1lyá 1lye -1lyé +1lyé 1lyi -1lyí +1lyí 1lyo -1lyó -1lyö -1lyõ +1lyó +1lyö +1lyÅ‘ 1lyu -1lyú -1lyü -1lyû +1lyú +1lyü +1lyű 1ma -1má +1má 1me -1mé +1mé 1mi -1mí +1mí 1mo -1mó -1mö -1mõ +1mó +1mö +1mÅ‘ 1mu -1mú -1mü -1mû +1mú +1mü +1mű 1na -1ná +1ná 1ne -1né +1né 1ni -1ní +1ní 1no -1nó -1nö -1nõ +1nó +1nö +1nÅ‘ 1nu -1nú -1nü -1nû +1nú +1nü +1nű 1nya -1nyá +1nyá 1nye -1nyé +1nyé 1nyi -1nyí +1nyí 1nyo -1nyó -1nyö -1nyõ +1nyó +1nyö +1nyÅ‘ 1nyu -1nyú -1nyü -1nyû +1nyú +1nyü +1nyű 1pa -1pá +1pá 1pe -1pé +1pé 1pi -1pí +1pí 1po -1pó -1pö -1põ +1pó +1pö +1pÅ‘ 1pu -1pú -1pü -1pû +1pú +1pü +1pű 1qa -1qá +1qá 1qe -1qé +1qé 1qi -1qí +1qí 1qo -1qó -1qö -1qõ +1qó +1qö +1qÅ‘ 1qu2 -1qú -1qü -1qû +1qú +1qü +1qű 1ra -1rá +1rá 1re -1ré +1ré 1ri -1rí +1rí 1ro -1ró -1rö -1rõ +1ró +1rö +1rÅ‘ 1ru -1rú -1rü -1rû +1rú +1rü +1rű 1ry 1sa -1sá +1sá 1se -1sé +1sé 1si -1sí +1sí 1so -1só -1sö -1sõ +1só +1sö +1sÅ‘ 1su -1sú -1sü -1sû +1sú +1sü +1sű 1sza -1szá +1szá 1sze -1szé +1szé 1szi -1szí +1szí 1szo -1szó -1szö -1szõ +1szó +1szö +1szÅ‘ 1szu -1szú -1szü -1szû +1szú +1szü +1szű 1ta -1tá +1tá 1te -1té +1té 1ti -1tí +1tí 1to -1tó -1tö -1tõ +1tó +1tö +1tÅ‘ 1tu -1tú -1tü -1tû +1tú +1tü +1tű 1tya -1tyá +1tyá 1tye -1tyé +1tyé 1tyi -1tyí +1tyí 1tyo -1tyó -1työ -1tyõ +1tyó +1työ +1tyÅ‘ 1tyu -1tyú -1tyü -1tyû +1tyú +1tyü +1tyű 1va -1vá +1vá 1ve -1vé +1vé 1vi -1ví +1ví 1vo -1vó -1vö -1võ +1vó +1vö +1vÅ‘ 1vu -1vú -1vü -1vû +1vú +1vü +1vű 1wa -1wá +1wá 1we -1wé +1wé 1wi -1wí +1wí 1wo -1wó -1wö -1wõ +1wó +1wö +1wÅ‘ 1wu -1wú -1wü -1wû +1wú +1wü +1wű 1xa -1xá +1xá 1xe -1xé +1xé 1xi -1xí +1xí 1xo -1xó -1xö -1xõ +1xó +1xö +1xÅ‘ 1xu -1xú -1xü -1xû +1xú +1xü +1xű 1za -1zá +1zá 1ze -1zé +1zé 1zi -1zí +1zí 1zo -1zó -1zö -1zõ +1zó +1zö +1zÅ‘ 1zu -1zú -1zü -1zû +1zú +1zü +1zű 1zsa -1zsá +1zsá 1zse -1zsé +1zsé 1zsi -1zsí +1zsí 1zso -1zsó -1zsö -1zsõ +1zsó +1zsö +1zsÅ‘ 1zsu -1zsú -1zsü -1zsû +1zsú +1zsü +1zsű a1a -a1á +a1á a1e -a1é +a1é a1i -a1í +a1í a1o -a1ó -a1ö -a1õ +a1ó +a1ö +a1Å‘ a1u -a1ú -a1ü -a1û -á1a -á1á -á1e -á1é -á1i -á1í -á1o -á1ó -á1ö -á1õ -á1u -á1ú -á1ü -á1û +a1ú +a1ü +a1ű +á1a +á1á +á1e +á1é +á1i +á1í +á1o +á1ó +á1ö +á1Å‘ +á1u +á1ú +á1ü +á1ű e1a -e1á +e1á e1e -e1é +e1é e1i -e1í +e1í e1o -e1ó -e1ö -e1õ +e1ó +e1ö +e1Å‘ e1u -e1ú -e1ü -e1û -é1a -é1á -é1e -é1é -é1i -é1í -é1o -é1ó -é1ö -é1õ -é1u -é1ú -é1ü -é1û +e1ú +e1ü +e1ű +é1a +é1á +é1e +é1é +é1i +é1í +é1o +é1ó +é1ö +é1Å‘ +é1u +é1ú +é1ü +é1ű i1a -i1á +i1á i1e -i1é +i1é i1i -i1í +i1í i1o -i1ó -i1ö -i1õ +i1ó +i1ö +i1Å‘ i1u -i1ú -i1ü -i1û -í1a -í1á -í1e -í1é -í1i -í1í -í1o -í1ó -í1ö -í1õ -í1u -í1ú -í1ü -í1û +i1ú +i1ü +i1ű +í1a +í1á +í1e +í1é +í1i +í1í +í1o +í1ó +í1ö +í1Å‘ +í1u +í1ú +í1ü +í1ű o1a -o1á +o1á o1e -o1é +o1é o1i -o1í +o1í o1o -o1ó -o1ö -o1õ +o1ó +o1ö +o1Å‘ o1u -o1ú -o1ü -o1û -ó1a -ó1á -ó1e -ó1é -ó1i -ó1í -ó1o -ó1ó -ó1ö -ó1õ -ó1u -ó1ú -ó1ü -ó1û -ö1a -ö1á -ö1e -ö1é -ö1i -ö1í -ö1o -ö1ó -ö1ö -ö1õ -ö1u -ö1ú -ö1ü -ö1û -õ1a -õ1á -õ1e -õ1é -õ1i -õ1í -õ1o -õ1ó -õ1ö -õ1õ -õ1u -õ1ú -õ1ü -õ1û +o1ú +o1ü +o1ű +ó1a +ó1á +ó1e +ó1é +ó1i +ó1í +ó1o +ó1ó +ó1ö +ó1Å‘ +ó1u +ó1ú +ó1ü +ó1ű +ö1a +ö1á +ö1e +ö1é +ö1i +ö1í +ö1o +ö1ó +ö1ö +ö1Å‘ +ö1u +ö1ú +ö1ü +ö1ű +Å‘1a +Å‘1á +Å‘1e +Å‘1é +Å‘1i +Å‘1í +Å‘1o +Å‘1ó +Å‘1ö +Å‘1Å‘ +Å‘1u +Å‘1ú +Å‘1ü +Å‘1ű u1a -u1á +u1á u1e -u1é +u1é u1i -u1í +u1í u1o -u1ó -u1ö -u1õ +u1ó +u1ö +u1Å‘ u1u -u1ú -u1ü -u1û -ú1a -ú1á -ú1e -ú1é -ú1i -ú1í -ú1o -ú1ó -ú1ö -ú1õ -ú1u -ú1ú -ú1ü -ú1û -ü1a -ü1á -ü1e -ü1é -ü1i -ü1í -ü1o -ü1ó -ü1ö -ü1õ -ü1u -ü1ú -ü1ü -ü1û -û1a -û1á -û1e -û1é -û1i -û1í -û1o -û1ó -û1ö -û1õ -û1u -û1ú -û1ü -û1û - +u1ú +u1ü +u1ű +ú1a +ú1á +ú1e +ú1é +ú1i +ú1í +ú1o +ú1ó +ú1ö +ú1Å‘ +ú1u +ú1ú +ú1ü +ú1ű +ü1a +ü1á +ü1e +ü1é +ü1i +ü1í +ü1o +ü1ó +ü1ö +ü1Å‘ +ü1u +ü1ú +ü1ü +ü1ű +ű1a +ű1á +ű1e +ű1é +ű1i +ű1í +ű1o +ű1ó +ű1ö +ű1Å‘ +ű1u +ű1ú +ű1ü +ű1ű + c2s s2z z2s @@ -715,130 +715,130 @@ l2ly n2ny t2ty -abla2k1üveg -ádá2z3ság -agy1é2r1elmesz -agyo2n1üt -akara2t1erõ +abla2k1üveg +ádá2z3ság +agy1é2r1elmesz +agyo2n1üt +akara2t1erÅ‘ .ala2p1a -.ala2p1ár -.ala2p1ér +.ala2p1ár +.ala2p1ér .ala2p1i .ala2p1okm -.ala2p1ötl -á2l1alrc -a2l1elnök +.ala2p1ötl +á2l1alrc +a2l1elnök a2l1ezredes -a2l1ispán -.álla2m1a -.álla2m1e -.álla2m1érd -.álla2m1ig -.álla2t1áll -.álla2t1egész -.álla2t1id -.álla2t1orv -.álla2t1öv -.álla2t1ért -anna2k1idején +a2l1ispán +.álla2m1a +.álla2m1e +.álla2m1érd +.álla2m1ig +.álla2t1áll +.álla2t1egész +.álla2t1id +.álla2t1orv +.álla2t1öv +.álla2t1ért +anna2k1idején anti1k2lerik -.á2r1aján -.á2r1alak +.á2r1aján +.á2r1alak .ara2ny1al -.ara2ny1ás -.ara2ny1ér. -.ara2ny1érc -.ara2ny1ére -.ara2ny1érték +.ara2ny1ás +.ara2ny1ér. +.ara2ny1érc +.ara2ny1ére +.ara2ny1érték .ara2ny1e -.ara2ny1ó -ár1apály -ár1d2rág -.á2r1e -.á3r2end -.á2r1in -ásvá2ny1olaj -.át1 -.át2alá -.át2all -.át2ok +.ara2ny1ó +ár1apály +ár1d2rág +.á2r1e +.á3r2end +.á2r1in +ásvá2ny1olaj +.át1 +.át2alá +.át2all +.át2ok .ato2m1e .a2z1 .a3z2ok .a3z2on -.az2ért -.a3z2úr -bá2j1ital +.az2ért +.a3z2úr +bá2j1ital ba2l1eset ba2l1egyenes ba2l1oldal -ban2k1ügy -be2l1ügy -bélye2g1album -.bé2r1elsz -.bé2r1em -.bete2g1á +ban2k1ügy +be2l1ügy +bélye2g1album +.bé2r1elsz +.bé2r1em +.bete2g1á b4lokkol .bor2s3sz -.bõ2r1a -.bõ2r1á -.bõ2r1e -.bõ2r1i +.bÅ‘2r1a +.bÅ‘2r1á +.bÅ‘2r1e +.bÅ‘2r1i b4rekeg -börtö2n1õr -b2rigád -bû2n1eset -bû2n1ügy -cé2l1állomás +börtö2n1Å‘r +b2rigád +bű2n1eset +bű2n1ügy +cé2l1állomás com2b1izom .csa2k1 -.csalá2d1a -csa2l1étek -cse2h1ország -cseh1sz2lovák -csen2d1élet -csen2d1õr -csú2cs1erõ -csú2cs1érték -csú2cs1idõ -dé2l1elõtt -dé2l1idõ -dé2l1után -.dí2sz1eb -.dí2sz1egy -.dí2sz1eln -.dí2sz1öl -.dí2sz1õr -.dí2sz1elõ -.dí2sz1emel -.dís2z3s -diva2t1ár -diva2t1éksz -diva2t1újdon -d2rótoz -d2rágul -d2rága -d2rágít +.csalá2d1a +csa2l1étek +cse2h1ország +cseh1sz2lovák +csen2d1élet +csen2d1Å‘r +csú2cs1erÅ‘ +csú2cs1érték +csú2cs1idÅ‘ +dé2l1elÅ‘tt +dé2l1idÅ‘ +dé2l1után +.dí2sz1eb +.dí2sz1egy +.dí2sz1eln +.dí2sz1öl +.dí2sz1Å‘r +.dí2sz1elÅ‘ +.dí2sz1emel +.dís2z3s +diva2t1ár +diva2t1éksz +diva2t1újdon +d2rótoz +d2rágul +d2rága +d2rágít d4rukkol -.éde2s1a -.éde2s1ip -egés2z3ség -egészsé2g1ügy +.éde2s1a +.éde2s1ip +egés2z3ség +egészsé2g1ügy .egy1 .egy2ek .egy2etek -.egy2ünk -.egy2étek +.egy2ünk +.egy2étek .egy2enek -.egy2ért -.egy2éb +.egy2ért +.egy2éb .egy2eb .egy2e2d1 .egye3d2i -.egye3d2ü2l1 -.egyedü3l2i +.egye3d2ü2l1 +.egyedü3l2i .egy2el. -.egy2én +.egy2én .egy2e2n1 .egye3n2es .egye3n2etlen @@ -846,163 +846,163 @@ eg .egy2e3t2em .egy2e2t1 .egy2ez -.egyez3ség -.egyhá2z1atya -.egyhá2z1e +.egyez3ség +.egyhá2z1atya +.egyhá2z1e .egy2id .egy2ik .egy2iptom -egymá2s1után +egymá2s1után egysze2r1egy -.egy2üt2t1 -.együt3t2es -éh1ínség +.egy2üt2t1 +.együt3t2es +éh1ínség .el1 .elb2lic .el2e -.el2é +.el2é .el3egyenget .el3ejt -.el3él -.el3ért -élelmisze2r1ad -élelmisze2r1ip +.el3él +.el3ért +élelmisze2r1ad +élelmisze2r1ip .el3emel -.el3emészt +.el3emészt .el3enged -.el3enyész +.el3enyész .el3eped -.el3ér +.el3ér .el3er .el3es -.el4eség +.el4eség .el3evez -.el3évül -.éle2t1a -.éle2t1elv -.éle2t1er -.éle2t1érz -.éle2t1év -.éle2t1i -.éle2t1í -.éle2t1ö -.éle2t1u -.éle2t1út +.el3évül +.éle2t1a +.éle2t1elv +.éle2t1er +.éle2t1érz +.éle2t1év +.éle2t1i +.éle2t1í +.éle2t1ö +.éle2t1u +.éle2t1út el2it .el3itt -.el4ittõl +.el4ittÅ‘l .el2iz .elle2n1 .elle3n2e .elle4n3eset -.elle3n2ére -.el2õ -.el2ö -.el3önt -.el3öreg +.elle3n2ére +.el2Å‘ +.el2ö +.el3önt +.el3öreg .el3p4r -.elsz2láv +.elsz2láv .el3t4r -.el2üls +.el2üls .el2vh .embe2r1a -.embe2r1á -.embe2r1él +.embe2r1á +.embe2r1él .embe2r1eml .embe2r1ev .embe2r1ism -.embe2r1öl -.emlé2k1érem -.emlé2k1ir -.emlé2k1ünn -.ép2p1 -.ép3p2en -.ér2c1önt -.érde2k1ellen -erõ2s1áram -.érté2k1áll -.érté2k1elmé -.érté2k1ítél -es2t1ebéd -ész1ellenes +.embe2r1öl +.emlé2k1érem +.emlé2k1ir +.emlé2k1ünn +.ép2p1 +.ép3p2en +.ér2c1önt +.érde2k1ellen +erÅ‘2s1áram +.érté2k1áll +.érté2k1elmé +.érté2k1ítél +es2t1ebéd +ész1ellenes .ez1 .ez2ek .ez2en ez2e2r1 -eze3r2ért -.ez2ért -.ezre2d1év +eze3r2ért +.ez2ért +.ezre2d1év .ezre2d1orvos -.ez2üst -.ezüs2t1ár -.ezüs2t1érc -fa2gy1álló -fa2gy1érzék -fagylal2t1ár -fa2j1elmélet -.fa2j1üld -farka2s1éh +.ez2üst +.ezüs2t1ár +.ezüs2t1érc +fa2gy1álló +fa2gy1érzék +fagylal2t1ár +fa2j1elmélet +.fa2j1üld +farka2s1éh farka2s1ord -fe2gy1õr +fe2gy1Å‘r fe2j1adag -feje2n1áll +feje2n1áll feje2s1ugr .fe2l1 -.fé2l1 -.fe3l2é -fe3l2ebarát -.fe4l3ébr -.fé3l2e +.fé2l1 +.fe3l2é +fe3l2ebarát +.fe4l3ébr +.fé3l2e fe3l2ed fe3l2ejt fe3l2ekezet fe3l2el -fé3l2ele2m1 -.fe4l3él +fé3l2ele2m1 +.fe4l3él .fe4l3elev -felelõssé2g1érz -fe3l2emás -.fé4l3emelet -fé3l2énk +felelÅ‘ssé2g1érz +fe3l2emás +.fé4l3emelet +fé3l2énk .fe3l2es .fe4l3esk .fe4l3esz -.fé4l3eszü +.fé4l3eszü fe3l2ett -.fé4l3év +.fé4l3év fe3l2ez .fe3l2ibe -.fé3l2ig -.fé4l3igaz3ság -fé3l2ix -felnõt2t1okt -.fé3l2õ +.fé3l2ig +.fé4l3igaz3ság +fé3l2ix +felnÅ‘t2t1okt +.fé3l2Å‘ .fel3p4r -fe3l2õl -.fe4l4ül. -.fe3l2ülb -.fe3l2ü2l1em -.fe3l2ület -.fe3l2üli -felü2l1igér -fe3l2üljár -.fe3l2ülker -.fe3l2ülm -.fe3l2üln -fe3l2ülrõl -.fe3l2ülvizs -fé2m1áru -fé2m1öntvény +fe3l2Å‘l +.fe4l4ül. +.fe3l2ülb +.fe3l2ü2l1em +.fe3l2ület +.fe3l2üli +felü2l1igér +fe3l2üljár +.fe3l2ülker +.fe3l2ülm +.fe3l2üln +fe3l2ülrÅ‘l +.fe3l2ülvizs +fé2m1áru +fé2m1öntvény .fen2n1 -.fé2ny1á -.fé2ny1erõ -.fé2ny1érzé -.fé2ny1év -.fé2ny1ív -fényké2p1alb -fére2g1irt -festé2k1ipar -fésze2k1alj +.fé2ny1á +.fé2ny1erÅ‘ +.fé2ny1érzé +.fé2ny1év +.fé2ny1ív +fényké2p1alb +fére2g1irt +festé2k1ipar +fésze2k1alj fiata2l1emb fiata2l1assz .fil2m1ip @@ -1011,266 +1011,266 @@ fil2m1oper .fin2n1ug f4lancol .fo2g1orv -folya2m1õr -.fö2l1 -.föl2d -.föl2d1a -.föl2d1éhe -.föl2d1ig -.föl2d1ín -.föl2d1o -.földe2s1úr -.fö3l2é -.fö4l3ébr -.fö4l3él -.fö3l2es -.fö4l3esk -.fö4l3esz -.föl3p4r -fö3lös -fö3l2ött -fö3l2öz -.fö3l2ibe -.fö4l4ül. -.fö3l2ülb -.fö3l2ü2l1em -.fö3l2ület -.fö3l2üli -fölü2l1igér -fö3l2üljár -.fö3l2ülker -.fö3l2ülm -.fö3l2üln -fö3l2ülrõl -.fö3l2ülvizs -.fön2n1 -f4ricskáz -f4röcsköl -fûré2sz1árú -fûsze2r1árú -fûsze2r1üzlet -galam2b1õsz -.galvá2n1á -.galvá2n1e -.gá2z1ál -.gá2z1égõ -.gá2z1el -.gá2z1olaj -.gá2z1óra -.gá2z1öml +folya2m1Å‘r +.fö2l1 +.föl2d +.föl2d1a +.föl2d1éhe +.föl2d1ig +.föl2d1ín +.föl2d1o +.földe2s1úr +.fö3l2é +.fö4l3ébr +.fö4l3él +.fö3l2es +.fö4l3esk +.fö4l3esz +.föl3p4r +fö3lös +fö3l2ött +fö3l2öz +.fö3l2ibe +.fö4l4ül. +.fö3l2ülb +.fö3l2ü2l1em +.fö3l2ület +.fö3l2üli +fölü2l1igér +fö3l2üljár +.fö3l2ülker +.fö3l2ülm +.fö3l2üln +fö3l2ülrÅ‘l +.fö3l2ülvizs +.fön2n1 +f4ricskáz +f4röcsköl +fűré2sz1árú +fűsze2r1árú +fűsze2r1üzlet +galam2b1Å‘sz +.galvá2n1á +.galvá2n1e +.gá2z1ál +.gá2z1égÅ‘ +.gá2z1el +.gá2z1olaj +.gá2z1óra +.gá2z1öml gaz2d1assz .ga2z1em -.gá2z1öngy -ga2z3ság -gá2z3számla -.gáz3sz -.gé2p1a -.gé2p1á -gé4p4elem -.gé2p1emb -.gé2p1er -.gé2p1ip -.gé2p1ír -.gé2p1olaj -gondola2t1átv +.gá2z1öngy +ga2z3ság +gá2z3számla +.gáz3sz +.gé2p1a +.gé2p1á +gé4p4elem +.gé2p1emb +.gé2p1er +.gé2p1ip +.gé2p1ír +.gé2p1olaj +gondola2t1átv gondola2t1olv -göm2b1alak -göm2b1öv -görö2g1or -.gõ2z1erõ +göm2b1alak +göm2b1öv +görö2g1or +.gÅ‘2z1erÅ‘ 1g2rafi 1g2ramm -1g2ránát -1g2ríz -gú2ny1irat -gyalo2g1áld -gyalo2g1átkelõ +1g2ránát +1g2ríz +gú2ny1irat +gyalo2g1áld +gyalo2g1átkelÅ‘ gyalo2g1ezr -gyalo2g1ösv -gyalo2g1út -.gyá2r1ép -.gyá2r1ig -.gyá2r1ip -gyarma2t1áru -.gyá2sz1es -.gyá2sz1év -.gyá2sz1ünn -.gyerme2k1á +gyalo2g1ösv +gyalo2g1út +.gyá2r1ép +.gyá2r1ig +.gyá2r1ip +gyarma2t1áru +.gyá2sz1es +.gyá2sz1év +.gyá2sz1ünn +.gyerme2k1á .gyerme2k1or -gyó2gy1erõ -gyomo2r1ég -gyomo2r1erõ +gyó2gy1erÅ‘ +gyomo2r1ég +gyomo2r1erÅ‘ gyomo2r1ideg -gyor2s1ír +gyor2s1ír gyor2s1olv -gyön2gy1él -gyümöl2cs1ár -gyümöl2cs1íz -ha2b1üst +gyön2gy1él +gyümöl2cs1ár +gyümöl2cs1íz +ha2b1üst .ha2d1ap -.ha2d1áll +.ha2d1áll .ha2d1er .ha2d1ist .ha2d1osz -.ha2d1ü -.ha2j1áp -.halá2l1es +.ha2d1ü +.ha2j1áp +.halá2l1es .ha2l1ikr -.ha2l1ív +.ha2l1ív .han2g1a -han2g1árny -.han2g1erõ -.han2g1érté +han2g1árny +.han2g1erÅ‘ +.han2g1érté .hangula2t1emb -.há2ny1ing -.haran2g1ön +.há2ny1ing +.haran2g1ön .har2c1edz -.harma2d1év +.harma2d1év .harma2d1osz -.hárma2s1ugr +.hárma2s1ugr harmin2c1 harmin3c2ad harmin3c2at harmin3c2as harmin3c2an -harmin3c2ért -háro2m1 +harmin3c2ért +háro2m1 .ha2s1izom -.ha2s1ür -.haszo2n1élv -hatá2r1á -hatá2r1ér -hatá2r1es -hatá2r1id -hatá2r1inc -hatá2r1õr -ha2t1éves +.ha2s1ür +.haszo2n1élv +hatá2r1á +hatá2r1ér +hatá2r1es +hatá2r1id +hatá2r1inc +hatá2r1Å‘r +ha2t1éves ha2t1ezer hatva2n1 hatva3n2ad hatva3n2at hatva3n2as hatva3n2an -hatva3n2ért -.háza2s1él -.há2z1épí -há2z3sor -.he2ly1õr -.hely2t1áll -.hente2s1ár -.hente2s1üz -.hé2t1 +hatva3n2ért +.háza2s1él +.há2z1épí +há2z3sor +.he2ly1Å‘r +.hely2t1áll +.hente2s1ár +.hente2s1üz +.hé2t1 hetve2n1 hetve3n2es hetve3n2ed hetve3n2et hetve3n2en -hetve3n2ért -.hí2d1ép -.hí2r1a -.hírla2p1ír -.hí2r1ügy +hetve3n2ért +.hí2d1ép +.hí2r1a +.hírla2p1ír +.hí2r1ügy hite2l1int -hite2l1ügy +hite2l1ügy hi2t1ok ho2gy1isne .hol2d1uta -holna2p1után +holna2p1után ho2l1ott -homo2k1óra -hón1alj -horgász3zsin -horo2g1üt -humo2r1érz -.hú2s1ad -.hú2s1ét -.hú2s1ip -hú2sz1év +homo2k1óra +hón1alj +horgász3zsin +horo2g1üt +humo2r1érz +.hú2s1ad +.hú2s1ét +.hú2s1ip +hú2sz1év huszo2n1 -hüvely2k1ujj +hüvely2k1ujj .ideg3gy -.ide2g1õr -.ide2g1össze +.ide2g1Å‘r +.ide2g1össze .ide2g1orv -igazsá2g1ér -igazsá3g2ért -igazsá2g1ügy +igazsá2g1ér +igazsá3g2ért +igazsá2g1ügy i2i2i in2g1ujj .ipa2r1eng .ipa2r1ig .ipa2r1is -.ipa2r1ügy -.ipa2r1ûz -.irá2ny1ad -.irá2ny1ár -.irá2ny1elv +.ipa2r1ügy +.ipa2r1űz +.irá2ny1ad +.irá2ny1ár +.irá2ny1elv .iste2n1ad -.iste2n1áld +.iste2n1áld .iste2n1igaz -ítéle2t1idõ +ítéle2t1idÅ‘ .izo2m1e -já2r1õr -játé2k1áru -játé2k1asz -játé2k1eng -.jé2g1ár -.jé2g1es -.je2gy1ár +já2r1Å‘r +játé2k1áru +játé2k1asz +játé2k1eng +.jé2g1ár +.jé2g1es +.je2gy1ár .je2gy1el .je2l1ig -jelle2m1ábr +jelle2m1ábr job2b1old .jo2g1ak .jo2g1al -.jo2g1ál +.jo2g1ál .jo2g1e -.jo2g1érv -.jo2g1igé +.jo2g1érv +.jo2g1igé .jo2g1orv .jo2g1ut -.jo2g1ügy -.jó2t1áll -káde2r1osz -kar2d1él -ka2r1ének -ká2r1eset +.jo2g1ügy +.jó2t1áll +káde2r1osz +kar2d1él +ka2r1ének +ká2r1eset ka2r1igaz -ká2r1igé +ká2r1igé ka2r1izom -ka2r1óra -ka2r1öltve -.ká2r1ör -.ké2j1érz -kenyé2r1ad -kenyé2r1ellát -kénysze2r1elad -kénysze2r1egyez -.ké2p1írás -.keré2k1a -keré2k1pár -kerékpá2r1abr -kereskedele2m1ügy +ka2r1óra +ka2r1öltve +.ká2r1ör +.ké2j1érz +kenyé2r1ad +kenyé2r1ellát +kénysze2r1elad +kénysze2r1egyez +.ké2p1írás +.keré2k1a +keré2k1pár +kerékpá2r1abr +kereskedele2m1ügy keresz2t1a -kereszté2ny1üld -keresz2t1ölt +kereszté2ny1üld +keresz2t1ölt keresz2t1utca -.keresztü2l1e +.keresztü2l1e kere2t1ante -ké2sz1áru -.ké2t1 -.ké3t2el -.ké2t1es -.ké2z1ad -.ké2z1á -.kéze2n1áll -.kézi1gr -.ké2z1ir +ké2sz1áru +.ké2t1 +.ké3t2el +.ké2t1es +.ké2z1ad +.ké2z1á +.kéze2n1áll +.kézi1gr +.ké2z1ir kilen2c1 kilen3c2ed kilen3c2ek kilen3c2et -kilen3c2ért +kilen3c2ért kilen3c2en kilen3c2es kilencve2n1 @@ -1278,203 +1278,203 @@ kilencve3n2en kilencve3n2es kilencve3n2ed kilencve3n2et -kilencve3n2ért -kilométe2r1óra +kilencve3n2ért +kilométe2r1óra .ki1p4r -.ki1pré +.ki1pré .ki1prepa -.ki1prób +.ki1prób .ki1prov -kirá2ly1ellen +kirá2ly1ellen ki2s1antant -ki2s1áruterm +ki2s1áruterm .ki2s1a .ki2s1emb .ki2s1inas .ki2s1ipar -.ki2s3szám +.ki2s3szám .ki2s3szer .ki2s1ujj .ki3t4r -k2lerikál +k2lerikál k2lerikal k2lien k2likk k2lima -k2líma +k2líma k2linika k2lub -koldus3szegény -.kó2r1isme -.kormá2ny1e -.kó2r1okoz -.ko2r1osztály -kovács3szén -kölcsö2n1ad -kölcsö2n1ügy -.köny2v1á -.köny2v1ism -.köny2v1íz -.köny2v1újdon -kö2r1irat -.kö2r1út -.kö2r1uta -.körü2l1 -.körü3l2i -.körü3l2öt -köté2l1ideg -.kö2z1ad -.kö2z1ak -.kö2z1al -.kö2z1áll -.kö2z1élelm -.kö2z1élet -közé2p1érték -közé2p1isk -közé2p1idõ -közé2p1ujj -közé2p1út -közé2p1ut -.kö2z1épül -.kö2z1érd -.kö2z1erk -.kö2z1érthet -.kö2z1érz -.kö2z1étk -.kö2z1igaz -.kö2z1int -.kö2z1ism -.kö2z1í -.kö2z1óhaj -.kö2z1o2k1irat -.kö2z1okt -köz3ség -köz3száj -.köz3sze -.köz3szo -.köz3szük -.kö2z1út -.kö2z1ügy -k4rajcár -k4rakéler -k4rákog -kristá2ly1üveg -kró2m1acél -kul2cs1állás -kulcs3szám +koldus3szegény +.kó2r1isme +.kormá2ny1e +.kó2r1okoz +.ko2r1osztály +kovács3szén +kölcsö2n1ad +kölcsö2n1ügy +.köny2v1á +.köny2v1ism +.köny2v1íz +.köny2v1újdon +kö2r1irat +.kö2r1út +.kö2r1uta +.körü2l1 +.körü3l2i +.körü3l2öt +köté2l1ideg +.kö2z1ad +.kö2z1ak +.kö2z1al +.kö2z1áll +.kö2z1élelm +.kö2z1élet +közé2p1érték +közé2p1isk +közé2p1idÅ‘ +közé2p1ujj +közé2p1út +közé2p1ut +.kö2z1épül +.kö2z1érd +.kö2z1erk +.kö2z1érthet +.kö2z1érz +.kö2z1étk +.kö2z1igaz +.kö2z1int +.kö2z1ism +.kö2z1í +.kö2z1óhaj +.kö2z1o2k1irat +.kö2z1okt +köz3ség +köz3száj +.köz3sze +.köz3szo +.köz3szük +.kö2z1út +.kö2z1ügy +k4rajcár +k4rakéler +k4rákog +kristá2ly1üveg +kró2m1acél +kul2cs1állás +kulcs3szám .kulcs3szav -kulcs3szó -kultú2r1áll -kultú2r1e -kultú2r1él -kultú2r1érték -kultú2r1i -.kú2t1á -.kú2t1os -kü2l1alak -külö2n1áll -külö2n1élés -külö2n1ír -külö2n1ítm -külö2n1óra -kü2l1ügy -k4valifikál +kulcs3szó +kultú2r1áll +kultú2r1e +kultú2r1él +kultú2r1érték +kultú2r1i +.kú2t1á +.kú2t1os +kü2l1alak +külö2n1áll +külö2n1élés +külö2n1ír +külö2n1ítm +külö2n1óra +kü2l1ügy +k4valifikál k4varcol k4vartyog -k4vaterkázik -.lá2b1ápol -lá2b1ujj -laká2s1adó -laká2s1épít -laká2s1inség -laká2s1ügy +k4vaterkázik +.lá2b1ápol +lá2b1ujj +laká2s1adó +laká2s1épít +laká2s1inség +laká2s1ügy lakato2s1inas -la2k1osztály -lán2c1ölt -lánc3szem -lán2g1elm -lán2g1ész -lán2g1eszû -látsze2r1üzlet -leá2ny1ág -leá2ny1ál -leá2ny1anya -leá2ny1i +la2k1osztály +lán2c1ölt +lánc3szem +lán2g1elm +lán2g1ész +lán2g1eszű +látsze2r1üzlet +leá2ny1ág +leá2ny1ál +leá2ny1anya +leá2ny1i .le1b4l .le3f4r .le2g1 .le3g2ek le3g2el le4g3elej -le4g3elõl -le4g3elõször -le4g3elsõ +le4g3elÅ‘l +le4g3elÅ‘ször +le4g3elsÅ‘ .le3g2end -le3g2ény -legé2ny1élet -legé2ny1ember -le3g2épel +le3g2ény +legé2ny1élet +legé2ny1ember +le3g2épel .leg3gy le3g2ombol -le3g2ombolyít -le3g2orombít +le3g2ombolyít +le3g2orombít le3g2ott -le3g2ömbölyít -le3g2örbít -le3g2örbül -le3g2ördít -le3g2ördül +le3g2ömbölyít +le3g2örbít +le3g2örbül +le3g2ördít +le3g2ördül le3g2uggol -le3g2urít +le3g2urít le3g2urul .le3g2y -.lé2g1 -.lé3g2i -.lé3g2yott -léle2k1e -léle2k1öl -lengye2l1ország +.lé2g1 +.lé3g2i +.lé3g2yott +léle2k1e +léle2k1öl +lengye2l1ország .le1p2r -.le2s1áll +.le2s1áll .le1sp2r .le1s2r .le1st2r -lé2t1érdek +lé2t1érdek let2t1orsz -levé2l1ír -leve2s3zöld +levé2l1ír +leve2s3zöld lif2t1akna -lisz2t1ár +lisz2t1ár lom2b1erd -ló1t2rágya -lovas3század -lõsze2r1után -löve2g1áll +ló1t2rágya +lovas3század +lÅ‘sze2r1után +löve2g1áll luxu2s1ad -madá2r1e -madá2r1én -madá2r1ét -madá2r1i -magá2n1óra -magá2n1út -magá2n1ügy +madá2r1e +madá2r1én +madá2r1ét +madá2r1i +magá2n1óra +magá2n1út +magá2n1ügy maga2s1ugr magya2r1ellen -magya2r1ország +magya2r1ország mak2k1eg -mangá2n1érc -márvá2ny1osz -má2s1álla -máso2d1év -máso2d1íz -matró2z3sapka -máso2d1oszt +mangá2n1érc +márvá2ny1osz +má2s1álla +máso2d1év +máso2d1íz +matró2z3sapka +máso2d1oszt .me2g1a me3g2afon -.me2g1á +.me2g1á .me2g1d2r .me2g1e -.me2g1é +.me2g1é .meg3f4r .me2g3gy meg4gy. @@ -1482,103 +1482,103 @@ meg4gy. .meg4gyel .meg4gye. .meg4gyfa -.meg4gylekvár +.meg4gylekvár .meg4gylik .meg4gypir .me2g3i -.me2g1í +.me2g1í .meg3p4r .me2g1o -.me2g1ó -.me2g1ö -.me2g1õ +.me2g1ó +.me2g1ö +.me2g1Å‘ .me2g1s2p .me2g1s2t .meg3t4r .me2g1u -.me2g1ú -.me2g1ü -.me2g1û +.me2g1ú +.me2g1ü +.me2g1ű .me4g4int -mé2g1is -mellé2k1a -mellé2k1á -mellé2k1ép -mellé2k1ér -mellé1p2r +mé2g1is +mellé2k1a +mellé2k1á +mellé2k1ép +mellé2k1ér +mellé1p2r mel2l1usz -mel2l1ür -melo1d2rá +mel2l1ür +melo1d2rá mene2t1i mene2t1osz me2ny1asszony me2nny1orsz -méreg1d2r -meré2sz3ség -mérté2k1ad -mérté2k1egység -mér2v1ad -.mé2sz1ég -.mé2sz1i -.mé2sz1o -méte2r1ár -mé2z3sör -.mé2z3sz +méreg1d2r +meré2sz3ség +mérté2k1ad +mérté2k1egység +mér2v1ad +.mé2sz1ég +.mé2sz1i +.mé2sz1o +méte2r1ár +mé2z3sör +.mé2z3sz mikro1k2lima .min2d1a .min2d1ed .min2d1egy -minde2n1ár +minde2n1ár mindene2k1el minde2n1eset -minde2n1ünnen -minde2n1ütt -minde2n1üvé +minde2n1ünnen +minde2n1ütt +minde2n1üvé .min2d1ez .min2d1in -.min2d1ö +.min2d1ö .min2d1u mine2k1ut -miniszte2r1elnök +miniszte2r1elnök min2t1egy motoros3szem munka1p2r -munká2s1á -munká2s1a -munkás1b2r -munká2s1e -munká2s1i -munká2s1oszt -munká2s1ott -munká2s1õ -munká2s3sz +munká2s1á +munká2s1a +munkás1b2r +munká2s1e +munká2s1i +munká2s1oszt +munká2s1ott +munká2s1Å‘ +munká2s3sz munka1s2t -munká2s1ú -munká2s1ü -munká2s3zubb -mû1s2topp -mû1t2rá -nádo2r1isp +munká2s1ú +munká2s1ü +munká2s3zubb +mű1s2topp +mű1t2rá +nádo2r1isp .na2gy1a -.na2gy1á +.na2gy1á .na2gy1e .na2gy1ip -.na2gy1ü -na2p1áll +.na2gy1ü +na2p1áll .na2p1e -.na2p1év -.na2p1ó -naran2cs1íz +.na2p1év +.na2p1ó +naran2cs1íz naran2cs3s -ná2sz1ágy -ná2sz1aj -ná2sz1assz -ná2sz1éj -ná2sz1ind -ná2sz1út -ná2sz1ut -nége2r1üld -.né2gy1 +ná2sz1ágy +ná2sz1aj +ná2sz1assz +ná2sz1éj +ná2sz1ind +ná2sz1út +ná2sz1ut +nége2r1üld +.né2gy1 negye2d1 negye3d2et negye3d2ek @@ -1587,784 +1587,784 @@ negye3d2en negye3d2em negye3d2ed negye3d2e. -né3gy2es -né3gy2en +né3gy2es +né3gy2en negyve2n3 negyve3n4et negyve3n4em negyve3n4ed negyve3n4e. -nehé2z1ip -nehé2z3ség -nehé2z3súly +nehé2z1ip +nehé2z3ség +nehé2z3súly .ne2m1igen -néme2t1alfö -néme2t1ország -néme2t1ell +néme2t1alfö +néme2t1ország +néme2t1ell neo1k2lassz -.né2p1a -.né2p1á -.né2p1el -.né2p1eposz -.né2p1ének -.né2p1irt -.né2p1isk -.né2p1ítél -.né2p1okt -.né2p1osz -.né2p1u -.né2v1a -né2v1elõ -né2v1utó -néze2t1elt -növé2ny1irtó -nya2k1örv -nyá2r1elõ -nyá2r1utó -.nyel2v1á +.né2p1a +.né2p1á +.né2p1el +.né2p1eposz +.né2p1ének +.né2p1irt +.né2p1isk +.né2p1ítél +.né2p1okt +.né2p1osz +.né2p1u +.né2v1a +né2v1elÅ‘ +né2v1utó +néze2t1elt +növé2ny1irtó +nya2k1örv +nyá2r1elÅ‘ +nyá2r1utó +.nyel2v1á .nyel2v1a nyel2v1eml -nyel2v1érz +nyel2v1érz .nyel2v1is .nyel2v1o -.nyel2v1ó -.nyel2v1ú -nyere2g3gyá -nyer2s1acél +.nyel2v1ó +.nyel2v1ú +nyere2g3gyá +nyer2s1acél nyer2s1any nyer2s1olaj n4ylon nyol2c1 nyol3c2a nyolc3szor -nyolc3szög +nyolc3szög nyolcva2n1 nyolcva3n2a -nyomá2s1áll -nyomdász3ság +nyomá2s1áll +nyomdász3ság nyomo2r1eny -.nyu2g1á -nyugdí2j1int -nyu2g1ellát -nyúl2t1agy -odáb2b1áll -odéb2b1áll +.nyu2g1á +nyugdí2j1int +nyu2g1ellát +nyúl2t1agy +odáb2b1áll +odéb2b1áll o2k1irat -oktatá2s1ügy -ola2j1ág -ola2j1ég +oktatá2s1ügy +ola2j1ág +ola2j1ég ola2j1ip -ola2sz1ország -olda2l1ág +ola2sz1ország +olda2l1ág olda2l1aj -olda2l1út -ólo2m1önt -ólo2m1üv +olda2l1út +ólo2m1önt +ólo2m1üv oro2sz1elle -oro2sz1ország -or2r1üreg -orszá2g1al -orszá2g1ár -orszá2g1ép -orszá2g1érd -ország3gyûl -orszá2g1út +oro2sz1ország +or2r1üreg +orszá2g1al +orszá2g1ár +orszá2g1ép +orszá2g1érd +ország3gyűl +orszá2g1út orvos3sz osto2r1ant -ostro2m1állap -osztá2ly1áll -osztá2ly1ár -osztá2ly1e -osztá2ly1érd -osztá2ly1értek -osztá2ly1i -osztá2ly1ö -osztá2ly1u -ökö2r1ist -.ö2n1ál -.ö2n1ám -ön1elég -ön1elem -ön1élet -önéle2t1ír -.ön1el -.ön1érd -.ön1erõ -.ö2n1érz -.ön1imád -.ön1ind -.ön1ism -.ön1ur -.õr1áll -.õr1angy -öre2g1any -öre2g1apa -öre2g1assz -öre2g1ember -öre2g1úr -örö2k1érv -örö2k1ifj -.örö2m1a -örö2m1érz -örö2m1est -örö2m1itt -örö2m1ujj -.õs1áll -.õs1a -õs1egyh -õs1emb -õs1er -õs1idõ -õsz1elõ -.össz1a -.össz1á -össze1p2r -össze1s2p -össz3súly -õsz1utó -.öt1 -öt2en -öt2öd -öt2ös -öt2öt -öt2ök -öt2ön -ötve2n1 -ötve3n2ed -ötve3n2et -ötve3n2ek -ötve3n2en -ötve3n2es -ötve3n2e. -ötve3n2em -õz1agancs -özve2gy1a -özve2gy1emb -padlá2s1abl -padlá2s3szoba +ostro2m1állap +osztá2ly1áll +osztá2ly1ár +osztá2ly1e +osztá2ly1érd +osztá2ly1értek +osztá2ly1i +osztá2ly1ö +osztá2ly1u +ökö2r1ist +.ö2n1ál +.ö2n1ám +ön1elég +ön1elem +ön1élet +önéle2t1ír +.ön1el +.ön1érd +.ön1erÅ‘ +.ö2n1érz +.ön1imád +.ön1ind +.ön1ism +.ön1ur +.Å‘r1áll +.Å‘r1angy +öre2g1any +öre2g1apa +öre2g1assz +öre2g1ember +öre2g1úr +örö2k1érv +örö2k1ifj +.örö2m1a +örö2m1érz +örö2m1est +örö2m1itt +örö2m1ujj +.Å‘s1áll +.Å‘s1a +Å‘s1egyh +Å‘s1emb +Å‘s1er +Å‘s1idÅ‘ +Å‘sz1elÅ‘ +.össz1a +.össz1á +össze1p2r +össze1s2p +össz3súly +Å‘sz1utó +.öt1 +öt2en +öt2öd +öt2ös +öt2öt +öt2ök +öt2ön +ötve2n1 +ötve3n2ed +ötve3n2et +ötve3n2ek +ötve3n2en +ötve3n2es +ötve3n2e. +ötve3n2em +Å‘z1agancs +özve2gy1a +özve2gy1emb +padlá2s1abl +padlá2s3szoba pamu2t1ipar -pá2n1amer -páncé2l1aut -páncé2l1ing -páncé2l1ö -papí2r1ár -papí2r1ip -papí2r1íz +pá2n1amer +páncé2l1aut +páncé2l1ing +páncé2l1ö +papí2r1ár +papí2r1ip +papí2r1íz paran2cs1ad -paran2cs1õr +paran2cs1Å‘r paran2cs1ural parasz2t1assz parasz2t1emb -páro2s1ujj -pár2t1akt -pár2t1áll -.pár2t1e -.pár2t1éle -.pár2t1érde -pár2t1értek -pár2t1ig -pár2t1irod -pár2t1isko -pár2t1okt -pár2t1uta -.pár2t1ü -pászto2r1élet -pászto2r1óra -patká2ny1irt -pecsé2t1õr -pé2k1üzlet -.pén2z1a -.pén2z1á -pén2z1egys -pén2z1éhes -pén2z1embe -pén2z1érték -pénz2es3zsák -pén2z1int -pén2z1össz -.pénz3s -pén2z1ügy -pénzü2gy1igaz -pénzü2gy1õr -pe2r1érté +páro2s1ujj +pár2t1akt +pár2t1áll +.pár2t1e +.pár2t1éle +.pár2t1érde +pár2t1értek +pár2t1ig +pár2t1irod +pár2t1isko +pár2t1okt +pár2t1uta +.pár2t1ü +pászto2r1élet +pászto2r1óra +patká2ny1irt +pecsé2t1Å‘r +pé2k1üzlet +.pén2z1a +.pén2z1á +pén2z1egys +pén2z1éhes +pén2z1embe +pén2z1érték +pénz2es3zsák +pén2z1int +pén2z1össz +.pénz3s +pén2z1ügy +pénzü2gy1igaz +pénzü2gy1Å‘r +pe2r1érté pe2r1orvos -.pe2r1új +.pe2r1új p2lagiz p2letyk p2lomba -polgá2r1õr +polgá2r1Å‘r pon2t1ered -.pó2t1a -.pó2t1ágy -.pó2t1ül +.pó2t1a +.pó2t1ágy +.pó2t1ül p4rakti p2reciz -p2recíz -p4rédál -p4rédikál -p4rémez -p4reparál -p4résel +p2recíz +p4rédál +p4rédikál +p4rémez +p4reparál +p4résel p4resszio p4rezent -p4róba -p4róbál -p4roblém -p4rodukál -p4rofitál -p4roklamál -proletá2r1áll -proletá2r1oszt +p4róba +p4róbál +p4roblém +p4rodukál +p4rofitál +p4roklamál +proletá2r1áll +proletá2r1oszt p4rolong -p4ropagál -p4roponál +p4ropagál +p4roponál p4rostit -p4rotezsál -p4rovokál -p4rüszköl +p4rotezsál +p4rovokál +p4rüszköl raj2z1eszk raj3z1aszt raj2z3sz -rá2k1okoz -rá2k1oll -raktá2r1állo -ran2g1idõs -ran2g1elsõ -reá2l1isko -regé2ny1ír -regé2ny1ir -régiség3gyüjt -ré2g1óta -rejte2k1ajtó -rejte2k1út +rá2k1okoz +rá2k1oll +raktá2r1állo +ran2g1idÅ‘s +ran2g1elsÅ‘ +reá2l1isko +regé2ny1ír +regé2ny1ir +régiség3gyüjt +ré2g1óta +rejte2k1ajtó +rejte2k1út reke2sz1izom -rekor2d1idõ -ren2d1õr -rendõ2r1áll -rendõ2r1aut -rendõ2r1õr +rekor2d1idÅ‘ +ren2d1Å‘r +rendÅ‘2r1áll +rendÅ‘2r1aut +rendÅ‘2r1Å‘r .re1p2ro -ré2sz1össz -rete2sz1áll -ré2z1edé -ré2z1üst -rezgé2s3szám -ré2z3szín +ré2sz1össz +rete2sz1áll +ré2z1edé +ré2z1üst +rezgé2s3szám +ré2z3szín ri2zs3szem roham1b2rig roha2m1oszt -roko2n1érte -romá2n1ellen +roko2n1érte +romá2n1ellen ro2m1eltak ro2ssz1indulat -rova2r1evõ +rova2r1evÅ‘ rova2r1irt -rová2s1írás +rová2s1írás ro2zs3szem -rö2p1irat -rövi2d1ár -sak2k1állás -sak2k1óra -sán2c1á -sán2c1épí -sanzo2n1ének -sárgá2s3zöld -sar2k1öv +rö2p1irat +rövi2d1ár +sak2k1állás +sak2k1óra +sán2c1á +sán2c1épí +sanzo2n1ének +sárgá2s3zöld +sar2k1öv sar2k1uta saro2k1abl -saro2k1ül +saro2k1ül sa2s1orr .sa2s3sze sa2s3szeg -.sa2v1áll +.sa2v1áll s2ch -segé2d1a -segé2d1erõ -segé2d1esz -segé2d1ige -segé2d1orv -segé2ly1a -segé2ly1á -segé2ly1egy -serté2s1o -serté2s1ó -serté2s3zsír -sí2k1idom -sí2n1aut -sí2r1ásó -sí2r1eml -sí2r1irat +segé2d1a +segé2d1erÅ‘ +segé2d1esz +segé2d1ige +segé2d1orv +segé2ly1a +segé2ly1á +segé2ly1egy +serté2s1o +serté2s1ó +serté2s3zsír +sí2k1idom +sí2n1aut +sí2r1ásó +sí2r1eml +sí2r1irat sisa2k1ellen s2kalp -s2kandál +s2kandál s2kicc .sk2r s2lukk s2makkol s2mirgli -sógo2r1aszz -so2k1értel -so2k1évi +sógo2r1aszz +so2k1értel +so2k1évi so2k1ist so2k1oldal -sonká2s3zsem -so2r1áll +sonká2s3zsem +so2r1áll so2r1emel -sor2s1üld -sö2r1ivó -sörö2s1üveg -spanyo2l1ország +sor2s1üld +sö2r1ivó +sörö2s1üveg +spanyo2l1ország s2pecial -s2peciál -s2pékel -s4pekulál +s2peciál +s2pékel +s4pekulál s2piccel -s2pórol -spor2t1ág +s2pórol +spor2t1ág spor2t1e -spor2t1élet +spor2t1élet spor2t1orv -spor2t1öltö -spor2t1õrül -spor2t1ünn +spor2t1öltö +spor2t1Å‘rül +spor2t1ünn .sp2r -s2rófol -s4tagnál -s4tatisztál -s4terilizál -stílu2s1érz -stílu2s1irány -s4tíröl +s2rófol +s4tagnál +s4tatisztál +s4terilizál +stílu2s1érz +stílu2s1irány +s4tíröl s4toppol -1st2rukt +1st2rukt .st2 st2rand -st2rapál -st2rázsál -st4réber -sugá2r1árt -sugá2r1ir -sú2ly1egys -sú2ly1emel -své2d1ország +st2rapál +st2rázsál +st4réber +sugá2r1árt +sugá2r1ir +sú2ly1egys +sú2ly1emel +své2d1ország szaba2d1egye -szaba2d1elõad +szaba2d1elÅ‘ad szaba2d1elv -szá2j1üreg +szá2j1üreg sza2k1avat sza2k1ember -sza2k1érettség -sza2k1értel -sza2k1értõ -sza2k1író +sza2k1érettség +sza2k1értel +sza2k1értÅ‘ +sza2k1író sza2k1iroda sza2k1isk sza2k1ismer -sza2k1oktatás +sza2k1oktatás sza2k1orvos -sza2k1osztály -sza2k1üzlet -szállá2s1ad -szá2m1adás -szá2m1ad -szá2m1arány -szá2m1elmélet -szá2m1oszl -szá2m1ûz -száraz3ság -szár2ny1épül +sza2k1osztály +sza2k1üzlet +szállá2s1ad +szá2m1adás +szá2m1ad +szá2m1arány +szá2m1elmélet +szá2m1oszl +szá2m1űz +száraz3ság +szár2ny1épül szarva2s1aga -százalé2k1ará -szá2z1öt -szá2z1egy -szá2z1éves -szá2z1ezer -száz3szá -száz3szo -szégye2n1érz -széjje2l1 -szeké2r1út -széke2s1egyh -szé2l1árny -.szé2l1ir -.szé2l1üt -szembe2n1áll +százalé2k1ará +szá2z1öt +szá2z1egy +szá2z1éves +szá2z1ezer +száz3szá +száz3szo +szégye2n1érz +széjje2l1 +szeké2r1út +széke2s1egyh +szé2l1árny +.szé2l1ir +.szé2l1üt +szembe2n1áll sze2m1ellen -.szemé2ly1a -sze2m1üveg -széná2s3szekér -szé2n1éget -szé2n1ellát +.szemé2ly1a +sze2m1üveg +széná2s3szekér +szé2n1éget +szé2n1ellát szen2t1atya szen2t1egyh szen2t1este -szennye2s3zsák +szennye2s3zsák szenny1ir -.szé2p1a -szé2p1érzék -szé2p1ír -szé2p1ir -szé2p1p2róza -szer2v1átül -3szerû. +.szé2p1a +szé2p1érzék +szé2p1ír +szé2p1ir +szé2p1p2róza +szer2v1átül +3szerű. szere2p1oszt szerete2t1ado -szerszá2m1acél -szerzõdé2s3sz -sze2sz1adó -sze2sz1éget -sze2sz1éleszt +szerszá2m1acél +szerzÅ‘dé2s3sz +sze2sz1adó +sze2sz1éget +sze2sz1éleszt sze2sz1ipar -.szé2t1 +.szé2t1 .sz2f szige2t1orsz -szikratá2v1ír -.szí2n1á -szí2n1arany -szí2n1érz -szí2n1ezüst -szí2n1igaz -szí2n3nyom -szí2n1s2kála +szikratá2v1ír +.szí2n1á +szí2n1arany +szí2n1érz +szí2n1ezüst +szí2n1igaz +szí2n3nyom +szí2n1s2kála szin2t1akk szin2t1anny szin2t1oly -szin2t1úgy -3színû. -szí2v1alak -szí2v1átül -szí2v1izom -szólá2s3szabad -szomszé2d1assz -szovje2t1állam +szin2t1úgy +3színű. +szí2v1alak +szí2v1átül +szí2v1izom +szólá2s3szabad +szomszé2d1assz +szovje2t1állam szovje2t1ellen szovje2t1orosz -szõrö2s3szívû -szöve2g1elem -szöve2g1ír +szÅ‘rö2s3szívű +szöve2g1elem +szöve2g1ír .sz2t .szt2r -sztráj2k1õr -szü2n1id -szû2z1anya -takarmá2ny1árpa +sztráj2k1Å‘r +szü2n1id +szű2z1anya +takarmá2ny1árpa tal2p1alatnyi -tal2p1aláv -taná2cs1ad -taná2cs1e -taná2cs1ü -tán2c3csop -tán2c1egy -tán2c1est -tán2c1ó -ta2n1év +tal2p1aláv +taná2cs1ad +taná2cs1e +taná2cs1ü +tán2c3csop +tán2c1egy +tán2c1est +tán2c1ó +ta2n1év ta2n1int tanon2c1id tanon2c1isk tanon2c1ott -ta2n1óra -ta2n1ügy -tányé2r1akna -tá2p1anyag -tapasztala2t1átad -tá2p1érték -tár2gy1isme -társadalo2m1áb -társadalo2m1ell -tár2s3szerz -tartalé2k1alap -tartalé2k1áll -tava2ly1elõtt -tá2v1ir -tá2v1ír -távira2t1s2tílus -távo2l1ugr -tá2v1úsz -tegna2p1elõtt -tehé2n1ist -tehe2r1ár +ta2n1óra +ta2n1ügy +tányé2r1akna +tá2p1anyag +tapasztala2t1átad +tá2p1érték +tár2gy1isme +társadalo2m1áb +társadalo2m1ell +tár2s3szerz +tartalé2k1alap +tartalé2k1áll +tava2ly1elÅ‘tt +tá2v1ir +tá2v1ír +távira2t1s2tílus +távo2l1ugr +tá2v1úsz +tegna2p1elÅ‘tt +tehé2n1ist +tehe2r1ár tehe2r1aut -te2j1ár -tejfele2s3száj -tejfölö2s3száj -te2j1út -.te2j1ü -tekinté2ly1uralom -telefo2n1áll +te2j1ár +tejfele2s3száj +tejfölö2s3száj +te2j1út +.te2j1ü +tekinté2ly1uralom +telefo2n1áll telefo2n1auto -telefo2n1érme -tenge2r1áram -tenge2r1öböl -teni2sz1üt -tenyé2sz1áll -tenyé2sz1idõ -tere2m1õr +telefo2n1érme +tenge2r1áram +tenge2r1öböl +teni2sz1üt +tenyé2sz1áll +tenyé2sz1idÅ‘ +tere2m1Å‘r tere2p1ism tere2p1akad -té2r1érz -té2r1isz -termé2ny1ár -termé2s1ered -természe2t1átala -természe2t1ell -természe2t1im -ter2v1elõir +té2r1érz +té2r1isz +termé2ny1ár +termé2s1ered +természe2t1átala +természe2t1ell +természe2t1im +ter2v1elÅ‘ir ter2v1oszt tes2t1alk -tes2t1ápol +tes2t1ápol tes2t1edz -tes2t1õr -tet2t1erõ +tes2t1Å‘r +tet2t1erÅ‘ texti2l1any -texti2l1ár +texti2l1ár texti2l1ipar -1thyá1ny -tífu2sz1olt -típu2s1áru -típu2s1ebéd +1thyá1ny +tífu2sz1olt +típu2s1áru +típu2s1ebéd tisztele2t1ad -tisztessé2g1érz -tisz2t1új +tisztessé2g1érz +tisz2t1új tize2n1 -.tí2z1 -.tí3z2en -.tí3z2es -tí2z3szer +.tí2z1 +.tí3z2en +.tí3z2es +tí2z3szer toalet2t1aszt -toro2ny1óra +toro2ny1óra toro2ny1ugr -tor2z3szül -továb2b1ad -továb2b1áll -töb2b1év -töb2b1ezer -töb2b1oldal -tõké2s1áll -tõké2s1oszt -töl2gy1erd -töme2g1erõ -töme2g3gy -törö2k1ország -törö2k1ül -történe2t1ír -törvé2ny1alk -törvé2ny1ell -törvé2ny1er -tör2zs1õrm -tör2zs3szám +tor2z3szül +továb2b1ad +továb2b1áll +töb2b1év +töb2b1ezer +töb2b1oldal +tÅ‘ké2s1áll +tÅ‘ké2s1oszt +töl2gy1erd +töme2g1erÅ‘ +töme2g3gy +törö2k1ország +törö2k1ül +történe2t1ír +törvé2ny1alk +törvé2ny1ell +törvé2ny1er +tör2zs1Å‘rm +tör2zs3szám t2raccsol -t2rágya -t2rágyáz -t2rakto2r1állo -t2rancsír +t2rágya +t2rágyáz +t2rakto2r1állo +t2rancsír t2ranszform t2rappol -t2récsel -t4réfál +t2récsel +t4réfál t2rombit -.t2rón -t2ró2n1örök -t2ró2n1ut -tudá2s3szomj +.t2rón +t2ró2n1örök +t2ró2n1ut +tudá2s3szomj tuda2t1alatt -tudomá2ny1egy -tú2l1ad -tú2l1árad -tú2l1él -tú2l1ér -tú2l1erõ -tú2l1expo -tú2l1old -tú2l1ór -tû2z1áll -tüzé2r1ezr -tû2z1olt -tû2z1õr -.tû2z3sz -tyú2k1ól +tudomá2ny1egy +tú2l1ad +tú2l1árad +tú2l1él +tú2l1ér +tú2l1erÅ‘ +tú2l1expo +tú2l1old +tú2l1ór +tű2z1áll +tüzé2r1ezr +tű2z1olt +tű2z1Å‘r +.tű2z3sz +tyú2k1ól .ugya2n1 -úgy1annyi -úgy1is -újon2c1állít -ujsá2g1ár -újsá2g1ír -úr1assz -utá2n3nyom -utas3száll -utász3száz -út1elág -út1épít -út1irány -ügyész3ség -üg2y1int -üg2y1ir -üg2y1oszt -.ük1a -.ük1u -ülés3szak -.ûr1állom -üve2g1a -üve2g1á -üve2g1ed -üve2g3gy -üve2g1ipa -üze2m1anyag -üzle2t1emb -üzle2t1év -va2d1áll +úgy1annyi +úgy1is +újon2c1állít +ujsá2g1ár +újsá2g1ír +úr1assz +utá2n3nyom +utas3száll +utász3száz +út1elág +út1épít +út1irány +ügyész3ség +üg2y1int +üg2y1ir +üg2y1oszt +.ük1a +.ük1u +ülés3szak +.űr1állom +üve2g1a +üve2g1á +üve2g1ed +üve2g3gy +üve2g1ipa +üze2m1anyag +üzle2t1emb +üzle2t1év +va2d1áll va2d1alm -vadá2sz1e -vadász3zs +vadá2sz1e +vadász3zs va2d1emb va2d1evez va2d1ideg -vá2d1irat -va2d1õr -vá2gy1álom +vá2d1irat +va2d1Å‘r +vá2gy1álom va2gy1is vagyo2n1ad -vagyo2n1átr -va2k1ír -vallá2s1alap -vallá2s1ell -vallá2s1okt -vallás3sz -vá2m1õr -vándo2r1út -vará2zs1er -vará2zs1i -vará2zs3sz -váro2s1aty -váro2s1épít -váro2s3sz -vá2r1õr -vá2r1úr -va2s1ágy +vagyo2n1átr +va2k1ír +vallá2s1alap +vallá2s1ell +vallá2s1okt +vallás3sz +vá2m1Å‘r +vándo2r1út +vará2zs1er +vará2zs1i +vará2zs3sz +váro2s1aty +váro2s1épít +váro2s3sz +vá2r1Å‘r +vá2r1úr +va2s1ágy va2s1aj va2s1akar -va2s1ár -va3s2árn +va2s1ár +va3s2árn va2s1ed va2s1eg -va2s1érc +va2s1érc va2s1esz va2s1olv -.va2s1ö +.va2s1ö .vas3sz va2s1utas -va2s1út -vasú2t1áll -vé2d1erõ -vé2g1akar -vé2g1áll -vé2g1el -vé3g2eláthat -vé2g1eredmény -vé2g1érv -.végi2g1 -.vé2g1í -.vé2g1ó -vé2g1össz +va2s1út +vasú2t1áll +vé2d1erÅ‘ +vé2g1akar +vé2g1áll +vé2g1el +vé3g2eláthat +vé2g1eredmény +vé2g1érv +.végi2g1 +.vé2g1í +.vé2g1ó +vé2g1össz ve2gy1elem -ve2gy1ért +ve2gy1ért ve2gy1ipar -vé2n1assz -vendé2g1ágy -vendé2g1old -vé2n1emb -.vé2r1ad -.vé2r1al -vé2r1áldoz -vé2r1áram -vé2r1á2t1öml -.vé2r1eb -vé2r1edény -vé2r1ellát -vére2s3száj -vé2r1ont -.vé2r1ö -verse2ny1autó +vé2n1assz +vendé2g1ágy +vendé2g1old +vé2n1emb +.vé2r1ad +.vé2r1al +vé2r1áldoz +vé2r1áram +vé2r1á2t1öml +.vé2r1eb +vé2r1edény +vé2r1ellát +vére2s3száj +vé2r1ont +.vé2r1ö +verse2ny1autó verse2ny1ist -verse2ny1ú +verse2ny1ú verse2ny1u -ver2s1ír +ver2s1ír ver2s3szak -vé2sz3síp -véte2l1ár -vezé2r1elv -vezé2r1eszme -vezé2r1evez -vezé2r1ezr -vezé2r1iga -vezé2r1õrn -via2sz3sárg -ví2g1oper -vilá2g1égés -vilá2g1irod -vilá2g1ismer -vilá2g1ural -vilá2g1ûr -villamos3szék -villa2ny1áram +vé2sz3síp +véte2l1ár +vezé2r1elv +vezé2r1eszme +vezé2r1evez +vezé2r1ezr +vezé2r1iga +vezé2r1Å‘rn +via2sz3sárg +ví2g1oper +vilá2g1égés +vilá2g1irod +vilá2g1ismer +vilá2g1ural +vilá2g1űr +villamos3szék +villa2ny1áram .villa2ny1e -villa2ny1égõ -villa2ny1õra +villa2ny1égÅ‘ +villa2ny1Å‘ra villa2ny1oszlop -virá2g1ágy -virá2g1álv -virá2g1ár -virá2g1erd +virá2g1ágy +virá2g1álv +virá2g1ár +virá2g1erd viszon2t1elad -vissz1ér +vissz1ér vissz1eres -vité2z3ség -ví2z1áll -.ví2z1át -ví2z1ellátás -ví2z1elnyelõ -ví2z1elvezet -ví2z1épít -ví2z1esés -ví2z1iszony -.ví2z3s - -vona2t1érk +vité2z3ség +ví2z1áll +.ví2z1át +ví2z1ellátás +ví2z1elnyelÅ‘ +ví2z1elvezet +ví2z1épít +ví2z1esés +ví2z1iszony +.ví2z3s + +vona2t1érk vona2t1ind -vörö2s1õr -zápo2r1esõ -zá2r1óra -zászló2s1úr -zu2g1ír -zu2g1irász +vörö2s1Å‘r +zápo2r1esÅ‘ +zá2r1óra +zászló2s1úr +zu2g1ír +zu2g1irász zu2g1utca -.zu2g1ü -zsá2k1utca +.zu2g1ü +zsá2k1utca zse2b1atlasz -.zsi2b1ár -zsili2p1õr -zsí2r1alkohol -zsí2r1ellát -zsoltá2r1ír +.zsi2b1ár +zsili2p1Å‘r +zsí2r1alkohol +zsí2r1ellát +zsoltá2r1ír -.á4 -.é4 -.í4 -.ó4 -.ö4 -.õ4 -.ú4 -.ü4 -.û4 -4á. -4é. -4í. -4ó. -4ö. -4õ. -4ú. -4ü. -4û. +.á4 +.é4 +.í4 +.ó4 +.ö4 +.Å‘4 +.ú4 +.ü4 +.ű4 +4á. +4é. +4í. +4ó. +4ö. +4Å‘. +4ú. +4ü. +4ű. '’′ aA -áÁ -àÀ -ãà -â +áà +àÀ +ãà +â bB cC -çÇ +çÇ dD eE -éÉ -êÊ +éÉ +êÊ fF gG hH iI -íÍ +íà jJ kK lL mM nN oO -óÓ -õÕ -ôÔ +óÓ +õÕ +ôÔ pP qQ rR sS tT uU -úÚ -üÜ +úÚ +üÜ vV wW xX @@ -139,133 +139,133 @@ pu-dla-gem - 8'8 -1ba 1bá 1bâ 1bã 1be 1bé 1bê 1bi 1bí 1bo 1bó 1bô 1bõ 1bu 1bú -1ca 1cá 1câ 1cã 1ce 1cé 1cê 1ci 1cí 1co 1có 1cô 1cõ 1cu 1cú -1ça 1çá 1çâ 1çã 1ço 1çó 1çô 1çõ 1çu 1çú -1da 1dá 1dâ 1dã 1de dbé 1dê 1di 1dí 1do 1dó 1dô 1dõ 1du 1dú -1fa 1fá 1fâ 1fã 1fe dfé 1fê 1fi 1fí 1fo 1fó 1fô 1fõ 1fu 1fú -1ga 1gá 1gâ 1gã 1ge dgé 1gê 1gi 1gí 1go 1gó 1gô 1gõ 1gu 1gú 1gü -.ha .há .hâ .he .hé .hê .hi .hí .ho .hó .hô .hu .hú .hü .hy -1ja 1já 1jâ 1jã 1je djé 1jê 1ji 1jí 1jo 1jó 1jô 1jõ 1ju 1jú -1ka 1ká 1kâ 1kã 1ke 1ké 1kê 1ki 1kí 1ko 1kó 1kô 1kõ 1ku 1kú -1la 1lá 1lâ 1lã 1le 1lé 1lê 1li 1lí 1lo 1ló 1lô 1lõ 1lu 1lú -1ma 1má 1mâ 1mã 1me 1mé 1mê 1mi 1mí 1mo 1mó 1mô 1mõ 1mu 1mú -1na 1ná 1nâ 1nã 1ne 1né 1nê 1ni 1ní 1no 1nó 1nô 1nõ 1nu 1nú -1pa 1pá 1pâ 1pã 1pe 1pé 1pê 1pi 1pí 1po 1pó 1pô 1põ 1pu 1pú -1qu 1qü -1ra 1rá 1râ 1rã 1re 1ré 1rê 1ri 1rí 1ro 1ró 1rô 1rõ 1ru 1rú -1sa 1sá 1sâ 1sã 1se 1sé 1sê 1si 1sí 1so 1só 1sô 1sõ 1su 1sú -1ta 1tá 1tâ 1tã 1te 1té 1tê 1ti 1tí 1to 1tó 1tô 1tõ 1tu 1tú -1va 1vá 1vâ 1vã 1ve 1vé 1vê 1vi 1ví 1vo 1vó 1vô 1võ 1vu 1vú -1wa 1wá 1wâ 1wã 1we 1wé 1wê 1wi 1wí 1wo 1wó 1wô 1wõ 1wu 1wú -1xa 1xá 1xâ 1xã 1xe 1xé 1xê 1xi 1xí 1xo 1xó 1xô 1xõ 1xu 1xú -1ya 1yá 1yâ 1yã 1ye 1yé 1yê 1yi 1yí 1yo 1yó 1yô 1yõ 1yu 1yú -1za 1zá 1zâ 1zã 1ze 1zé 1zê 1zi 1zí 1zo 1zó 1zô 1zõ 1zu 1zú +1ba 1bá 1bâ 1bã 1be 1bé 1bê 1bi 1bí 1bo 1bó 1bô 1bõ 1bu 1bú +1ca 1cá 1câ 1cã 1ce 1cé 1cê 1ci 1cí 1co 1có 1cô 1cõ 1cu 1cú +1ça 1çá 1çâ 1çã 1ço 1çó 1çô 1çõ 1çu 1çú +1da 1dá 1dâ 1dã 1de dbé 1dê 1di 1dí 1do 1dó 1dô 1dõ 1du 1dú +1fa 1fá 1fâ 1fã 1fe dfé 1fê 1fi 1fí 1fo 1fó 1fô 1fõ 1fu 1fú +1ga 1gá 1gâ 1gã 1ge dgé 1gê 1gi 1gí 1go 1gó 1gô 1gõ 1gu 1gú 1gü +.ha .há .hâ .he .hé .hê .hi .hí .ho .hó .hô .hu .hú .hü .hy +1ja 1já 1jâ 1jã 1je djé 1jê 1ji 1jí 1jo 1jó 1jô 1jõ 1ju 1jú +1ka 1ká 1kâ 1kã 1ke 1ké 1kê 1ki 1kí 1ko 1kó 1kô 1kõ 1ku 1kú +1la 1lá 1lâ 1lã 1le 1lé 1lê 1li 1lí 1lo 1ló 1lô 1lõ 1lu 1lú +1ma 1má 1mâ 1mã 1me 1mé 1mê 1mi 1mí 1mo 1mó 1mô 1mõ 1mu 1mú +1na 1ná 1nâ 1nã 1ne 1né 1nê 1ni 1ní 1no 1nó 1nô 1nõ 1nu 1nú +1pa 1pá 1pâ 1pã 1pe 1pé 1pê 1pi 1pí 1po 1pó 1pô 1põ 1pu 1pú +1qu 1qü +1ra 1rá 1râ 1rã 1re 1ré 1rê 1ri 1rí 1ro 1ró 1rô 1rõ 1ru 1rú +1sa 1sá 1sâ 1sã 1se 1sé 1sê 1si 1sí 1so 1só 1sô 1sõ 1su 1sú +1ta 1tá 1tâ 1tã 1te 1té 1tê 1ti 1tí 1to 1tó 1tô 1tõ 1tu 1tú +1va 1vá 1vâ 1vã 1ve 1vé 1vê 1vi 1ví 1vo 1vó 1vô 1võ 1vu 1vú +1wa 1wá 1wâ 1wã 1we 1wé 1wê 1wi 1wí 1wo 1wó 1wô 1wõ 1wu 1wú +1xa 1xá 1xâ 1xã 1xe 1xé 1xê 1xi 1xí 1xo 1xó 1xô 1xõ 1xu 1xú +1ya 1yá 1yâ 1yã 1ye 1yé 1yê 1yi 1yí 1yo 1yó 1yô 1yõ 1yu 1yú +1za 1zá 1zâ 1zã 1ze 1zé 1zê 1zi 1zí 1zo 1zó 1zô 1zõ 1zu 1zú -1c2ha 1c2há 1c2hâ 1c2hã 1c2he 1c2hé 1c2hê 1c2hi 1c2hí 1c2ho 1c2hó 1c2hô 1c2hõ 1c2hu 1c2hú -1l2ha 1l2há 1l2hâ 1l2hã 1l2he 1l2hé 1l2hê 1l2hi 1l2hí 1l2ho 1l2hó 1l2hô 1l2hõ 1l2hu 1l2hú -1n2ha 1n2há 1n2hâ 1n2hã 1n2he 1n2hé 1n2hê 1n2hi 1n2hí 1n2ho 1n2hó 1n2hô 1n2hõ 1n2hu 1n2hú +1c2ha 1c2há 1c2hâ 1c2hã 1c2he 1c2hé 1c2hê 1c2hi 1c2hí 1c2ho 1c2hó 1c2hô 1c2hõ 1c2hu 1c2hú +1l2ha 1l2há 1l2hâ 1l2hã 1l2he 1l2hé 1l2hê 1l2hi 1l2hí 1l2ho 1l2hó 1l2hô 1l2hõ 1l2hu 1l2hú +1n2ha 1n2há 1n2hâ 1n2hã 1n2he 1n2hé 1n2hê 1n2hi 1n2hí 1n2ho 1n2hó 1n2hô 1n2hõ 1n2hu 1n2hú -1b2ra 1b2rá 1b2râ 1b2rã 1b2re 1b2ré 1b2rê 1b2ri 1b2rí 1b2ro 1b2ró 1b2rô 1b2rõ 1b2ru 1b2rú -1c2ra 1c2rá 1c2râ 1c2rã 1c2re 1c2ré 1c2rê 1c2ri 1c2rí 1c2ro 1c2ró 1c2rô 1c2rõ 1c2ru 1c2rú -1d2ra 1d2rá 1d2râ 1d2rã 1d2re 1d2ré 1d2rê 1d2ri 1d2rí 1d2ro 1d2ró 1d2rô 1d2rõ 1d2ru 1d2rú -1f2ra 1f2rá 1f2râ 1f2rã 1f2re 1f2ré 1f2rê 1f2ri 1f2rí 1f2ro 1f2ró 1f2rô 1f2rõ 1f2ru 1f2rú -1g2ra 1g2rá 1g2râ 1g2rã 1g2re 1g2ré 1g2rê 1g2ri 1g2rí 1g2ro 1g2ró 1g2rô 1g2rõ 1g2ru 1g2rú -1p2ra 1p2rá 1p2râ 1p2rã 1p2re 1p2ré 1p2rê 1p2ri 1p2rí 1p2ro 1p2ró 1p2rô 1p2rõ 1p2ru 1p2rú -1t2ra 1t2rá 1t2râ 1t2rã 1t2re 1t2ré 1t2rê 1t2ri 1t2rí 1t2ro 1t2ró 1t2rô 1t2rõ 1t2ru 1t2rú -1v2ra 1v2rá 1v2râ 1v2rã 1v2re 1v2ré 1v2rê 1v2ri 1v2rí 1v2ro 1v2ró 1v2rô 1v2rõ 1v2ru 1v2rú -1b2la 1b2lá 1b2lâ 1b2lã 1b2le 1b2lé 1b2lê 1b2li 1b2lí 1b2lo 1b2ló 1b2lô 1b2lõ 1b2lu 1b2lú -1c2la 1c2lá 1c2lâ 1c2lã 1c2le 1c2lé 1c2lê 1c2li 1c2lí 1c2lo 1c2ló 1c2lô 1c2lõ 1c2lu 1c2lú -1f2la 1f2lá 1f2lâ 1f2lã 1f2le 1f2lé 1f2lê 1f2li 1f2lí 1f2lo 1f2ló 1f2lô 1f2lõ 1f2lu 1f2lú -1g2la 1g2lá 1g2lâ 1g2lã 1g2le 1g2lé 1g2lê 1g2li 1g2lí 1g2lo 1g2ló 1g2lô 1g2lõ 1g2lu 1g2lú -1p2la 1p2lá 1p2lâ 1p2lã 1p2le 1p2lé 1p2lê 1p2li 1p2lí 1p2lo 1p2ló 1p2lô 1p2lõ 1p2lu 1p2lú -1t2la 1t2lá 1t2lâ 1t2lã 1t2le 1t2lé 1t2lê 1t2li 1t2lí 1t2lo 1t2ló 1t2lô 1t2lõ 1t2lu 1t2lú +1b2ra 1b2rá 1b2râ 1b2rã 1b2re 1b2ré 1b2rê 1b2ri 1b2rí 1b2ro 1b2ró 1b2rô 1b2rõ 1b2ru 1b2rú +1c2ra 1c2rá 1c2râ 1c2rã 1c2re 1c2ré 1c2rê 1c2ri 1c2rí 1c2ro 1c2ró 1c2rô 1c2rõ 1c2ru 1c2rú +1d2ra 1d2rá 1d2râ 1d2rã 1d2re 1d2ré 1d2rê 1d2ri 1d2rí 1d2ro 1d2ró 1d2rô 1d2rõ 1d2ru 1d2rú +1f2ra 1f2rá 1f2râ 1f2rã 1f2re 1f2ré 1f2rê 1f2ri 1f2rí 1f2ro 1f2ró 1f2rô 1f2rõ 1f2ru 1f2rú +1g2ra 1g2rá 1g2râ 1g2rã 1g2re 1g2ré 1g2rê 1g2ri 1g2rí 1g2ro 1g2ró 1g2rô 1g2rõ 1g2ru 1g2rú +1p2ra 1p2rá 1p2râ 1p2rã 1p2re 1p2ré 1p2rê 1p2ri 1p2rí 1p2ro 1p2ró 1p2rô 1p2rõ 1p2ru 1p2rú +1t2ra 1t2rá 1t2râ 1t2rã 1t2re 1t2ré 1t2rê 1t2ri 1t2rí 1t2ro 1t2ró 1t2rô 1t2rõ 1t2ru 1t2rú +1v2ra 1v2rá 1v2râ 1v2rã 1v2re 1v2ré 1v2rê 1v2ri 1v2rí 1v2ro 1v2ró 1v2rô 1v2rõ 1v2ru 1v2rú +1b2la 1b2lá 1b2lâ 1b2lã 1b2le 1b2lé 1b2lê 1b2li 1b2lí 1b2lo 1b2ló 1b2lô 1b2lõ 1b2lu 1b2lú +1c2la 1c2lá 1c2lâ 1c2lã 1c2le 1c2lé 1c2lê 1c2li 1c2lí 1c2lo 1c2ló 1c2lô 1c2lõ 1c2lu 1c2lú +1f2la 1f2lá 1f2lâ 1f2lã 1f2le 1f2lé 1f2lê 1f2li 1f2lí 1f2lo 1f2ló 1f2lô 1f2lõ 1f2lu 1f2lú +1g2la 1g2lá 1g2lâ 1g2lã 1g2le 1g2lé 1g2lê 1g2li 1g2lí 1g2lo 1g2ló 1g2lô 1g2lõ 1g2lu 1g2lú +1p2la 1p2lá 1p2lâ 1p2lã 1p2le 1p2lé 1p2lê 1p2li 1p2lí 1p2lo 1p2ló 1p2lô 1p2lõ 1p2lu 1p2lú +1t2la 1t2lá 1t2lâ 1t2lã 1t2le 1t2lé 1t2lê 1t2li 1t2lí 1t2lo 1t2ló 1t2lô 1t2lõ 1t2lu 1t2lú -a1a a1á a1â a1ã a1e a1é a1ê a2i a1í a1o a1ó a1ô a1õ a2u a1ú -á1a á1e á2i á1o á2u ã1e ã2e2s ã2i ã2o ã2os -e1a e1á e1â e1ã e1e e1é e1ê e2i e1í e1o e1ó e1ô e2u e1ú é2i é1o é2u ê1e ê2i ê1o -i1a i1á i1â i1ã i1e i1é i1ê i1i i1í i1o i1ó i1ô i1õ i2u i1ú í1a í1e í1i í1o í1u -o1a o1á o1â o1ã o1e o1é o1ê o2i o3i3n2h o1í o1o o1ó o1ô o1õ o2u o1ú -ó2i ô1o õ2e -u1a u1á u1ã u1e u1é u1ê u2i u1í u1o u1ó u1ô u1u u1ú ú1a ú1e ú1i ú1o -ü2e ü2é ü2ê ü2i ü2í +a1a a1á a1â a1ã a1e a1é a1ê a2i a1í a1o a1ó a1ô a1õ a2u a1ú +á1a á1e á2i á1o á2u ã1e ã2e2s ã2i ã2o ã2os +e1a e1á e1â e1ã e1e e1é e1ê e2i e1í e1o e1ó e1ô e2u e1ú é2i é1o é2u ê1e ê2i ê1o +i1a i1á i1â i1ã i1e i1é i1ê i1i i1í i1o i1ó i1ô i1õ i2u i1ú í1a í1e í1i í1o í1u +o1a o1á o1â o1ã o1e o1é o1ê o2i o3i3n2h o1í o1o o1ó o1ô o1õ o2u o1ú +ó2i ô1o õ2e +u1a u1á u1ã u1e u1é u1ê u2i u1í u1o u1ó u1ô u1u u1ú ú1a ú1e ú1i ú1o +ü2e ü2é ü2ê ü2i ü2í -a3i2m3b a3i2n3c a3i2n3ç a3i2n3d a3i2n3f a3i2n3g a3i3nh a3i2n3j a3i2n3l +a3i2m3b a3i2n3c a3i2n3ç a3i2n3d a3i2n3f a3i2n3g a3i3nh a3i2n3j a3i2n3l a3i2n3m a3i2m3p a3i2n3q a3i2n3r a3i2n3s a3i2n3t a3i2n3v a3i2n3x a3i2n3z -a3u2m3b a3u2n3c a3u2n3ç a3u2n3d a3u2n3f a3u2n3g a3u3nh a3u2n3j a3u2n3l +a3u2m3b a3u2n3c a3u2n3ç a3u2n3d a3u2n3f a3u2n3g a3u3nh a3u2n3j a3u2n3l a3u2n3m a3u2m3p a3u2n3q a3u2n3r a3u2n3s a3u2n3t a3u2n3v a3u2n3x a3u2n3z -e3i2m3b e3i2n3c e3i2n3ç e3i2n3d e3i2n3f e3i2n3g e3i3nh e3i2n3j e3i2n3l +e3i2m3b e3i2n3c e3i2n3ç e3i2n3d e3i2n3f e3i2n3g e3i3nh e3i2n3j e3i2n3l e3i2n3m e3i2m3p e3i2n3q e3i2n3r e3i2n3s e3i2n3t e3i2n3v e3i2n3x e3i2n3z -e3u2m3b e3u2n3c e3u2n3ç e3u2n3d e3u2n3f e3u2n3g e3u3nh e3u2n3j e3u2n3l +e3u2m3b e3u2n3c e3u2n3ç e3u2n3d e3u2n3f e3u2n3g e3u3nh e3u2n3j e3u2n3l e3u2n3m e3u2m3p e3u2n3q e3u2n3r e3u2n3s e3u2n3t e3u2n3v e3u2n3x e3u2n3z -i3u2m3b i3u2n3c i3u2n3ç i3u2n3d i3u2n3f i3u2n3g i3u3nh i3u2n3j i3u2n3l +i3u2m3b i3u2n3c i3u2n3ç i3u2n3d i3u2n3f i3u2n3g i3u3nh i3u2n3j i3u2n3l i3u2n3m i3u2m3p i3u2n3q i3u2n3r i3u2n3s i3u2n3t i3u2n3v i3u2n3x i3u2n3z -o3i2m3b o3i2n3c o3i2n3ç o3i2n3d o3i2n3f o3i2n3g o3i3nh o3i2n3j o3i2n3l +o3i2m3b o3i2n3c o3i2n3ç o3i2n3d o3i2n3f o3i2n3g o3i3nh o3i2n3j o3i2n3l o3i2n3m o3i2m3p o3i2n3q o3i2n3r o3i2n3s o3i2n3t o3i2n3v o3i2n3x o3i2n3z -o3u2m3b o3u2n3c o3u2n3ç o3u2n3d o3u2n3f o3u2n3g o3u3nh o3u2n3j o3u2n3l +o3u2m3b o3u2n3c o3u2n3ç o3u2n3d o3u2n3f o3u2n3g o3u3nh o3u2n3j o3u2n3l o3u2n3m o3u2m3p o3u2n3q o3u2n3r o3u2n3s o3u2n3t o3u2n3v o3u2n3x o3u2n3z -u3i2m3b u3i2n3c u3i2n3ç u3i2n3d u3i2n3f u3i2n3g u3i3nh u3i2n3j u3i2n3l +u3i2m3b u3i2n3c u3i2n3ç u3i2n3d u3i2n3f u3i2n3g u3i3nh u3i2n3j u3i2n3l u3i2n3m u3i2m3p u3i2n3q u3i2n3r u3i2n3s u3i2n3t u3i2n3v u3i2n3x u3i2n3z a3ir. a3i2r3d a3i2r3m a3i2r3t e3ir. e3i2r3d e3i2r3m e3i2r3t u3ir. u3i2r3d u3i2r3m u3i2r3t - -g2u2a g2u2á g2u2â g2u2e g2ü2e g2u2ê g2ü2ê g2u2i g2ü2i g2u2o -q2u2a q2u2á q2u2â q2u2e q2ü2e q2u2ê q2ü2ê q2u2i q2ü2i q2u2o + +g2u2a g2u2á g2u2â g2u2e g2ü2e g2u2ê g2ü2ê g2u2i g2ü2i g2u2o +q2u2a q2u2á q2u2â q2u2e q2ü2e q2u2ê q2ü2ê q2u2i q2ü2i q2u2o -a2i3u a2i3ú a3i4u. a3o3e -a2u3a a2u3á a2u3ã a3u2e a2u3e2n a2u3é a2u3ê a2u3i a2u3í a2u3o a2u3ó a2u3ô -e2i3a e2i3á e2i3ã e2i3an e2i3e e2i3é e2i3ê e2i3en e2i3o e2i3ó e2i3ô e2i3on -e2i3u e2i3ú e2u3a e2u3á e2u3ã e2u3an e3u2e e2u3é e2u3ê e2u3en e2u3i e2u3í -e2u3in e2u3o e2u3ó e2u3ô e2u3on -i3u2a i2u3á i2u3â i2u3ã i2u3an i3u2e i2u3é i2u3ê i2u3en i3u2i i2u3í i2u3in -i3u2o i2u3ó i2u3ô i2u3on -o2i3a o2i3á o2i3â o2i3ã o2i3an o3i2e o2i3é o2i3ê o2i3en o3i2o o2i3ó o2i3ô -o2i3on o3i2u o2i3ú o2u3a o2u3á o2u3â o2u3ã o2u3an o3u2e o2u3é o2u3ê o2u3en -o2u3i o2u3í o3u2o o2u3ó o2u3ô -u2i3a u2i3á u2i3â u2i3ã u2i3an u2i3e u2i3é u3i2ê u2i3o u2i3ó u2i3ô u2i3on -u2i3u u3i4u. u2i3ú - -g4u4a4i g4u4e4i g4ü4e4i g4u4ã4o g4u4ã4e g4u4õ4e -q4u4e4i q4ü4e4i q4u4ã4o q4u4ã4e q4u4i4e +a2i3u a2i3ú a3i4u. a3o3e +a2u3a a2u3á a2u3ã a3u2e a2u3e2n a2u3é a2u3ê a2u3i a2u3í a2u3o a2u3ó a2u3ô +e2i3a e2i3á e2i3ã e2i3an e2i3e e2i3é e2i3ê e2i3en e2i3o e2i3ó e2i3ô e2i3on +e2i3u e2i3ú e2u3a e2u3á e2u3ã e2u3an e3u2e e2u3é e2u3ê e2u3en e2u3i e2u3í +e2u3in e2u3o e2u3ó e2u3ô e2u3on +i3u2a i2u3á i2u3â i2u3ã i2u3an i3u2e i2u3é i2u3ê i2u3en i3u2i i2u3í i2u3in +i3u2o i2u3ó i2u3ô i2u3on +o2i3a o2i3á o2i3â o2i3ã o2i3an o3i2e o2i3é o2i3ê o2i3en o3i2o o2i3ó o2i3ô +o2i3on o3i2u o2i3ú o2u3a o2u3á o2u3â o2u3ã o2u3an o3u2e o2u3é o2u3ê o2u3en +o2u3i o2u3í o3u2o o2u3ó o2u3ô +u2i3a u2i3á u2i3â u2i3ã u2i3an u2i3e u2i3é u3i2ê u2i3o u2i3ó u2i3ô u2i3on +u2i3u u3i4u. u2i3ú + +g4u4a4i g4u4e4i g4ü4e4i g4u4ã4o g4u4ã4e g4u4õ4e +q4u4e4i q4ü4e4i q4u4ã4o q4u4ã4e q4u4i4e d1l -.su2b3l +.su2b3l .su3b4li3m .su4b5li3mi3n a1l2i2e3n .a2n1c2h2i2e1t .a2n1s2i2e1d -d2i2e3t2é +d2i2e3t2é .h2i2e3n2a -.h2i2e1r +.h2i2e1r di2o2u -s2o3c2i2e s2o3c2i2o s2ó3c2i2o +s2o3c2i2e s2o3c2i2o s2ó3c2i2o .be3e2t3h2o3ven .bud4d3l diff --git a/hyph/src/main/resources/com/itextpdf/hyph/ru.xml b/hyph/src/main/resources/com/itextpdf/hyph/ru.xml index b066a4b2e3..1ec9969ef2 100644 --- a/hyph/src/main/resources/com/itextpdf/hyph/ru.xml +++ b/hyph/src/main/resources/com/itextpdf/hyph/ru.xml @@ -1,4 +1,4 @@ - + - true diff --git a/sign/pom.xml b/sign/pom.xml index a0e0d843a6..410a60919d 100644 --- a/sign/pom.xml +++ b/sign/pom.xml @@ -4,7 +4,7 @@ com.itextpdf root - 7.2.1 + 7.2.2 sign iText 7 - sign diff --git a/sign/src/main/java/com/itextpdf/signatures/BouncyCastleDigest.java b/sign/src/main/java/com/itextpdf/signatures/BouncyCastleDigest.java index 19a5d9dc0d..a4e9fdabd4 100644 --- a/sign/src/main/java/com/itextpdf/signatures/BouncyCastleDigest.java +++ b/sign/src/main/java/com/itextpdf/signatures/BouncyCastleDigest.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -73,27 +73,38 @@ public MessageDigest getMessageDigest(String hashAlgorithm) throws GeneralSecuri throw new NoSuchAlgorithmException(hashAlgorithm); } switch (oid) { - case "1.2.840.113549.2.2": //MD2 + // MD2 + case "1.2.840.113549.2.2": return new MD2.Digest(); - case "1.2.840.113549.2.5": //MD5 + // MD5 + case "1.2.840.113549.2.5": return new MD5.Digest(); - case "1.3.14.3.2.26": //SHA1 + // SHA1 + case "1.3.14.3.2.26": return new SHA1.Digest(); - case "2.16.840.1.101.3.4.2.4": //SHA224 + // SHA224 + case "2.16.840.1.101.3.4.2.4": return new SHA224.Digest(); - case "2.16.840.1.101.3.4.2.1": //SHA256 + // SHA256 + case "2.16.840.1.101.3.4.2.1": return new SHA256.Digest(); - case "2.16.840.1.101.3.4.2.2": //SHA384 + // SHA384 + case "2.16.840.1.101.3.4.2.2": return new SHA384.Digest(); - case "2.16.840.1.101.3.4.2.3": //SHA512 + // SHA512 + case "2.16.840.1.101.3.4.2.3": return new SHA512.Digest(); - case "1.3.36.3.2.2": //RIPEMD128 + // RIPEMD128 + case "1.3.36.3.2.2": return new RIPEMD128.Digest(); - case "1.3.36.3.2.1": //RIPEMD160 + // RIPEMD160 + case "1.3.36.3.2.1": return new RIPEMD160.Digest(); - case "1.3.36.3.2.3": //RIPEMD256 + // RIPEMD256 + case "1.3.36.3.2.3": return new RIPEMD256.Digest(); - case "1.2.643.2.2.9": //GOST3411 + // GOST3411 + case "1.2.643.2.2.9": return new GOST3411.Digest(); default: throw new NoSuchAlgorithmException(hashAlgorithm); diff --git a/sign/src/main/java/com/itextpdf/signatures/CRLVerifier.java b/sign/src/main/java/com/itextpdf/signatures/CRLVerifier.java index 49a7463c14..a4eef137c4 100644 --- a/sign/src/main/java/com/itextpdf/signatures/CRLVerifier.java +++ b/sign/src/main/java/com/itextpdf/signatures/CRLVerifier.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -85,7 +85,8 @@ public CRLVerifier(CertificateVerifier verifier, List crls) { * @param issuerCert its issuer * @return a list of VerificationOK objects. * The list will be empty if the certificate couldn't be verified. - * @see com.itextpdf.signatures.RootStoreVerifier#verify(java.security.cert.X509Certificate, java.security.cert.X509Certificate, java.util.Date) + * @see com.itextpdf.signatures.RootStoreVerifier#verify(java.security.cert.X509Certificate, + * java.security.cert.X509Certificate, java.util.Date) */ public List verify(X509Certificate signCert, X509Certificate issuerCert, Date signDate) throws GeneralSecurityException { @@ -94,8 +95,9 @@ public List verify(X509Certificate signCert, X509Certificate iss // first check the list of CRLs that is provided if (crls != null) { for (X509CRL crl : crls) { - if (verify(crl, signCert, issuerCert, signDate)) + if (verify(crl, signCert, issuerCert, signDate)) { validCrlsFound++; + } } } // then check online if allowed @@ -109,10 +111,12 @@ public List verify(X509Certificate signCert, X509Certificate iss // show how many valid CRLs were found LOGGER.info("Valid CRLs found: " + validCrlsFound); if (validCrlsFound > 0) { - result.add(new VerificationOK(signCert, this.getClass(), "Valid CRLs found: " + validCrlsFound + (online ? " (online)" : ""))); + result.add(new VerificationOK(signCert, this.getClass(), + "Valid CRLs found: " + validCrlsFound + (online ? " (online)" : ""))); } - if (verifier != null) + if (verifier != null) { result.addAll(verifier.verify(signCert, issuerCert, signDate)); + } // verify using the previous verifier in the chain (if any) return result; } @@ -126,12 +130,14 @@ public List verify(X509Certificate signCert, X509Certificate iss * @return true if the verification succeeded * @throws GeneralSecurityException thrown when certificate has been revoked */ - public boolean verify(X509CRL crl, X509Certificate signCert, X509Certificate issuerCert, Date signDate) throws GeneralSecurityException { + public boolean verify(X509CRL crl, X509Certificate signCert, X509Certificate issuerCert, Date signDate) + throws GeneralSecurityException { if (crl == null || signDate == TimestampConstants.UNDEFINED_TIMESTAMP_DATE) { return false; } // We only check CRLs valid on the signing date for which the issuer matches - if (crl.getIssuerX500Principal().equals(signCert.getIssuerX500Principal()) && signDate.before(crl.getNextUpdate())) { + if (crl.getIssuerX500Principal().equals(signCert.getIssuerX500Principal()) + && signDate.before(crl.getNextUpdate())) { // the signing certificate may not be revoked if (isSignatureValid(crl, issuerCert) && crl.isRevoked(signCert)) { throw new VerificationException(signCert, "The certificate has been revoked."); @@ -148,20 +154,18 @@ public boolean verify(X509CRL crl, X509Certificate signCert, X509Certificate iss * @return an X509CRL object */ public X509CRL getCRL(X509Certificate signCert, X509Certificate issuerCert) { - if (issuerCert == null) + if (issuerCert == null) { issuerCert = signCert; + } try { // gets the URL from the certificate String crlurl = CertificateUtil.getCRLURL(signCert); - if (crlurl == null) + if (crlurl == null) { return null; + } LOGGER.info("Getting CRL from " + crlurl); return (X509CRL) SignUtils.parseCrlFromStream(new URL(crlurl).openStream()); - } - catch(IOException e) { - return null; - } - catch(GeneralSecurityException e) { + } catch (IOException | GeneralSecurityException e) { return null; } } @@ -193,12 +197,12 @@ public boolean isSignatureValid(X509CRL crl, X509Certificate crlIssuer) { crl.verify(anchor.getPublicKey()); return true; } catch (GeneralSecurityException e) { - continue; + // do nothing and continue } } } catch (GeneralSecurityException e) { - return false; + // do nothing and return false at the end } return false; } diff --git a/sign/src/main/java/com/itextpdf/signatures/CertificateInfo.java b/sign/src/main/java/com/itextpdf/signatures/CertificateInfo.java index 877390e154..97e30911b4 100644 --- a/sign/src/main/java/com/itextpdf/signatures/CertificateInfo.java +++ b/sign/src/main/java/com/itextpdf/signatures/CertificateInfo.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -203,14 +203,14 @@ public X500Name(ASN1Sequence seq) { for (int i = 0; i < set.size(); i++) { ASN1Sequence s = (ASN1Sequence)set.getObjectAt(i); String id = DefaultSymbols.get((ASN1ObjectIdentifier)s.getObjectAt(0)); - if (id == null) - continue; - List vs = values.get(id); - if (vs == null) { - vs = new ArrayList<>(); - values.put(id, vs); + if (id != null) { + List vs = values.get(id); + if (vs == null) { + vs = new ArrayList<>(); + values.put(id, vs); + } + vs.add(((ASN1String) s.getObjectAt(1)).getString()); } - vs.add(((ASN1String)s.getObjectAt(1)).getString()); } } } @@ -221,7 +221,7 @@ public X500Name(ASN1Sequence seq) { * @param dirName a directory name */ public X500Name(String dirName) { - CertificateInfo.X509NameTokenizer nTok = new CertificateInfo.X509NameTokenizer(dirName); + CertificateInfo.X509NameTokenizer nTok = new CertificateInfo.X509NameTokenizer(dirName); while (nTok.hasMoreTokens()) { String token = nTok.nextToken(); @@ -240,7 +240,6 @@ public X500Name(String dirName) { } vs.add(value); } - } /** @@ -251,7 +250,7 @@ public X500Name(String dirName) { */ public String getField(String name) { List vs = values.get(name); - return vs == null ? null : (String)vs.get(0); + return vs == null ? null : (String) vs.get(0); } /** @@ -402,8 +401,9 @@ public static ASN1Primitive getIssuer(byte[] enc) { */ public static X500Name getSubjectFields(X509Certificate cert) { try { - if (cert != null) + if (cert != null) { return new X500Name((ASN1Sequence)CertificateInfo.getSubject(cert.getTBSCertificate())); + } } catch (Exception e) { throw new PdfException(e); @@ -427,5 +427,4 @@ public static ASN1Primitive getSubject(byte[] enc) { throw new PdfException(e); } } - } diff --git a/sign/src/main/java/com/itextpdf/signatures/CertificateUtil.java b/sign/src/main/java/com/itextpdf/signatures/CertificateUtil.java index 4e16e19b2c..adcf18bea3 100644 --- a/sign/src/main/java/com/itextpdf/signatures/CertificateUtil.java +++ b/sign/src/main/java/com/itextpdf/signatures/CertificateUtil.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -156,17 +156,16 @@ public static String getOCSPURL(X509Certificate certificate) { for (int i = 0; i < AccessDescriptions.size(); i++) { ASN1Sequence AccessDescription = (ASN1Sequence) AccessDescriptions.getObjectAt(i); if ( AccessDescription.size() != 2 ) { - continue; + // do nothing and continue } else if (AccessDescription.getObjectAt(0) instanceof ASN1ObjectIdentifier) { ASN1ObjectIdentifier id = (ASN1ObjectIdentifier)AccessDescription.getObjectAt(0); if (SecurityIDs.ID_OCSP.equals(id.getId())) { ASN1Primitive description = (ASN1Primitive)AccessDescription.getObjectAt(1); - String AccessLocation = getStringFromGeneralName(description); + String AccessLocation = getStringFromGeneralName(description); if (AccessLocation == null) { return "" ; - } - else { + } else { return AccessLocation ; } } @@ -230,5 +229,4 @@ private static String getStringFromGeneralName(ASN1Primitive names) throws IOExc ASN1TaggedObject taggedObject = (ASN1TaggedObject) names ; return new String(ASN1OctetString.getInstance(taggedObject, false).getOctets(), "ISO-8859-1"); } - } diff --git a/sign/src/main/java/com/itextpdf/signatures/CertificateVerification.java b/sign/src/main/java/com/itextpdf/signatures/CertificateVerification.java index 5ff38485bd..918014fe0d 100644 --- a/sign/src/main/java/com/itextpdf/signatures/CertificateVerification.java +++ b/sign/src/main/java/com/itextpdf/signatures/CertificateVerification.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -44,6 +44,7 @@ This file is part of the iText (R) project. package com.itextpdf.signatures; import com.itextpdf.commons.utils.DateTimeUtil; +import com.itextpdf.signatures.exceptions.SignExceptionMessageConstant; import com.itextpdf.signatures.logs.SignLogMessageConstant; import org.bouncycastle.cert.ocsp.BasicOCSPResp; import org.bouncycastle.tsp.TimeStampToken; @@ -64,6 +65,9 @@ This file is part of the iText (R) project. * This class consists of some methods that allow you to verify certificates. */ public class CertificateVerification { + public static final String HAS_UNSUPPORTED_EXTENSIONS = "Has unsupported critical extension"; + public static final String CERTIFICATE_REVOKED = "Certificate revoked"; + /** * The Logger instance. @@ -85,15 +89,16 @@ public static String verifyCertificate(X509Certificate cert, Collection crl /** * Verifies a single certificate. * - * @param cert the certificate to verify - * @param crls the certificate revocation list or null + * @param cert the certificate to verify + * @param crls the certificate revocation list or null * @param calendar the date, shall not be null * @return a String with the error description or null * if no error */ public static String verifyCertificate(X509Certificate cert, Collection crls, Calendar calendar) { - if (SignUtils.hasUnsupportedCriticalExtension(cert)) - return "Has unsupported critical extension"; + if (SignUtils.hasUnsupportedCriticalExtension(cert)) { + return CertificateVerification.HAS_UNSUPPORTED_EXTENSIONS; + } try { cert.checkValidity(calendar.getTime()); } catch (Exception e) { @@ -101,8 +106,9 @@ public static String verifyCertificate(X509Certificate cert, Collection crl } if (crls != null) { for (CRL crl : crls) { - if (crl.isRevoked(cert)) - return "Certificate revoked"; + if (crl.isRevoked(cert)) { + return CertificateVerification.CERTIFICATE_REVOKED; + } } } return null; @@ -134,46 +140,56 @@ public static List verifyCertificates(Certificate[] certs * Object[]{cert,error} where cert is the * failed certificate and error is the error message */ - public static List verifyCertificates(Certificate[] certs, KeyStore keystore, Collection crls, Calendar calendar) { + public static List verifyCertificates(Certificate[] certs, KeyStore keystore, + Collection crls, Calendar calendar) { List result = new ArrayList<>(); for (int k = 0; k < certs.length; ++k) { X509Certificate cert = (X509Certificate) certs[k]; String err = verifyCertificate(cert, crls, calendar); - if (err != null) + if (err != null) { result.add(new VerificationException(cert, err)); + } try { for (X509Certificate certStoreX509 : SignUtils.getCertificates(keystore)) { try { - if (verifyCertificate(certStoreX509, crls, calendar) != null) + if (verifyCertificate(certStoreX509, crls, calendar) != null) { continue; + } try { cert.verify(certStoreX509.getPublicKey()); return result; } catch (Exception e) { - continue; + // do nothing and continue } } catch (Exception ex) { + // Do nothing. } } } catch (Exception e) { + // Do nothing. } int j; for (j = 0; j < certs.length; ++j) { - if (j == k) + if (j == k) { continue; + } X509Certificate certNext = (X509Certificate) certs[j]; try { cert.verify(certNext.getPublicKey()); break; } catch (Exception e) { + // Do nothing. } } if (j == certs.length) { - result.add(new VerificationException(cert, "Cannot be verified against the KeyStore or the certificate chain")); + result.add(new VerificationException(cert, + SignExceptionMessageConstant.CANNOT_BE_VERIFIED_CERTIFICATE_CHAIN)); } } - if (result.size() == 0) - result.add(new VerificationException((Certificate) null, "Invalid state. Possible circular certificate chain")); + if (result.size() == 0) { + result.add(new VerificationException((Certificate) null, + SignExceptionMessageConstant.INVALID_STATE_WHILE_CHECKING_CERT_CHAIN)); + } return result; } @@ -200,7 +216,8 @@ public static List verifyCertificates(Certificate[] certs * Object[]{cert,error} where cert is the * failed certificate and error is the error message */ - public static List verifyCertificates(Certificate[] certs, KeyStore keystore, Calendar calendar) { + public static List verifyCertificates(Certificate[] certs, KeyStore keystore, + Calendar calendar) { return verifyCertificates(certs, keystore, null, calendar); } @@ -261,9 +278,10 @@ public static boolean verifyTimestampCertificates(TimeStampToken ts, KeyStore ke private static void logExceptionMessages(List exceptionsThrown) { for (Exception ex : exceptionsThrown) { - LOGGER.error(ex.getMessage() == null ? - SignLogMessageConstant.EXCEPTION_WITHOUT_MESSAGE : ex.getMessage(), ex); + LOGGER.error(ex.getMessage() == null + ? SignLogMessageConstant.EXCEPTION_WITHOUT_MESSAGE + : ex.getMessage(), + ex); } } - } diff --git a/sign/src/main/java/com/itextpdf/signatures/CertificateVerifier.java b/sign/src/main/java/com/itextpdf/signatures/CertificateVerifier.java index afdf2b9eaa..84ebdd03bf 100644 --- a/sign/src/main/java/com/itextpdf/signatures/CertificateVerifier.java +++ b/sign/src/main/java/com/itextpdf/signatures/CertificateVerifier.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -94,8 +94,9 @@ public void setOnlineCheckingAllowed(boolean onlineCheckingAllowed) { public List verify(X509Certificate signCert, X509Certificate issuerCert, Date signDate) throws GeneralSecurityException { // Check if the certificate is valid on the signDate - if (signDate != null) + if (signDate != null) { signCert.checkValidity(signDate); + } // Check if the signature is valid if (issuerCert != null) { signCert.verify(issuerCert.getPublicKey()); diff --git a/sign/src/main/java/com/itextpdf/signatures/CrlClientOffline.java b/sign/src/main/java/com/itextpdf/signatures/CrlClientOffline.java index 31b42ae09f..f7c804de5e 100644 --- a/sign/src/main/java/com/itextpdf/signatures/CrlClientOffline.java +++ b/sign/src/main/java/com/itextpdf/signatures/CrlClientOffline.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/main/java/com/itextpdf/signatures/CrlClientOnline.java b/sign/src/main/java/com/itextpdf/signatures/CrlClientOnline.java index f329c6d794..48d1a1ab31 100644 --- a/sign/src/main/java/com/itextpdf/signatures/CrlClientOnline.java +++ b/sign/src/main/java/com/itextpdf/signatures/CrlClientOnline.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -133,24 +133,27 @@ public CrlClientOnline(Certificate[] chain) { */ @Override public Collection getEncoded(X509Certificate checkCert, String url) { - if (checkCert == null) + if (checkCert == null) { return null; - List urllist = new ArrayList<>(urls); - if (urllist.size() == 0) { + } + List urlList = new ArrayList<>(urls); + if (urlList.size() == 0) { LOGGER.info("Looking for CRL for certificate " + checkCert.getSubjectDN()); try { - if (url == null) + if (url == null) { url = CertificateUtil.getCRLURL(checkCert); - if (url == null) + } + if (url == null) { throw new IllegalArgumentException("Passed url can not be null."); - urllist.add(new URL(url)); + } + urlList.add(new URL(url)); LOGGER.info("Found CRL url: " + url); } catch (Exception e) { LOGGER.info("Skipped CRL url: " + e.getMessage()); } } List ar = new ArrayList<>(); - for (URL urlt : urllist) { + for (URL urlt : urlList) { try { LOGGER.info("Checking CRL: " + urlt); InputStream inp = SignUtils.getHttpResponse(urlt); @@ -158,15 +161,17 @@ public Collection getEncoded(X509Certificate checkCert, String url) { ByteArrayOutputStream bout = new ByteArrayOutputStream(); while (true) { int n = inp.read(buf, 0, buf.length); - if (n <= 0) + if (n <= 0) { break; + } bout.write(buf, 0, n); } inp.close(); ar.add(bout.toByteArray()); LOGGER.info("Added CRL found at: " + urlt); } catch (Exception e) { - LOGGER.info(MessageFormatUtil.format(IoLogMessageConstant.INVALID_DISTRIBUTION_POINT, e.getMessage())); + LOGGER.info(MessageFormatUtil.format(IoLogMessageConstant.INVALID_DISTRIBUTION_POINT, + e.getMessage())); } } return ar; diff --git a/sign/src/main/java/com/itextpdf/signatures/DigestAlgorithms.java b/sign/src/main/java/com/itextpdf/signatures/DigestAlgorithms.java index dba28e658e..ecd4b59dc2 100644 --- a/sign/src/main/java/com/itextpdf/signatures/DigestAlgorithms.java +++ b/sign/src/main/java/com/itextpdf/signatures/DigestAlgorithms.java @@ -1,7 +1,7 @@ /* * * This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV * Authors: Bruno Lowagie, Paulo Soares, et al. * * This program is free software; you can redistribute it and/or modify @@ -231,10 +231,11 @@ public static byte[] digest(InputStream data, MessageDigest messageDigest) */ public static String getDigest(String oid) { String ret = digestNames.get(oid); - if (ret == null) + if (ret == null) { return oid; - else + } else { return ret; + } } /** @@ -244,8 +245,9 @@ public static String getDigest(String oid) { * @return normalized name */ public static String normalizeDigestName(String algo) { - if (fixNames.containsKey(algo)) + if (fixNames.containsKey(algo)) { return fixNames.get(algo); + } return algo; } @@ -258,7 +260,8 @@ public static String normalizeDigestName(String algo) { */ public static String getAllowedDigest(String name) { if (name == null) { - throw new IllegalArgumentException(SignExceptionMessageConstant.THE_NAME_OF_THE_DIGEST_ALGORITHM_IS_NULL); + throw new IllegalArgumentException( + SignExceptionMessageConstant.THE_NAME_OF_THE_DIGEST_ALGORITHM_IS_NULL); } return allowedDigests.get(name.toUpperCase()); } diff --git a/sign/src/main/java/com/itextpdf/signatures/EncryptionAlgorithms.java b/sign/src/main/java/com/itextpdf/signatures/EncryptionAlgorithms.java index f6244f96ca..848cb62f96 100644 --- a/sign/src/main/java/com/itextpdf/signatures/EncryptionAlgorithms.java +++ b/sign/src/main/java/com/itextpdf/signatures/EncryptionAlgorithms.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -73,13 +73,18 @@ public class EncryptionAlgorithms { algorithmNames.put("1.3.36.3.3.1.4", "RSA"); algorithmNames.put("1.2.643.2.2.19", "ECGOST3410"); - algorithmNames.put("1.2.840.10045.2.1", "ECDSA"); //Elliptic curve public key cryptography. - algorithmNames.put("1.2.840.10045.4.1", "ECDSA"); //Elliptic curve Digital Signature Algorithm (DSA) coupled with the Secure Hashing Algorithm (SHA) algorithm. - algorithmNames.put("1.2.840.10045.4.3", "ECDSA"); //Elliptic curve Digital Signature Algorithm (DSA). - algorithmNames.put("1.2.840.10045.4.3.2", "ECDSA"); //Elliptic curve Digital Signature Algorithm (DSA) coupled with the Secure Hashing Algorithm (SHA256) algorithm. - algorithmNames.put("1.2.840.10045.4.3.3", "ECDSA"); //Elliptic curve Digital Signature Algorithm (DSA) coupled with the Secure Hashing Algorithm (SHA384) algorithm. - algorithmNames.put("1.2.840.10045.4.3.4", "ECDSA"); //Elliptic curve Digital Signature Algorithm (DSA) coupled with the Secure Hashing Algorithm (SHA512) algorithm. - + // Elliptic curve public key cryptography + algorithmNames.put("1.2.840.10045.2.1", "ECDSA"); + // Elliptic curve Digital Signature Algorithm (DSA) coupled with the Secure Hashing Algorithm (SHA) algorithm + algorithmNames.put("1.2.840.10045.4.1", "ECDSA"); + // Elliptic curve Digital Signature Algorithm (DSA) + algorithmNames.put("1.2.840.10045.4.3", "ECDSA"); + // Elliptic curve Digital Signature Algorithm (DSA) coupled with the Secure Hashing Algorithm (SHA256) algorithm + algorithmNames.put("1.2.840.10045.4.3.2", "ECDSA"); + // Elliptic curve Digital Signature Algorithm (DSA) coupled with the Secure Hashing Algorithm (SHA384) algorithm + algorithmNames.put("1.2.840.10045.4.3.3", "ECDSA"); + // Elliptic curve Digital Signature Algorithm (DSA) coupled with the Secure Hashing Algorithm (SHA512) algorithm + algorithmNames.put("1.2.840.10045.4.3.4", "ECDSA"); } /** @@ -89,9 +94,10 @@ public class EncryptionAlgorithms { */ public static String getAlgorithm(String oid) { String ret = algorithmNames.get(oid); - if (ret == null) + if (ret == null) { return oid; - else + } else { return ret; + } } } diff --git a/sign/src/main/java/com/itextpdf/signatures/ExternalBlankSignatureContainer.java b/sign/src/main/java/com/itextpdf/signatures/ExternalBlankSignatureContainer.java index 309448954f..31831fd78f 100644 --- a/sign/src/main/java/com/itextpdf/signatures/ExternalBlankSignatureContainer.java +++ b/sign/src/main/java/com/itextpdf/signatures/ExternalBlankSignatureContainer.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -89,5 +89,4 @@ public byte[] sign(InputStream data) throws GeneralSecurityException { public void modifySigningDictionary(PdfDictionary signDic) { signDic.putAll(sigDic); } - } diff --git a/sign/src/main/java/com/itextpdf/signatures/ICrlClient.java b/sign/src/main/java/com/itextpdf/signatures/ICrlClient.java index 1a68886f41..7efd4fbe71 100644 --- a/sign/src/main/java/com/itextpdf/signatures/ICrlClient.java +++ b/sign/src/main/java/com/itextpdf/signatures/ICrlClient.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/main/java/com/itextpdf/signatures/IExternalDigest.java b/sign/src/main/java/com/itextpdf/signatures/IExternalDigest.java index b1ff94c696..091a131be5 100644 --- a/sign/src/main/java/com/itextpdf/signatures/IExternalDigest.java +++ b/sign/src/main/java/com/itextpdf/signatures/IExternalDigest.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/main/java/com/itextpdf/signatures/IExternalSignature.java b/sign/src/main/java/com/itextpdf/signatures/IExternalSignature.java index 53962bd3b3..92a29c9032 100644 --- a/sign/src/main/java/com/itextpdf/signatures/IExternalSignature.java +++ b/sign/src/main/java/com/itextpdf/signatures/IExternalSignature.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/main/java/com/itextpdf/signatures/IExternalSignatureContainer.java b/sign/src/main/java/com/itextpdf/signatures/IExternalSignatureContainer.java index dd8f9901d4..d6ed1a2ee4 100644 --- a/sign/src/main/java/com/itextpdf/signatures/IExternalSignatureContainer.java +++ b/sign/src/main/java/com/itextpdf/signatures/IExternalSignatureContainer.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/main/java/com/itextpdf/signatures/IOcspClient.java b/sign/src/main/java/com/itextpdf/signatures/IOcspClient.java index 90d7fbf141..b52b5dbd55 100644 --- a/sign/src/main/java/com/itextpdf/signatures/IOcspClient.java +++ b/sign/src/main/java/com/itextpdf/signatures/IOcspClient.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/main/java/com/itextpdf/signatures/ITSAClient.java b/sign/src/main/java/com/itextpdf/signatures/ITSAClient.java index 92908419e1..6fd60b64c5 100644 --- a/sign/src/main/java/com/itextpdf/signatures/ITSAClient.java +++ b/sign/src/main/java/com/itextpdf/signatures/ITSAClient.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/main/java/com/itextpdf/signatures/ITSAInfoBouncyCastle.java b/sign/src/main/java/com/itextpdf/signatures/ITSAInfoBouncyCastle.java index a447e06a6e..8674f11a1d 100644 --- a/sign/src/main/java/com/itextpdf/signatures/ITSAInfoBouncyCastle.java +++ b/sign/src/main/java/com/itextpdf/signatures/ITSAInfoBouncyCastle.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/main/java/com/itextpdf/signatures/KeyStoreUtil.java b/sign/src/main/java/com/itextpdf/signatures/KeyStoreUtil.java index 483bc96a33..7278c9cf42 100644 --- a/sign/src/main/java/com/itextpdf/signatures/KeyStoreUtil.java +++ b/sign/src/main/java/com/itextpdf/signatures/KeyStoreUtil.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -66,10 +66,11 @@ public static KeyStore loadCacertsKeyStore(String provider) { try { fin = new FileInputStream(file); KeyStore k; - if (provider == null) + if (provider == null) { k = KeyStore.getInstance("JKS"); - else + } else { k = KeyStore.getInstance("JKS", provider); + } k.load(fin, null); return k; } @@ -77,7 +78,13 @@ public static KeyStore loadCacertsKeyStore(String provider) { throw new PdfException(e); } finally { - try{if (fin != null) {fin.close();}}catch(Exception ex){} + try { + if (fin != null) { + fin.close(); + } + } catch (Exception ex) { + // do nothing + } } } @@ -89,5 +96,4 @@ public static KeyStore loadCacertsKeyStore(String provider) { public static KeyStore loadCacertsKeyStore() { return loadCacertsKeyStore(null); } - } diff --git a/sign/src/main/java/com/itextpdf/signatures/LtvVerification.java b/sign/src/main/java/com/itextpdf/signatures/LtvVerification.java index 035be0475d..5d3e055c8e 100644 --- a/sign/src/main/java/com/itextpdf/signatures/LtvVerification.java +++ b/sign/src/main/java/com/itextpdf/signatures/LtvVerification.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -59,17 +59,6 @@ This file is part of the iText (R) project. import com.itextpdf.kernel.pdf.PdfString; import com.itextpdf.kernel.pdf.PdfVersion; import com.itextpdf.signatures.exceptions.SignExceptionMessageConstant; -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1Primitive; -import org.bouncycastle.asn1.DEROctetString; -import org.bouncycastle.asn1.ocsp.OCSPObjectIdentifiers; -import org.bouncycastle.asn1.ocsp.OCSPResponse; -import org.bouncycastle.asn1.ocsp.OCSPResponseStatus; -import org.bouncycastle.asn1.ocsp.ResponseBytes; -import org.bouncycastle.cert.ocsp.OCSPResp; -import org.bouncycastle.cert.ocsp.OCSPRespBuilder; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.io.ByteArrayInputStream; import java.io.IOException; @@ -84,6 +73,18 @@ This file is part of the iText (R) project. import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; +import org.bouncycastle.asn1.ASN1InputStream; +import org.bouncycastle.asn1.ASN1Primitive; +import org.bouncycastle.asn1.DEROctetString; +import org.bouncycastle.asn1.ocsp.OCSPObjectIdentifiers; +import org.bouncycastle.asn1.ocsp.OCSPResponse; +import org.bouncycastle.asn1.ocsp.OCSPResponseStatus; +import org.bouncycastle.asn1.ocsp.ResponseBytes; +import org.bouncycastle.cert.ocsp.OCSPResp; +import org.bouncycastle.cert.ocsp.OCSPRespBuilder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Add verification according to PAdES-LTV (part 4). @@ -190,7 +191,8 @@ public LtvVerification(PdfDocument document, String securityProviderCode){ * is not available * @throws IOException signals that an I/O exception has occurred */ - public boolean addVerification(String signatureName, IOcspClient ocsp, ICrlClient crl, CertificateOption certOption, Level level, CertificateInclusion certInclude) throws IOException, GeneralSecurityException { + public boolean addVerification(String signatureName, IOcspClient ocsp, ICrlClient crl, CertificateOption certOption, + Level level, CertificateInclusion certInclude) throws IOException, GeneralSecurityException { if (used) throw new IllegalStateException(SignExceptionMessageConstant.VERIFICATION_ALREADY_OUTPUT); PdfPKCS7 pk = sgnUtil.readSignatureData(signatureName, securityProviderCode); @@ -214,7 +216,9 @@ public boolean addVerification(String signatureName, IOcspClient ocsp, ICrlClien LOGGER.info("OCSP added"); } } - if (crl != null && (level == Level.CRL || level == Level.OCSP_CRL || (level == Level.OCSP_OPTIONAL_CRL && ocspEnc == null))) { + if (crl != null + && (level == Level.CRL || level == Level.OCSP_CRL + || (level == Level.OCSP_OPTIONAL_CRL && ocspEnc == null))) { Collection cims = crl.getEncoded(cert, null); if (cims != null) { for (byte[] cim : cims) { @@ -236,8 +240,9 @@ public boolean addVerification(String signatureName, IOcspClient ocsp, ICrlClien vd.certs.add(cert.getEncoded()); } } - if (vd.crls.size() == 0 && vd.ocsps.size() == 0) + if (vd.crls.size() == 0 && vd.ocsps.size() == 0) { return false; + } validated.put(getSignatureHashKey(signatureName), vd); return true; } @@ -253,8 +258,9 @@ private X509Certificate getParent(X509Certificate cert, Certificate[] certs) { X509Certificate parent; for (int i = 0; i < certs.length; i++) { parent = (X509Certificate)certs[i]; - if (!cert.getIssuerDN().equals(parent.getSubjectDN())) + if (!cert.getIssuerDN().equals(parent.getSubjectDN())) { continue; + } try { cert.verify(parent.getPublicKey()); return parent; @@ -277,7 +283,8 @@ private X509Certificate getParent(X509Certificate cert, Certificate[] certs) { * @throws GeneralSecurityException when requested cryptographic algorithm or security provider * is not available */ - public boolean addVerification(String signatureName, Collection ocsps, Collection crls, Collection certs) throws IOException, GeneralSecurityException { + public boolean addVerification(String signatureName, Collection ocsps, Collection crls, + Collection certs) throws IOException, GeneralSecurityException { if (used) throw new IllegalStateException(SignExceptionMessageConstant.VERIFICATION_ALREADY_OUTPUT); ValidationData vd = new ValidationData(); @@ -336,10 +343,11 @@ public void merge() { used = true; PdfDictionary catalog = document.getCatalog().getPdfObject(); PdfObject dss = catalog.get(PdfName.DSS); - if (dss == null) + if (dss == null) { createDss(); - else + } else { updateDss(); + } } private void updateDss() { @@ -353,7 +361,7 @@ private void updateDss() { dss.remove(PdfName.CRLs); dss.remove(PdfName.Certs); PdfDictionary vrim = dss.getAsDictionary(PdfName.VRI); - //delete old validations + // delete old validations if (vrim != null) { for (PdfName n : vrim.keySet()) { if (validated.containsKey(n)) { @@ -382,25 +390,19 @@ private void updateDss() { } private static void deleteOldReferences(PdfArray all, PdfArray toDelete) { - if (all == null || toDelete == null) + if (all == null || toDelete == null) { return; - for (PdfObject pi : toDelete) { - PdfIndirectReference pir = pi.getIndirectReference(); - - if (pir == null) { - continue; - } + } - for (int k = 0; k < all.size(); ++k) { - PdfIndirectReference pod = all.get(k).getIndirectReference(); + for (PdfObject pi : toDelete) { + final PdfIndirectReference pir = pi.getIndirectReference(); - if (pod == null) { - continue; - } + for (int i = 0; i < all.size(); i++) { + final PdfIndirectReference pod = all.get(i).getIndirectReference(); - if (pir.getObjNumber() == pod.getObjNumber()) { - all.remove(k); - --k; + if (Objects.equals(pir, pod)) { + all.remove(i); + i--; } } } diff --git a/sign/src/main/java/com/itextpdf/signatures/LtvVerifier.java b/sign/src/main/java/com/itextpdf/signatures/LtvVerifier.java index 574dd1e4c5..53969a215c 100644 --- a/sign/src/main/java/com/itextpdf/signatures/LtvVerifier.java +++ b/sign/src/main/java/com/itextpdf/signatures/LtvVerifier.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -43,10 +43,10 @@ This file is part of the iText (R) project. */ package com.itextpdf.signatures; -import com.itextpdf.forms.PdfAcroForm; +import com.itextpdf.commons.actions.contexts.IMetaInfo; import com.itextpdf.commons.utils.DateTimeUtil; import com.itextpdf.commons.utils.MessageFormatUtil; -import com.itextpdf.commons.actions.contexts.IMetaInfo; +import com.itextpdf.forms.PdfAcroForm; import com.itextpdf.kernel.pdf.DocumentProperties; import com.itextpdf.kernel.pdf.PdfArray; import com.itextpdf.kernel.pdf.PdfDictionary; @@ -54,11 +54,7 @@ This file is part of the iText (R) project. import com.itextpdf.kernel.pdf.PdfName; import com.itextpdf.kernel.pdf.PdfReader; import com.itextpdf.kernel.pdf.PdfStream; -import org.bouncycastle.cert.ocsp.BasicOCSPResp; -import org.bouncycastle.cert.ocsp.OCSPException; -import org.bouncycastle.cert.ocsp.OCSPResp; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import com.itextpdf.signatures.LtvVerification.CertificateOption; import java.io.ByteArrayInputStream; import java.io.IOException; @@ -70,8 +66,11 @@ This file is part of the iText (R) project. import java.util.Calendar; import java.util.Date; import java.util.List; - -import static com.itextpdf.signatures.LtvVerification.CertificateOption; +import org.bouncycastle.cert.ocsp.BasicOCSPResp; +import org.bouncycastle.cert.ocsp.OCSPException; +import org.bouncycastle.cert.ocsp.OCSPResp; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Verifies the signatures in an LTV document. @@ -115,6 +114,7 @@ public LtvVerifier(PdfDocument document) throws GeneralSecurityException { super(null); initLtvVerifier(document); } + public LtvVerifier(PdfDocument document, String securityProviderCode) throws GeneralSecurityException { super(null); this.securityProviderCode = securityProviderCode; @@ -164,8 +164,9 @@ public void setEventCountingMetaInfo(IMetaInfo metaInfo) { * @throws GeneralSecurityException if some problems with signature or security occurred */ public List verify(List result) throws IOException, GeneralSecurityException { - if (result == null) + if (result == null) { result = new ArrayList<>(); + } while (pkcs7 != null) { result.addAll(verifySignature()); } @@ -198,8 +199,9 @@ public List verifySignature() throws GeneralSecurityException, I signCert = (X509Certificate) chain[i++]; // its issuer issuerCert = (X509Certificate) null; - if (i < chain.length) + if (i < chain.length) { issuerCert = (X509Certificate) chain[i]; + } // now lets verify the certificate LOGGER.info(signCert.getSubjectDN().getName()); List list = verify(signCert, issuerCert, signDate); @@ -242,8 +244,9 @@ public void verifyChain(Certificate[] chain) throws GeneralSecurityException { // check if the certificate was/is valid cert.checkValidity(signDate); // check if the previous certificate was issued by this certificate - if (i > 0) - chain[i-1].verify(chain[i].getPublicKey()); + if (i > 0) { + chain[i - 1].verify(chain[i].getPublicKey()); + } } LOGGER.info("All certificates are valid on " + signDate.toString()); } @@ -255,11 +258,12 @@ public void verifyChain(Certificate[] chain) throws GeneralSecurityException { * @return a list of VerificationOK objects. * The list will be empty if the certificate couldn't be verified. * @throws GeneralSecurityException if some problems with signature or security occurred - * @see com.itextpdf.signatures.RootStoreVerifier#verify(java.security.cert.X509Certificate, java.security.cert.X509Certificate, java.util.Date) + * @see com.itextpdf.signatures.RootStoreVerifier#verify(java.security.cert.X509Certificate, + * java.security.cert.X509Certificate, java.util.Date) */ public List verify(X509Certificate signCert, X509Certificate issuerCert, Date signDate) throws GeneralSecurityException { - // we'll verify agains the rootstore (if present) + // we'll verify against the rootstore (if present) RootStoreVerifier rootStoreVerifier = new RootStoreVerifier(verifier); rootStoreVerifier.setRootStore(rootStore); // We'll verify against a list of CRLs @@ -293,13 +297,16 @@ public void switchToPreviousRevision() throws IOException, GeneralSecurityExcept if (names.size() > 1) { signatureName = names.get(names.size() - 2); try (PdfReader readerTmp = new PdfReader(sgnUtil.extractRevision(signatureName))) { - document = new PdfDocument(readerTmp, new DocumentProperties().setEventCountingMetaInfo(metaInfo)); - this.acroForm = PdfAcroForm.getAcroForm(document, true); - this.sgnUtil = new SignatureUtil(document); - names = sgnUtil.getSignatureNames(); - signatureName = names.get(names.size() - 1); - pkcs7 = coversWholeDocument(); - LOGGER.info(MessageFormatUtil.format("Checking {0}signature {1}", pkcs7.isTsp() ? "document-level timestamp " : "", signatureName)); + document = new PdfDocument(readerTmp, new DocumentProperties().setEventCountingMetaInfo(metaInfo)); + this.acroForm = PdfAcroForm.getAcroForm(document, true); + this.sgnUtil = new SignatureUtil(document); + names = sgnUtil.getSignatureNames(); + signatureName = names.get(names.size() - 1); + pkcs7 = coversWholeDocument(); + LOGGER.info( + MessageFormatUtil.format("Checking {0}signature {1}", pkcs7.isTsp() + ? "document-level timestamp " + : "", signatureName)); } } else { @@ -316,11 +323,13 @@ public void switchToPreviousRevision() throws IOException, GeneralSecurityExcept */ public List getCRLsFromDSS() throws GeneralSecurityException { List crls = new ArrayList<>(); - if (dss == null) + if (dss == null) { return crls; + } PdfArray crlarray = dss.getAsArray(PdfName.CRLs); - if (crlarray == null) + if (crlarray == null) { return crls; + } for (int i = 0; i < crlarray.size(); i++) { PdfStream stream = crlarray.getAsStream(i); crls.add((X509CRL) SignUtils.parseCrlFromStream(new ByteArrayInputStream(stream.getBytes()))); @@ -335,11 +344,13 @@ public List getCRLsFromDSS() throws GeneralSecurityException { */ public List getOCSPResponsesFromDSS() throws GeneralSecurityException { List ocsps = new ArrayList<>(); - if (dss == null) + if (dss == null) { return ocsps; + } PdfArray ocsparray = dss.getAsArray(PdfName.OCSPs); - if (ocsparray == null) + if (ocsparray == null) { return ocsps; + } for (int i = 0; i < ocsparray.size(); i++) { PdfStream stream = ocsparray.getAsStream(i); OCSPResp ocspResponse; @@ -366,7 +377,12 @@ protected void initLtvVerifier(PdfDocument document) throws GeneralSecurityExcep signatureName = names.get(names.size() - 1); this.signDate = DateTimeUtil.getCurrentTimeDate(); pkcs7 = coversWholeDocument(); - LOGGER.info(MessageFormatUtil.format("Checking {0}signature {1}", pkcs7.isTsp() ? "document-level timestamp " : "", signatureName)); + LOGGER.info( + MessageFormatUtil.format( + "Checking {0}signature {1}", pkcs7.isTsp() + ? "document-level timestamp " + : "", + signatureName)); } /** @@ -379,15 +395,13 @@ protected PdfPKCS7 coversWholeDocument() throws GeneralSecurityException { PdfPKCS7 pkcs7 = sgnUtil.readSignatureData(signatureName, securityProviderCode); if (sgnUtil.signatureCoversWholeDocument(signatureName)) { LOGGER.info("The timestamp covers whole document."); - } - else { + } else { throw new VerificationException((Certificate) null, "Signature doesn't cover whole document."); } if (pkcs7.verifySignatureIntegrityAndAuthenticity()) { LOGGER.info("The signed document has not been modified."); return pkcs7; - } - else { + } else { throw new VerificationException((Certificate) null, "The document was altered after the final signature was applied."); } } diff --git a/sign/src/main/java/com/itextpdf/signatures/OCSPVerifier.java b/sign/src/main/java/com/itextpdf/signatures/OCSPVerifier.java index a1bb7329a4..f3d2762c16 100644 --- a/sign/src/main/java/com/itextpdf/signatures/OCSPVerifier.java +++ b/sign/src/main/java/com/itextpdf/signatures/OCSPVerifier.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -96,18 +96,19 @@ public OCSPVerifier(CertificateVerifier verifier, List ocsps) { * * @return a list of VerificationOK objects. * The list will be empty if the certificate couldn't be verified. - * @see com.itextpdf.signatures.RootStoreVerifier#verify(java.security.cert.X509Certificate, java.security.cert.X509Certificate, java.util.Date) + * @see com.itextpdf.signatures.RootStoreVerifier#verify(java.security.cert.X509Certificate, + * java.security.cert.X509Certificate, java.util.Date) */ - public List verify(X509Certificate signCert, - X509Certificate issuerCert, Date signDate) + public List verify(X509Certificate signCert, X509Certificate issuerCert, Date signDate) throws GeneralSecurityException { List result = new ArrayList<>(); int validOCSPsFound = 0; // first check in the list of OCSP responses that was provided if (ocsps != null) { for (BasicOCSPResp ocspResp : ocsps) { - if (verify(ocspResp, signCert, issuerCert, signDate)) + if (verify(ocspResp, signCert, issuerCert, signDate)) { validOCSPsFound++; + } } } // then check online if allowed @@ -120,10 +121,13 @@ public List verify(X509Certificate signCert, } // show how many valid OCSP responses were found LOGGER.info("Valid OCSPs found: " + validOCSPsFound); - if (validOCSPsFound > 0) - result.add(new VerificationOK(signCert, this.getClass(), "Valid OCSPs Found: " + validOCSPsFound + (online ? " (online)" : ""))); - if (verifier != null) + if (validOCSPsFound > 0) { + result.add(new VerificationOK(signCert, this.getClass(), + "Valid OCSPs Found: " + validOCSPsFound + (online ? " (online)" : ""))); + } + if (verifier != null) { result.addAll(verifier.verify(signCert, issuerCert, signDate)); + } // verify using the previous verifier in the chain (if any) return result; } @@ -133,7 +137,8 @@ public List verify(X509Certificate signCert, * Verifies a certificate against a single OCSP response * @param ocspResp the OCSP response * @param signCert the certificate that needs to be checked - * @param issuerCert the certificate of CA (certificate that issued signCert). This certificate is considered trusted and valid by this method. + * @param issuerCert the certificate of CA (certificate that issued signCert). This certificate is considered trusted + * and valid by this method. * @param signDate sign date * * @return {@code true}, in case successful check, otherwise false. @@ -141,8 +146,9 @@ public List verify(X509Certificate signCert, */ public boolean verify(BasicOCSPResp ocspResp, X509Certificate signCert, X509Certificate issuerCert, Date signDate) throws GeneralSecurityException { - if (ocspResp == null) + if (ocspResp == null) { return false; + } // Getting the responses SingleResp[] resp = ocspResp.getResponses(); for (int i = 0; i < resp.length; i++) { @@ -152,7 +158,9 @@ public boolean verify(BasicOCSPResp ocspResp, X509Certificate signCert, X509Cert } // check if the issuer matches try { - if (issuerCert == null) issuerCert = signCert; + if (issuerCert == null) { + issuerCert = signCert; + } if (!SignUtils.checkIfIssuersMatch(resp[i].getCertID(), issuerCert)) { LOGGER.info("OCSP: Issuers doesn't match."); continue; @@ -172,7 +180,8 @@ public boolean verify(BasicOCSPResp ocspResp, X509Certificate signCert, X509Cert } } else { if (signDate.after(resp[i].getNextUpdate())) { - LOGGER.info(MessageFormatUtil.format("OCSP no longer valid: {0} after {1}", signDate, resp[i].getNextUpdate())); + LOGGER.info(MessageFormatUtil.format("OCSP no longer valid: {0} after {1}", signDate, + resp[i].getNextUpdate())); continue; } } @@ -197,7 +206,8 @@ public boolean verify(BasicOCSPResp ocspResp, X509Certificate signCert, X509Cert * * @throws GeneralSecurityException if OCSP response verification cannot be done or failed */ - public void isValidResponse(BasicOCSPResp ocspResp, X509Certificate issuerCert, Date signDate) throws GeneralSecurityException { + public void isValidResponse(BasicOCSPResp ocspResp, X509Certificate issuerCert, Date signDate) + throws GeneralSecurityException { // OCSP response might be signed by the issuer certificate or // the Authorized OCSP responder certificate containing the id-kp-OCSPSigning extended key usage extension X509Certificate responderCert = null; @@ -218,7 +228,8 @@ public void isValidResponse(BasicOCSPResp ocspResp, X509Certificate issuerCert, List keyPurposes = null; try { keyPurposes = cert.getExtendedKeyUsage(); - if ((keyPurposes != null) && keyPurposes.contains(id_kp_OCSPSigning) && isSignatureValid(ocspResp, cert)) { + if ((keyPurposes != null) && keyPurposes.contains(id_kp_OCSPSigning) + && isSignatureValid(ocspResp, cert)) { responderCert = cert; break; } @@ -263,8 +274,7 @@ public void isValidResponse(BasicOCSPResp ocspResp, X509Certificate issuerCert, throw new VerificationException(issuerCert, "Authorized OCSP responder certificate was revoked."); } } else { - Logger logger = LoggerFactory.getLogger(OCSPVerifier.class); - logger.error("Authorized OCSP responder certificate revocation status cannot be checked"); + LOGGER.error("Authorized OCSP responder certificate revocation status cannot be checked"); // TODO DEVSIX-5207 throw exception starting from iText version 7.2, but only after OCSPVerifier // would allow explicit setting revocation check end points/provide revocation data } diff --git a/sign/src/main/java/com/itextpdf/signatures/OID.java b/sign/src/main/java/com/itextpdf/signatures/OID.java index 86ee60cdce..b0bbc5d44e 100644 --- a/sign/src/main/java/com/itextpdf/signatures/OID.java +++ b/sign/src/main/java/com/itextpdf/signatures/OID.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify @@ -164,19 +164,20 @@ public static final class X509Extensions { * This set consists of standard extensions which are defined in RFC specifications and are not mentioned * as forbidden to be marked as critical. */ - public static final Set SUPPORTED_CRITICAL_EXTENSIONS = Collections.unmodifiableSet(new LinkedHashSet<>(Arrays.asList( - KEY_USAGE, - CERTIFICATE_POLICIES, - POLICY_MAPPINGS, - SUBJECT_ALTERNATIVE_NAME, - ISSUER_ALTERNATIVE_NAME, - BASIC_CONSTRAINTS, - NAME_CONSTRAINTS, - POLICY_CONSTRAINTS, - EXTENDED_KEY_USAGE, - CRL_DISTRIBUTION_POINTS, - INHIBIT_ANY_POLICY, - ID_PKIX_OCSP_NOCHECK - ))); + public static final Set SUPPORTED_CRITICAL_EXTENSIONS = Collections.unmodifiableSet( + new LinkedHashSet<>(Arrays.asList( + KEY_USAGE, + CERTIFICATE_POLICIES, + POLICY_MAPPINGS, + SUBJECT_ALTERNATIVE_NAME, + ISSUER_ALTERNATIVE_NAME, + BASIC_CONSTRAINTS, + NAME_CONSTRAINTS, + POLICY_CONSTRAINTS, + EXTENDED_KEY_USAGE, + CRL_DISTRIBUTION_POINTS, + INHIBIT_ANY_POLICY, + ID_PKIX_OCSP_NOCHECK + ))); } } diff --git a/sign/src/main/java/com/itextpdf/signatures/OcspClientBouncyCastle.java b/sign/src/main/java/com/itextpdf/signatures/OcspClientBouncyCastle.java index 4a1ca62c05..62ed99b2b8 100644 --- a/sign/src/main/java/com/itextpdf/signatures/OcspClientBouncyCastle.java +++ b/sign/src/main/java/com/itextpdf/signatures/OcspClientBouncyCastle.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/main/java/com/itextpdf/signatures/PdfPKCS7.java b/sign/src/main/java/com/itextpdf/signatures/PdfPKCS7.java index a01d2c63e6..53f22ad997 100644 --- a/sign/src/main/java/com/itextpdf/signatures/PdfPKCS7.java +++ b/sign/src/main/java/com/itextpdf/signatures/PdfPKCS7.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -167,9 +167,10 @@ public PdfPKCS7(PrivateKey privKey, Certificate[] certChain, this.interfaceDigest = interfaceDigest; // message digest digestAlgorithmOid = DigestAlgorithms.getAllowedDigest(hashAlgorithm); - if (digestAlgorithmOid == null) + if (digestAlgorithmOid == null) { throw new PdfException(SignExceptionMessageConstant.UNKNOWN_HASH_ALGORITHM) .setMessageParams(hashAlgorithm); + } // Copy the certificates signCert = (X509Certificate) certChain[0]; @@ -298,13 +299,15 @@ public PdfPKCS7(byte[] contentsKey, PdfName filterSubtype, String provider) { // the possible ID_PKCS7_DATA ASN1Sequence rsaData = (ASN1Sequence) content.getObjectAt(2); if (rsaData.size() > 1) { - ASN1OctetString rsaDataContent = (ASN1OctetString) ((ASN1TaggedObject) rsaData.getObjectAt(1)).getObject(); + ASN1OctetString rsaDataContent = + (ASN1OctetString) ((ASN1TaggedObject) rsaData.getObjectAt(1)).getObject(); this.rsaData = rsaDataContent.getOctets(); } int next = 3; - while (content.getObjectAt(next) instanceof ASN1TaggedObject) + while (content.getObjectAt(next) instanceof ASN1TaggedObject) { ++next; + } // the certificates @@ -374,7 +377,8 @@ public PdfPKCS7(byte[] contentsKey, PdfName filterSubtype, String provider) { setMessageParams(issuer.getName() + " / " + serialNumber.toString(16)); } signCertificateChain(); - digestAlgorithmOid = ((ASN1ObjectIdentifier) ((ASN1Sequence) signerInfo.getObjectAt(2)).getObjectAt(0)).getId(); + digestAlgorithmOid = + ((ASN1ObjectIdentifier) ((ASN1Sequence) signerInfo.getObjectAt(2)).getObjectAt(0)).getId(); next = 3; boolean foundCades = false; if (signerInfo.getObjectAt(next) instanceof ASN1TaggedObject) { @@ -425,7 +429,8 @@ public PdfPKCS7(byte[] contentsKey, PdfName filterSubtype, String provider) { ESSCertIDv2 cerv2 = cerv2m[0]; AlgorithmIdentifier ai2 = cerv2.getHashAlgorithm(); byte[] enc2 = signCert.getEncoded(); - MessageDigest m2 = SignUtils.getMessageDigest(DigestAlgorithms.getDigest(ai2.getAlgorithm().getId())); + MessageDigest m2 + = SignUtils.getMessageDigest(DigestAlgorithms.getDigest(ai2.getAlgorithm().getId())); byte[] signCertHash = m2.digest(enc2); byte[] hs2 = cerv2.getCertHash(); if (!Arrays.equals(signCertHash, hs2)) @@ -440,7 +445,8 @@ public PdfPKCS7(byte[] contentsKey, PdfName filterSubtype, String provider) { } if (isCades && !foundCades) throw new IllegalArgumentException("CAdES ESS information missing."); - digestEncryptionAlgorithmOid = ((ASN1ObjectIdentifier) ((ASN1Sequence) signerInfo.getObjectAt(next++)).getObjectAt(0)).getId(); + digestEncryptionAlgorithmOid = + ((ASN1ObjectIdentifier) ((ASN1Sequence) signerInfo.getObjectAt(next++)).getObjectAt(0)).getId(); digest = ((ASN1OctetString) signerInfo.getObjectAt(next++)).getOctets(); if (next < signerInfo.size() && signerInfo.getObjectAt(next) instanceof ASN1TaggedObject) { ASN1TaggedObject taggedObject = (ASN1TaggedObject) signerInfo.getObjectAt(next); @@ -450,12 +456,14 @@ public PdfPKCS7(byte[] contentsKey, PdfName filterSubtype, String provider) { if (ts != null && ts.getAttrValues().size() > 0) { ASN1Set attributeValues = ts.getAttrValues(); ASN1Sequence tokenSequence = ASN1Sequence.getInstance(attributeValues.getObjectAt(0)); - org.bouncycastle.asn1.cms.ContentInfo contentInfo = org.bouncycastle.asn1.cms.ContentInfo.getInstance(tokenSequence); + org.bouncycastle.asn1.cms.ContentInfo contentInfo + = org.bouncycastle.asn1.cms.ContentInfo.getInstance(tokenSequence); this.timeStampToken = new TimeStampToken(contentInfo); } } if (isTsp) { - org.bouncycastle.asn1.cms.ContentInfo contentInfoTsp = org.bouncycastle.asn1.cms.ContentInfo.getInstance(signedData); + org.bouncycastle.asn1.cms.ContentInfo contentInfoTsp + = org.bouncycastle.asn1.cms.ContentInfo.getInstance(signedData); this.timeStampToken = new TimeStampToken(contentInfoTsp); TimeStampTokenInfo info = timeStampToken.getTimeStampInfo(); String algOID = info.getHashAlgorithm().getAlgorithm().getId(); @@ -724,13 +732,15 @@ public void setExternalDigest(byte[] digest, byte[] rsaData, String digestEncryp // Signing functionality. - private Signature initSignature(PrivateKey key) throws NoSuchAlgorithmException, NoSuchProviderException, InvalidKeyException { + private Signature initSignature(PrivateKey key) throws NoSuchAlgorithmException, NoSuchProviderException, + InvalidKeyException { Signature signature = SignUtils.getSignatureHelper(getDigestAlgorithm(), provider); signature.initSign(key); return signature; } - private Signature initSignature(PublicKey key) throws NoSuchAlgorithmException, NoSuchProviderException, InvalidKeyException { + private Signature initSignature(PublicKey key) throws NoSuchAlgorithmException, NoSuchProviderException, + InvalidKeyException { String digestAlgorithm = getDigestAlgorithm(); if (PdfName.Adbe_x509_rsa_sha1.equals(getFilterSubtype())) digestAlgorithm = "SHA1withRSA"; @@ -749,10 +759,11 @@ private Signature initSignature(PublicKey key) throws NoSuchAlgorithmException, * @throws SignatureException on error */ public void update(byte[] buf, int off, int len) throws SignatureException { - if (rsaData != null || digestAttr != null || isTsp) + if (rsaData != null || digestAttr != null || isTsp) { messageDigest.update(buf, off, len); - else + } else { sig.update(buf, off, len); + } } // adbe.x509.rsa_sha1 (PKCS#1) @@ -855,18 +866,17 @@ public byte[] getEncodedPKCS7(byte[] secondDigest, PdfSigner.CryptoStandard sigt // v = new ASN1EncodableVector(); for (Object element : certs) { - ASN1InputStream tempstream = new ASN1InputStream(new ByteArrayInputStream(((X509Certificate) element).getEncoded())); + ASN1InputStream tempstream = new ASN1InputStream( + new ByteArrayInputStream(((X509Certificate) element).getEncoded())); v.add(tempstream.readObject()); } DERSet dercertificates = new DERSet(v); // Create signerinfo structure. - // ASN1EncodableVector signerinfo = new ASN1EncodableVector(); // Add the signerInfo version - // signerinfo.add(new ASN1Integer(signerversion)); v = new ASN1EncodableVector(); @@ -882,7 +892,8 @@ public byte[] getEncodedPKCS7(byte[] secondDigest, PdfSigner.CryptoStandard sigt // add the authenticated attribute if present if (secondDigest != null) { - signerinfo.add(new DERTaggedObject(false, 0, getAuthenticatedAttributeSet(secondDigest, ocsp, crlBytes, sigtype))); + signerinfo.add(new DERTaggedObject(false, 0, + getAuthenticatedAttributeSet(secondDigest, ocsp, crlBytes, sigtype))); } // Add the digestEncryptionAlgorithm v = new ASN1EncodableVector(); @@ -1005,9 +1016,11 @@ private ASN1EncodableVector buildUnauthenticatedAttributes(byte[] timeStampToken * @return the byte array representation of the authenticatedAttributes ready to be signed * @see RFC 6960 § 4.2.1 */ - public byte[] getAuthenticatedAttributeBytes(byte[] secondDigest, PdfSigner.CryptoStandard sigtype, Collection ocsp, Collection crlBytes) { + public byte[] getAuthenticatedAttributeBytes(byte[] secondDigest, PdfSigner.CryptoStandard sigtype, + Collection ocsp, Collection crlBytes) { try { - return getAuthenticatedAttributeSet(secondDigest, ocsp, crlBytes, sigtype).getEncoded(ASN1Encoding.DER); + return getAuthenticatedAttributeSet(secondDigest, ocsp, crlBytes, sigtype) + .getEncoded(ASN1Encoding.DER); } catch (Exception e) { throw new PdfException(e); } @@ -1020,7 +1033,8 @@ public byte[] getAuthenticatedAttributeBytes(byte[] secondDigest, PdfSigner.Cryp * @param secondDigest the content digest * @return the byte array representation of the authenticatedAttributes ready to be signed */ - private DERSet getAuthenticatedAttributeSet(byte[] secondDigest, Collection ocsp, Collection crlBytes, PdfSigner.CryptoStandard sigtype) { + private DERSet getAuthenticatedAttributeSet(byte[] secondDigest, Collection ocsp, + Collection crlBytes, PdfSigner.CryptoStandard sigtype) { try { ASN1EncodableVector attribute = new ASN1EncodableVector(); ASN1EncodableVector v = new ASN1EncodableVector(); @@ -1049,8 +1063,9 @@ private DERSet getAuthenticatedAttributeSet(byte[] secondDigest, Collection signCerts; + Collection signCerts; /** * The X.509 certificate that is used to sign the digest. @@ -1301,11 +1319,12 @@ public Collection getCRLs() { /** * Helper method that tries to construct the CRLs. */ - private void findCRL(ASN1Sequence seq) { + void findCRL(ASN1Sequence seq) { try { crls = new ArrayList<>(); for (int k = 0; k < seq.size(); ++k) { - ByteArrayInputStream ar = new ByteArrayInputStream(seq.getObjectAt(k).toASN1Primitive().getEncoded(ASN1Encoding.DER)); + ByteArrayInputStream ar = new ByteArrayInputStream( + seq.getObjectAt(k).toASN1Primitive().getEncoded(ASN1Encoding.DER)); X509CRL crl = (X509CRL) SignUtils.parseCrlFromStream(ar); crls.add(crl); } @@ -1319,7 +1338,7 @@ private void findCRL(ASN1Sequence seq) { /** * BouncyCastle BasicOCSPResp */ - private BasicOCSPResp basicResp; + BasicOCSPResp basicResp; /** * Gets the OCSP basic response if there is one. @@ -1346,7 +1365,8 @@ public boolean isRevocationValid() { CertificateID cid = sr.getCertID(); X509Certificate sigcer = getSigningCertificate(); X509Certificate isscer = cs[1]; - CertificateID tis = SignUtils.generateCertificateId(isscer, sigcer.getSerialNumber(), cid.getHashAlgOID()); + CertificateID tis = SignUtils.generateCertificateId(isscer, sigcer.getSerialNumber(), + cid.getHashAlgOID()); return tis.equals(cid); } catch (Exception ignored) { } @@ -1364,7 +1384,8 @@ private void findOcsp(ASN1Sequence seq) throws IOException { boolean ret = false; while (true) { if (seq.getObjectAt(0) instanceof ASN1ObjectIdentifier - && ((ASN1ObjectIdentifier) seq.getObjectAt(0)).getId().equals(OCSPObjectIdentifiers.id_pkix_ocsp_basic.getId())) { + && ((ASN1ObjectIdentifier) seq.getObjectAt(0)).getId() + .equals(OCSPObjectIdentifiers.id_pkix_ocsp_basic.getId())) { break; } ret = true; @@ -1380,8 +1401,9 @@ private void findOcsp(ASN1Sequence seq) throws IOException { seq = (ASN1Sequence) tag.getObject(); ret = false; break; - } else + } else { return; + } } } if (ret) diff --git a/sign/src/main/java/com/itextpdf/signatures/PdfSignature.java b/sign/src/main/java/com/itextpdf/signatures/PdfSignature.java index d06d5d0771..75d29dd769 100644 --- a/sign/src/main/java/com/itextpdf/signatures/PdfSignature.java +++ b/sign/src/main/java/com/itextpdf/signatures/PdfSignature.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -89,7 +89,8 @@ public PdfSignature(PdfDictionary sigDictionary) { /** * A name that describes the encoding of the signature value and key information in the signature dictionary. - * @return a {@link PdfName} which usually has a value either {@link PdfName#Adbe_pkcs7_detached} or {@link PdfName#ETSI_CAdES_DETACHED}. + * @return a {@link PdfName} which usually has a value either {@link PdfName#Adbe_pkcs7_detached} + * or {@link PdfName#ETSI_CAdES_DETACHED}. */ public PdfName getSubFilter() { return getPdfObject().getAsName(PdfName.SubFilter); @@ -99,7 +100,8 @@ public PdfName getSubFilter() { * The type of PDF object that the wrapped dictionary describes; if present, shall be {@link PdfName#Sig} for a signature * dictionary or {@link PdfName#DocTimeStamp} for a timestamp signature dictionary. Shall be not null if it's value * is {@link PdfName#DocTimeStamp}. The default value is: {@link PdfName#Sig}. - * @return a {@link PdfName} that identifies type of the wrapped dictionary, returns null if it is not explicitly specified. + * @return a {@link PdfName} that identifies type of the wrapped dictionary, + * returns null if it is not explicitly specified. */ public PdfName getType() { return getPdfObject().getAsName(PdfName.Type); @@ -108,21 +110,21 @@ public PdfName getType() { /** * Sets the /ByteRange. * - * @param range an array of pairs of integers that specifies the byte range used in the digest calculation. A pair consists of the starting byte offset and the length + * @param range an array of pairs of integers that specifies the byte range used in the digest calculation. + * A pair consists of the starting byte offset and the length */ public void setByteRange(int[] range) { PdfArray array = new PdfArray(); - for (int k = 0; k < range.length; ++k) { array.add(new PdfNumber(range[k])); } - put(PdfName.ByteRange, array); } /** * Gets the /ByteRange. - * @return an array of pairs of integers that specifies the byte range used in the digest calculation. A pair consists of the starting byte offset and the length. + * @return an array of pairs of integers that specifies the byte range used in the digest calculation. + * A pair consists of the starting byte offset and the length. */ public PdfArray getByteRange() { return getPdfObject().getAsArray(PdfName.ByteRange); @@ -297,12 +299,10 @@ protected boolean isWrappedObjectMustBeIndirect() { */ private PdfSignatureBuildProperties getPdfSignatureBuildProperties() { PdfDictionary buildPropDict = getPdfObject().getAsDictionary(PdfName.Prop_Build); - if (buildPropDict == null) { buildPropDict = new PdfDictionary(); put(PdfName.Prop_Build, buildPropDict); } - return new PdfSignatureBuildProperties(buildPropDict); } } diff --git a/sign/src/main/java/com/itextpdf/signatures/PdfSignatureApp.java b/sign/src/main/java/com/itextpdf/signatures/PdfSignatureApp.java index 935be56d5f..8fb8bbb222 100644 --- a/sign/src/main/java/com/itextpdf/signatures/PdfSignatureApp.java +++ b/sign/src/main/java/com/itextpdf/signatures/PdfSignatureApp.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/main/java/com/itextpdf/signatures/PdfSignatureAppearance.java b/sign/src/main/java/com/itextpdf/signatures/PdfSignatureAppearance.java index 2b7bf5f699..ebe3972bd5 100644 --- a/sign/src/main/java/com/itextpdf/signatures/PdfSignatureAppearance.java +++ b/sign/src/main/java/com/itextpdf/signatures/PdfSignatureAppearance.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -688,7 +688,8 @@ protected PdfFormXObject getAppearance() throws IOException { float usableScale = imageScale; if (imageScale < 0) { - usableScale = Math.min(rotatedRect.getWidth() / image.getWidth(), rotatedRect.getHeight() / image.getHeight()); + usableScale = Math.min(rotatedRect.getWidth() / image.getWidth(), + rotatedRect.getHeight() / image.getHeight()); } float w = image.getWidth() * usableScale; @@ -758,7 +759,8 @@ protected PdfFormXObject getAppearance() throws IOException { switch (renderingMode) { case NAME_AND_DESCRIPTION: - String signedBy = CertificateInfo.getSubjectFields((X509Certificate) signCertificate).getField("CN"); + String signedBy = + CertificateInfo.getSubjectFields((X509Certificate) signCertificate).getField("CN"); if (signedBy == null) { signedBy = CertificateInfo.getSubjectFields((X509Certificate) signCertificate).getField("E"); diff --git a/sign/src/main/java/com/itextpdf/signatures/PdfSignatureBuildProperties.java b/sign/src/main/java/com/itextpdf/signatures/PdfSignatureBuildProperties.java index aeef27241d..0f7e2ccabb 100644 --- a/sign/src/main/java/com/itextpdf/signatures/PdfSignatureBuildProperties.java +++ b/sign/src/main/java/com/itextpdf/signatures/PdfSignatureBuildProperties.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/main/java/com/itextpdf/signatures/PdfSigner.java b/sign/src/main/java/com/itextpdf/signatures/PdfSigner.java index f9ce01350d..e36bc4e06c 100644 --- a/sign/src/main/java/com/itextpdf/signatures/PdfSigner.java +++ b/sign/src/main/java/com/itextpdf/signatures/PdfSigner.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -250,7 +250,8 @@ public PdfSigner(PdfReader reader, OutputStream outputStream, StampingProperties * preserved regardless of what is set in properties. * @throws IOException if some I/O problem occurs */ - public PdfSigner(PdfReader reader, OutputStream outputStream, String path, StampingProperties properties) throws IOException { + public PdfSigner(PdfReader reader, OutputStream outputStream, String path, StampingProperties properties) + throws IOException { StampingProperties localProps = new StampingProperties(properties).preserveEncryption(); if (path == null) { temporaryOS = new ByteArrayOutputStream(); @@ -506,9 +507,11 @@ public void setFieldLockDict(PdfSigFieldLock fieldLock) { * @throws IOException if some I/O problem occurs * @throws GeneralSecurityException if some problem during apply security algorithms occurs */ - public void signDetached(IExternalDigest externalDigest, IExternalSignature externalSignature, Certificate[] chain, Collection crlList, IOcspClient ocspClient, - ITSAClient tsaClient, int estimatedSize, CryptoStandard sigtype) throws IOException, GeneralSecurityException { - signDetached(externalDigest, externalSignature, chain, crlList, ocspClient, tsaClient, estimatedSize, sigtype, (SignaturePolicyIdentifier) null); + public void signDetached(IExternalDigest externalDigest, IExternalSignature externalSignature, Certificate[] chain, + Collection crlList, IOcspClient ocspClient, ITSAClient tsaClient, int estimatedSize, + CryptoStandard sigtype) throws IOException, GeneralSecurityException { + signDetached(externalDigest, externalSignature, chain, crlList, ocspClient, tsaClient, estimatedSize, sigtype, + (SignaturePolicyIdentifier) null); } /** @@ -529,9 +532,11 @@ public void signDetached(IExternalDigest externalDigest, IExternalSignature exte * @throws IOException if some I/O problem occurs * @throws GeneralSecurityException if some problem during apply security algorithms occurs */ - public void signDetached(IExternalDigest externalDigest, IExternalSignature externalSignature, Certificate[] chain, Collection crlList, IOcspClient ocspClient, - ITSAClient tsaClient, int estimatedSize, CryptoStandard sigtype, SignaturePolicyInfo signaturePolicy) throws IOException, GeneralSecurityException { - signDetached(externalDigest, externalSignature, chain, crlList, ocspClient, tsaClient, estimatedSize, sigtype, signaturePolicy.toSignaturePolicyIdentifier()); + public void signDetached(IExternalDigest externalDigest, IExternalSignature externalSignature, Certificate[] chain, + Collection crlList, IOcspClient ocspClient, ITSAClient tsaClient, int estimatedSize, + CryptoStandard sigtype, SignaturePolicyInfo signaturePolicy) throws IOException, GeneralSecurityException { + signDetached(externalDigest, externalSignature, chain, crlList, ocspClient, tsaClient, estimatedSize, sigtype, + signaturePolicy.toSignaturePolicyIdentifier()); } /** @@ -552,8 +557,9 @@ public void signDetached(IExternalDigest externalDigest, IExternalSignature exte * @throws IOException if some I/O problem occurs * @throws GeneralSecurityException if some problem during apply security algorithms occurs */ - public void signDetached(IExternalDigest externalDigest, IExternalSignature externalSignature, Certificate[] chain, Collection crlList, IOcspClient ocspClient, - ITSAClient tsaClient, int estimatedSize, CryptoStandard sigtype, SignaturePolicyIdentifier signaturePolicy) throws IOException, GeneralSecurityException { + public void signDetached(IExternalDigest externalDigest, IExternalSignature externalSignature, Certificate[] chain, + Collection crlList, IOcspClient ocspClient, ITSAClient tsaClient, int estimatedSize, + CryptoStandard sigtype, SignaturePolicyIdentifier signaturePolicy) throws IOException, GeneralSecurityException { if (closed) { throw new PdfException(SignExceptionMessageConstant.THIS_INSTANCE_OF_PDF_SIGNER_ALREADY_CLOSED); } @@ -567,8 +573,9 @@ public void signDetached(IExternalDigest externalDigest, IExternalSignature exte Collection crlBytes = null; int i = 0; - while (crlBytes == null && i < chain.length) + while (crlBytes == null && i < chain.length) { crlBytes = processCrl(chain[i++], crlList); + } if (estimatedSize == 0) { estimatedSize = 8192; if (crlBytes != null) { @@ -576,10 +583,12 @@ public void signDetached(IExternalDigest externalDigest, IExternalSignature exte estimatedSize += element.length + 10; } } - if (ocspClient != null) + if (ocspClient != null) { estimatedSize += 4192; - if (tsaClient != null) + } + if (tsaClient != null) { estimatedSize += 4192; + } } PdfSignatureAppearance appearance = getSignatureAppearance(); appearance.setCertificate(chain[0]); @@ -587,7 +596,9 @@ public void signDetached(IExternalDigest externalDigest, IExternalSignature exte addDeveloperExtension(PdfDeveloperExtension.ESIC_1_7_EXTENSIONLEVEL2); } String hashAlgorithm = externalSignature.getHashAlgorithm(); - PdfSignature dic = new PdfSignature(PdfName.Adobe_PPKLite, sigtype == CryptoStandard.CADES ? PdfName.ETSI_CAdES_DETACHED : PdfName.Adbe_pkcs7_detached); + PdfSignature dic = new PdfSignature(PdfName.Adobe_PPKLite, sigtype == CryptoStandard.CADES + ? PdfName.ETSI_CAdES_DETACHED + : PdfName.Adbe_pkcs7_detached); dic.setReason(appearance.getReason()); dic.setLocation(appearance.getLocation()); dic.setSignatureCreator(appearance.getSignatureCreator()); @@ -620,8 +631,9 @@ public void signDetached(IExternalDigest externalDigest, IExternalSignature exte byte[] encodedSig = sgn.getEncodedPKCS7(hash, sigtype, tsaClient, ocspList, crlBytes); - if (estimatedSize < encodedSig.length) + if (estimatedSize < encodedSig.length) { throw new IOException("Not enough space"); + } byte[] paddedSig = new byte[estimatedSize]; System.arraycopy(encodedSig, 0, paddedSig, 0, encodedSig.length); @@ -803,21 +815,21 @@ public static void signDeferred(PdfDocument document, String fieldName, OutputSt * @return a collection of CRL bytes that can be embedded in a PDF */ protected Collection processCrl(Certificate cert, Collection crlList) { - if (crlList == null) + if (crlList == null) { return null; + } List crlBytes = new ArrayList<>(); for (ICrlClient cc : crlList) { - if (cc == null) + if (cc == null) { continue; + } Collection b = cc.getEncoded((X509Certificate) cert, null); - if (b == null) + if (b == null) { continue; + } crlBytes.addAll(b); } - if (crlBytes.size() == 0) - return null; - else - return crlBytes; + return crlBytes.size() == 0 ? null : crlBytes; } protected void addDeveloperExtension(PdfDeveloperExtension extension) { @@ -1062,7 +1074,8 @@ protected PdfSigFieldLock createNewSignatureFormField(PdfAcroForm acroForm, Stri */ protected InputStream getRangeStream() throws IOException { RandomAccessSourceFactory fac = new RandomAccessSourceFactory(); - return new RASInputStream(fac.createRanged(getUnderlyingSource(), range)); + IRandomAccessSource randomAccessSource = fac.createRanged(getUnderlyingSource(), range); + return new RASInputStream(randomAccessSource); } /** @@ -1090,8 +1103,9 @@ protected void close(PdfDictionary update) throws IOException { throw new IllegalArgumentException("The key didn't reserve space in preclose"); bous.reset(); os.write(obj); - if (bous.size() > lit.getBytesCount()) + if (bous.size() > lit.getBytesCount()) { throw new IllegalArgumentException(SignExceptionMessageConstant.TOO_BIG_KEY); + } if (tempFile == null) { System.arraycopy(bous.toByteArray(), 0, bout, (int) lit.getPosition(), (int) bous.size()); } else { diff --git a/sign/src/main/java/com/itextpdf/signatures/PrivateKeySignature.java b/sign/src/main/java/com/itextpdf/signatures/PrivateKeySignature.java index 8bce47bd81..07853e477b 100644 --- a/sign/src/main/java/com/itextpdf/signatures/PrivateKeySignature.java +++ b/sign/src/main/java/com/itextpdf/signatures/PrivateKeySignature.java @@ -1,7 +1,7 @@ /* * * This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV * Authors: Bruno Lowagie, Paulo Soares, et al. * * This program is free software; you can redistribute it and/or modify diff --git a/sign/src/main/java/com/itextpdf/signatures/ProviderDigest.java b/sign/src/main/java/com/itextpdf/signatures/ProviderDigest.java index a50796bbd0..293615c8c4 100644 --- a/sign/src/main/java/com/itextpdf/signatures/ProviderDigest.java +++ b/sign/src/main/java/com/itextpdf/signatures/ProviderDigest.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/main/java/com/itextpdf/signatures/RootStoreVerifier.java b/sign/src/main/java/com/itextpdf/signatures/RootStoreVerifier.java index 305450afd8..7c3bf7080d 100644 --- a/sign/src/main/java/com/itextpdf/signatures/RootStoreVerifier.java +++ b/sign/src/main/java/com/itextpdf/signatures/RootStoreVerifier.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -62,8 +62,7 @@ public class RootStoreVerifier extends CertificateVerifier { /** * Creates a RootStoreVerifier in a chain of verifiers. * - * @param verifier - * the next verifier in the chain + * @param verifier the next verifier in the chain */ public RootStoreVerifier(CertificateVerifier verifier) { super(verifier); @@ -72,8 +71,7 @@ public RootStoreVerifier(CertificateVerifier verifier) { /** * Sets the Key Store against which a certificate can be checked. * - * @param keyStore - * a root store + * @param keyStore a root store */ public void setRootStore(KeyStore keyStore) { this.rootStore = keyStore; @@ -82,17 +80,14 @@ public void setRootStore(KeyStore keyStore) { /** * Verifies a single certificate against a key store (if present). * - * @param signCert - * the certificate to verify - * @param issuerCert - * the issuer certificate - * @param signDate - * the date the certificate needs to be valid + * @param signCert the certificate to verify + * @param issuerCert the issuer certificate + * @param signDate the date the certificate needs to be valid * @return a list of VerificationOK objects. * The list will be empty if the certificate couldn't be verified. */ public List verify(X509Certificate signCert, X509Certificate issuerCert, - Date signDate) throws GeneralSecurityException { + Date signDate) throws GeneralSecurityException { // verify using the CertificateVerifier if root store is missing if (rootStore == null) return super.verify(signCert, issuerCert, signDate); @@ -102,11 +97,12 @@ public List verify(X509Certificate signCert, X509Certificate iss for (X509Certificate anchor : SignUtils.getCertificates(rootStore)) { try { signCert.verify(anchor.getPublicKey()); - result.add(new VerificationOK(signCert, this.getClass(), "Certificate verified against root store.")); + result.add(new VerificationOK(signCert, this.getClass(), + "Certificate verified against root store.")); result.addAll(super.verify(signCert, issuerCert, signDate)); return result; } catch (GeneralSecurityException e) { - continue; + // do nothing and continue } } result.addAll(super.verify(signCert, issuerCert, signDate)); diff --git a/sign/src/main/java/com/itextpdf/signatures/SecurityIDs.java b/sign/src/main/java/com/itextpdf/signatures/SecurityIDs.java index 627a47e00a..3762f2d5ba 100644 --- a/sign/src/main/java/com/itextpdf/signatures/SecurityIDs.java +++ b/sign/src/main/java/com/itextpdf/signatures/SecurityIDs.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/main/java/com/itextpdf/signatures/SignUtils.java b/sign/src/main/java/com/itextpdf/signatures/SignUtils.java index 67d582b2a5..6788cef0f5 100644 --- a/sign/src/main/java/com/itextpdf/signatures/SignUtils.java +++ b/sign/src/main/java/com/itextpdf/signatures/SignUtils.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -103,6 +103,7 @@ This file is part of the iText (R) project. import org.bouncycastle.cert.ocsp.OCSPException; import org.bouncycastle.cert.ocsp.OCSPReq; import org.bouncycastle.cert.ocsp.OCSPReqBuilder; +import org.bouncycastle.cms.SignerInformationVerifier; import org.bouncycastle.cms.jcajce.JcaSimpleSignerInfoVerifierBuilder; import org.bouncycastle.jce.X509Principal; import org.bouncycastle.jce.provider.X509CertParser; @@ -117,7 +118,6 @@ This file is part of the iText (R) project. final class SignUtils { static String getPrivateKeyAlgorithm(PrivateKey pk) { String algorithm = pk.getAlgorithm(); - if (algorithm.equals("EC")) { algorithm = "ECDSA"; } @@ -148,7 +148,8 @@ static MessageDigest getMessageDigest(String hashAlgorithm, IExternalDigest exte return externalDigest.getMessageDigest(hashAlgorithm); } - static MessageDigest getMessageDigest(String hashAlgorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException { + static MessageDigest getMessageDigest(String hashAlgorithm, String provider) + throws NoSuchAlgorithmException, NoSuchProviderException { if (provider == null || provider.startsWith("SunPKCS11") || provider.startsWith("SunMSCAPI")) { return MessageDigest.getInstance(DigestAlgorithms.normalizeDigestName(hashAlgorithm)); } else { @@ -165,15 +166,20 @@ static InputStream getHttpResponse(URL urlt) throws IOException { return (InputStream) con.getContent(); } - static CertificateID generateCertificateId(X509Certificate issuerCert, BigInteger serialNumber, AlgorithmIdentifier digestAlgorithmIdentifier) throws OperatorCreationException, CertificateEncodingException, OCSPException { + static CertificateID generateCertificateId(X509Certificate issuerCert, BigInteger serialNumber, + AlgorithmIdentifier digestAlgorithmIdentifier) + throws OperatorCreationException, CertificateEncodingException, OCSPException { return new CertificateID( new JcaDigestCalculatorProviderBuilder().build().get(digestAlgorithmIdentifier), new JcaX509CertificateHolder(issuerCert), serialNumber); } - static CertificateID generateCertificateId(X509Certificate issuerCert, BigInteger serialNumber, ASN1ObjectIdentifier identifier) throws OperatorCreationException, CertificateEncodingException, OCSPException { + static CertificateID generateCertificateId(X509Certificate issuerCert, BigInteger serialNumber, + ASN1ObjectIdentifier identifier) + throws OperatorCreationException, CertificateEncodingException, OCSPException { return new CertificateID( - new JcaDigestCalculatorProviderBuilder().build().get(new AlgorithmIdentifier(identifier, DERNull.INSTANCE)), + new JcaDigestCalculatorProviderBuilder().build().get( + new AlgorithmIdentifier(identifier, DERNull.INSTANCE)), new JcaX509CertificateHolder(issuerCert), serialNumber); } @@ -181,7 +187,9 @@ static OCSPReq generateOcspRequestWithNonce(CertificateID id) throws IOException OCSPReqBuilder gen = new OCSPReqBuilder(); gen.addRequest(id); - Extension ext = new Extension(OCSPObjectIdentifiers.id_pkix_ocsp_nonce, false, new DEROctetString(new DEROctetString(PdfEncryption.generateNewDocumentId()).getEncoded())); + DEROctetString derOctetString = new DEROctetString( + new DEROctetString(PdfEncryption.generateNewDocumentId()).getEncoded()); + Extension ext = new Extension(OCSPObjectIdentifiers.id_pkix_ocsp_nonce, false, derOctetString); gen.setRequestExtensions(new Extensions(new Extension[]{ext})); return gen.build(); } @@ -204,18 +212,29 @@ static InputStream getHttpResponseForOcspRequest(byte[] request, URL urlt) throw return (InputStream) con.getContent(); } - static boolean isSignatureValid(BasicOCSPResp validator, Certificate certStoreX509, String provider) throws OperatorCreationException, OCSPException { - if (provider == null) provider = "BC"; - return validator.isSignatureValid(new JcaContentVerifierProviderBuilder().setProvider(provider).build(certStoreX509.getPublicKey())); + static boolean isSignatureValid(BasicOCSPResp validator, Certificate certStoreX509, String provider) + throws OperatorCreationException, OCSPException { + if (provider == null) { + provider = "BC"; + } + return validator.isSignatureValid( + new JcaContentVerifierProviderBuilder().setProvider(provider).build(certStoreX509.getPublicKey())); } - static void isSignatureValid(TimeStampToken validator, X509Certificate certStoreX509, String provider) throws OperatorCreationException, TSPException { - if (provider == null) provider = "BC"; - validator.validate(new JcaSimpleSignerInfoVerifierBuilder().setProvider(provider).build(certStoreX509)); + static void isSignatureValid(TimeStampToken validator, X509Certificate certStoreX509, String provider) + throws OperatorCreationException, TSPException { + if (provider == null) { + provider = "BC"; + } + SignerInformationVerifier verifier = new JcaSimpleSignerInfoVerifierBuilder().setProvider(provider) + .build(certStoreX509); + validator.validate(verifier); } - static boolean checkIfIssuersMatch(CertificateID certID, X509Certificate issuerCert) throws CertificateEncodingException, IOException, OCSPException { - return certID.matchesIssuer(new X509CertificateHolder(issuerCert.getEncoded()), new BcDigestCalculatorProvider()); + static boolean checkIfIssuersMatch(CertificateID certID, X509Certificate issuerCert) + throws CertificateEncodingException, IOException, OCSPException { + return certID.matchesIssuer( + new X509CertificateHolder(issuerCert.getEncoded()), new BcDigestCalculatorProvider()); } static Date add180Sec(Date date) { @@ -230,6 +249,7 @@ static Iterable getCertsFromOcspResponse(BasicOCSPResp ocspResp try { certs.add(converter.getCertificate(certHolder)); } catch (Exception ex) { + // do nothing } } return certs; @@ -258,7 +278,8 @@ static class TsaResponse { InputStream tsaResponseStream; } - static TsaResponse getTsaResponseForUserRequest(String tsaUrl, byte[] requestBytes, String tsaUsername, String tsaPassword) throws IOException { + static TsaResponse getTsaResponseForUserRequest(String tsaUrl, byte[] requestBytes, String tsaUsername, + String tsaPassword) throws IOException { URL url = new URL(tsaUrl); URLConnection tsaConnection; try { @@ -306,10 +327,9 @@ static TsaResponse getTsaResponseForUserRequest(String tsaUrl, byte[] requestByt // TODO DEVSIX-2534 @Deprecated static boolean hasUnsupportedCriticalExtension(X509Certificate cert) { - if ( cert == null ) { + if (cert == null) { throw new IllegalArgumentException("X509Certificate can't be null."); } - if (cert.hasUnsupportedCriticalExtension()) { for (String oid : cert.getCriticalExtensionOIDs()) { if (OID.X509Extensions.SUPPORTED_CRITICAL_EXTENSIONS.contains(oid)) { @@ -328,8 +348,11 @@ static Calendar getTimeStampDate(TimeStampToken timeStampToken) { return calendar; } - static Signature getSignatureHelper(String algorithm, String provider) throws NoSuchProviderException, NoSuchAlgorithmException { - return provider == null ? Signature.getInstance(algorithm) : Signature.getInstance(algorithm, provider); + static Signature getSignatureHelper(String algorithm, String provider) + throws NoSuchProviderException, NoSuchAlgorithmException { + return provider == null + ? Signature.getInstance(algorithm) + : Signature.getInstance(algorithm, provider); } static boolean verifyCertificateSignature(X509Certificate certificate, PublicKey issuerPublicKey, String provider) { @@ -385,7 +408,7 @@ private void tryToGetNextCertificate() { break; } } catch (KeyStoreException e) { - continue; + // do nothing and continue } } } diff --git a/sign/src/main/java/com/itextpdf/signatures/SignaturePermissions.java b/sign/src/main/java/com/itextpdf/signatures/SignaturePermissions.java index b5af568dbd..0af5123bbf 100644 --- a/sign/src/main/java/com/itextpdf/signatures/SignaturePermissions.java +++ b/sign/src/main/java/com/itextpdf/signatures/SignaturePermissions.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -133,8 +133,9 @@ public SignaturePermissions(PdfDictionary sigDict, SignaturePermissions previous fieldLocks.add(new FieldLock(action, params.getAsArray(PdfName.Fields))); } PdfNumber p = params.getAsNumber(PdfName.P); - if (p == null) + if (p == null) { continue; + } switch (p.intValue()) { default: break; diff --git a/sign/src/main/java/com/itextpdf/signatures/SignaturePolicyInfo.java b/sign/src/main/java/com/itextpdf/signatures/SignaturePolicyInfo.java index 77367e5c20..c14ca2e523 100644 --- a/sign/src/main/java/com/itextpdf/signatures/SignaturePolicyInfo.java +++ b/sign/src/main/java/com/itextpdf/signatures/SignaturePolicyInfo.java @@ -2,7 +2,7 @@ $Id$ This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -77,7 +77,8 @@ public class SignaturePolicyInfo { * @param policyDigestAlgorithm the digestion algorithm of the signature policy * @param policyUri the uri of the full policy description */ - public SignaturePolicyInfo(String policyIdentifier, byte[] policyHash, String policyDigestAlgorithm, String policyUri) { + public SignaturePolicyInfo(String policyIdentifier, byte[] policyHash, String policyDigestAlgorithm, + String policyUri) { if (policyIdentifier == null || policyIdentifier.length() == 0) { throw new IllegalArgumentException("Policy identifier cannot be null"); } @@ -101,8 +102,10 @@ public SignaturePolicyInfo(String policyIdentifier, byte[] policyHash, String po * @param policyDigestAlgorithm the digestion algorithm of the signature policy * @param policyUri the uri of the full policy description */ - public SignaturePolicyInfo(String policyIdentifier, String policyHashBase64, String policyDigestAlgorithm, String policyUri) { - this(policyIdentifier, policyHashBase64 != null ? Base64.decode(policyHashBase64) : null, policyDigestAlgorithm, policyUri); + public SignaturePolicyInfo(String policyIdentifier, String policyHashBase64, String policyDigestAlgorithm, + String policyUri) { + this(policyIdentifier, policyHashBase64 != null ? Base64.decode(policyHashBase64) : null, + policyDigestAlgorithm, policyUri); } public String getPolicyIdentifier() { @@ -132,13 +135,18 @@ SignaturePolicyIdentifier toSignaturePolicyIdentifier() { SigPolicyQualifierInfo spqi = null; if (this.policyUri != null && this.policyUri.length() > 0) { - spqi = new SigPolicyQualifierInfo(PKCSObjectIdentifiers.id_spq_ets_uri, new DERIA5String(this.policyUri)); + spqi = new SigPolicyQualifierInfo(PKCSObjectIdentifiers.id_spq_ets_uri, + new DERIA5String(this.policyUri)); } - signaturePolicyIdentifier = new SignaturePolicyIdentifier(new SignaturePolicyId(ASN1ObjectIdentifier - .getInstance(new ASN1ObjectIdentifier(this.policyIdentifier.replace("urn:oid:", ""))), - new OtherHashAlgAndValue(new AlgorithmIdentifier(new ASN1ObjectIdentifier(algId)), - new DEROctetString(this.policyHash)), SignUtils.createSigPolicyQualifiers(spqi))); + ASN1ObjectIdentifier identifier = ASN1ObjectIdentifier.getInstance( + new ASN1ObjectIdentifier(this.policyIdentifier.replace("urn:oid:", ""))); + OtherHashAlgAndValue otherHashAlgAndValue = new OtherHashAlgAndValue( + new AlgorithmIdentifier(new ASN1ObjectIdentifier(algId)), + new DEROctetString(this.policyHash)); + SignaturePolicyId signaturePolicyId = new SignaturePolicyId(identifier, otherHashAlgAndValue, + SignUtils.createSigPolicyQualifiers(spqi)); + signaturePolicyIdentifier = new SignaturePolicyIdentifier(signaturePolicyId); return signaturePolicyIdentifier; } diff --git a/sign/src/main/java/com/itextpdf/signatures/SignatureUtil.java b/sign/src/main/java/com/itextpdf/signatures/SignatureUtil.java index 18a6703ff8..5161f8658a 100644 --- a/sign/src/main/java/com/itextpdf/signatures/SignatureUtil.java +++ b/sign/src/main/java/com/itextpdf/signatures/SignatureUtil.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -73,7 +73,6 @@ This file is part of the iText (R) project. import java.util.List; import java.util.Map; - /** * Utility class that provides several convenience methods concerning digital signatures. */ @@ -96,7 +95,7 @@ public SignatureUtil(PdfDocument document) { // Only create new AcroForm if there is a writer this.acroForm = PdfAcroForm.getAcroForm(document, document.getWriter() != null); } - + /** * Prepares an {@link PdfPKCS7} instance for the given signature. * This method handles signature parsing and might throw an exception if @@ -138,31 +137,38 @@ public PdfPKCS7 readSignatureData(String signatureFieldName) { */ public PdfPKCS7 readSignatureData(String signatureFieldName, String securityProvider) { PdfSignature signature = getSignature(signatureFieldName); - if (signature == null) + if (signature == null) { return null; + } try { PdfName sub = signature.getSubFilter(); PdfString contents = signature.getContents(); PdfPKCS7 pk = null; if (sub.equals(PdfName.Adbe_x509_rsa_sha1)) { PdfString cert = signature.getPdfObject().getAsString(PdfName.Cert); - if (cert == null) + if (cert == null) { cert = signature.getPdfObject().getAsArray(PdfName.Cert).getAsString(0); - pk = new PdfPKCS7(PdfEncodings.convertToBytes(contents.getValue(), null), cert.getValueBytes(), securityProvider); - } else + } + pk = new PdfPKCS7(PdfEncodings.convertToBytes(contents.getValue(), null), cert.getValueBytes(), + securityProvider); + } else { pk = new PdfPKCS7(PdfEncodings.convertToBytes(contents.getValue(), null), sub, securityProvider); + } updateByteRange(pk, signature); PdfString date = signature.getDate(); - if (date != null) + if (date != null) { pk.setSignDate(PdfDate.decode(date.toString())); + } String signName = signature.getName(); pk.setSignName(signName); String reason = signature.getReason(); - if (reason != null) + if (reason != null) { pk.setReason(reason); + } String location = signature.getLocation(); - if (location != null) + if (location != null) { pk.setLocation(location); + } return pk; } catch (Exception e) { throw new PdfException(e); @@ -171,7 +177,9 @@ public PdfPKCS7 readSignatureData(String signatureFieldName, String securityProv public PdfSignature getSignature(String name) { PdfDictionary sigDict = getSignatureDictionary(name); - return sigDict != null ? new PdfSignature(sigDict) : null; + return sigDict != null + ? new PdfSignature(sigDict) + : null; } /** @@ -183,8 +191,9 @@ public PdfSignature getSignature(String name) { */ public PdfDictionary getSignatureDictionary(String name) { getSignatureNames(); - if (acroForm == null || !sigNames.containsKey(name)) + if (acroForm == null || !sigNames.containsKey(name)) { return null; + } PdfFormField field = acroForm.getField(name); PdfDictionary merged = field.getPdfObject(); return merged.getAsDictionary(PdfName.V); @@ -196,7 +205,8 @@ private void updateByteRange(PdfPKCS7 pkcs7, PdfSignature signature) { RandomAccessFileOrArray rf = document.getReader().getSafeFile(); InputStream rg = null; try { - rg = new RASInputStream(new RandomAccessSourceFactory().createRanged(rf.createSourceView(), b.toLongArray())); + rg = new RASInputStream( + new RandomAccessSourceFactory().createRanged(rf.createSourceView(), b.toLongArray())); byte[] buf = new byte[8192]; int rd; while ((rd = rg.read(buf, 0, buf.length)) > 0) { @@ -220,8 +230,9 @@ private void updateByteRange(PdfPKCS7 pkcs7, PdfSignature signature) { * @return List containing the field names that have signatures and are signed */ public List getSignatureNames() { - if (sigNames != null) + if (sigNames != null) { return new ArrayList<>(orderedSignatureNames); + } sigNames = new HashMap<>(); orderedSignatureNames = new ArrayList<>(); populateSignatureNames(); @@ -241,10 +252,12 @@ public List getBlankSignatureNames() { for (Map.Entry entry : acroForm.getFormFields().entrySet()) { PdfFormField field = entry.getValue(); PdfDictionary merged = field.getPdfObject(); - if (!PdfName.Sig.equals(merged.getAsName(PdfName.FT))) + if (!PdfName.Sig.equals(merged.getAsName(PdfName.FT))) { continue; - if (sigNames.containsKey(entry.getKey())) + } + if (sigNames.containsKey(entry.getKey())) { continue; + } sigs.add(entry.getKey()); } } @@ -259,8 +272,9 @@ public int getTotalRevisions() { public int getRevision(String field) { getSignatureNames(); field = getTranslatedFieldName(field); - if (!sigNames.containsKey(field)) + if (!sigNames.containsKey(field)) { return 0; + } return sigNames.get(field)[1]; } @@ -281,8 +295,9 @@ public String getTranslatedFieldName(String name) { */ public InputStream extractRevision(String field) { getSignatureNames(); - if (!sigNames.containsKey(field)) + if (!sigNames.containsKey(field)) { return null; + } int length = sigNames.get(field)[0]; RandomAccessFileOrArray raf = document.getReader().getSafeFile(); return new RASInputStream(new WindowRandomAccessSource(raf.createSourceView(), 0, length)); @@ -300,10 +315,12 @@ public InputStream extractRevision(String field) { */ public boolean signatureCoversWholeDocument(String name) { getSignatureNames(); - if (!sigNames.containsKey(name)) + if (!sigNames.containsKey(name)) { return false; + } try { - ContentsChecker signatureReader = new ContentsChecker(document.getReader().getSafeFile().createSourceView()); + ContentsChecker signatureReader = new ContentsChecker( + document.getReader().getSafeFile().createSourceView()); return signatureReader.checkWhetherSignatureCoversWholeDocument(acroForm.getField(name)); } catch (IOException e) { throw new PdfException(e); @@ -329,11 +346,13 @@ private void populateSignatureNames() { for (Map.Entry entry : acroForm.getFormFields().entrySet()) { PdfFormField field = entry.getValue(); PdfDictionary merged = field.getPdfObject(); - if (!PdfName.Sig.equals(merged.get(PdfName.FT))) + if (!PdfName.Sig.equals(merged.get(PdfName.FT))) { continue; + } PdfDictionary v = merged.getAsDictionary(PdfName.V); - if (v == null) + if (v == null) { continue; + } PdfString contents = v.getAsString(PdfName.Contents); if (contents == null) { continue; @@ -396,7 +415,8 @@ public boolean checkWhetherSignatureCoversWholeDocument(PdfFormField signatureFi rangeIsCorrect = false; PdfDictionary signature = (PdfDictionary) signatureField.getValue(); int[] byteRange = ((PdfArray) signature.get(PdfName.ByteRange)).toIntArray(); - if (4 != byteRange.length || 0 != byteRange[0] || tokens.getSafeFile().length() != byteRange[2] + byteRange[3]) { + if (4 != byteRange.length || 0 != byteRange[0] + || tokens.getSafeFile().length() != byteRange[2] + byteRange[3]) { return false; } diff --git a/sign/src/main/java/com/itextpdf/signatures/TSAClientBouncyCastle.java b/sign/src/main/java/com/itextpdf/signatures/TSAClientBouncyCastle.java index c41646821e..df7092445a 100644 --- a/sign/src/main/java/com/itextpdf/signatures/TSAClientBouncyCastle.java +++ b/sign/src/main/java/com/itextpdf/signatures/TSAClientBouncyCastle.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/main/java/com/itextpdf/signatures/TimestampConstants.java b/sign/src/main/java/com/itextpdf/signatures/TimestampConstants.java index ca5648e8d4..d89bdc4b13 100644 --- a/sign/src/main/java/com/itextpdf/signatures/TimestampConstants.java +++ b/sign/src/main/java/com/itextpdf/signatures/TimestampConstants.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/sign/src/main/java/com/itextpdf/signatures/VerificationException.java b/sign/src/main/java/com/itextpdf/signatures/VerificationException.java index b2e56814a5..f363e93249 100644 --- a/sign/src/main/java/com/itextpdf/signatures/VerificationException.java +++ b/sign/src/main/java/com/itextpdf/signatures/VerificationException.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -44,6 +44,7 @@ This file is part of the iText (R) project. package com.itextpdf.signatures; import com.itextpdf.commons.utils.MessageFormatUtil; +import com.itextpdf.signatures.exceptions.SignExceptionMessageConstant; import java.security.GeneralSecurityException; import java.security.cert.Certificate; @@ -62,6 +63,7 @@ public class VerificationException extends GeneralSecurityException { * @param message is a reason of failure */ public VerificationException(Certificate cert, String message) { - super(MessageFormatUtil.format("Certificate {0} failed: {1}", cert == null ? "Unknown" : ((X509Certificate) cert).getSubjectDN().getName(), message)); + super(MessageFormatUtil.format(SignExceptionMessageConstant.CERTIFICATE_TEMPLATE_FOR_EXCEPTION_MESSAGE, + cert == null ? "Unknown" : ((X509Certificate) cert).getSubjectDN().getName(), message)); } } diff --git a/sign/src/main/java/com/itextpdf/signatures/VerificationOK.java b/sign/src/main/java/com/itextpdf/signatures/VerificationOK.java index 915433b72e..b5353c425a 100644 --- a/sign/src/main/java/com/itextpdf/signatures/VerificationOK.java +++ b/sign/src/main/java/com/itextpdf/signatures/VerificationOK.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -66,7 +66,7 @@ public class VerificationOK { * @param message the reason why the certificate could be verified */ public VerificationOK(X509Certificate certificate, - Class verifierClass, String message) { + Class verifierClass, String message) { this.certificate = certificate; this.verifierClass = verifierClass; this.message = message; diff --git a/sign/src/main/java/com/itextpdf/signatures/exceptions/SignExceptionMessageConstant.java b/sign/src/main/java/com/itextpdf/signatures/exceptions/SignExceptionMessageConstant.java index 41ec2c2ced..365ffeb671 100644 --- a/sign/src/main/java/com/itextpdf/signatures/exceptions/SignExceptionMessageConstant.java +++ b/sign/src/main/java/com/itextpdf/signatures/exceptions/SignExceptionMessageConstant.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. @@ -33,9 +33,12 @@ public final class SignExceptionMessageConstant { public static final String CANNOT_DECODE_PKCS7_SIGNED_DATA_OBJECT = "Cannot decode PKCS#7 SignedData object."; public static final String CANNOT_FIND_SIGNING_CERTIFICATE_WITH_THIS_SERIAL = "Cannot find signing certificate " + "with serial {0}."; + public static final String CANNOT_BE_VERIFIED_CERTIFICATE_CHAIN = "Cannot be verified against the KeyStore or the " + + "certificate chain."; public static final String CERTIFICATION_SIGNATURE_CREATION_FAILED_DOC_SHALL_NOT_CONTAIN_SIGS = "Certification " + "signature creation failed. Document shall not contain any certification or approval signatures before " + "signing with certification signature."; + public static final String CERTIFICATE_TEMPLATE_FOR_EXCEPTION_MESSAGE = "Certificate {0} failed: {1}"; public static final String DICTIONARY_THIS_KEY_IS_NOT_A_NAME = "Dictionary key {0} is not a name."; public static final String DOCUMENT_ALREADY_PRE_CLOSED = "Document has been already pre closed."; public static final String DOCUMENT_MUST_BE_PRE_CLOSED = "Document must be preClosed."; @@ -45,6 +48,8 @@ public final class SignExceptionMessageConstant { public static final String FIELD_NAMES_CANNOT_CONTAIN_A_DOT = "Field names cannot contain a dot."; public static final String FIELD_TYPE_IS_NOT_A_SIGNATURE_FIELD_TYPE = "Field type is not a signature field type."; public static final String INVALID_HTTP_RESPONSE = "Invalid http response {0}."; + public static final String INVALID_STATE_WHILE_CHECKING_CERT_CHAIN = "Invalid state. Possible circular " + + "certificate chain."; public static final String INVALID_TSA_RESPONSE = "Invalid TSA {0} response code {1}."; public static final String NO_CRYPTO_DICTIONARY_DEFINED = "No crypto dictionary defined."; public static final String NOT_A_VALID_PKCS7_OBJECT_NOT_A_SEQUENCE = "Not a valid PKCS#7 object - not a sequence"; @@ -69,5 +74,7 @@ public final class SignExceptionMessageConstant { public static final String UNKNOWN_KEY_ALGORITHM = "Unknown key algorithm: {0}."; public static final String VERIFICATION_ALREADY_OUTPUT = "Verification already output."; - private SignExceptionMessageConstant(){} + private SignExceptionMessageConstant(){ + // Private constructor will prevent the instantiation of this class directly + } } diff --git a/sign/src/main/java/com/itextpdf/signatures/logs/SignLogMessageConstant.java b/sign/src/main/java/com/itextpdf/signatures/logs/SignLogMessageConstant.java index ab3d321b17..57e8734417 100644 --- a/sign/src/main/java/com/itextpdf/signatures/logs/SignLogMessageConstant.java +++ b/sign/src/main/java/com/itextpdf/signatures/logs/SignLogMessageConstant.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/sign/src/test/java/com/itextpdf/signatures/BouncyCastleDigestUnitTest.java b/sign/src/test/java/com/itextpdf/signatures/BouncyCastleDigestUnitTest.java index e26a610f88..ab20308d63 100644 --- a/sign/src/test/java/com/itextpdf/signatures/BouncyCastleDigestUnitTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/BouncyCastleDigestUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/sign/src/test/java/com/itextpdf/signatures/CertificateInfoTest.java b/sign/src/test/java/com/itextpdf/signatures/CertificateInfoTest.java index dad06c7b3c..a728ba4c00 100644 --- a/sign/src/test/java/com/itextpdf/signatures/CertificateInfoTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/CertificateInfoTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/sign/src/test/java/com/itextpdf/signatures/CertificateSupportedCriticalExtensionsTest.java b/sign/src/test/java/com/itextpdf/signatures/CertificateSupportedCriticalExtensionsTest.java index d8e3b19a17..f2f041b631 100644 --- a/sign/src/test/java/com/itextpdf/signatures/CertificateSupportedCriticalExtensionsTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/CertificateSupportedCriticalExtensionsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/test/java/com/itextpdf/signatures/CertificateUtilTest.java b/sign/src/test/java/com/itextpdf/signatures/CertificateUtilTest.java new file mode 100644 index 0000000000..82bdb6d2f3 --- /dev/null +++ b/sign/src/test/java/com/itextpdf/signatures/CertificateUtilTest.java @@ -0,0 +1,65 @@ +/* + This file is part of the iText (R) project. + Copyright (c) 1998-2022 iText Group NV + Authors: iText Software. + + This program is offered under a commercial and under the AGPL license. + For commercial licensing, contact us at https://itextpdf.com/sales. For AGPL licensing, see below. + + AGPL licensing: + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + */ +package com.itextpdf.signatures; + +import com.itextpdf.test.ExtendedITextTest; +import com.itextpdf.test.annotations.type.UnitTest; +import com.itextpdf.test.signutils.Pkcs12FileHelper; +import org.junit.Assert; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +import java.security.cert.X509Certificate; + +@Category(UnitTest.class) +public class CertificateUtilTest extends ExtendedITextTest { + + private static final String CERTS_SRC = "./src/test/resources/com/itextpdf/signatures/certs/"; + private static final char[] PASSWORD = "testpass".toCharArray(); + + @Test + public void getTSAURLAdobeExtensionTest() throws Exception { + X509Certificate tsaCert = + (X509Certificate) Pkcs12FileHelper.readFirstChain(CERTS_SRC + "adobeExtensionCert.p12", PASSWORD)[0]; + String url = CertificateUtil.getTSAURL(tsaCert); + + Assert.assertEquals("https://itextpdf.com/en", url); + } + + @Test + public void getTSAURLUsualTimestampCertificateTest() throws Exception { + X509Certificate tsaCert = + (X509Certificate) Pkcs12FileHelper.readFirstChain(CERTS_SRC + "tsCertRsa.p12", PASSWORD)[0]; + String url = CertificateUtil.getTSAURL(tsaCert); + + Assert.assertNull(url); + } + + @Test + public void getTSAURLAdobeExtensionNotTaggedTest() throws Exception { + X509Certificate tsaCert = (X509Certificate) + Pkcs12FileHelper.readFirstChain(CERTS_SRC + "adobeExtensionCertWithoutTag.p12", PASSWORD)[0]; + + Assert.assertThrows(ClassCastException.class, () -> CertificateUtil.getTSAURL(tsaCert)); + } +} diff --git a/sign/src/test/java/com/itextpdf/signatures/CrlClientOfflineTest.java b/sign/src/test/java/com/itextpdf/signatures/CrlClientOfflineTest.java index 327be0d56f..649521aee8 100644 --- a/sign/src/test/java/com/itextpdf/signatures/CrlClientOfflineTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/CrlClientOfflineTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/sign/src/test/java/com/itextpdf/signatures/DigestAlgorithmsManualTest.java b/sign/src/test/java/com/itextpdf/signatures/DigestAlgorithmsManualTest.java index 0c89a16fcf..a8ede58b90 100644 --- a/sign/src/test/java/com/itextpdf/signatures/DigestAlgorithmsManualTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/DigestAlgorithmsManualTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/test/java/com/itextpdf/signatures/DigestAlgorithmsTest.java b/sign/src/test/java/com/itextpdf/signatures/DigestAlgorithmsTest.java index eb3fe65c66..602278530c 100644 --- a/sign/src/test/java/com/itextpdf/signatures/DigestAlgorithmsTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/DigestAlgorithmsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify @@ -77,4 +77,4 @@ public void nonExistingNameGetAllowedDigestTest() { public void nullNameGetAllowedDigestTest() { Assert.assertThrows(IllegalArgumentException.class, () -> DigestAlgorithms.getAllowedDigest(null)); } -} \ No newline at end of file +} diff --git a/sign/src/test/java/com/itextpdf/signatures/EncryptionAlgorithmsManualTest.java b/sign/src/test/java/com/itextpdf/signatures/EncryptionAlgorithmsManualTest.java index e2fa285a99..c8242cfbe3 100644 --- a/sign/src/test/java/com/itextpdf/signatures/EncryptionAlgorithmsManualTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/EncryptionAlgorithmsManualTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/sign/src/test/java/com/itextpdf/signatures/EncryptionAlgorithmsTest.java b/sign/src/test/java/com/itextpdf/signatures/EncryptionAlgorithmsTest.java index 377f8422c2..0425ef4fde 100644 --- a/sign/src/test/java/com/itextpdf/signatures/EncryptionAlgorithmsTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/EncryptionAlgorithmsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/sign/src/test/java/com/itextpdf/signatures/ExternalBlankSignatureContainerUnitTest.java b/sign/src/test/java/com/itextpdf/signatures/ExternalBlankSignatureContainerUnitTest.java index 571a8ac097..daef3e751a 100644 --- a/sign/src/test/java/com/itextpdf/signatures/ExternalBlankSignatureContainerUnitTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/ExternalBlankSignatureContainerUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/sign/src/test/java/com/itextpdf/signatures/KeyStoreUtilUnitTest.java b/sign/src/test/java/com/itextpdf/signatures/KeyStoreUtilUnitTest.java index 45156d5b93..5dd7ab3c52 100644 --- a/sign/src/test/java/com/itextpdf/signatures/KeyStoreUtilUnitTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/KeyStoreUtilUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/sign/src/test/java/com/itextpdf/signatures/LtvVerificationTest.java b/sign/src/test/java/com/itextpdf/signatures/LtvVerificationTest.java index 7715480857..240bbe4fad 100644 --- a/sign/src/test/java/com/itextpdf/signatures/LtvVerificationTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/LtvVerificationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. @@ -22,24 +22,37 @@ This file is part of the iText (R) project. */ package com.itextpdf.signatures; +import com.itextpdf.kernel.pdf.PdfArray; +import com.itextpdf.kernel.pdf.PdfDictionary; import com.itextpdf.kernel.pdf.PdfDocument; +import com.itextpdf.kernel.pdf.PdfIndirectReference; +import com.itextpdf.kernel.pdf.PdfName; import com.itextpdf.kernel.pdf.PdfReader; +import com.itextpdf.kernel.pdf.PdfWriter; +import com.itextpdf.kernel.pdf.StampingProperties; import com.itextpdf.signatures.LtvVerification.CertificateInclusion; import com.itextpdf.signatures.LtvVerification.CertificateOption; import com.itextpdf.signatures.LtvVerification.Level; +import com.itextpdf.signatures.testutils.client.TestCrlClient; import com.itextpdf.test.ExtendedITextTest; import com.itextpdf.test.LogLevelConstants; import com.itextpdf.test.annotations.LogMessage; import com.itextpdf.test.annotations.LogMessages; import com.itextpdf.test.annotations.type.UnitTest; +import com.itextpdf.test.signutils.Pkcs12FileHelper; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; import java.io.IOException; import java.security.GeneralSecurityException; +import java.security.PrivateKey; import java.security.Security; +import java.security.cert.X509Certificate; import java.util.ArrayList; import java.util.List; import org.junit.Assert; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; import org.junit.experimental.categories.Category; @@ -50,6 +63,8 @@ public class LtvVerificationTest extends ExtendedITextTest { private static final String SRC_PDF = SOURCE_FOLDER + "pdfWithDssDictionary.pdf"; private static final String SIG_FIELD_NAME = "Signature1"; private static final String CRL_DISTRIBUTION_POINT = "http://example.com"; + private static final String CERT_FOLDER_PATH = "./src/test/resources/com/itextpdf/signatures/certs/"; + private static final char[] PASSWORD = "testpass".toCharArray(); private static LtvVerification TEST_VERIFICATION; @@ -60,6 +75,64 @@ public static void before() throws IOException { TEST_VERIFICATION = new LtvVerification(pdfDoc); } + @Test + @LogMessages(messages = { + @LogMessage(messageTemplate = "Adding verification for TestSignature", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Certificate: C=BY,L=Minsk,O=iText,OU=test,CN=iTextTestRsaCert01", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "CRL added", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Certificate: C=BY,L=Minsk,O=iText,OU=test,CN=iTextTestRoot", logLevel = LogLevelConstants.INFO) + }) + public void addVerificationToDocumentWithAlreadyExistedDss() throws IOException, GeneralSecurityException { + String input = SOURCE_FOLDER + "signingCertHasChainWithOcspOnlyForChildCert.pdf"; + String signatureHash = "C5CC1458AAA9B8BAB0677F9EA409983B577178A3"; + + try (PdfDocument pdfDocument = new PdfDocument(new PdfReader(input))) { + PdfDictionary dss = pdfDocument.getCatalog().getPdfObject().getAsDictionary(PdfName.DSS); + Assert.assertNull(dss.get(PdfName.CRLs)); + PdfArray ocsps = dss.getAsArray(PdfName.OCSPs); + Assert.assertEquals(1, ocsps.size()); + PdfIndirectReference pir = ocsps.get(0).getIndirectReference(); + + PdfDictionary vri = dss.getAsDictionary(PdfName.VRI); + Assert.assertEquals(1, vri.entrySet().size()); + PdfDictionary vriElem = vri.getAsDictionary(new PdfName(signatureHash)); + Assert.assertEquals(1, vriElem.entrySet().size()); + final PdfArray vriOcsp = vriElem.getAsArray(PdfName.OCSP); + Assert.assertEquals(1, vriOcsp.size()); + Assert.assertEquals(pir, vriOcsp.get(0).getIndirectReference()); + } + + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + try (PdfDocument pdfDocument = new PdfDocument(new PdfReader(input), new PdfWriter(baos), new StampingProperties().useAppendMode())) { + LtvVerification verification = new LtvVerification(pdfDocument); + + String rootCertPath = CERT_FOLDER_PATH + "rootRsa.p12"; + X509Certificate caCert = (X509Certificate) Pkcs12FileHelper.readFirstChain(rootCertPath, PASSWORD)[0]; + PrivateKey caPrivateKey = Pkcs12FileHelper.readFirstKey(rootCertPath, PASSWORD, PASSWORD); + + verification.addVerification("TestSignature", null, new TestCrlClient().addBuilderForCertIssuer(caCert, caPrivateKey), + CertificateOption.SIGNING_CERTIFICATE, Level.CRL, CertificateInclusion.NO); + + verification.merge(); + } + + try (PdfDocument pdfDocument = new PdfDocument(new PdfReader(new ByteArrayInputStream(baos.toByteArray())))) { + PdfDictionary dss = pdfDocument.getCatalog().getPdfObject().getAsDictionary(PdfName.DSS); + Assert.assertNull(dss.get(PdfName.OCSPs)); + PdfArray crls = dss.getAsArray(PdfName.CRLs); + Assert.assertEquals(1, crls.size()); + PdfIndirectReference pir = crls.get(0).getIndirectReference(); + + PdfDictionary vri = dss.getAsDictionary(PdfName.VRI); + Assert.assertEquals(1, vri.entrySet().size()); + PdfDictionary vriElem = vri.getAsDictionary(new PdfName(signatureHash)); + Assert.assertEquals(1, vriElem.entrySet().size()); + final PdfArray vriCrl = vriElem.getAsArray(PdfName.CRL); + Assert.assertEquals(1, vriCrl.size()); + Assert.assertEquals(pir, vriCrl.get(0).getIndirectReference()); + } + } + @Test public void validateSigNameWithEmptyByteArrayCrlOcspCertTest() throws IOException, GeneralSecurityException { List crls = new ArrayList<>(); @@ -270,6 +343,7 @@ public void validateSigNameWithoutCrlAndOcspWholeChainOcspCrlNoTest() throws Gen CertificateInclusion.NO, false); } + @Ignore("DEVSIX-6354 : Remove this ignore after closing this ticket.") @Test @LogMessages(messages = { @LogMessage(messageTemplate = "Added CRL url: http://example.com", logLevel = LogLevelConstants.INFO), @@ -281,6 +355,7 @@ public void validateSigNameSigningOcspCrlYesTest() throws GeneralSecurityExcepti CertificateInclusion.YES, true); } + @Ignore("DEVSIX-6354 : Remove this ignore after closing this ticket.") @Test @LogMessages(messages = { @LogMessage(messageTemplate = "Added CRL url: http://example.com", logLevel = LogLevelConstants.INFO) @@ -290,6 +365,7 @@ public void validateSigNameSigningOcspYesTest() throws GeneralSecurityException, CertificateInclusion.YES, false); } + @Ignore("DEVSIX-6354 : Remove this ignore after closing this ticket.") @Test @LogMessages(messages = { @LogMessage(messageTemplate = "Added CRL url: http://example.com", logLevel = LogLevelConstants.INFO), @@ -301,6 +377,7 @@ public void validateSigNameSigningCrlYesTest() throws GeneralSecurityException, CertificateInclusion.YES, true); } + @Ignore("DEVSIX-6354 : Remove this ignore after closing this ticket.") @Test @LogMessages(messages = { @LogMessage(messageTemplate = "Added CRL url: http://example.com", logLevel = LogLevelConstants.INFO), @@ -312,6 +389,7 @@ public void validateSigNameSigningOcspOptionalCrlYesTest() throws GeneralSecurit Level.OCSP_OPTIONAL_CRL, CertificateInclusion.YES, true); } + @Ignore("DEVSIX-6354 : Remove this ignore after closing this ticket.") @Test @LogMessages(messages = { @LogMessage(messageTemplate = "Added CRL url: http://example.com", logLevel = LogLevelConstants.INFO), @@ -323,6 +401,7 @@ public void validateSigNameSigningOcspCrlNoTest() throws GeneralSecurityExceptio CertificateInclusion.NO, true); } + @Ignore("DEVSIX-6354 : Remove this ignore after closing this ticket.") @Test @LogMessages(messages = { @LogMessage(messageTemplate = "Added CRL url: http://example.com", logLevel = LogLevelConstants.INFO) @@ -332,6 +411,7 @@ public void validateSigNameSigningOcspNoTest() throws GeneralSecurityException, CertificateInclusion.NO, false); } + @Ignore("DEVSIX-6354 : Remove this ignore after closing this ticket.") @Test @LogMessages(messages = { @LogMessage(messageTemplate = "Added CRL url: http://example.com", logLevel = LogLevelConstants.INFO), @@ -343,6 +423,7 @@ public void validateSigNameSigningCrlNoTest() throws GeneralSecurityException, I CertificateInclusion.NO, true); } + @Ignore("DEVSIX-6354 : Remove this ignore after closing this ticket.") @Test @LogMessages(messages = { @LogMessage(messageTemplate = "Added CRL url: http://example.com", logLevel = LogLevelConstants.INFO), @@ -354,6 +435,7 @@ public void validateSigNameSigningOcspOptionalCrlNoTest() throws GeneralSecurity Level.OCSP_OPTIONAL_CRL, CertificateInclusion.NO, true); } + @Ignore("DEVSIX-6354 : Remove this ignore after closing this ticket.") @Test @LogMessages(messages = { @LogMessage(messageTemplate = "Added CRL url: http://example.com", logLevel = LogLevelConstants.INFO), @@ -367,6 +449,7 @@ public void validateSigNameWholeChainOcspCrlYesTest() throws GeneralSecurityExce CertificateInclusion.YES, true); } + @Ignore("DEVSIX-6354 : Remove this ignore after closing this ticket.") @Test @LogMessages(messages = { @LogMessage(messageTemplate = "Added CRL url: http://example.com", logLevel = LogLevelConstants.INFO), @@ -380,6 +463,7 @@ public void validateSigNameWholeChainOcspOptionalCrlYesTest() throws IOException CertificateInclusion.YES, true); } + @Ignore("DEVSIX-6354 : Remove this ignore after closing this ticket.") @Test @LogMessages(messages = { @LogMessage(messageTemplate = "Added CRL url: http://example.com", logLevel = LogLevelConstants.INFO) @@ -389,6 +473,7 @@ public void validateSigNameWholeChainOcspYesTest() throws IOException, GeneralSe CertificateInclusion.YES, false); } + @Ignore("DEVSIX-6354 : Remove this ignore after closing this ticket.") @Test @LogMessages(messages = { @LogMessage(messageTemplate = "Added CRL url: http://example.com", logLevel = LogLevelConstants.INFO), @@ -402,6 +487,7 @@ public void validateSigNameWholeChainCrlYesTest() throws IOException, GeneralSec CertificateInclusion.YES, true); } + @Ignore("DEVSIX-6354 : Remove this ignore after closing this ticket.") @Test @LogMessages(messages = { @LogMessage(messageTemplate = "Added CRL url: http://example.com", logLevel = LogLevelConstants.INFO), @@ -415,6 +501,7 @@ public void validateSigNameWholeChainOcspCrlNoTest() throws GeneralSecurityExcep CertificateInclusion.NO, true); } + @Ignore("DEVSIX-6354 : Remove this ignore after closing this ticket.") @Test @LogMessages(messages = { @LogMessage(messageTemplate = "Added CRL url: http://example.com", logLevel = LogLevelConstants.INFO), @@ -428,6 +515,7 @@ public void validateSigNameWholeChainOcspOptionalCrlNoTest() throws IOException, CertificateInclusion.NO, true); } + @Ignore("DEVSIX-6354 : Remove this ignore after closing this ticket.") @Test @LogMessages(messages = { @LogMessage(messageTemplate = "Added CRL url: http://example.com", logLevel = LogLevelConstants.INFO) @@ -437,6 +525,7 @@ public void validateSigNameWholeChainOcspNoTest() throws IOException, GeneralSec CertificateInclusion.NO, false); } + @Ignore("DEVSIX-6354 : Remove this ignore after closing this ticket.") @Test @LogMessages(messages = { @LogMessage(messageTemplate = "Added CRL url: http://example.com", logLevel = LogLevelConstants.INFO), diff --git a/sign/src/test/java/com/itextpdf/signatures/LtvVerifierIntegrationTest.java b/sign/src/test/java/com/itextpdf/signatures/LtvVerifierIntegrationTest.java new file mode 100644 index 0000000000..48f3926f0d --- /dev/null +++ b/sign/src/test/java/com/itextpdf/signatures/LtvVerifierIntegrationTest.java @@ -0,0 +1,285 @@ +/* + This file is part of the iText (R) project. + Copyright (c) 1998-2022 iText Group NV + Authors: iText Software. + + This program is offered under a commercial and under the AGPL license. + For commercial licensing, contact us at https://itextpdf.com/sales. For AGPL licensing, see below. + + AGPL licensing: + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + */ +package com.itextpdf.signatures; + +import com.itextpdf.kernel.pdf.PdfDocument; +import com.itextpdf.kernel.pdf.PdfReader; +import com.itextpdf.signatures.LtvVerification.CertificateOption; +import com.itextpdf.test.ExtendedITextTest; +import com.itextpdf.test.LogLevelConstants; +import com.itextpdf.test.annotations.LogMessage; +import com.itextpdf.test.annotations.LogMessages; +import com.itextpdf.test.annotations.type.IntegrationTest; + +import java.io.IOException; +import java.security.GeneralSecurityException; +import java.security.Security; +import java.util.List; +import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(IntegrationTest.class) +public class LtvVerifierIntegrationTest extends ExtendedITextTest { + private static final String SOURCE_FOLDER = "./src/test/resources/com/itextpdf/signatures/LtvVerifierIntegrationTest/"; + + + @BeforeClass + public static void before() { + Security.addProvider(new BouncyCastleProvider()); + } + + @Test + @LogMessages(messages = { + @LogMessage(messageTemplate = "The timestamp covers whole document.", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "The signed document has not been modified.", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Checking signature TestSignature", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Verifying signature.", logLevel = LogLevelConstants.INFO), + // Checking of "All certificates are valid on ..." message is impossible because current time is used in message + @LogMessage(messageTemplate = "C=BY,L=Minsk,O=iText,OU=test,CN=iTextTestRoot", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Valid OCSPs found: 0", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Valid CRLs found: 0", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Switching to previous revision.", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "No signatures in revision", logLevel = LogLevelConstants.INFO) + }) + public void verifySigningCertIsSelfSignedWithoutRevocationDataTest() throws IOException, GeneralSecurityException { + String src = SOURCE_FOLDER + "signingCertIsSelfSignedWithoutRevocationData.pdf"; + try (PdfDocument pdfDocument = new PdfDocument(new PdfReader(src))) { + LtvVerifier verifier = new LtvVerifier(pdfDocument); + verifier.setVerifyRootCertificate(false); + List verificationOKList = verifier.verifySignature(); + Assert.assertTrue(verificationOKList.isEmpty()); + } + } + + @Test + @LogMessages(messages = { + @LogMessage(messageTemplate = "The timestamp covers whole document.", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "The signed document has not been modified.", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Checking signature TestSignature", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Verifying signature.", logLevel = LogLevelConstants.INFO), + // Checking of "All certificates are valid on ..." message is impossible because current time is used in message + @LogMessage(messageTemplate = "C=BY,L=Minsk,O=iText,OU=test,CN=iTextTestRsaCert01", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Valid OCSPs found: 0", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Valid CRLs found: 0", logLevel = LogLevelConstants.INFO), + }) + public void verifySigningCertHasChainWithoutRevocationDataTest() throws IOException, GeneralSecurityException { + String src = SOURCE_FOLDER + "signingCertHasChainWithoutRevocationData.pdf"; + try (PdfDocument pdfDocument = new PdfDocument(new PdfReader(src))) { + LtvVerifier verifier = new LtvVerifier(pdfDocument); + verifier.setVerifyRootCertificate(false); + Exception ex = Assert.assertThrows(VerificationException.class, () -> verifier.verifySignature()); + Assert.assertEquals("Certificate C=BY,L=Minsk,O=iText,OU=test,CN=iTextTestRsaCert01 failed: " + + "Couldn't verify with CRL or OCSP or trusted anchor", ex.getMessage()); + } + } + + @Test + @LogMessages(messages = { + @LogMessage(messageTemplate = "The timestamp covers whole document.", logLevel = LogLevelConstants.INFO, count = 2), + @LogMessage(messageTemplate = "The signed document has not been modified.", logLevel = LogLevelConstants.INFO, count = 2), + @LogMessage(messageTemplate = "Checking document-level timestamp signature TestTimestamp", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Switching to previous revision.", logLevel = LogLevelConstants.INFO, count = 2), + @LogMessage(messageTemplate = "Checking signature TestSignature", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Verifying signature.", logLevel = LogLevelConstants.INFO), + // Checking of "All certificates are valid on ..." message is impossible because current time is used in message + @LogMessage(messageTemplate = "C=BY,L=Minsk,O=iText,OU=test,CN=iTextTestRsaCert01", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Valid OCSPs found: 1", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Valid CRLs found: 0", logLevel = LogLevelConstants.INFO, count = 2), + @LogMessage(messageTemplate = "C=BY,L=Minsk,O=iText,OU=test,CN=iTextTestRoot", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Valid OCSPs found: 0", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "No signatures in revision", logLevel = LogLevelConstants.INFO) + }) + public void verifySigningCertHasChainWithOcspOnlyForChildCertNotVerifyRootTest() + throws IOException, GeneralSecurityException { + + String src = SOURCE_FOLDER + "signingCertHasChainWithOcspOnlyForChildCert.pdf"; + try (PdfDocument pdfDocument = new PdfDocument(new PdfReader(src))) { + LtvVerifier verifier = new LtvVerifier(pdfDocument); + verifier.setCertificateOption(CertificateOption.WHOLE_CHAIN); + verifier.setVerifyRootCertificate(false); + // iText doesn't allow adding\processing DSS with one revision in document, so document + // "signingCertHasChainWithOcspOnlyForChildCert.pdf" contains 2 revision. The first is + // dummy revision (signing cert of first revision has a chain without any revocation data). + // The second is main revision which verifying we want to test. + verifier.switchToPreviousRevision(); + + List verificationOKList = verifier.verifySignature(); + + Assert.assertEquals(2, verificationOKList.size()); + VerificationOK verificationOK = verificationOKList.get(0); + Assert.assertEquals("C=BY,L=Minsk,O=iText,OU=test,CN=iTextTestRsaCert01", + verificationOK.certificate.getSubjectDN().getName()); + Assert.assertEquals("Valid OCSPs Found: 1", verificationOK.message); + + verificationOK = verificationOKList.get(1); + Assert.assertEquals("C=BY,L=Minsk,O=iText,OU=test,CN=iTextTestRoot", + verificationOK.certificate.getSubjectDN().getName()); + Assert.assertEquals("Root certificate passed without checking", verificationOK.message); + } + } + + @Test + @LogMessages(messages = { + @LogMessage(messageTemplate = "The timestamp covers whole document.", logLevel = LogLevelConstants.INFO, count = 2), + @LogMessage(messageTemplate = "The signed document has not been modified.", logLevel = LogLevelConstants.INFO, count = 2), + @LogMessage(messageTemplate = "Checking document-level timestamp signature TestTimestamp", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Switching to previous revision.", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Checking signature TestSignature", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Verifying signature.", logLevel = LogLevelConstants.INFO), + // Checking of "All certificates are valid on ..." message is impossible because current time is used in message + @LogMessage(messageTemplate = "C=BY,L=Minsk,O=iText,OU=test,CN=iTextTestRsaCert01", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Valid OCSPs found: 1", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Valid CRLs found: 0", logLevel = LogLevelConstants.INFO, count = 2), + @LogMessage(messageTemplate = "C=BY,L=Minsk,O=iText,OU=test,CN=iTextTestRoot", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Valid OCSPs found: 0", logLevel = LogLevelConstants.INFO) + }) + public void verifySigningCertHasChainWithOcspOnlyForChildCertVerifyRootTest() + throws IOException, GeneralSecurityException { + + String src = SOURCE_FOLDER + "signingCertHasChainWithOcspOnlyForChildCert.pdf"; + try (PdfDocument pdfDocument = new PdfDocument(new PdfReader(src))) { + LtvVerifier verifier = new LtvVerifier(pdfDocument); + verifier.setCertificateOption(CertificateOption.WHOLE_CHAIN); + verifier.setVerifyRootCertificate(true); + // iText doesn't allow adding\processing DSS with one revision in document, so document + // "signingCertHasChainWithOcspOnlyForChildCert.pdf" contains 2 revision. The first is + // dummy revision (signing cert of first revision has a chain without any revocation data). + // The second is main revision which verifying we want to test. + verifier.switchToPreviousRevision(); + + Exception ex = Assert.assertThrows(VerificationException.class, () -> verifier.verifySignature()); + Assert.assertEquals("Certificate C=BY,L=Minsk,O=iText,OU=test,CN=iTextTestRoot failed: " + + "Couldn't verify with CRL or OCSP or trusted anchor", ex.getMessage()); + } + } + + @Test + @LogMessages(messages = { + @LogMessage(messageTemplate = "The timestamp covers whole document.", logLevel = LogLevelConstants.INFO, count = 2), + @LogMessage(messageTemplate = "The signed document has not been modified.", logLevel = LogLevelConstants.INFO, count = 2), + @LogMessage(messageTemplate = "Checking document-level timestamp signature TestTimestamp", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Switching to previous revision.", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Checking signature TestSignature", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Verifying signature.", logLevel = LogLevelConstants.INFO), + // Checking of "All certificates are valid on ..." message is impossible because current time is used in message + @LogMessage(messageTemplate = "C=BY,L=Minsk,O=iText,OU=test,CN=iTextTestRsaCertWithChain", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Valid OCSPs found: 1", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Valid CRLs found: 0", logLevel = LogLevelConstants.INFO, count = 2), + @LogMessage(messageTemplate = "C=BY,L=Minsk,O=iText,OU=test,CN=iTextTestIntermediateRsa01", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Valid OCSPs found: 0", logLevel = LogLevelConstants.INFO) + }) + public void verifySigningCertHas3ChainWithOcspOnlyForChildCertVerifyRootTest() + throws IOException, GeneralSecurityException { + + String src = SOURCE_FOLDER + "signingCertHas3ChainWithOcspOnlyForChildCert.pdf"; + try (PdfDocument pdfDocument = new PdfDocument(new PdfReader(src))) { + LtvVerifier verifier = new LtvVerifier(pdfDocument); + verifier.setCertificateOption(CertificateOption.WHOLE_CHAIN); + verifier.setVerifyRootCertificate(true); + // iText doesn't allow adding\processing DSS with one revision in document, so document + // "signingCertHas3ChainWithOcspOnlyForChildCert.pdf" contains 2 revision. The first is + // dummy revision (signing cert of first revision has a chain without any revocation data). + // The second is main revision which verifying we want to test. + verifier.switchToPreviousRevision(); + + Exception ex = Assert.assertThrows(VerificationException.class, () -> verifier.verifySignature()); + Assert.assertEquals("Certificate C=BY,L=Minsk,O=iText,OU=test,CN=iTextTestIntermediateRsa01 failed: " + + "Couldn't verify with CRL or OCSP or trusted anchor", ex.getMessage()); + } + } + + @Test + @LogMessages(messages = { + @LogMessage(messageTemplate = "The timestamp covers whole document.", logLevel = LogLevelConstants.INFO, count = 2), + @LogMessage(messageTemplate = "The signed document has not been modified.", logLevel = LogLevelConstants.INFO, count = 2), + @LogMessage(messageTemplate = "Checking document-level timestamp signature TestTimestamp", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Switching to previous revision.", logLevel = LogLevelConstants.INFO, count = 2), + @LogMessage(messageTemplate = "Checking signature TestSignature", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Verifying signature.", logLevel = LogLevelConstants.INFO), + // Checking of "All certificates are valid on ..." message is impossible because current time is used in message + @LogMessage(messageTemplate = "C=BY,L=Minsk,O=iText,OU=test,CN=iTextTestRsaCert01", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Valid OCSPs found: 1", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Valid CRLs found: 0", logLevel = LogLevelConstants.INFO, count = 2), + @LogMessage(messageTemplate = "C=BY,L=Minsk,O=iText,OU=test,CN=iTextTestRoot", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "Valid OCSPs found: 0", logLevel = LogLevelConstants.INFO), + @LogMessage(messageTemplate = "No signatures in revision", logLevel = LogLevelConstants.INFO) + }) + public void notTrustedRootCertificateInLatestRevisionTest() + throws IOException, GeneralSecurityException { + + String src = SOURCE_FOLDER + "signingCertHasChainWithOcspOnlyForChildCert.pdf"; + try (PdfDocument pdfDocument = new PdfDocument(new PdfReader(src))) { + LtvVerifier verifier = new LtvVerifier(pdfDocument); + verifier.setCertificateOption(CertificateOption.WHOLE_CHAIN); + verifier.setVerifyRootCertificate(true); + // iText doesn't allow adding\processing DSS with one revision in document, so document + // "signingCertHasChainWithOcspOnlyForChildCert.pdf" contains 2 revision. The first is + // dummy revision (signing cert of first revision has a chain without any revocation data). + // The second is main revision which verifying we want to test. + verifier.switchToPreviousRevision(); + // TODO after implementing DEVSIX-6233, 1- pass local CRL for child certificate to LtvVerifier + // 2- don't manually change latestRevision field 3- don't use first signature and DSS in test PDF document + verifier.latestRevision = true; + + List verificationOKList = verifier.verifySignature(); + + Assert.assertEquals(3, verificationOKList.size()); + VerificationOK verificationOK = verificationOKList.get(0); + Assert.assertEquals("C=BY,L=Minsk,O=iText,OU=test,CN=iTextTestRsaCert01", + verificationOK.certificate.getSubjectDN().getName()); + Assert.assertEquals("Valid OCSPs Found: 1", verificationOK.message); + + verificationOK = verificationOKList.get(1); + Assert.assertEquals("C=BY,L=Minsk,O=iText,OU=test,CN=iTextTestRoot", + verificationOK.certificate.getSubjectDN().getName()); + Assert.assertEquals("Root certificate in final revision", verificationOK.message); + + verificationOK = verificationOKList.get(2); + Assert.assertEquals("C=BY,L=Minsk,O=iText,OU=test,CN=iTextTestRoot", + verificationOK.certificate.getSubjectDN().getName()); + Assert.assertEquals("Root certificate passed without checking", verificationOK.message); + } + } + + @Test + public void switchBetweenSeveralRevisionsTest() throws IOException, GeneralSecurityException { + String testInput = SOURCE_FOLDER + "severalConsequentSignatures.pdf"; + + try(PdfReader pdfReader = new PdfReader(testInput); PdfDocument pdfDoc = new PdfDocument(pdfReader)) { + + LtvVerifier ltvVerifier = new LtvVerifier(pdfDoc); + + Assert.assertEquals("timestampSig2", ltvVerifier.signatureName); + ltvVerifier.switchToPreviousRevision(); + Assert.assertEquals("Signature2", ltvVerifier.signatureName); + ltvVerifier.switchToPreviousRevision(); + Assert.assertEquals("timestampSig1", ltvVerifier.signatureName); + ltvVerifier.switchToPreviousRevision(); + Assert.assertEquals("Signature1", ltvVerifier.signatureName); + ltvVerifier.switchToPreviousRevision(); + } + } +} diff --git a/sign/src/test/java/com/itextpdf/signatures/LtvVerifierUnitTest.java b/sign/src/test/java/com/itextpdf/signatures/LtvVerifierUnitTest.java index e5dde5f9b2..6dfd0dfab7 100644 --- a/sign/src/test/java/com/itextpdf/signatures/LtvVerifierUnitTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/LtvVerifierUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. @@ -27,9 +27,6 @@ This file is part of the iText (R) project. import com.itextpdf.kernel.pdf.PdfReader; import com.itextpdf.test.ExtendedITextTest; import com.itextpdf.test.annotations.type.UnitTest; -import org.junit.Assert; -import org.junit.Test; -import org.junit.experimental.categories.Category; import java.io.FileInputStream; import java.io.IOException; @@ -37,10 +34,12 @@ This file is part of the iText (R) project. import java.util.ArrayList; import java.util.Collections; import java.util.List; +import org.junit.Assert; +import org.junit.Test; +import org.junit.experimental.categories.Category; @Category(UnitTest.class) public class LtvVerifierUnitTest extends ExtendedITextTest { - private static final String SOURCE_FOLDER = "./src/test/resources/com/itextpdf/signatures/LtvVerifierUnitTest/"; @Test diff --git a/sign/src/test/java/com/itextpdf/signatures/OcspClientBouncyCastleTest.java b/sign/src/test/java/com/itextpdf/signatures/OcspClientBouncyCastleTest.java index 925a78b91b..e8c41a41cb 100644 --- a/sign/src/test/java/com/itextpdf/signatures/OcspClientBouncyCastleTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/OcspClientBouncyCastleTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify @@ -127,6 +127,12 @@ public void getOcspResponseWhenRootAndCheckCertIsNullTest() Assert.assertNull(castle.getOcspResponse(null, null, ocspServiceUrl)); } + @Test + public void getOcspResponseWhenUrlCertIsNullTest() { + OcspClientBouncyCastle castle = new OcspClientBouncyCastle(null); + Assert.assertThrows(ConnectException.class, + () -> castle.getOcspResponse(checkCert, rootCert, null)); + } @Test @LogMessages(messages = { diff --git a/sign/src/test/java/com/itextpdf/signatures/PdfPKCS7Test.java b/sign/src/test/java/com/itextpdf/signatures/PdfPKCS7Test.java index b64a8779d4..547eebccf0 100644 --- a/sign/src/test/java/com/itextpdf/signatures/PdfPKCS7Test.java +++ b/sign/src/test/java/com/itextpdf/signatures/PdfPKCS7Test.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. @@ -24,21 +24,21 @@ This file is part of the iText (R) project. import com.itextpdf.commons.utils.DateTimeUtil; import com.itextpdf.commons.utils.MessageFormatUtil; +import com.itextpdf.kernel.exceptions.KernelExceptionMessageConstant; import com.itextpdf.kernel.exceptions.PdfException; import com.itextpdf.kernel.pdf.PdfDocument; import com.itextpdf.kernel.pdf.PdfReader; -import com.itextpdf.kernel.pdf.StampingProperties; +import com.itextpdf.signatures.PdfSigner.CryptoStandard; import com.itextpdf.signatures.exceptions.SignExceptionMessageConstant; -import com.itextpdf.signatures.sign.PadesSigTest; -import com.itextpdf.signatures.testutils.SignaturesCompareTool; import com.itextpdf.signatures.testutils.TimeTestUtil; import com.itextpdf.signatures.testutils.client.TestTsaClient; import com.itextpdf.test.ExtendedITextTest; import com.itextpdf.test.annotations.type.UnitTest; import com.itextpdf.test.signutils.Pkcs12FileHelper; -import java.io.FileOutputStream; import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; import java.security.GeneralSecurityException; import java.security.InvalidKeyException; import java.security.KeyStoreException; @@ -47,10 +47,20 @@ This file is part of the iText (R) project. import java.security.PrivateKey; import java.security.Security; import java.security.UnrecoverableKeyException; +import java.security.cert.CRLException; import java.security.cert.Certificate; import java.security.cert.CertificateException; +import java.security.cert.X509CRL; import java.util.Arrays; import java.util.Calendar; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import org.bouncycastle.asn1.ASN1InputStream; +import org.bouncycastle.asn1.ASN1OctetString; +import org.bouncycastle.asn1.ASN1Primitive; +import org.bouncycastle.asn1.ocsp.BasicOCSPResponse; +import org.bouncycastle.cert.ocsp.BasicOCSPResp; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.bouncycastle.tsp.TimeStampToken; import org.junit.Assert; @@ -227,6 +237,117 @@ public void verifyTimestampImprintCorruptedTimeStampSignatureTest() throws IOExc Assert.assertTrue(pkcs7.verifyTimestampImprint()); } + @Test + public void findCrlIsNotNullTest() throws IOException, CRLException { + PdfDocument outDocument = new PdfDocument( + new PdfReader(SOURCE_FOLDER + "singleSignatureNotEmptyCRL.pdf")); + SignatureUtil sigUtil = new SignatureUtil(outDocument); + PdfPKCS7 pkcs7 = sigUtil.readSignatureData("Signature1"); + List crls = pkcs7.getCRLs().stream().map(crl -> (X509CRL)crl).collect(Collectors.toList()); + Assert.assertEquals(2, crls.size()); + Assert.assertArrayEquals(crls.get(0).getEncoded(), Files.readAllBytes(Paths.get(SOURCE_FOLDER, "firstCrl.bin"))); + Assert.assertArrayEquals(crls.get(1).getEncoded(), Files.readAllBytes(Paths.get(SOURCE_FOLDER, "secondCrl.bin"))); + } + + @Test + public void findCrlNullSequenceNoExceptionTest() + throws NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException { + PdfPKCS7 pkcs7 = createSimplePdfPKCS7(); + pkcs7.findCRL(null); + Assert.assertTrue(pkcs7.getCRLs().isEmpty()); + } + + @Test + public void isRevocationValidWithInvalidOcspTest() throws IOException { + PdfDocument outDocument = new PdfDocument( + new PdfReader(SOURCE_FOLDER + "signatureWithInvalidOcspTest.pdf")); + SignatureUtil sigUtil = new SignatureUtil(outDocument); + PdfPKCS7 pkcs7 = sigUtil.readSignatureData("Signature1"); + Assert.assertFalse(pkcs7.isRevocationValid()); + } + + @Test + public void isRevocationValidWithValidOcspTest() throws IOException { + PdfDocument outDocument = new PdfDocument( + new PdfReader(SOURCE_FOLDER + "signatureWithValidOcspTest.pdf")); + SignatureUtil sigUtil = new SignatureUtil(outDocument); + PdfPKCS7 pkcs7 = sigUtil.readSignatureData("Signature1"); + Assert.assertTrue(pkcs7.isRevocationValid()); + } + + @Test + public void isRevocationValidOcspResponseIsNullTest() + throws NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, IOException { + PdfPKCS7 pkcs7 = createSimplePdfPKCS7(); + pkcs7.basicResp = null; + Assert.assertFalse(pkcs7.isRevocationValid()); + } + + @Test + public void isRevocationValidLackOfSignCertsTest() + throws NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, IOException { + PdfPKCS7 pkcs7 = createSimplePdfPKCS7(); + pkcs7.basicResp = new BasicOCSPResp(BasicOCSPResponse.getInstance(new ASN1InputStream( + Files.readAllBytes(Paths.get(SOURCE_FOLDER, "simpleOCSPResponse.bin"))).readObject())); + pkcs7.signCerts = Collections.singleton(chain[0]); + Assert.assertFalse(pkcs7.isRevocationValid()); + } + + @Test + public void isRevocationValidExceptionDuringValidationTest() + throws NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, IOException { + PdfPKCS7 pkcs7 = createSimplePdfPKCS7(); + pkcs7.basicResp = new BasicOCSPResp(BasicOCSPResponse.getInstance(new ASN1InputStream( + Files.readAllBytes(Paths.get(SOURCE_FOLDER, "simpleOCSPResponse.bin"))).readObject())); + pkcs7.signCerts = Arrays.asList(new Certificate[]{null, null}); + Assert.assertFalse(pkcs7.isRevocationValid()); + } + + @Test + public void getEncodedPkcs1Test() + throws NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, IOException { + String hashAlgorithm = DigestAlgorithms.SHA256; + PdfPKCS7 pkcs7 = new PdfPKCS7(pk, chain, hashAlgorithm, null, new BouncyCastleDigest(), true); + byte[] bytes = pkcs7.getEncodedPKCS1(); + byte[] cmpBytes = Files.readAllBytes(Paths.get(SOURCE_FOLDER + "cmpBytesPkcs1.txt")); + ASN1OctetString outOctetString = ASN1OctetString.getInstance(bytes); + ASN1OctetString cmpOctetString = ASN1OctetString.getInstance(cmpBytes); + Assert.assertEquals(outOctetString, cmpOctetString); + } + + @Test + public void getEncodedPkcs1NullPrivateKeyTest() + throws NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException { + String hashAlgorithm = DigestAlgorithms.SHA256; + PdfPKCS7 pkcs7 = new PdfPKCS7(null, chain, hashAlgorithm, null, new BouncyCastleDigest(), true); + Exception exception = Assert.assertThrows(PdfException.class, () -> pkcs7.getEncodedPKCS1()); + Assert.assertEquals(KernelExceptionMessageConstant.UNKNOWN_PDF_EXCEPTION, exception.getMessage()); + } + + @Test + public void getEncodedPkcs7UnknownExceptionTest() + throws NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException { + String hashAlgorithm = DigestAlgorithms.SHA256; + PdfPKCS7 pkcs7 = new PdfPKCS7(pk, chain, hashAlgorithm, null, new BouncyCastleDigest(), true); + TestTsaClient testTsa = new TestTsaClient(Arrays.asList(chain), pk); + Exception exception = Assert.assertThrows(PdfException.class, + () -> pkcs7.getEncodedPKCS7(null, CryptoStandard.CMS, testTsa, null, null)); + Assert.assertEquals(KernelExceptionMessageConstant.UNKNOWN_PDF_EXCEPTION, exception.getMessage()); + } + + @Test + public void getEncodedPkcs7Test() + throws NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, IOException { + String hashAlgorithm = DigestAlgorithms.SHA256; + PdfPKCS7 pkcs7 = new PdfPKCS7(pk, chain, hashAlgorithm, null, new BouncyCastleDigest(), true); + byte[] bytes = pkcs7.getEncodedPKCS7(); + byte[] cmpBytes = Files.readAllBytes(Paths.get(SOURCE_FOLDER + "cmpBytesPkcs7.txt")); + ASN1Primitive outStream = ASN1Primitive.fromByteArray(bytes); + ASN1Primitive cmpStream = ASN1Primitive.fromByteArray(cmpBytes); + Assert.assertEquals("SHA256withRSA", pkcs7.getDigestAlgorithm()); + Assert.assertEquals(outStream, cmpStream); + } + // PdfPKCS7 is created here the same way it's done in PdfSigner#signDetached private static PdfPKCS7 createSimplePdfPKCS7() throws NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException { diff --git a/sign/src/test/java/com/itextpdf/signatures/PdfSignatureAppearanceUnitTest.java b/sign/src/test/java/com/itextpdf/signatures/PdfSignatureAppearanceUnitTest.java index a66c5b5265..0c84d2cd31 100644 --- a/sign/src/test/java/com/itextpdf/signatures/PdfSignatureAppearanceUnitTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/PdfSignatureAppearanceUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/sign/src/test/java/com/itextpdf/signatures/PdfSignatureBuildPropertiesUnitTest.java b/sign/src/test/java/com/itextpdf/signatures/PdfSignatureBuildPropertiesUnitTest.java index 554d48fd63..5e9810a142 100644 --- a/sign/src/test/java/com/itextpdf/signatures/PdfSignatureBuildPropertiesUnitTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/PdfSignatureBuildPropertiesUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/sign/src/test/java/com/itextpdf/signatures/PdfSignerUnitTest.java b/sign/src/test/java/com/itextpdf/signatures/PdfSignerUnitTest.java index af64cc7643..0730800317 100644 --- a/sign/src/test/java/com/itextpdf/signatures/PdfSignerUnitTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/PdfSignerUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/sign/src/test/java/com/itextpdf/signatures/ProviderDigestUnitTest.java b/sign/src/test/java/com/itextpdf/signatures/ProviderDigestUnitTest.java index 83578241e9..223e98984d 100644 --- a/sign/src/test/java/com/itextpdf/signatures/ProviderDigestUnitTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/ProviderDigestUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/sign/src/test/java/com/itextpdf/signatures/SignUtilsManualTest.java b/sign/src/test/java/com/itextpdf/signatures/SignUtilsManualTest.java index a8bb8961a0..ed0b430b18 100644 --- a/sign/src/test/java/com/itextpdf/signatures/SignUtilsManualTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/SignUtilsManualTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/sign/src/test/java/com/itextpdf/signatures/SignUtilsUnitTest.java b/sign/src/test/java/com/itextpdf/signatures/SignUtilsUnitTest.java index 4d618f3364..75de1d5460 100644 --- a/sign/src/test/java/com/itextpdf/signatures/SignUtilsUnitTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/SignUtilsUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/sign/src/test/java/com/itextpdf/signatures/SignaturePermissionsTest.java b/sign/src/test/java/com/itextpdf/signatures/SignaturePermissionsTest.java index 3f77b6accb..7108c0ec9b 100644 --- a/sign/src/test/java/com/itextpdf/signatures/SignaturePermissionsTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/SignaturePermissionsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/test/java/com/itextpdf/signatures/SignaturePolicyInfoTest.java b/sign/src/test/java/com/itextpdf/signatures/SignaturePolicyInfoTest.java index f46c8d18fe..6ab87a720f 100644 --- a/sign/src/test/java/com/itextpdf/signatures/SignaturePolicyInfoTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/SignaturePolicyInfoTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/test/java/com/itextpdf/signatures/SignatureUtilTest.java b/sign/src/test/java/com/itextpdf/signatures/SignatureUtilTest.java index 09344db7be..9435d6391b 100644 --- a/sign/src/test/java/com/itextpdf/signatures/SignatureUtilTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/SignatureUtilTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/test/java/com/itextpdf/signatures/SignatureUtilUnitTest.java b/sign/src/test/java/com/itextpdf/signatures/SignatureUtilUnitTest.java index f34357215f..d42e50b7f8 100644 --- a/sign/src/test/java/com/itextpdf/signatures/SignatureUtilUnitTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/SignatureUtilUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/sign/src/test/java/com/itextpdf/signatures/SignaturesTestUtils.java b/sign/src/test/java/com/itextpdf/signatures/SignaturesTestUtils.java new file mode 100644 index 0000000000..fc1168a19b --- /dev/null +++ b/sign/src/test/java/com/itextpdf/signatures/SignaturesTestUtils.java @@ -0,0 +1,48 @@ +/* + This file is part of the iText (R) project. + Copyright (c) 1998-2022 iText Group NV + Authors: iText Software. + + This program is offered under a commercial and under the AGPL license. + For commercial licensing, contact us at https://itextpdf.com/sales. For AGPL licensing, see below. + + AGPL licensing: + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + */ +package com.itextpdf.signatures; + +import java.security.cert.X509Certificate; + +/** + * Class for internal usage in tests. + */ +public final class SignaturesTestUtils { + + private static final String EXPIRED_CERTIFICATE_DATE_PREFIX_MESSAGE = "NotAfter: "; + + private SignaturesTestUtils() { + // Empty constructor. + } + + /** + * Creates string which should be return while validating expired certificate. + * + * @param certificate certificate for validation. + * + * @return expected string. + */ + public static String getExpiredMessage(X509Certificate certificate) { + return EXPIRED_CERTIFICATE_DATE_PREFIX_MESSAGE + certificate.getNotAfter().toString(); + } +} diff --git a/sign/src/test/java/com/itextpdf/signatures/TSAClientBouncyCastleTest.java b/sign/src/test/java/com/itextpdf/signatures/TSAClientBouncyCastleTest.java new file mode 100644 index 0000000000..f46ba063c6 --- /dev/null +++ b/sign/src/test/java/com/itextpdf/signatures/TSAClientBouncyCastleTest.java @@ -0,0 +1,232 @@ +/* + This file is part of the iText (R) project. + Copyright (c) 1998-2022 iText Group NV + Authors: iText Software. + + This program is offered under a commercial and under the AGPL license. + For commercial licensing, contact us at https://itextpdf.com/sales. For AGPL licensing, see below. + + AGPL licensing: + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + */ +package com.itextpdf.signatures; + +import com.itextpdf.commons.utils.MessageFormatUtil; +import com.itextpdf.kernel.exceptions.PdfException; +import com.itextpdf.signatures.exceptions.SignExceptionMessageConstant; +import com.itextpdf.signatures.testutils.builder.TestTimestampTokenBuilder; +import com.itextpdf.test.ExtendedITextTest; +import com.itextpdf.test.annotations.type.UnitTest; +import com.itextpdf.test.signutils.Pkcs12FileHelper; + +import java.security.GeneralSecurityException; +import java.security.MessageDigest; +import java.security.PrivateKey; +import java.security.cert.Certificate; +import java.util.Arrays; +import java.util.List; +import org.bouncycastle.tsp.TimeStampResponse; +import org.bouncycastle.tsp.TimeStampToken; +import org.bouncycastle.tsp.TimeStampTokenInfo; +import org.junit.Assert; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(UnitTest.class) +public class TSAClientBouncyCastleTest extends ExtendedITextTest { + + @Test + public void setTSAInfoTest() { + TSAClientBouncyCastle clientBouncyCastle = new TSAClientBouncyCastle("url"); + CustomItsaInfoBouncyCastle infoBouncyCastle = new CustomItsaInfoBouncyCastle(); + clientBouncyCastle.setTSAInfo(infoBouncyCastle); + Assert.assertEquals(infoBouncyCastle, clientBouncyCastle.tsaInfo); + } + + @Test + public void testTsaClientBouncyCastleConstructor3Args() { + String userName = "user"; + String password = "password"; + String url = "url"; + + TSAClientBouncyCastle tsaClientBouncyCastle = new TSAClientBouncyCastle(url, userName, password); + Assert.assertEquals(url, tsaClientBouncyCastle.tsaURL); + Assert.assertEquals(userName, tsaClientBouncyCastle.tsaUsername); + Assert.assertEquals(password, tsaClientBouncyCastle.tsaPassword); + Assert.assertEquals(TSAClientBouncyCastle.DEFAULTTOKENSIZE, tsaClientBouncyCastle.tokenSizeEstimate); + Assert.assertEquals(TSAClientBouncyCastle.DEFAULTHASHALGORITHM, tsaClientBouncyCastle.digestAlgorithm); + } + + @Test + public void testTsaClientBouncyCastleConstructorAllArgs() { + String userName = "user"; + String password = "password"; + String url = "url"; + int tokenSize = 1024; + String digestAlgorithm = "SHA-1"; + + TSAClientBouncyCastle tsaClientBouncyCastle = new TSAClientBouncyCastle(url, userName, password, + tokenSize, digestAlgorithm); + Assert.assertEquals(url, tsaClientBouncyCastle.tsaURL); + Assert.assertEquals(userName, tsaClientBouncyCastle.tsaUsername); + Assert.assertEquals(password, tsaClientBouncyCastle.tsaPassword); + Assert.assertEquals(tokenSize, tsaClientBouncyCastle.tokenSizeEstimate); + Assert.assertEquals(digestAlgorithm, tsaClientBouncyCastle.digestAlgorithm); + } + + @Test + public void testTsaClientBouncyCastleConstructor1Arg() { + String url = "url"; + + TSAClientBouncyCastle tsaClientBouncyCastle = new TSAClientBouncyCastle(url); + Assert.assertEquals(url, tsaClientBouncyCastle.tsaURL); + Assert.assertNull(tsaClientBouncyCastle.tsaUsername); + Assert.assertNull(tsaClientBouncyCastle.tsaPassword); + Assert.assertEquals(TSAClientBouncyCastle.DEFAULTTOKENSIZE, tsaClientBouncyCastle.tokenSizeEstimate); + Assert.assertEquals(TSAClientBouncyCastle.DEFAULTHASHALGORITHM, tsaClientBouncyCastle.digestAlgorithm); + } + + @Test + public void getTokenSizeEstimateTest() { + String userName = "user"; + String password = "password"; + String url = "url"; + String digestAlgorithm = "SHA-256"; + int tokenSizeEstimate = 4096; + + TSAClientBouncyCastle tsaClientBouncyCastle = new TSAClientBouncyCastle(url, userName, password, + tokenSizeEstimate, digestAlgorithm); + Assert.assertEquals(tokenSizeEstimate, tsaClientBouncyCastle.getTokenSizeEstimate()); + } + + @Test + public void setGetTsaReqPolicyTest() { + String regPolicy = "regPolicy"; + + TSAClientBouncyCastle clientBouncyCastle = new TSAClientBouncyCastle("url"); + clientBouncyCastle.setTSAReqPolicy(regPolicy); + Assert.assertEquals(regPolicy, clientBouncyCastle.getTSAReqPolicy()); + } + + @Test + public void getMessageDigestTest() throws GeneralSecurityException { + String userName = "user"; + String password = "password"; + String url = "url"; + String digestAlgorithm = "SHA-256"; + int tokenSizeEstimate = 4096; + + TSAClientBouncyCastle tsaClientBouncyCastle = new TSAClientBouncyCastle(url, userName, password, + tokenSizeEstimate, digestAlgorithm); + MessageDigest digest = tsaClientBouncyCastle.getMessageDigest(); + Assert.assertNotNull(digest); + Assert.assertEquals(digestAlgorithm, digest.getAlgorithm()); + } + + @Test + public void getTimeStampTokenTest() throws Exception { + String allowedDigest = "SHA256"; + String signatureAlgorithm = "SHA256withRSA"; + String policyOid = "1.3.6.1.4.1.45794.1.1"; + + CustomTsaClientBouncyCastle tsaClientBouncyCastle = new CustomTsaClientBouncyCastle("", signatureAlgorithm, + allowedDigest); + tsaClientBouncyCastle.setTSAReqPolicy(policyOid); + CustomItsaInfoBouncyCastle itsaInfoBouncyCastle = new CustomItsaInfoBouncyCastle(); + tsaClientBouncyCastle.setTSAInfo(itsaInfoBouncyCastle); + byte[] timestampTokenArray = tsaClientBouncyCastle.getTimeStampToken(tsaClientBouncyCastle + .getMessageDigest().digest()); + + TimeStampToken expectedToken = new TimeStampResponse(tsaClientBouncyCastle.getExpectedTsaResponseBytes()) + .getTimeStampToken(); + TimeStampTokenInfo expectedTsTokenInfo = expectedToken.getTimeStampInfo(); + TimeStampTokenInfo resultTsTokenInfo = itsaInfoBouncyCastle.getTimeStampTokenInfo(); + + Assert.assertNotNull(timestampTokenArray); + Assert.assertNotNull(resultTsTokenInfo); + Assert.assertArrayEquals(expectedTsTokenInfo.getEncoded(), resultTsTokenInfo.getEncoded()); + Assert.assertArrayEquals(expectedToken.getEncoded(), timestampTokenArray); + } + + @Test + public void getTimeStampTokenFailureExceptionTest() throws Exception { + String allowedDigest = "MD5"; + String signatureAlgorithm = "SHA256withRSA"; + String url = "url"; + + CustomTsaClientBouncyCastle tsaClientBouncyCastle = new CustomTsaClientBouncyCastle(url, signatureAlgorithm, + allowedDigest); + tsaClientBouncyCastle.setTSAInfo(new CustomItsaInfoBouncyCastle()); + + byte[] digest = tsaClientBouncyCastle.getMessageDigest().digest(); + Exception e = Assert.assertThrows(PdfException.class, + () -> tsaClientBouncyCastle.getTimeStampToken(digest) + ); + + Assert.assertEquals(MessageFormatUtil.format(SignExceptionMessageConstant.INVALID_TSA_RESPONSE, url, "128"), + e.getMessage()); + } + + private static final class CustomTsaClientBouncyCastle extends TSAClientBouncyCastle { + private static final char[] PASSWORD = "testpass".toCharArray(); + + private static final String CERTS_SRC = "./src/test/resources/com/itextpdf/signatures/certs/"; + + private final PrivateKey tsaPrivateKey; + private final List tsaCertificateChain; + private final String signatureAlgorithm; + private final String allowedDigest; + + private byte[] expectedTsaResponseBytes; + + public CustomTsaClientBouncyCastle(String url, String signatureAlgorithm, String allowedDigest) + throws Exception { + super(url); + + this.signatureAlgorithm = signatureAlgorithm; + this.allowedDigest = allowedDigest; + tsaPrivateKey = Pkcs12FileHelper + .readFirstKey(CERTS_SRC + "signCertRsa01.p12", PASSWORD, PASSWORD); + + String tsaCertFileName = CERTS_SRC + "tsCertRsa.p12"; + tsaCertificateChain = Arrays.asList(Pkcs12FileHelper.readFirstChain(tsaCertFileName, PASSWORD)); + } + + public byte[] getExpectedTsaResponseBytes() { + return expectedTsaResponseBytes; + } + + @Override + protected byte[] getTSAResponse(byte[] requestBytes) { + TestTimestampTokenBuilder builder = new TestTimestampTokenBuilder(tsaCertificateChain, tsaPrivateKey); + expectedTsaResponseBytes = builder.createTSAResponse(requestBytes, signatureAlgorithm, allowedDigest); + return expectedTsaResponseBytes; + } + } + + private static final class CustomItsaInfoBouncyCastle implements ITSAInfoBouncyCastle { + + private TimeStampTokenInfo timeStampTokenInfo; + + @Override + public void inspectTimeStampTokenInfo(TimeStampTokenInfo info) { + this.timeStampTokenInfo = info; + } + + + public TimeStampTokenInfo getTimeStampTokenInfo() { + return timeStampTokenInfo; + } + } +} diff --git a/sign/src/test/java/com/itextpdf/signatures/VerificationOKTest.java b/sign/src/test/java/com/itextpdf/signatures/VerificationOKTest.java index 6e7cced032..7a090e116f 100644 --- a/sign/src/test/java/com/itextpdf/signatures/VerificationOKTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/VerificationOKTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/test/java/com/itextpdf/signatures/sign/AnnotationsSigningTest.java b/sign/src/test/java/com/itextpdf/signatures/sign/AnnotationsSigningTest.java index 3c91a2436f..8ba93f7e99 100644 --- a/sign/src/test/java/com/itextpdf/signatures/sign/AnnotationsSigningTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/sign/AnnotationsSigningTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/sign/src/test/java/com/itextpdf/signatures/sign/CrlClientOnlineTest.java b/sign/src/test/java/com/itextpdf/signatures/sign/CrlClientOnlineTest.java index 1091e40e3c..efc0b25a28 100644 --- a/sign/src/test/java/com/itextpdf/signatures/sign/CrlClientOnlineTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/sign/CrlClientOnlineTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/test/java/com/itextpdf/signatures/sign/EncryptedSigningTest.java b/sign/src/test/java/com/itextpdf/signatures/sign/EncryptedSigningTest.java index dfe2eedcfc..a568992bf3 100644 --- a/sign/src/test/java/com/itextpdf/signatures/sign/EncryptedSigningTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/sign/EncryptedSigningTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/sign/src/test/java/com/itextpdf/signatures/sign/LtvSigTest.java b/sign/src/test/java/com/itextpdf/signatures/sign/LtvSigTest.java index 5f62682bd8..81d8cbca65 100644 --- a/sign/src/test/java/com/itextpdf/signatures/sign/LtvSigTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/sign/LtvSigTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify @@ -50,7 +50,9 @@ This file is part of the iText (R) project. import com.itextpdf.kernel.pdf.StampingProperties; import com.itextpdf.signatures.BouncyCastleDigest; import com.itextpdf.signatures.DigestAlgorithms; +import com.itextpdf.signatures.ICrlClient; import com.itextpdf.signatures.IExternalSignature; +import com.itextpdf.signatures.ITSAClient; import com.itextpdf.signatures.LtvVerification; import com.itextpdf.signatures.PdfSigner; import com.itextpdf.signatures.PrivateKeySignature; @@ -58,143 +60,206 @@ This file is part of the iText (R) project. import com.itextpdf.signatures.testutils.client.TestCrlClient; import com.itextpdf.signatures.testutils.client.TestOcspClient; import com.itextpdf.signatures.testutils.client.TestTsaClient; -import com.itextpdf.test.signutils.Pkcs12FileHelper; import com.itextpdf.test.ExtendedITextTest; import com.itextpdf.test.annotations.type.IntegrationTest; -import org.bouncycastle.jce.provider.BouncyCastleProvider; -import org.junit.Assert; -import org.junit.BeforeClass; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import com.itextpdf.test.signutils.Pkcs12FileHelper; import java.io.FileOutputStream; import java.io.IOException; import java.security.GeneralSecurityException; +import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; import java.security.PrivateKey; import java.security.Security; +import java.security.UnrecoverableKeyException; import java.security.cert.Certificate; +import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.experimental.categories.Category; @Category(IntegrationTest.class) public class LtvSigTest extends ExtendedITextTest { - private static final String certsSrc = "./src/test/resources/com/itextpdf/signatures/certs/"; - private static final String sourceFolder = "./src/test/resources/com/itextpdf/signatures/sign/LtvSigTest/"; - private static final String destinationFolder = "./target/test/com/itextpdf/signatures/sign/LtvSigTest/"; + private static final String CERTS_SRC = "./src/test/resources/com/itextpdf/signatures/certs/"; + private static final String SOURCE_FOLDER = "./src/test/resources/com/itextpdf/signatures/sign/LtvSigTest/"; + private static final String DESTINATION_FOLDER = "./target/test/com/itextpdf/signatures/sign/LtvSigTest/"; - private static final char[] password = "testpass".toCharArray(); + private static final char[] PASSWORD = "testpass".toCharArray(); @BeforeClass public static void before() { Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); - createOrClearDestinationFolder(destinationFolder); + createOrClearDestinationFolder(DESTINATION_FOLDER); } @Test public void ltvEnabledTest01() throws IOException, GeneralSecurityException { - String tsaCertFileName = certsSrc + "tsCertRsa.p12"; - String caCertFileName = certsSrc + "rootRsa.p12"; - String srcFileName = sourceFolder + "signedDoc.pdf"; - String ltvFileName = destinationFolder + "ltvEnabledTest01.pdf"; - String ltvTsFileName = destinationFolder + "ltvEnabledTsTest01.pdf"; - - Certificate[] tsaChain = Pkcs12FileHelper.readFirstChain(tsaCertFileName, password); - PrivateKey tsaPrivateKey = Pkcs12FileHelper.readFirstKey(tsaCertFileName, password, password); - X509Certificate caCert = (X509Certificate) Pkcs12FileHelper.readFirstChain(caCertFileName, password)[0]; - PrivateKey caPrivateKey = Pkcs12FileHelper.readFirstKey(caCertFileName, password, password); - - TestTsaClient testTsa = new TestTsaClient(Arrays.asList(tsaChain), tsaPrivateKey); - TestOcspClient testOcspClient = new TestOcspClient() - .addBuilderForCertIssuer(caCert, caPrivateKey); - TestCrlClient testCrlClient = new TestCrlClient(caCert, caPrivateKey); - - PdfDocument document = new PdfDocument(new PdfReader(srcFileName), new PdfWriter(ltvFileName), new StampingProperties().useAppendMode()); + String tsaCertP12FileName = CERTS_SRC + "tsCertRsa.p12"; + String caCertP12FileName = CERTS_SRC + "rootRsa.p12"; + String srcFileName = SOURCE_FOLDER + "signedDoc.pdf"; + String ltvFileName = DESTINATION_FOLDER + "ltvEnabledTest01.pdf"; + String ltvTsFileName = DESTINATION_FOLDER + "ltvEnabledTsTest01.pdf"; + + TestCrlClient testCrlClient = prepareCrlClientForIssuer(caCertP12FileName); + TestOcspClient testOcspClient = prepareOcspClientForIssuer(caCertP12FileName); + TestTsaClient testTsa = prepareTsaClient(tsaCertP12FileName); + + PdfDocument document = new PdfDocument(new PdfReader(srcFileName), new PdfWriter(ltvFileName), + new StampingProperties().useAppendMode()); LtvVerification ltvVerification = new LtvVerification(document); - ltvVerification.addVerification("Signature1", testOcspClient, testCrlClient, LtvVerification.CertificateOption.SIGNING_CERTIFICATE, LtvVerification.Level.OCSP_CRL, LtvVerification.CertificateInclusion.YES); + ltvVerification.addVerification("Signature1", testOcspClient, testCrlClient, + LtvVerification.CertificateOption.SIGNING_CERTIFICATE, LtvVerification.Level.OCSP_CRL, + LtvVerification.CertificateInclusion.YES); ltvVerification.merge(); document.close(); - PdfSigner signer = new PdfSigner(new PdfReader(ltvFileName), new FileOutputStream(ltvTsFileName), new StampingProperties().useAppendMode()); + PdfSigner signer = new PdfSigner(new PdfReader(ltvFileName), new FileOutputStream(ltvTsFileName), + new StampingProperties().useAppendMode()); signer.timestamp(testTsa, "timestampSig1"); basicCheckLtvDoc("ltvEnabledTsTest01.pdf", "timestampSig1"); Assert.assertNull( - SignaturesCompareTool.compareSignatures(ltvTsFileName, sourceFolder + "cmp_ltvEnabledTsTest01.pdf")); + SignaturesCompareTool.compareSignatures(ltvTsFileName, SOURCE_FOLDER + "cmp_ltvEnabledTsTest01.pdf")); + } + + @Test + public void ltvEnabledSingleSignatureNoCrlDataTest() throws IOException, GeneralSecurityException { + String signCertP12FileName = CERTS_SRC + "signCertRsaWithChain.p12"; + String tsaCertP12FileName = CERTS_SRC + "tsCertRsa.p12"; + String intermediateCertP12FileName = CERTS_SRC + "intermediateRsa.p12"; + String caCertP12FileName = CERTS_SRC + "rootRsa.p12"; + String srcFileName = SOURCE_FOLDER + "helloWorldDoc.pdf"; + String ltvFileName = DESTINATION_FOLDER + "ltvEnabledSingleSignatureNoCrlDataTest.pdf"; + + Certificate[] signChain = Pkcs12FileHelper.readFirstChain(signCertP12FileName, PASSWORD); + IExternalSignature pks = prepareSignatureHandler(signCertP12FileName); + TestTsaClient testTsa = prepareTsaClient(tsaCertP12FileName); + TestOcspClient testOcspClient = prepareOcspClientForIssuer(intermediateCertP12FileName, caCertP12FileName); + Collection crlNotAvailableList = Arrays.asList((ICrlClient)null, new ICrlClient() { + @Override + public Collection getEncoded(X509Certificate checkCert, String url) { + return null; + } + }); + + PdfSigner signer = new PdfSigner(new PdfReader(srcFileName), new FileOutputStream(ltvFileName), + new StampingProperties()); + signer.setFieldName("Signature1"); + + signer.signDetached(new BouncyCastleDigest(), pks, signChain, crlNotAvailableList, testOcspClient, testTsa, 0, + PdfSigner.CryptoStandard.CADES); + + Assert.assertNull(SignaturesCompareTool.compareSignatures( + ltvFileName, SOURCE_FOLDER + "cmp_ltvEnabledSingleSignatureNoCrlDataTest.pdf")); } @Test - public void ltvEnabledSingleSignatureTest01() throws IOException, GeneralSecurityException { - String signCertFileName = certsSrc + "signCertRsaWithChain.p12"; - String tsaCertFileName = certsSrc + "tsCertRsa.p12"; - String intermediateCertFileName = certsSrc + "intermediateRsa.p12"; - String caCertFileName = certsSrc + "rootRsa.p12"; - String srcFileName = sourceFolder + "helloWorldDoc.pdf"; - String ltvFileName = destinationFolder + "ltvEnabledSingleSignatureTest01.pdf"; - - Certificate[] tsaChain = Pkcs12FileHelper.readFirstChain(tsaCertFileName, password); - PrivateKey tsaPrivateKey = Pkcs12FileHelper.readFirstKey(tsaCertFileName, password, password); - - X509Certificate intermediateCert = (X509Certificate) Pkcs12FileHelper.readFirstChain(intermediateCertFileName, password)[0]; - PrivateKey intermediatePrivateKey = Pkcs12FileHelper.readFirstKey(intermediateCertFileName, password, password); - X509Certificate caCert = (X509Certificate) Pkcs12FileHelper.readFirstChain(caCertFileName, password)[0]; - PrivateKey caPrivateKey = Pkcs12FileHelper.readFirstKey(caCertFileName, password, password); - - TestTsaClient testTsa = new TestTsaClient(Arrays.asList(tsaChain), tsaPrivateKey); - TestOcspClient testOcspClient = new TestOcspClient() - .addBuilderForCertIssuer(intermediateCert, intermediatePrivateKey) - .addBuilderForCertIssuer(caCert, caPrivateKey); - - Certificate[] signChain = Pkcs12FileHelper.readFirstChain(signCertFileName, password); - PrivateKey signPrivateKey = Pkcs12FileHelper.readFirstKey(signCertFileName, password, password); - IExternalSignature pks = new PrivateKeySignature(signPrivateKey, DigestAlgorithms.SHA256, BouncyCastleProvider.PROVIDER_NAME); - - PdfSigner signer = new PdfSigner(new PdfReader(srcFileName), new FileOutputStream(ltvFileName), new StampingProperties()); + public void ltvEnabledSingleSignatureNoOcspDataTest() throws IOException, GeneralSecurityException { + String signCertP12FileName = CERTS_SRC + "signCertRsaWithChain.p12"; + String tsaCertP12FileName = CERTS_SRC + "tsCertRsa.p12"; + String intermediateCertP12FileName = CERTS_SRC + "intermediateRsa.p12"; + String caCertP12FileName = CERTS_SRC + "rootRsa.p12"; + String srcFileName = SOURCE_FOLDER + "helloWorldDoc.pdf"; + String ltvFileName = DESTINATION_FOLDER + "ltvEnabledSingleSignatureNoOcspDataTest.pdf"; + + Certificate[] signChain = Pkcs12FileHelper.readFirstChain(signCertP12FileName, PASSWORD); + IExternalSignature pks = prepareSignatureHandler(signCertP12FileName); + TestTsaClient testTsa = prepareTsaClient(tsaCertP12FileName); + TestCrlClient testCrlClient = prepareCrlClientForIssuer(caCertP12FileName, intermediateCertP12FileName); + + PdfSigner signer = new PdfSigner(new PdfReader(srcFileName), new FileOutputStream(ltvFileName), + new StampingProperties()); signer.setFieldName("Signature1"); - signer.signDetached(new BouncyCastleDigest(), pks, signChain, null, testOcspClient, testTsa, 0, PdfSigner.CryptoStandard.CADES); + signer.signDetached(new BouncyCastleDigest(), pks, signChain, Collections.singletonList(testCrlClient), null, + testTsa, 0, PdfSigner.CryptoStandard.CADES); - PadesSigTest.basicCheckSignedDoc(destinationFolder + "ltvEnabledSingleSignatureTest01.pdf", "Signature1"); + Assert.assertNull(SignaturesCompareTool.compareSignatures( + ltvFileName, SOURCE_FOLDER + "cmp_ltvEnabledSingleSignatureNoOcspDataTest.pdf")); } @Test public void secondLtvOriginalHasNoVri01() throws IOException, GeneralSecurityException { - String tsaCertFileName = certsSrc + "tsCertRsa.p12"; - String caCertFileName = certsSrc + "rootRsa.p12"; - String srcFileName = sourceFolder + "ltvEnabledNoVriEntry.pdf"; - String ltvFileName = destinationFolder + "secondLtvOriginalHasNoVri01.pdf"; - String ltvTsFileName = destinationFolder + "secondLtvOriginalHasNoVriTs01.pdf"; - - Certificate[] tsaChain = Pkcs12FileHelper.readFirstChain(tsaCertFileName, password); - PrivateKey tsaPrivateKey = Pkcs12FileHelper.readFirstKey(tsaCertFileName, password, password); - X509Certificate caCert = (X509Certificate) Pkcs12FileHelper.readFirstChain(caCertFileName, password)[0]; - PrivateKey caPrivateKey = Pkcs12FileHelper.readFirstKey(caCertFileName, password, password); - - TestTsaClient testTsa = new TestTsaClient(Arrays.asList(tsaChain), tsaPrivateKey); - TestOcspClient testOcspClient = new TestOcspClient().addBuilderForCertIssuer(caCert, caPrivateKey); - TestCrlClient testCrlClient = new TestCrlClient(caCert, caPrivateKey); - - PdfDocument document = new PdfDocument(new PdfReader(srcFileName), new PdfWriter(ltvFileName), new StampingProperties().useAppendMode()); + String tsaCertFileName = CERTS_SRC + "tsCertRsa.p12"; + String caCertFileName = CERTS_SRC + "rootRsa.p12"; + String srcFileName = SOURCE_FOLDER + "ltvEnabledNoVriEntry.pdf"; + String ltvFileName = DESTINATION_FOLDER + "secondLtvOriginalHasNoVri01.pdf"; + String ltvTsFileName = DESTINATION_FOLDER + "secondLtvOriginalHasNoVriTs01.pdf"; + + TestCrlClient testCrlClient = prepareCrlClientForIssuer(caCertFileName); + TestOcspClient testOcspClient = prepareOcspClientForIssuer(caCertFileName); + TestTsaClient testTsa = prepareTsaClient(tsaCertFileName); + + PdfDocument document = new PdfDocument(new PdfReader(srcFileName), new PdfWriter(ltvFileName), + new StampingProperties().useAppendMode()); LtvVerification ltvVerification = new LtvVerification(document); - ltvVerification.addVerification("timestampSig1", testOcspClient, testCrlClient, LtvVerification.CertificateOption.SIGNING_CERTIFICATE, LtvVerification.Level.OCSP_CRL, LtvVerification.CertificateInclusion.YES); + ltvVerification.addVerification("timestampSig1", testOcspClient, testCrlClient, + LtvVerification.CertificateOption.SIGNING_CERTIFICATE, LtvVerification.Level.OCSP_CRL, + LtvVerification.CertificateInclusion.YES); ltvVerification.merge(); document.close(); - PdfSigner signer = new PdfSigner(new PdfReader(ltvFileName), new FileOutputStream(ltvTsFileName), new StampingProperties().useAppendMode()); + PdfSigner signer = new PdfSigner(new PdfReader(ltvFileName), new FileOutputStream(ltvTsFileName), + new StampingProperties().useAppendMode()); signer.timestamp(testTsa, "timestampSig2"); basicCheckLtvDoc("secondLtvOriginalHasNoVriTs01.pdf", "timestampSig2"); Assert.assertNull(SignaturesCompareTool.compareSignatures( - ltvTsFileName, sourceFolder + "cmp_secondLtvOriginalHasNoVriTs01.pdf")); + ltvTsFileName, SOURCE_FOLDER + "cmp_secondLtvOriginalHasNoVriTs01.pdf")); + } + + private static IExternalSignature prepareSignatureHandler(String signCertP12FileName) + throws KeyStoreException, IOException, CertificateException, NoSuchAlgorithmException, UnrecoverableKeyException { + PrivateKey signPrivateKey = Pkcs12FileHelper.readFirstKey(signCertP12FileName, PASSWORD, PASSWORD); + return new PrivateKeySignature(signPrivateKey, DigestAlgorithms.SHA256, BouncyCastleProvider.PROVIDER_NAME); + } + + private static TestCrlClient prepareCrlClientForIssuer(String... issuerCertP12FileNames) + throws KeyStoreException, IOException, CertificateException, NoSuchAlgorithmException, UnrecoverableKeyException { + TestCrlClient testCrlClient = new TestCrlClient(); + for (String issuerP12File : issuerCertP12FileNames) { + X509Certificate caCert = (X509Certificate) Pkcs12FileHelper.readFirstChain(issuerP12File, PASSWORD)[0]; + PrivateKey caPrivateKey = Pkcs12FileHelper.readFirstKey(issuerP12File, PASSWORD, PASSWORD); + testCrlClient.addBuilderForCertIssuer(caCert, caPrivateKey); + } + return testCrlClient; + } + + private static TestOcspClient prepareOcspClientForIssuer(String... issuerCertP12FileNames) + throws KeyStoreException, IOException, CertificateException, NoSuchAlgorithmException, UnrecoverableKeyException { + + TestOcspClient ocspClient = new TestOcspClient(); + for (String issuerP12File : issuerCertP12FileNames) { + X509Certificate issuerCertificate = + (X509Certificate) Pkcs12FileHelper.readFirstChain(issuerP12File, PASSWORD)[0]; + PrivateKey issuerPrivateKey = Pkcs12FileHelper.readFirstKey(issuerP12File, PASSWORD, PASSWORD); + ocspClient.addBuilderForCertIssuer(issuerCertificate, issuerPrivateKey); + } + + return ocspClient; + } + + private static TestTsaClient prepareTsaClient(String tsaCertP12FileName) + throws KeyStoreException, IOException, CertificateException, NoSuchAlgorithmException, UnrecoverableKeyException { + Certificate[] tsaChain = Pkcs12FileHelper.readFirstChain(tsaCertP12FileName, PASSWORD); + PrivateKey tsaPrivateKey = Pkcs12FileHelper.readFirstKey(tsaCertP12FileName, PASSWORD, PASSWORD); + return new TestTsaClient(Arrays.asList(tsaChain), tsaPrivateKey); } private void basicCheckLtvDoc(String outFileName, String tsSigName) throws IOException, GeneralSecurityException { - PdfDocument outDocument = new PdfDocument(new PdfReader(destinationFolder + outFileName)); + PdfDocument outDocument = new PdfDocument(new PdfReader(DESTINATION_FOLDER + outFileName)); PdfDictionary dssDict = outDocument.getCatalog().getPdfObject().getAsDictionary(PdfName.DSS); Assert.assertNotNull(dssDict); Assert.assertEquals(4, dssDict.size()); outDocument.close(); - PadesSigTest.basicCheckSignedDoc(destinationFolder + outFileName, tsSigName); + PadesSigTest.basicCheckSignedDoc(DESTINATION_FOLDER + outFileName, tsSigName); } } diff --git a/sign/src/test/java/com/itextpdf/signatures/sign/LtvWithTwoSignaturesTest.java b/sign/src/test/java/com/itextpdf/signatures/sign/LtvWithTwoSignaturesTest.java index 0569b33ac9..a42277dd19 100644 --- a/sign/src/test/java/com/itextpdf/signatures/sign/LtvWithTwoSignaturesTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/sign/LtvWithTwoSignaturesTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify @@ -98,7 +98,7 @@ public void addLtvInfo() throws GeneralSecurityException, java.io.IOException { TestOcspClient testOcspClient = new TestOcspClient() .addBuilderForCertIssuer(interCert, interPrivateKey) .addBuilderForCertIssuer(caCert, caPrivateKey); - TestCrlClient testCrlClient = new TestCrlClient(caCert, caPrivateKey); + TestCrlClient testCrlClient = new TestCrlClient().addBuilderForCertIssuer(caCert, caPrivateKey); addLtvInfo(srcFileName, ltvFileName, "Signature1", testOcspClient, testCrlClient); addLtvInfo(ltvFileName, ltvFileName2, "Signature2", testOcspClient, testCrlClient); diff --git a/sign/src/test/java/com/itextpdf/signatures/sign/PadesSigTest.java b/sign/src/test/java/com/itextpdf/signatures/sign/PadesSigTest.java index 4afb60491f..7f466d548b 100644 --- a/sign/src/test/java/com/itextpdf/signatures/sign/PadesSigTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/sign/PadesSigTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/test/java/com/itextpdf/signatures/sign/PadesSignatureLevelTest.java b/sign/src/test/java/com/itextpdf/signatures/sign/PadesSignatureLevelTest.java index c9a01314f8..09d6ccf299 100644 --- a/sign/src/test/java/com/itextpdf/signatures/sign/PadesSignatureLevelTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/sign/PadesSignatureLevelTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify @@ -129,18 +129,13 @@ public void padesSignatureLevelTTest01() throws GeneralSecurityException, IOExce public void padesSignatureLevelLTTest01() throws GeneralSecurityException, IOException { String outFileName = destinationFolder + "padesSignatureLevelLTTest01.pdf"; String srcFileName = sourceFolder + "signedPAdES-T.pdf"; - String tsaCertFileName = certsSrc + "tsCertRsa.p12"; String caCertFileName = certsSrc + "rootRsa.p12"; - Certificate[] tsaChain = Pkcs12FileHelper.readFirstChain(tsaCertFileName, password); - PrivateKey tsaPrivateKey = Pkcs12FileHelper.readFirstKey(tsaCertFileName, password, password); - X509Certificate caCert = (X509Certificate) Pkcs12FileHelper.readFirstChain(caCertFileName, password)[0]; PrivateKey caPrivateKey = Pkcs12FileHelper.readFirstKey(caCertFileName, password, password); - ICrlClient crlClient = new TestCrlClient(caCert, caPrivateKey); + ICrlClient crlClient = new TestCrlClient().addBuilderForCertIssuer(caCert, caPrivateKey); TestOcspClient ocspClient = new TestOcspClient().addBuilderForCertIssuer(caCert, caPrivateKey); - TestTsaClient testTsa = new TestTsaClient(Arrays.asList(tsaChain), tsaPrivateKey); PdfDocument document = new PdfDocument(new PdfReader(srcFileName), new PdfWriter(outFileName), new StampingProperties().useAppendMode()); LtvVerification ltvVerification = new LtvVerification(document); @@ -148,7 +143,8 @@ public void padesSignatureLevelLTTest01() throws GeneralSecurityException, IOExc ltvVerification.merge(); document.close(); - basicCheckDssDict("padesSignatureLevelLTTest01.pdf"); + Assert.assertNull(SignaturesCompareTool.compareSignatures( + outFileName, sourceFolder + "cmp_padesSignatureLevelLTTest01.pdf")); } @Test @@ -165,13 +161,7 @@ public void padesSignatureLevelLTATest01() throws GeneralSecurityException, IOEx TestTsaClient testTsa = new TestTsaClient(Arrays.asList(tsaChain), tsaPrivateKey); signer.timestamp(testTsa, "timestampSig1"); - PadesSigTest.basicCheckSignedDoc(destinationFolder + "padesSignatureLevelLTATest01.pdf", "timestampSig1"); - } - - private void basicCheckDssDict(String fileName) throws IOException { - PdfDocument outDocument = new PdfDocument(new PdfReader(destinationFolder + fileName)); - PdfDictionary dssDict = outDocument.getCatalog().getPdfObject().getAsDictionary(PdfName.DSS); - Assert.assertNotNull(dssDict); - Assert.assertEquals(4, dssDict.size()); + Assert.assertNull(SignaturesCompareTool.compareSignatures( + outFileName, sourceFolder + "cmp_padesSignatureLevelLTATest01.pdf")); } } diff --git a/sign/src/test/java/com/itextpdf/signatures/sign/Pdf20SigningTest.java b/sign/src/test/java/com/itextpdf/signatures/sign/Pdf20SigningTest.java index 4e39980ec8..68e3c32d9c 100644 --- a/sign/src/test/java/com/itextpdf/signatures/sign/Pdf20SigningTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/sign/Pdf20SigningTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/sign/src/test/java/com/itextpdf/signatures/sign/PdfASigningTest.java b/sign/src/test/java/com/itextpdf/signatures/sign/PdfASigningTest.java index e4a67b0b6e..e427b7a45e 100644 --- a/sign/src/test/java/com/itextpdf/signatures/sign/PdfASigningTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/sign/PdfASigningTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/test/java/com/itextpdf/signatures/sign/PdfSignatureAppearanceTest.java b/sign/src/test/java/com/itextpdf/signatures/sign/PdfSignatureAppearanceTest.java index 2452e514c0..23e6baa20d 100644 --- a/sign/src/test/java/com/itextpdf/signatures/sign/PdfSignatureAppearanceTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/sign/PdfSignatureAppearanceTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify @@ -130,7 +130,7 @@ public void textAutoscaleTest02() throws GeneralSecurityException, IOException { String fileName = "textAutoscaleTest02.pdf"; String dest = DESTINATION_FOLDER + fileName; - Rectangle rect = new Rectangle(36, 648, 100, 50); + Rectangle rect = new Rectangle(36, 648, 150, 50); testSignatureAppearanceAutoscale(dest, rect, PdfSignatureAppearance.RenderingMode.DESCRIPTION); assertAppearanceFontSize(dest, 6.83f); diff --git a/sign/src/test/java/com/itextpdf/signatures/sign/PdfSignatureTest.java b/sign/src/test/java/com/itextpdf/signatures/sign/PdfSignatureTest.java index 15fd0d27a9..e0a79f5db7 100644 --- a/sign/src/test/java/com/itextpdf/signatures/sign/PdfSignatureTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/sign/PdfSignatureTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/sign/src/test/java/com/itextpdf/signatures/sign/SequentialSignaturesTest.java b/sign/src/test/java/com/itextpdf/signatures/sign/SequentialSignaturesTest.java index 7985b75b47..fad763b3b3 100644 --- a/sign/src/test/java/com/itextpdf/signatures/sign/SequentialSignaturesTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/sign/SequentialSignaturesTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/test/java/com/itextpdf/signatures/sign/SignDeferredTest.java b/sign/src/test/java/com/itextpdf/signatures/sign/SignDeferredTest.java index ef4be470e0..6099c2b1e8 100644 --- a/sign/src/test/java/com/itextpdf/signatures/sign/SignDeferredTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/sign/SignDeferredTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/test/java/com/itextpdf/signatures/sign/SimpleSigningTest.java b/sign/src/test/java/com/itextpdf/signatures/sign/SimpleSigningTest.java index a737c08903..32ba63881a 100644 --- a/sign/src/test/java/com/itextpdf/signatures/sign/SimpleSigningTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/sign/SimpleSigningTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/test/java/com/itextpdf/signatures/sign/TaggedPdfSigningTest.java b/sign/src/test/java/com/itextpdf/signatures/sign/TaggedPdfSigningTest.java index e1054c5837..d70357f901 100644 --- a/sign/src/test/java/com/itextpdf/signatures/sign/TaggedPdfSigningTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/sign/TaggedPdfSigningTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/sign/src/test/java/com/itextpdf/signatures/sign/TimestampSigTest.java b/sign/src/test/java/com/itextpdf/signatures/sign/TimestampSigTest.java index 3a4793521c..e1493faa67 100644 --- a/sign/src/test/java/com/itextpdf/signatures/sign/TimestampSigTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/sign/TimestampSigTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/test/java/com/itextpdf/signatures/testutils/SignTestPortUtil.java b/sign/src/test/java/com/itextpdf/signatures/testutils/SignTestPortUtil.java index af9e551022..ac2b30df10 100644 --- a/sign/src/test/java/com/itextpdf/signatures/testutils/SignTestPortUtil.java +++ b/sign/src/test/java/com/itextpdf/signatures/testutils/SignTestPortUtil.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/test/java/com/itextpdf/signatures/testutils/SignaturesCompareTool.java b/sign/src/test/java/com/itextpdf/signatures/testutils/SignaturesCompareTool.java index 36069fcf9c..bf20628e56 100644 --- a/sign/src/test/java/com/itextpdf/signatures/testutils/SignaturesCompareTool.java +++ b/sign/src/test/java/com/itextpdf/signatures/testutils/SignaturesCompareTool.java @@ -1,7 +1,7 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -43,22 +43,32 @@ This file is part of the iText (R) project. */ package com.itextpdf.signatures.testutils; +import com.itextpdf.commons.utils.MessageFormatUtil; import com.itextpdf.io.util.UrlUtil; +import com.itextpdf.kernel.pdf.PdfArray; +import com.itextpdf.kernel.pdf.PdfDictionary; import com.itextpdf.kernel.pdf.PdfDocument; +import com.itextpdf.kernel.pdf.PdfName; import com.itextpdf.kernel.pdf.PdfReader; +import com.itextpdf.kernel.pdf.PdfStream; import com.itextpdf.kernel.pdf.ReaderProperties; import com.itextpdf.signatures.PdfSignature; import com.itextpdf.signatures.SignatureUtil; +import com.itextpdf.test.ITextTest; import java.io.ByteArrayInputStream; import java.io.FileWriter; import java.io.IOException; import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; import java.util.List; import java.util.Objects; - -import com.itextpdf.test.ITextTest; +import java.util.Set; +import java.util.stream.Collectors; +import org.bouncycastle.asn1.ASN1BitString; import org.bouncycastle.asn1.ASN1Encodable; +import org.bouncycastle.asn1.ASN1GeneralizedTime; import org.bouncycastle.asn1.ASN1InputStream; import org.bouncycastle.asn1.ASN1ObjectIdentifier; import org.bouncycastle.asn1.ASN1OctetString; @@ -66,16 +76,29 @@ This file is part of the iText (R) project. import org.bouncycastle.asn1.ASN1Sequence; import org.bouncycastle.asn1.ASN1Set; import org.bouncycastle.asn1.ASN1TaggedObject; +import org.bouncycastle.asn1.ASN1UTCTime; import org.bouncycastle.asn1.util.ASN1Dump; public class SignaturesCompareTool { private static final String OID_MESSAGE_DIGEST = "1.2.840.113549.1.9.4"; - - // Timestamp related ids private static final String OID_SIGNED_DATA = "1.2.840.113549.1.7.2"; private static final String OID_TST_INFO = "1.2.840.113549.1.9.16.1.4"; private static final String OID_SIGNING_TIME = "1.2.840.113549.1.9.5"; private static final String OID_SIGNATURE_TIMESTAMP_ATTRIBUTE = "1.2.840.113549.1.9.16.2.14"; + private static final String OID_ADBE_REVOCATION_INFO_ARCHIVAL = "1.2.840.113583.1.1.8"; + private static final String OID_OCSP_RESPONSE = "1.3.6.1.5.5.7.48.1.1"; + private static final String OID_OCSP_NONCE_EXTENSION = "1.3.6.1.5.5.7.48.1.2"; + + private static final Set IGNORED_OIDS; + + static { + HashSet tempSet = new HashSet<>(); + tempSet.add(OID_MESSAGE_DIGEST); + tempSet.add(OID_TST_INFO); + tempSet.add(OID_SIGNING_TIME); + tempSet.add(OID_OCSP_NONCE_EXTENSION); + IGNORED_OIDS = Collections.unmodifiableSet(tempSet); + } public static String compareSignatures(String dest, String cmp) { return compareSignatures(dest, cmp, new ReaderProperties(), new ReaderProperties()); @@ -101,20 +124,13 @@ public static String compareSignatures(String dest, String cmp, ReaderProperties ASN1Sequence outSignedData = (ASN1Sequence) getSignatureContent(sig, outSigUtil); ASN1Sequence cmpSignedData = (ASN1Sequence) getSignatureContent(sig, cmpSigUtil); - boolean isEqual = compareSignatureObjects(outSignedData, cmpSignedData, errorText); + boolean isEqual = compareSignedData(outSignedData, cmpSignedData, errorText); if (!isEqual) { - String sigFileName = dest.substring(0, dest.lastIndexOf(".")); - String outSigFile = sigFileName + "_" + sig + "_out.txt"; - String cmpSigFile = sigFileName + "_" + sig + "_cmp.txt"; - writeToFile(outSigFile, sig + "\n" + ASN1Dump.dumpAsString(outSignedData, true) + "\n"); - writeToFile(cmpSigFile, sig + "\n" + ASN1Dump.dumpAsString(cmpSignedData, true) + "\n"); - - errorText.insert(0, "See signature output files: \nout: " - + UrlUtil.getNormalizedFileUriString(outSigFile) + "\ncmp: " - + UrlUtil.getNormalizedFileUriString(cmpSigFile) + "\n"); + createTxtFilesFromAsn1Sequences(outSignedData, cmpSignedData, dest, sig, errorText); } } + compareDssEntries(outDocument, cmpDocument, dest, errorText); } catch (Exception e) { errorText.append(e.getMessage()); } @@ -122,7 +138,119 @@ public static String compareSignatures(String dest, String cmp, ReaderProperties return errorText.toString().isEmpty() ? null : errorText.toString(); } - private static boolean compareSignatureObjects(ASN1Sequence outSignedData, ASN1Sequence cmpSignedData, StringBuilder errorText) { + private static void createTxtFilesFromAsn1Sequences(ASN1Sequence outSignedData, ASN1Sequence cmpSignedData, + String dest, String sig, StringBuilder errorText) throws IOException { + String sigFileName = dest.substring(0, dest.lastIndexOf(".")); + String outSigFile = sigFileName + "_" + sig + "_out.txt"; + String cmpSigFile = sigFileName + "_" + sig + "_cmp.txt"; + writeToFile(outSigFile, sig + "\n" + ASN1Dump.dumpAsString(outSignedData, true) + "\n"); + writeToFile(cmpSigFile, sig + "\n" + ASN1Dump.dumpAsString(cmpSignedData, true) + "\n"); + + errorText.insert(0, "See signature output files: " + + "\nout: " + UrlUtil.getNormalizedFileUriString(outSigFile) + + "\ncmp: " + UrlUtil.getNormalizedFileUriString(cmpSigFile) + "\n"); + } + + private static boolean compareDssEntries(PdfDocument outDocument, PdfDocument cmpDocument, + String dest, StringBuilder errorText) throws IOException { + PdfDictionary outDss = outDocument.getCatalog().getPdfObject().getAsDictionary(PdfName.DSS); + PdfDictionary cmpDss = cmpDocument.getCatalog().getPdfObject().getAsDictionary(PdfName.DSS); + if (outDss == null || cmpDss == null) { + if (outDss == cmpDss) { + return true; + } + addError(errorText, "DSS dictionaries are different"); + return false; + } + + boolean ocspCertificatesEqual = + compareRevocationDataFromDss( + outDss, cmpDss, PdfName.OCSPs, dest, errorText, + (outSequence, cmpSequence, errorStringBuilder) -> + SignaturesCompareTool.compareAsn1Structures(outSequence, cmpSequence, errorStringBuilder)); + boolean crlCertificatesEqual = + compareRevocationDataFromDss( + outDss, cmpDss, PdfName.CRLs, dest, errorText, + (outSequence, cmpSequence, errorStringBuilder) -> + SignaturesCompareTool.compareSequencesWithSignatureValue(outSequence, cmpSequence, errorStringBuilder)); + + return ocspCertificatesEqual && crlCertificatesEqual; + } + + private static boolean compareRevocationDataFromDss(PdfDictionary outDss, PdfDictionary cmpDss, + PdfName entryName, String dest, + StringBuilder errorText, + SequenceComparator comparator) throws IOException { + String errorMessage = entryName.getValue() + " entries inside DSS dictionaries are different"; + PdfArray outDssEntry = outDss.getAsArray(entryName); + PdfArray cmpDssEntry = cmpDss.getAsArray(entryName); + if (outDssEntry == null || cmpDssEntry == null) { + if (outDssEntry == cmpDssEntry) { + return true; + } + addError(errorText, errorMessage); + return false; + } + if (outDssEntry.size() != cmpDssEntry.size()) { + addError(errorText, errorMessage); + return false; + } + + for (int i = 0; i < outDssEntry.size(); ++i) { + PdfStream outDssEntryItem = outDssEntry.getAsStream(i); + PdfStream cmpDssEntryItem = cmpDssEntry.getAsStream(i); + + if (outDssEntryItem == null || cmpDssEntryItem == null) { + if (outDssEntryItem == cmpDssEntryItem) { + continue; + } + addError(errorText, errorMessage); + return false; + } + + ASN1Sequence outDecodedItem = (ASN1Sequence) ASN1Sequence.fromByteArray(outDssEntryItem.getBytes()); + ASN1Sequence cmpDecodedItem = (ASN1Sequence) ASN1Sequence.fromByteArray(cmpDssEntryItem.getBytes()); + + if (!comparator.compare(outDecodedItem, cmpDecodedItem, errorText)) { + createTxtFilesFromAsn1Sequences( + outDecodedItem, cmpDecodedItem, dest, "DSS_" + entryName.getValue() + "_" + i, errorText); + return false; + } + } + return true; + } + + private static boolean compareOcspResponses(ASN1Encodable[] outOcspResponse, ASN1Encodable[] cmpOcspResponse, + StringBuilder errorText) throws IOException { + if (outOcspResponse.length != 2 || cmpOcspResponse.length != 2) { + addError(errorText, "OCSP response has unexpected structure"); + } + ASN1OctetString outResponseString = (ASN1OctetString) outOcspResponse[1]; + ASN1OctetString cmpResponseString = (ASN1OctetString) cmpOcspResponse[1]; + if (outResponseString.equals(cmpResponseString)) { + return true; + } + + ASN1Sequence parsedOutResponse = (ASN1Sequence) ASN1Sequence.fromByteArray(outResponseString.getOctets()); + ASN1Sequence parsedCmpResponse = (ASN1Sequence) ASN1Sequence.fromByteArray(cmpResponseString.getOctets()); + + return compareSequencesWithSignatureValue(parsedOutResponse, parsedCmpResponse, errorText); + } + + /** + * SignedData is top-level CMS-object for signatures, see "5.1. SignedData Type" at + * https://datatracker.ietf.org/doc/html/rfc5652#section-5.1 . + * + * @param outSignedData current output signed data + * @param cmpSignedData reference signed data used for comparison as a ground truth + * @param errorText string builder in order to accumulate errors + * + * @return true if signed data objects are the similar, false otherwise + * + * @throws IOException is thrown if object data parsing failed + */ + private static boolean compareSignedData(ASN1Sequence outSignedData, ASN1Sequence cmpSignedData, + StringBuilder errorText) throws IOException { if (outSignedData.size() != cmpSignedData.size() || outSignedData.size() != 2) { addError(errorText, "Signature top level elements count is incorrect (should be exactly 2):", String.valueOf(outSignedData.size()), @@ -185,21 +313,26 @@ private static boolean compareSignatureObjects(ASN1Sequence outSignedData, ASN1S return false; } - ASN1Sequence outSignerInfo = (ASN1Sequence) cmpSignerInfos.getObjectAt(0); - ASN1Sequence cmpSignerInfo = (ASN1Sequence) outSignerInfos.getObjectAt(0); - if (cmpSignerInfo.size() != outSignerInfo.size()) { - addError(errorText, "Incorrect SignerInfo entries count", String.valueOf(outSignerInfo.size()), - String.valueOf(cmpSignerInfo.size())); + ASN1Sequence outSignerInfo = (ASN1Sequence) outSignerInfos.getObjectAt(0); + ASN1Sequence cmpSignerInfo = (ASN1Sequence) cmpSignerInfos.getObjectAt(0); + + return compareSequencesWithSignatureValue(outSignerInfo, cmpSignerInfo, errorText); + } + + private static boolean compareSequencesWithSignatureValue(ASN1Sequence outSequence, ASN1Sequence cmpSequence, + StringBuilder errorText) throws IOException { + if (cmpSequence.size() != outSequence.size()) { + addError(errorText, "Incorrect SignerInfo entries count", String.valueOf(outSequence.size()), + String.valueOf(cmpSequence.size())); return false; } - for (int i = 0; i < cmpSignerInfo.size(); i++) { - - // Skipping comparison of ASN1OctetString fields in SignerInfo. SignerInfo is expected to have - // a single field of ASN1OctetString which is SignatureValue, that is expected to be - // different in each signature instance. - if (outSignerInfo.getObjectAt(i) instanceof ASN1OctetString) { - if (cmpSignerInfo.getObjectAt(i) instanceof ASN1OctetString) { + for (int i = 0; i < cmpSequence.size(); i++) { + // Skipping comparison of encoded strings fields which are SignatureValue fields. + // They are expected to be different. + if (outSequence.getObjectAt(i) instanceof ASN1OctetString || + outSequence.getObjectAt(i) instanceof ASN1BitString) { + if (outSequence.getObjectAt(i).getClass().equals(cmpSequence.getObjectAt(i).getClass())) { continue; } else { addError(errorText, "Signature values indexes are different!", null, null); @@ -208,16 +341,16 @@ private static boolean compareSignatureObjects(ASN1Sequence outSignedData, ASN1S } if (!compareAsn1Structures( - outSignerInfo.getObjectAt(i).toASN1Primitive(), - cmpSignerInfo.getObjectAt(i).toASN1Primitive(), errorText)) { + outSequence.getObjectAt(i).toASN1Primitive(), + cmpSequence.getObjectAt(i).toASN1Primitive(), errorText)) { return false; } } - return true; } - private static boolean compareAsn1Structures(ASN1Primitive out, ASN1Primitive cmp, StringBuilder errorText) { + private static boolean compareAsn1Structures(ASN1Primitive out, ASN1Primitive cmp, + StringBuilder errorText) throws IOException { if (!out.getClass().equals(cmp.getClass())) { addError(errorText, "ASN1 objects types are different", out.getClass().getName(), cmp.getClass().getName()); @@ -226,17 +359,20 @@ private static boolean compareAsn1Structures(ASN1Primitive out, ASN1Primitive cm if (cmp instanceof ASN1TaggedObject) { return compareAsn1Structures( - ((ASN1TaggedObject) cmp).getObject(), ((ASN1TaggedObject) out).getObject(), errorText); + ((ASN1TaggedObject) out).getObject(), ((ASN1TaggedObject) cmp).getObject(), errorText); } else if (cmp instanceof ASN1Sequence) { if (!compareContainers(((ASN1Sequence) out).toArray(), ((ASN1Sequence) cmp).toArray(), errorText)) { - addError(errorText, "ASN1Sequence objects are different", null, null); + addError(errorText, "ASN1Sequence objects are different"); return false; } } else if (cmp instanceof ASN1Set) { if (!compareContainers(((ASN1Set) out).toArray(), ((ASN1Set) cmp).toArray(), errorText)) { - addError(errorText, "ASN1Set objects are different", null, null); + addError(errorText, "ASN1Set objects are different"); return false; } + } else if (cmp instanceof ASN1GeneralizedTime || cmp instanceof ASN1UTCTime) { + // Ignore time values since usually they shouldn't be equal + return true; } else { if (!cmp.equals(out)) { addError(errorText, "ASN1 objects are different", @@ -248,7 +384,7 @@ private static boolean compareAsn1Structures(ASN1Primitive out, ASN1Primitive cm } private static boolean compareContainers(ASN1Encodable[] outArray, - ASN1Encodable[] cmpArray, StringBuilder errorText) { + ASN1Encodable[] cmpArray, StringBuilder errorText) throws IOException { if (cmpArray.length != outArray.length) { addError(errorText, "Container lengths are different", Integer.toString(outArray.length), Integer.toString(cmpArray.length)); @@ -262,15 +398,18 @@ private static boolean compareContainers(ASN1Encodable[] outArray, return false; } - // Message digest, timestamp token info and signing time should be ignored during comparing. - if (OID_MESSAGE_DIGEST.equals(cmpASN1ObjectId) || - OID_TST_INFO.equals(cmpASN1ObjectId) || OID_SIGNING_TIME.equals(cmpASN1ObjectId)) { + if (IGNORED_OIDS.contains(cmpASN1ObjectId)) { return true; } - // Signature timestamp attribute (nested timestamp signature) should be processed as separated signature. if (OID_SIGNATURE_TIMESTAMP_ATTRIBUTE.equals(cmpASN1ObjectId)) { return compareTimestampAttributes(outArray, cmpArray, errorText); } + if (OID_OCSP_RESPONSE.equals(cmpASN1ObjectId)) { + return compareOcspResponses(outArray, cmpArray, errorText); + } + if (OID_ADBE_REVOCATION_INFO_ARCHIVAL.equals(cmpASN1ObjectId)) { + return compareRevocationInfoArchivalAttribute(outArray, cmpArray, errorText); + } for (int i = 0; i < cmpArray.length; i++) { if (!compareAsn1Structures(outArray[i].toASN1Primitive(), cmpArray[i].toASN1Primitive(), errorText)) { return false; @@ -279,20 +418,124 @@ private static boolean compareContainers(ASN1Encodable[] outArray, return true; } - private static boolean compareTimestampAttributes(ASN1Encodable[] out, ASN1Encodable[] cmp, StringBuilder errorText) { + /** + * See ISO 32000-2, 12.8.3.3.2 "Revocation of CMS-based signatures" + * + * @param out out signature revocation info attribute value + * @param cmp cmp signature revocation info attribute value + * @param errorText string builder in order to accumulate errors + * + * @return true if signed data objects are the similar, false otherwise + */ + private static boolean compareRevocationInfoArchivalAttribute(ASN1Encodable[] out, ASN1Encodable[] cmp, + StringBuilder errorText) throws IOException { + String structureIsInvalidError = "Signature revocation info archival attribute structure is invalid"; + if (!isExpectedRevocationInfoArchivalAttributeStructure(out) + || !isExpectedRevocationInfoArchivalAttributeStructure(cmp)) { + addError(errorText, structureIsInvalidError, + String.join("", Arrays.stream(out).map(e -> ASN1Dump.dumpAsString(e)).collect(Collectors.toList())), + String.join("", Arrays.stream(cmp).map(e -> ASN1Dump.dumpAsString(e)).collect(Collectors.toList()))); + return false; + } + + ASN1Sequence outSequence = ((ASN1Sequence) ((ASN1Set) out[1]).getObjectAt(0).toASN1Primitive()); + ASN1Sequence cmpSequence = ((ASN1Sequence) ((ASN1Set) cmp[1]).getObjectAt(0).toASN1Primitive()); + if (outSequence.size() != cmpSequence.size()) { + addError(errorText, + "Signature revocation info archival attributes have different sets of revocation info types (different sizes)", + String.valueOf(outSequence.size()), String.valueOf(cmpSequence.size())); + return false; + } + + for (int i = 0; i < outSequence.size(); i++) { + if (!(outSequence.getObjectAt(i) instanceof ASN1TaggedObject) + || !(cmpSequence.getObjectAt(i) instanceof ASN1TaggedObject)) { + addError(errorText, structureIsInvalidError, + String.join("", Arrays.stream(out).map(e -> ASN1Dump.dumpAsString(e)).collect(Collectors.toList())), + String.join("", Arrays.stream(cmp).map(e -> ASN1Dump.dumpAsString(e)).collect(Collectors.toList()))); + return false; + } + ASN1TaggedObject outTaggedObject = (ASN1TaggedObject) outSequence.getObjectAt(i); + ASN1TaggedObject cmpTaggedObject = (ASN1TaggedObject) cmpSequence.getObjectAt(i); + if (outTaggedObject.getTagNo() != cmpTaggedObject.getTagNo()) { + addError(errorText, + "Signature revocation info archival attributes have different tagged objects tag numbers", + String.valueOf(outTaggedObject.getTagNo()), String.valueOf(cmpTaggedObject.getTagNo())); + return false; + } + + if (!(outTaggedObject.getObject() instanceof ASN1Sequence) + || !(cmpTaggedObject.getObject() instanceof ASN1Sequence)) { + addError(errorText, structureIsInvalidError, + String.join("", Arrays.stream(out).map(e -> ASN1Dump.dumpAsString(e)).collect(Collectors.toList())), + String.join("", Arrays.stream(cmp).map(e -> ASN1Dump.dumpAsString(e)).collect(Collectors.toList()))); + return false; + } + + // revocation entries can be either CRLs or OCSPs in most cases + ASN1Sequence outRevocationEntries = (ASN1Sequence) outTaggedObject.getObject(); + ASN1Sequence cmpRevocationEntries = (ASN1Sequence) cmpTaggedObject.getObject(); + if (outRevocationEntries.size() != cmpRevocationEntries.size()) { + addError(errorText, + "Signature revocation info archival attributes have different number of entries", + String.valueOf(outRevocationEntries.size()), String.valueOf(cmpRevocationEntries.size())); + return false; + } + + if (outTaggedObject.getTagNo() == 0) { + // CRL revocation info case + for (int j = 0; j < outRevocationEntries.size(); j++) { + if (!(outRevocationEntries.getObjectAt(j) instanceof ASN1Sequence) + || !(outRevocationEntries.getObjectAt(j) instanceof ASN1Sequence)) { + addError(errorText, + "Signature revocation info attribute has unexpected CRL entry type", + outRevocationEntries.getObjectAt(j).getClass().getName().toString(), + cmpRevocationEntries.getObjectAt(j).getClass().getName().toString()); + return false; + } + if (!compareSequencesWithSignatureValue( + ((ASN1Sequence) outRevocationEntries.getObjectAt(j)), + ((ASN1Sequence) cmpRevocationEntries.getObjectAt(j)), errorText)) { + addError(errorText, + MessageFormatUtil.format( + "Signature revocation info attribute CRLs at {0} are different", + String.valueOf(j))); + return false; + } + } + } else { + if (!compareAsn1Structures(outRevocationEntries, cmpRevocationEntries, errorText)) { + addError(errorText, "Revocation info attribute entries are different"); + return false; + } + } + } + return true; + } + + private static boolean isExpectedRevocationInfoArchivalAttributeStructure(ASN1Encodable[] container) { + return container.length == 2 + && container[1] instanceof ASN1Set + && ((ASN1Set) container[1]).size() == 1 + && ((ASN1Set) container[1]).getObjectAt(0).toASN1Primitive() instanceof ASN1Sequence; + } + + private static boolean compareTimestampAttributes(ASN1Encodable[] out, ASN1Encodable[] cmp, + StringBuilder errorText) throws IOException { if (cmp.length == 2) { if (cmp[1] instanceof ASN1Set && out[1] instanceof ASN1Set) { ASN1Primitive outSequence = ((ASN1Set) out[1]).getObjectAt(0).toASN1Primitive(); ASN1Primitive cmpSequence = ((ASN1Set) cmp[1]).getObjectAt(0).toASN1Primitive(); if (outSequence instanceof ASN1Sequence && cmpSequence instanceof ASN1Sequence) { - return compareSignatureObjects((ASN1Sequence) outSequence, (ASN1Sequence) cmpSequence, errorText); + return compareSignedData((ASN1Sequence) outSequence, (ASN1Sequence) cmpSequence, errorText); } } } - addError(errorText, - "Signature timestamp attribute structure is invalid", Arrays.toString(out), Arrays.toString(cmp)); + addError(errorText, "Signature timestamp attribute structure is invalid", + String.join("", Arrays.stream(out).map(e -> ASN1Dump.dumpAsString(e)).collect(Collectors.toList())), + String.join("", Arrays.stream(cmp).map(e -> ASN1Dump.dumpAsString(e)).collect(Collectors.toList()))); return false; } @@ -336,6 +579,10 @@ private static void writeToFile(String path, String content) throws IOException } } + private static void addError(StringBuilder errorBuilder, String errorText) { + addError(errorBuilder, errorText, null, null); + } + private static void addError(StringBuilder errorBuilder, String errorText, String out, String cmp) { errorBuilder.append(errorText); if (null != out) { @@ -348,4 +595,9 @@ private static void addError(StringBuilder errorBuilder, String errorText, Strin errorBuilder.append("\n\n"); } + + @FunctionalInterface + interface SequenceComparator { + boolean compare(ASN1Sequence outSequence, ASN1Sequence cmpSequence, StringBuilder errorText) throws IOException; + } } diff --git a/sign/src/test/java/com/itextpdf/signatures/testutils/TimeTestUtil.java b/sign/src/test/java/com/itextpdf/signatures/testutils/TimeTestUtil.java index 81fa41004d..ac0d9fe324 100644 --- a/sign/src/test/java/com/itextpdf/signatures/testutils/TimeTestUtil.java +++ b/sign/src/test/java/com/itextpdf/signatures/testutils/TimeTestUtil.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/test/java/com/itextpdf/signatures/testutils/X509MockCertificate.java b/sign/src/test/java/com/itextpdf/signatures/testutils/X509MockCertificate.java index 247f84a4cd..b3120d6c0b 100644 --- a/sign/src/test/java/com/itextpdf/signatures/testutils/X509MockCertificate.java +++ b/sign/src/test/java/com/itextpdf/signatures/testutils/X509MockCertificate.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/test/java/com/itextpdf/signatures/testutils/builder/TestCrlBuilder.java b/sign/src/test/java/com/itextpdf/signatures/testutils/builder/TestCrlBuilder.java index c718bda7bd..5786c18d52 100644 --- a/sign/src/test/java/com/itextpdf/signatures/testutils/builder/TestCrlBuilder.java +++ b/sign/src/test/java/com/itextpdf/signatures/testutils/builder/TestCrlBuilder.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify @@ -42,8 +42,8 @@ This file is part of the iText (R) project. */ package com.itextpdf.signatures.testutils.builder; - import com.itextpdf.commons.utils.DateTimeUtil; + import java.io.IOException; import java.security.PrivateKey; import java.security.cert.CertificateEncodingException; @@ -62,12 +62,15 @@ public class TestCrlBuilder { private static final String SIGN_ALG = "SHA256withRSA"; - private X509v2CRLBuilder crlBuilder; + private final PrivateKey issuerPrivateKey; + private final X509v2CRLBuilder crlBuilder; private Date nextUpdate = DateTimeUtil.addDaysToDate(DateTimeUtil.getCurrentTimeDate(), 30); - public TestCrlBuilder(X509Certificate caCert, Date thisUpdate) throws CertificateEncodingException { - X500Name issuerDN = new X500Name(PrincipalUtil.getIssuerX509Principal(caCert).getName()); - crlBuilder = new X509v2CRLBuilder(issuerDN, thisUpdate); + public TestCrlBuilder(X509Certificate issuerCert, PrivateKey issuerPrivateKey, Date thisUpdate) + throws CertificateEncodingException { + String issuerCertSubjectDn = PrincipalUtil.getSubjectX509Principal(issuerCert).getName(); + this.crlBuilder = new X509v2CRLBuilder(new X500Name(issuerCertSubjectDn), thisUpdate); + this.issuerPrivateKey = issuerPrivateKey; } public void setNextUpdate(Date nextUpdate) { @@ -81,8 +84,10 @@ public void addCrlEntry(X509Certificate certificate, Date revocationDate, int re crlBuilder.addCRLEntry(certificate.getSerialNumber(), revocationDate, reason); } - public byte[] makeCrl(PrivateKey caPrivateKey) throws IOException, OperatorCreationException { - ContentSigner signer = new JcaContentSignerBuilder(SIGN_ALG).setProvider(BouncyCastleProvider.PROVIDER_NAME).build(caPrivateKey); + public byte[] makeCrl() throws IOException, OperatorCreationException { + ContentSigner signer = + new JcaContentSignerBuilder(SIGN_ALG).setProvider(BouncyCastleProvider.PROVIDER_NAME) + .build(issuerPrivateKey); crlBuilder.setNextUpdate(nextUpdate); X509CRLHolder crl = crlBuilder.build(signer); return crl.getEncoded(); diff --git a/sign/src/test/java/com/itextpdf/signatures/testutils/builder/TestOcspResponseBuilder.java b/sign/src/test/java/com/itextpdf/signatures/testutils/builder/TestOcspResponseBuilder.java index 3a7866a0b4..b2f8a866c4 100644 --- a/sign/src/test/java/com/itextpdf/signatures/testutils/builder/TestOcspResponseBuilder.java +++ b/sign/src/test/java/com/itextpdf/signatures/testutils/builder/TestOcspResponseBuilder.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/test/java/com/itextpdf/signatures/testutils/builder/TestTimestampTokenBuilder.java b/sign/src/test/java/com/itextpdf/signatures/testutils/builder/TestTimestampTokenBuilder.java index 12d6ad3794..a3425b96f1 100644 --- a/sign/src/test/java/com/itextpdf/signatures/testutils/builder/TestTimestampTokenBuilder.java +++ b/sign/src/test/java/com/itextpdf/signatures/testutils/builder/TestTimestampTokenBuilder.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify @@ -45,14 +45,18 @@ This file is part of the iText (R) project. import com.itextpdf.commons.utils.DateTimeUtil; import com.itextpdf.commons.utils.SystemUtil; import com.itextpdf.signatures.DigestAlgorithms; + import java.io.IOException; import java.math.BigInteger; import java.security.PrivateKey; import java.security.cert.Certificate; import java.security.cert.CertificateEncodingException; import java.security.cert.X509Certificate; +import java.util.Collections; import java.util.Date; +import java.util.HashSet; import java.util.List; +import java.util.Set; import org.bouncycastle.asn1.ASN1ObjectIdentifier; import org.bouncycastle.asn1.x509.AlgorithmIdentifier; import org.bouncycastle.cert.jcajce.JcaCertStore; @@ -66,12 +70,16 @@ This file is part of the iText (R) project. import org.bouncycastle.operator.jcajce.JcaDigestCalculatorProviderBuilder; import org.bouncycastle.tsp.TSPException; import org.bouncycastle.tsp.TimeStampRequest; +import org.bouncycastle.tsp.TimeStampResponseGenerator; import org.bouncycastle.tsp.TimeStampToken; import org.bouncycastle.tsp.TimeStampTokenGenerator; public class TestTimestampTokenBuilder { private static final String SIGN_ALG = "SHA256withRSA"; + // just a more or less random oid of timestamp policy + private static final String POLICY_OID = "1.3.6.1.4.1.45794.1.1"; + private List tsaCertificateChain; private PrivateKey tsaPrivateKey; @@ -84,19 +92,8 @@ public TestTimestampTokenBuilder(List tsaCertificateChain, PrivateK } public byte[] createTimeStampToken(TimeStampRequest request) throws OperatorCreationException, TSPException, IOException, CertificateEncodingException { - ContentSigner signer = new JcaContentSignerBuilder(SIGN_ALG).build(tsaPrivateKey); - DigestCalculatorProvider digestCalcProviderProvider = new JcaDigestCalculatorProviderBuilder().build(); - - SignerInfoGenerator siGen = - new JcaSignerInfoGeneratorBuilder(digestCalcProviderProvider) - .build(signer, (X509Certificate) tsaCertificateChain.get(0)); - - // just a more or less random oid of timestamp policy - ASN1ObjectIdentifier policy = new ASN1ObjectIdentifier("1.3.6.1.4.1.45794.1.1"); - - String digestForTsSigningCert = DigestAlgorithms.getAllowedDigest("SHA1"); - DigestCalculator dgCalc = digestCalcProviderProvider.get(new AlgorithmIdentifier(new ASN1ObjectIdentifier(digestForTsSigningCert))); - TimeStampTokenGenerator tsTokGen = new TimeStampTokenGenerator(siGen, dgCalc, policy); + TimeStampTokenGenerator tsTokGen = createTimeStampTokenGenerator(tsaPrivateKey, + tsaCertificateChain.get(0), SIGN_ALG, "SHA1", POLICY_OID); tsTokGen.setAccuracySeconds(1); // TODO setting this is somewhat wrong. Acrobat and openssl recognize timestamp tokens generated with this line as corrupted @@ -111,4 +108,35 @@ public byte[] createTimeStampToken(TimeStampRequest request) throws OperatorCrea TimeStampToken tsToken = tsTokGen.generate(request, serialNumber, genTime); return tsToken.getEncoded(); } + + public byte[] createTSAResponse(byte[] requestBytes, String signatureAlgorithm, String allowedDigest) { + try { + String digestForTsSigningCert = DigestAlgorithms.getAllowedDigest(allowedDigest); + TimeStampTokenGenerator tokenGenerator = createTimeStampTokenGenerator(tsaPrivateKey, + tsaCertificateChain.get(0), signatureAlgorithm, allowedDigest, POLICY_OID); + + Set algorithms = new HashSet<>(Collections.singletonList(digestForTsSigningCert)); + TimeStampResponseGenerator generator = new TimeStampResponseGenerator(tokenGenerator, algorithms); + TimeStampRequest request = new TimeStampRequest(requestBytes); + return generator.generate(request, request.getNonce(), new Date()).getEncoded(); + } catch (Exception e) { + return null; + } + } + + private static TimeStampTokenGenerator createTimeStampTokenGenerator(PrivateKey pk, Certificate cert, + String signatureAlgorithm, String allowedDigest, String policyOid) + throws TSPException, OperatorCreationException, CertificateEncodingException { + ContentSigner signer = new JcaContentSignerBuilder(signatureAlgorithm).build(pk); + DigestCalculatorProvider digestCalcProviderProvider = new JcaDigestCalculatorProviderBuilder().build(); + SignerInfoGenerator siGen = + new JcaSignerInfoGeneratorBuilder(digestCalcProviderProvider) + .build(signer, (X509Certificate) cert); + + String digestForTsSigningCert = DigestAlgorithms.getAllowedDigest(allowedDigest); + DigestCalculator dgCalc = digestCalcProviderProvider.get( + new AlgorithmIdentifier(new ASN1ObjectIdentifier(digestForTsSigningCert))); + ASN1ObjectIdentifier policy = new ASN1ObjectIdentifier(policyOid); + return new TimeStampTokenGenerator(siGen, dgCalc, policy); + } } diff --git a/sign/src/test/java/com/itextpdf/signatures/testutils/cert/TestCertificateBuilder.java b/sign/src/test/java/com/itextpdf/signatures/testutils/cert/TestCertificateBuilder.java index c2b4ff7f68..fe16f93628 100644 --- a/sign/src/test/java/com/itextpdf/signatures/testutils/cert/TestCertificateBuilder.java +++ b/sign/src/test/java/com/itextpdf/signatures/testutils/cert/TestCertificateBuilder.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/test/java/com/itextpdf/signatures/testutils/client/TestCrlClient.java b/sign/src/test/java/com/itextpdf/signatures/testutils/client/TestCrlClient.java index d6a3087230..2b50e3cbdd 100644 --- a/sign/src/test/java/com/itextpdf/signatures/testutils/client/TestCrlClient.java +++ b/sign/src/test/java/com/itextpdf/signatures/testutils/client/TestCrlClient.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify @@ -46,36 +46,46 @@ This file is part of the iText (R) project. import com.itextpdf.kernel.exceptions.PdfException; import com.itextpdf.signatures.ICrlClient; import com.itextpdf.signatures.testutils.builder.TestCrlBuilder; + import java.security.PrivateKey; import java.security.cert.CertificateEncodingException; import java.security.cert.X509Certificate; +import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; public class TestCrlClient implements ICrlClient { - private final TestCrlBuilder crlBuilder; - private final PrivateKey caPrivateKey; + private final List crlBuilders; + + public TestCrlClient() { + crlBuilders = new ArrayList<>(); + } - public TestCrlClient(TestCrlBuilder crlBuilder, PrivateKey caPrivateKey) { - this.crlBuilder = crlBuilder; - this.caPrivateKey = caPrivateKey; + public TestCrlClient addBuilderForCertIssuer(TestCrlBuilder crlBuilder) { + crlBuilders.add(crlBuilder); + return this; } - public TestCrlClient(X509Certificate caCert, PrivateKey caPrivateKey) throws CertificateEncodingException { - this.crlBuilder = new TestCrlBuilder(caCert, DateTimeUtil.addDaysToDate(DateTimeUtil.getCurrentTimeDate(), -1)); - this.caPrivateKey = caPrivateKey; + public TestCrlClient addBuilderForCertIssuer(X509Certificate issuerCert, PrivateKey issuerPrivateKey) + throws CertificateEncodingException { + Date yesterday = DateTimeUtil.addDaysToDate(DateTimeUtil.getCurrentTimeDate(), -1); + crlBuilders.add(new TestCrlBuilder(issuerCert, issuerPrivateKey, yesterday)); + return this; } @Override public Collection getEncoded(X509Certificate checkCert, String url) { - Collection crls = null; - try { - byte[] crl = crlBuilder.makeCrl(caPrivateKey); - crls = Collections.singletonList(crl); - } catch (Exception ignore) { - throw new PdfException(ignore); - } - return crls; + return crlBuilders.stream() + .map(testCrlBuilder -> { + try { + return testCrlBuilder.makeCrl(); + } catch (Exception ignore) { + throw new PdfException(ignore); + } + }) + .collect(Collectors.toList()); } } diff --git a/sign/src/test/java/com/itextpdf/signatures/testutils/client/TestOcspClient.java b/sign/src/test/java/com/itextpdf/signatures/testutils/client/TestOcspClient.java index 27565b7996..ac4237d4cd 100644 --- a/sign/src/test/java/com/itextpdf/signatures/testutils/client/TestOcspClient.java +++ b/sign/src/test/java/com/itextpdf/signatures/testutils/client/TestOcspClient.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/test/java/com/itextpdf/signatures/testutils/client/TestTsaClient.java b/sign/src/test/java/com/itextpdf/signatures/testutils/client/TestTsaClient.java index 35411559bf..5d2bd183c3 100644 --- a/sign/src/test/java/com/itextpdf/signatures/testutils/client/TestTsaClient.java +++ b/sign/src/test/java/com/itextpdf/signatures/testutils/client/TestTsaClient.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/test/java/com/itextpdf/signatures/verify/CertificateVerificationClassTest.java b/sign/src/test/java/com/itextpdf/signatures/verify/CertificateVerificationClassTest.java index bd5ddcbb11..c780755ec5 100644 --- a/sign/src/test/java/com/itextpdf/signatures/verify/CertificateVerificationClassTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/verify/CertificateVerificationClassTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify @@ -42,15 +42,24 @@ This file is part of the iText (R) project. */ package com.itextpdf.signatures.verify; +import com.itextpdf.commons.utils.DateTimeUtil; +import com.itextpdf.commons.utils.MessageFormatUtil; import com.itextpdf.signatures.CertificateVerification; +import com.itextpdf.signatures.SignaturesTestUtils; import com.itextpdf.signatures.VerificationException; +import com.itextpdf.signatures.exceptions.SignExceptionMessageConstant; +import com.itextpdf.signatures.testutils.SignTestPortUtil; +import com.itextpdf.signatures.testutils.builder.TestCrlBuilder; +import com.itextpdf.signatures.testutils.client.TestCrlClient; import com.itextpdf.signatures.testutils.client.TestTsaClient; -import com.itextpdf.test.annotations.LogMessage; -import com.itextpdf.test.annotations.LogMessages; -import com.itextpdf.test.signutils.Pkcs12FileHelper; import com.itextpdf.test.ExtendedITextTest; import com.itextpdf.test.ITextTest; +import com.itextpdf.test.annotations.LogMessage; +import com.itextpdf.test.annotations.LogMessages; import com.itextpdf.test.annotations.type.UnitTest; +import com.itextpdf.test.signutils.Pkcs12FileHelper; + +import java.io.ByteArrayInputStream; import java.io.IOException; import java.security.KeyStore; import java.security.KeyStoreException; @@ -58,13 +67,20 @@ This file is part of the iText (R) project. import java.security.NoSuchProviderException; import java.security.PrivateKey; import java.security.Security; +import java.security.UnrecoverableKeyException; +import java.security.cert.CRL; +import java.security.cert.CRLException; import java.security.cert.Certificate; import java.security.cert.CertificateException; +import java.security.cert.X509Certificate; +import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.List; - import org.bouncycastle.asn1.ASN1Sequence; import org.bouncycastle.asn1.cms.ContentInfo; +import org.bouncycastle.asn1.x509.CRLReason; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.bouncycastle.tsp.TimeStampToken; import org.junit.AfterClass; @@ -78,9 +94,10 @@ public class CertificateVerificationClassTest extends ExtendedITextTest { // Such messageTemplate is equal to any log message. This is required for porting reasons. private static final String ANY_LOG_MESSAGE = "{0}"; + private static final int COUNTER_TO_MAKE_CRL_AVAILABLE_AT_THE_CURRENT_TIME = -1; - private static final String certsSrc = "./src/test/resources/com/itextpdf/signatures/certs/"; - private static final char[] password = "testpass".toCharArray(); + private static final String CERTS_SRC = "./src/test/resources/com/itextpdf/signatures/certs/"; + private static final char[] PASSWORD = "testpass".toCharArray(); @BeforeClass public static void before() { @@ -95,10 +112,10 @@ public static void after() { @Test public void validCertificateChain01() throws CertificateException, NoSuchAlgorithmException, KeyStoreException, IOException, NoSuchProviderException { - Certificate[] certChain = Pkcs12FileHelper.readFirstChain(certsSrc + "signCertRsaWithChain.p12", password); + Certificate[] certChain = Pkcs12FileHelper.readFirstChain(CERTS_SRC + "signCertRsaWithChain.p12", PASSWORD); - String caCertFileName = certsSrc + "rootRsa.p12"; - KeyStore caKeyStore = Pkcs12FileHelper.initStore(caCertFileName, password); + String caCertFileName = CERTS_SRC + "rootRsa.p12"; + KeyStore caKeyStore = Pkcs12FileHelper.initStore(caCertFileName, PASSWORD); List verificationExceptions = CertificateVerification.verifyCertificates(certChain, caKeyStore); @@ -107,9 +124,9 @@ public void validCertificateChain01() throws CertificateException, NoSuchAlgorit @Test public void timestampCertificateAndKeyStoreCorrespondTest() throws Exception { - String tsaCertFileName = certsSrc + "tsCertRsa.p12"; + String tsaCertFileName = CERTS_SRC + "tsCertRsa.p12"; - KeyStore caKeyStore = Pkcs12FileHelper.initStore(tsaCertFileName, password); + KeyStore caKeyStore = Pkcs12FileHelper.initStore(tsaCertFileName, PASSWORD); Assert.assertTrue(verifyTimestampCertificates(tsaCertFileName, caKeyStore)); } @@ -117,10 +134,10 @@ public void timestampCertificateAndKeyStoreCorrespondTest() throws Exception { @Test @LogMessages(messages = @LogMessage(messageTemplate = "certificate hash does not match certID hash.")) public void timestampCertificateAndKeyStoreDoNotCorrespondTest() throws Exception { - String tsaCertFileName = certsSrc + "tsCertRsa.p12"; - String notTsaCertFileName = certsSrc + "rootRsa.p12"; + String tsaCertFileName = CERTS_SRC + "tsCertRsa.p12"; + String notTsaCertFileName = CERTS_SRC + "rootRsa.p12"; - KeyStore caKeyStore = Pkcs12FileHelper.initStore(notTsaCertFileName, password); + KeyStore caKeyStore = Pkcs12FileHelper.initStore(notTsaCertFileName, PASSWORD); Assert.assertFalse(verifyTimestampCertificates(tsaCertFileName, caKeyStore)); } @@ -128,14 +145,202 @@ public void timestampCertificateAndKeyStoreDoNotCorrespondTest() throws Exceptio @Test @LogMessages(messages = @LogMessage(messageTemplate = ANY_LOG_MESSAGE)) public void keyStoreWithoutCertificatesTest() throws Exception { - String tsaCertFileName = certsSrc + "tsCertRsa.p12"; + String tsaCertFileName = CERTS_SRC + "tsCertRsa.p12"; Assert.assertFalse(verifyTimestampCertificates(tsaCertFileName, null)); } + @Test + public void expiredCertificateTest() + throws CertificateException, KeyStoreException, IOException, NoSuchAlgorithmException { + + final X509Certificate expiredCert = + (X509Certificate) Pkcs12FileHelper.readFirstChain(CERTS_SRC + "expiredCert.p12", PASSWORD)[0]; + + final String verificationResult = CertificateVerification.verifyCertificate(expiredCert, null); + final String expectedResultString = SignaturesTestUtils.getExpiredMessage(expiredCert); + + Assert.assertEquals(expectedResultString, verificationResult); + } + + @Test + public void unsupportedCriticalExtensionTest() + throws CertificateException, KeyStoreException, IOException, NoSuchAlgorithmException { + + final X509Certificate unsupportedExtensionCert = (X509Certificate) Pkcs12FileHelper.readFirstChain( + CERTS_SRC + "unsupportedCriticalExtensionCert.p12", PASSWORD)[0]; + + final String verificationResult = CertificateVerification.verifyCertificate(unsupportedExtensionCert, null); + + Assert.assertEquals(CertificateVerification.HAS_UNSUPPORTED_EXTENSIONS, verificationResult); + } + + @Test + public void clrWithGivenCertificateTest() + throws CertificateException, KeyStoreException, IOException, NoSuchAlgorithmException, + UnrecoverableKeyException, CRLException { + + final String caCertFileName = CERTS_SRC + "rootRsa.p12"; + X509Certificate caCert = (X509Certificate) Pkcs12FileHelper.readFirstChain(caCertFileName, PASSWORD)[0]; + PrivateKey caPrivateKey = Pkcs12FileHelper.readFirstKey(caCertFileName, PASSWORD, PASSWORD); + + final String checkCertFileName = CERTS_SRC + "signCertRsa01.p12"; + X509Certificate checkCert = (X509Certificate) Pkcs12FileHelper.readFirstChain(checkCertFileName, PASSWORD)[0]; + + TestCrlBuilder crlBuilder = new TestCrlBuilder(caCert, caPrivateKey, + DateTimeUtil.addDaysToDate(DateTimeUtil.getCurrentTimeDate(), + COUNTER_TO_MAKE_CRL_AVAILABLE_AT_THE_CURRENT_TIME)); + crlBuilder.addCrlEntry(caCert, DateTimeUtil.addDaysToDate(DateTimeUtil.getCurrentTimeDate(), + COUNTER_TO_MAKE_CRL_AVAILABLE_AT_THE_CURRENT_TIME), + CRLReason.keyCompromise); + + TestCrlBuilder crlForCheckBuilder = new TestCrlBuilder(caCert, caPrivateKey, + DateTimeUtil.addDaysToDate(DateTimeUtil.getCurrentTimeDate(), + COUNTER_TO_MAKE_CRL_AVAILABLE_AT_THE_CURRENT_TIME)); + crlForCheckBuilder.addCrlEntry(checkCert, DateTimeUtil.addDaysToDate(DateTimeUtil.getCurrentTimeDate(), + COUNTER_TO_MAKE_CRL_AVAILABLE_AT_THE_CURRENT_TIME), + CRLReason.keyCompromise); + + TestCrlClient crlClient = new TestCrlClient().addBuilderForCertIssuer(crlBuilder); + TestCrlClient crlForCheckClient = new TestCrlClient().addBuilderForCertIssuer(crlForCheckBuilder); + + Collection crlBytesForRootCertCollection = crlClient.getEncoded(caCert, null); + Collection crlBytesForCheckCertCollection = crlForCheckClient.getEncoded(checkCert, null); + + List crls = new ArrayList<>(); + for (byte[] crlBytes : crlBytesForRootCertCollection) { + crls.add(SignTestPortUtil.parseCrlFromStream(new ByteArrayInputStream(crlBytes))); + } + for (byte[] crlBytes : crlBytesForCheckCertCollection) { + crls.add(SignTestPortUtil.parseCrlFromStream(new ByteArrayInputStream(crlBytes))); + } + + final String verificationResult = CertificateVerification.verifyCertificate(checkCert, crls); + + Assert.assertEquals(CertificateVerification.CERTIFICATE_REVOKED, verificationResult); + } + + @Test + public void validCertWithEmptyCrlCollectionTest() + throws CertificateException, KeyStoreException, IOException, NoSuchAlgorithmException { + final String caCertFileName = CERTS_SRC + "rootRsa.p12"; + X509Certificate rootCert = (X509Certificate) Pkcs12FileHelper.readFirstChain(caCertFileName, PASSWORD)[0]; + + final String verificationResult = CertificateVerification.verifyCertificate(rootCert, Collections.emptyList()); + + Assert.assertNull(verificationResult); + } + + @Test + public void validCertWithCrlDoesNotContainCertTest() + throws CertificateException, KeyStoreException, IOException, NoSuchAlgorithmException, + UnrecoverableKeyException, CRLException { + final int COUNTER_TO_MAKE_CRL_AVAILABLE_AT_THE_CURRENT_TIME = -1; + final String rootCertFileName = CERTS_SRC + "rootRsa.p12"; + X509Certificate rootCert = (X509Certificate) Pkcs12FileHelper.readFirstChain(rootCertFileName, PASSWORD)[0]; + + final String certForAddingToCrlName = CERTS_SRC + "signCertRsa01.p12"; + X509Certificate certForCrl = (X509Certificate) Pkcs12FileHelper.readFirstChain(certForAddingToCrlName, + PASSWORD)[0]; + PrivateKey caPrivateKey = Pkcs12FileHelper.readFirstKey(certForAddingToCrlName, PASSWORD, PASSWORD); + + TestCrlBuilder crlForCheckBuilder = new TestCrlBuilder(certForCrl, caPrivateKey, + DateTimeUtil.addDaysToDate(DateTimeUtil.getCurrentTimeDate(), + COUNTER_TO_MAKE_CRL_AVAILABLE_AT_THE_CURRENT_TIME)); + + TestCrlClient crlClient = new TestCrlClient().addBuilderForCertIssuer(crlForCheckBuilder); + + Collection crlBytesForRootCertCollection = crlClient.getEncoded(certForCrl, null); + + final List crls = new ArrayList<>(); + for (byte[] crlBytes : crlBytesForRootCertCollection) { + crls.add(SignTestPortUtil.parseCrlFromStream(new ByteArrayInputStream(crlBytes))); + } + + Assert.assertNull(CertificateVerification.verifyCertificate(rootCert, crls)); + } + + @Test + public void emptyCertChainTest() { + Certificate[] emptyCertChain = new Certificate[] {}; + final String expectedResult = MessageFormatUtil.format("Certificate Unknown failed: {0}", + SignExceptionMessageConstant.INVALID_STATE_WHILE_CHECKING_CERT_CHAIN); + + List resultedExceptionList = CertificateVerification.verifyCertificates(emptyCertChain, + null, (Collection) null); + + Assert.assertEquals(1, resultedExceptionList.size()); + Assert.assertEquals(expectedResult, resultedExceptionList.get(0).getMessage()); + } + + @Test + public void validCertChainWithEmptyKeyStoreTest() + throws CertificateException, KeyStoreException, IOException, NoSuchAlgorithmException, + NoSuchProviderException { + final String validCertChainFileName = CERTS_SRC + "signCertRsaWithChain.p12"; + final String emptyCertChain = CERTS_SRC + "emptyCertChain.p12"; + + Certificate[] validCertChain = Pkcs12FileHelper.readFirstChain(validCertChainFileName, PASSWORD); + KeyStore emptyKeyStore = Pkcs12FileHelper.initStore(emptyCertChain, PASSWORD); + + List resultedExceptionList = CertificateVerification.verifyCertificates(validCertChain, + emptyKeyStore, (Collection) null); + + final String expectedResult = MessageFormatUtil.format( + SignExceptionMessageConstant.CERTIFICATE_TEMPLATE_FOR_EXCEPTION_MESSAGE, + ((X509Certificate) validCertChain[2]).getSubjectDN().getName(), + SignExceptionMessageConstant.CANNOT_BE_VERIFIED_CERTIFICATE_CHAIN); + + Assert.assertEquals(1, resultedExceptionList.size()); + Assert.assertEquals(expectedResult, resultedExceptionList.get(0).getMessage()); + } + + @Test + public void validCertChainWithRootCertAsKeyStoreTest() + throws CertificateException, KeyStoreException, IOException, NoSuchAlgorithmException, + NoSuchProviderException { + final String validCertChainFileName = CERTS_SRC + "signCertRsaWithChain.p12"; + final String emptyCertChain = CERTS_SRC + "rootRsa.p12"; + + Certificate[] validCertChain = Pkcs12FileHelper.readFirstChain(validCertChainFileName, PASSWORD); + KeyStore emptyKeyStore = Pkcs12FileHelper.initStore(emptyCertChain, PASSWORD); + + List resultedExceptionList = CertificateVerification.verifyCertificates(validCertChain, + emptyKeyStore, (Collection) null); + + Assert.assertEquals(0, resultedExceptionList.size()); + } + + @Test + public void certChainWithExpiredCertTest() + throws CertificateException, KeyStoreException, IOException, NoSuchAlgorithmException { + final String validCertChainFileName = CERTS_SRC + "signCertRsaWithExpiredChain.p12"; + + Certificate[] validCertChain = Pkcs12FileHelper.readFirstChain(validCertChainFileName, PASSWORD); + + X509Certificate expectedExpiredCert = (X509Certificate) validCertChain[1]; + final String expiredCertName = expectedExpiredCert.getSubjectDN().getName(); + X509Certificate rootCert = (X509Certificate) validCertChain[2]; + final String rootCertName = rootCert.getSubjectDN().getName(); + + List resultedExceptionList = CertificateVerification.verifyCertificates(validCertChain, + null, (Collection) null); + + Assert.assertEquals(2, resultedExceptionList.size()); + final String expectedFirstResultMessage = MessageFormatUtil.format( + SignExceptionMessageConstant.CERTIFICATE_TEMPLATE_FOR_EXCEPTION_MESSAGE, + expiredCertName, SignaturesTestUtils.getExpiredMessage(expectedExpiredCert)); + final String expectedSecondResultMessage = MessageFormatUtil.format( + SignExceptionMessageConstant.CERTIFICATE_TEMPLATE_FOR_EXCEPTION_MESSAGE, + rootCertName, SignExceptionMessageConstant.CANNOT_BE_VERIFIED_CERTIFICATE_CHAIN); + + Assert.assertEquals(expectedFirstResultMessage, resultedExceptionList.get(0).getMessage()); + Assert.assertEquals(expectedSecondResultMessage, resultedExceptionList.get(1).getMessage()); + } + private static boolean verifyTimestampCertificates(String tsaClientCertificate, KeyStore caKeyStore) throws Exception { - Certificate[] tsaChain = Pkcs12FileHelper.readFirstChain(tsaClientCertificate, password); - PrivateKey tsaPrivateKey = Pkcs12FileHelper.readFirstKey(tsaClientCertificate, password, password); + Certificate[] tsaChain = Pkcs12FileHelper.readFirstChain(tsaClientCertificate, PASSWORD); + PrivateKey tsaPrivateKey = Pkcs12FileHelper.readFirstKey(tsaClientCertificate, PASSWORD, PASSWORD); TestTsaClient testTsaClient = new TestTsaClient(Arrays.asList(tsaChain), tsaPrivateKey); diff --git a/sign/src/test/java/com/itextpdf/signatures/verify/CrlVerifierTest.java b/sign/src/test/java/com/itextpdf/signatures/verify/CrlVerifierTest.java index 6e93588c4d..8485f3d428 100644 --- a/sign/src/test/java/com/itextpdf/signatures/verify/CrlVerifierTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/verify/CrlVerifierTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify @@ -79,15 +79,19 @@ public static void before() { @Test public void validCrl01() throws GeneralSecurityException, IOException { - X509Certificate caCert = (X509Certificate) Pkcs12FileHelper.readFirstChain(certsSrc + "rootRsa.p12", password)[0]; - TestCrlBuilder crlBuilder = new TestCrlBuilder(caCert, DateTimeUtil.addDaysToDate(DateTimeUtil.getCurrentTimeDate(), -1)); + String caCertP12FileName = certsSrc + "rootRsa.p12"; + X509Certificate caCert = (X509Certificate) Pkcs12FileHelper.readFirstChain(caCertP12FileName, password)[0]; + PrivateKey caPrivateKey = Pkcs12FileHelper.readFirstKey(caCertP12FileName, password, password); + TestCrlBuilder crlBuilder = new TestCrlBuilder(caCert, caPrivateKey, DateTimeUtil.addDaysToDate(DateTimeUtil.getCurrentTimeDate(), -1)); Assert.assertTrue(verifyTest(crlBuilder)); } @Test public void invalidRevokedCrl01() throws GeneralSecurityException, IOException { - X509Certificate caCert = (X509Certificate) Pkcs12FileHelper.readFirstChain(certsSrc + "rootRsa.p12", password)[0]; - TestCrlBuilder crlBuilder = new TestCrlBuilder(caCert, DateTimeUtil.addDaysToDate(DateTimeUtil.getCurrentTimeDate(), -1)); + String caCertP12FileName = certsSrc + "rootRsa.p12"; + X509Certificate caCert = (X509Certificate) Pkcs12FileHelper.readFirstChain(caCertP12FileName, password)[0]; + PrivateKey caPrivateKey = Pkcs12FileHelper.readFirstKey(caCertP12FileName, password, password); + TestCrlBuilder crlBuilder = new TestCrlBuilder(caCert, caPrivateKey, DateTimeUtil.addDaysToDate(DateTimeUtil.getCurrentTimeDate(), -1)); String checkCertFileName = certsSrc + "signCertRsa01.p12"; X509Certificate checkCert = (X509Certificate) Pkcs12FileHelper.readFirstChain(checkCertFileName, password)[0]; @@ -98,8 +102,10 @@ public void invalidRevokedCrl01() throws GeneralSecurityException, IOException { @Test public void invalidOutdatedCrl01() throws GeneralSecurityException, IOException { - X509Certificate caCert = (X509Certificate) Pkcs12FileHelper.readFirstChain(certsSrc + "rootRsa.p12", password)[0]; - TestCrlBuilder crlBuilder = new TestCrlBuilder(caCert, DateTimeUtil.addDaysToDate(DateTimeUtil.getCurrentTimeDate(), -2)); + String caCertP12FileName = certsSrc + "rootRsa.p12"; + X509Certificate caCert = (X509Certificate) Pkcs12FileHelper.readFirstChain(caCertP12FileName, password)[0]; + PrivateKey caPrivateKey = Pkcs12FileHelper.readFirstKey(caCertP12FileName, password, password); + TestCrlBuilder crlBuilder = new TestCrlBuilder(caCert, caPrivateKey, DateTimeUtil.addDaysToDate(DateTimeUtil.getCurrentTimeDate(), -2)); crlBuilder.setNextUpdate(DateTimeUtil.addDaysToDate(DateTimeUtil.getCurrentTimeDate(), -1)); Assert.assertFalse(verifyTest(crlBuilder)); @@ -108,12 +114,11 @@ public void invalidOutdatedCrl01() throws GeneralSecurityException, IOException private boolean verifyTest(TestCrlBuilder crlBuilder) throws GeneralSecurityException, IOException { String caCertFileName = certsSrc + "rootRsa.p12"; X509Certificate caCert = (X509Certificate) Pkcs12FileHelper.readFirstChain(caCertFileName, password)[0]; - PrivateKey caPrivateKey = Pkcs12FileHelper.readFirstKey(caCertFileName, password, password); String checkCertFileName = certsSrc + "signCertRsa01.p12"; X509Certificate checkCert = (X509Certificate) Pkcs12FileHelper.readFirstChain(checkCertFileName, password)[0]; - TestCrlClient crlClient = new TestCrlClient(crlBuilder, caPrivateKey); + TestCrlClient crlClient = new TestCrlClient().addBuilderForCertIssuer(crlBuilder); Collection crlBytesCollection = crlClient.getEncoded(checkCert, null); boolean verify = false; diff --git a/sign/src/test/java/com/itextpdf/signatures/verify/LtvVerifierTest.java b/sign/src/test/java/com/itextpdf/signatures/verify/LtvVerifierTest.java index 7c1864af87..01219cd5b6 100644 --- a/sign/src/test/java/com/itextpdf/signatures/verify/LtvVerifierTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/verify/LtvVerifierTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/test/java/com/itextpdf/signatures/verify/OcspCertificateVerificationTest.java b/sign/src/test/java/com/itextpdf/signatures/verify/OcspCertificateVerificationTest.java index c7ba7e19e1..ad1bccaa4a 100644 --- a/sign/src/test/java/com/itextpdf/signatures/verify/OcspCertificateVerificationTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/verify/OcspCertificateVerificationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/sign/src/test/java/com/itextpdf/signatures/verify/OcspVerifierTest.java b/sign/src/test/java/com/itextpdf/signatures/verify/OcspVerifierTest.java index f1e4d942a6..87e85f447b 100644 --- a/sign/src/test/java/com/itextpdf/signatures/verify/OcspVerifierTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/verify/OcspVerifierTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/test/java/com/itextpdf/signatures/verify/pdfinsecurity/IncrementalSavingAttackTest.java b/sign/src/test/java/com/itextpdf/signatures/verify/pdfinsecurity/IncrementalSavingAttackTest.java index 2cd1a8d3dc..e09442d0a5 100644 --- a/sign/src/test/java/com/itextpdf/signatures/verify/pdfinsecurity/IncrementalSavingAttackTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/verify/pdfinsecurity/IncrementalSavingAttackTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/test/java/com/itextpdf/signatures/verify/pdfinsecurity/SignatureWrappingAttackTest.java b/sign/src/test/java/com/itextpdf/signatures/verify/pdfinsecurity/SignatureWrappingAttackTest.java index 1388cebad0..912766a8ac 100644 --- a/sign/src/test/java/com/itextpdf/signatures/verify/pdfinsecurity/SignatureWrappingAttackTest.java +++ b/sign/src/test/java/com/itextpdf/signatures/verify/pdfinsecurity/SignatureWrappingAttackTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/sign/src/test/resources/com/itextpdf/signatures/LtvVerificationTest/signingCertHasChainWithOcspOnlyForChildCert.pdf b/sign/src/test/resources/com/itextpdf/signatures/LtvVerificationTest/signingCertHasChainWithOcspOnlyForChildCert.pdf new file mode 100644 index 0000000000..adac87bc31 Binary files /dev/null and b/sign/src/test/resources/com/itextpdf/signatures/LtvVerificationTest/signingCertHasChainWithOcspOnlyForChildCert.pdf differ diff --git a/sign/src/test/resources/com/itextpdf/signatures/LtvVerifierIntegrationTest/severalConsequentSignatures.pdf b/sign/src/test/resources/com/itextpdf/signatures/LtvVerifierIntegrationTest/severalConsequentSignatures.pdf new file mode 100644 index 0000000000..f161581d43 Binary files /dev/null and b/sign/src/test/resources/com/itextpdf/signatures/LtvVerifierIntegrationTest/severalConsequentSignatures.pdf differ diff --git a/sign/src/test/resources/com/itextpdf/signatures/LtvVerifierIntegrationTest/signingCertHas3ChainWithOcspOnlyForChildCert.pdf b/sign/src/test/resources/com/itextpdf/signatures/LtvVerifierIntegrationTest/signingCertHas3ChainWithOcspOnlyForChildCert.pdf new file mode 100644 index 0000000000..7832ac6f8b Binary files /dev/null and b/sign/src/test/resources/com/itextpdf/signatures/LtvVerifierIntegrationTest/signingCertHas3ChainWithOcspOnlyForChildCert.pdf differ diff --git a/sign/src/test/resources/com/itextpdf/signatures/LtvVerifierIntegrationTest/signingCertHasChainWithOcspOnlyForChildCert.pdf b/sign/src/test/resources/com/itextpdf/signatures/LtvVerifierIntegrationTest/signingCertHasChainWithOcspOnlyForChildCert.pdf new file mode 100644 index 0000000000..b11df0f64a Binary files /dev/null and b/sign/src/test/resources/com/itextpdf/signatures/LtvVerifierIntegrationTest/signingCertHasChainWithOcspOnlyForChildCert.pdf differ diff --git a/sign/src/test/resources/com/itextpdf/signatures/LtvVerifierIntegrationTest/signingCertHasChainWithoutRevocationData.pdf b/sign/src/test/resources/com/itextpdf/signatures/LtvVerifierIntegrationTest/signingCertHasChainWithoutRevocationData.pdf new file mode 100644 index 0000000000..8932e3c7a9 Binary files /dev/null and b/sign/src/test/resources/com/itextpdf/signatures/LtvVerifierIntegrationTest/signingCertHasChainWithoutRevocationData.pdf differ diff --git a/sign/src/test/resources/com/itextpdf/signatures/LtvVerifierIntegrationTest/signingCertIsSelfSignedWithoutRevocationData.pdf b/sign/src/test/resources/com/itextpdf/signatures/LtvVerifierIntegrationTest/signingCertIsSelfSignedWithoutRevocationData.pdf new file mode 100644 index 0000000000..88b194e2e8 Binary files /dev/null and b/sign/src/test/resources/com/itextpdf/signatures/LtvVerifierIntegrationTest/signingCertIsSelfSignedWithoutRevocationData.pdf differ diff --git a/sign/src/test/resources/com/itextpdf/signatures/PdfPKCS7Test/cmpBytesPkcs1.txt b/sign/src/test/resources/com/itextpdf/signatures/PdfPKCS7Test/cmpBytesPkcs1.txt new file mode 100644 index 0000000000..8925e13562 Binary files /dev/null and b/sign/src/test/resources/com/itextpdf/signatures/PdfPKCS7Test/cmpBytesPkcs1.txt differ diff --git a/sign/src/test/resources/com/itextpdf/signatures/PdfPKCS7Test/cmpBytesPkcs7.txt b/sign/src/test/resources/com/itextpdf/signatures/PdfPKCS7Test/cmpBytesPkcs7.txt new file mode 100644 index 0000000000..cdd160abff Binary files /dev/null and b/sign/src/test/resources/com/itextpdf/signatures/PdfPKCS7Test/cmpBytesPkcs7.txt differ diff --git a/sign/src/test/resources/com/itextpdf/signatures/PdfPKCS7Test/firstCrl.bin b/sign/src/test/resources/com/itextpdf/signatures/PdfPKCS7Test/firstCrl.bin new file mode 100644 index 0000000000..950b5c4c7c Binary files /dev/null and b/sign/src/test/resources/com/itextpdf/signatures/PdfPKCS7Test/firstCrl.bin differ diff --git a/sign/src/test/resources/com/itextpdf/signatures/PdfPKCS7Test/secondCrl.bin b/sign/src/test/resources/com/itextpdf/signatures/PdfPKCS7Test/secondCrl.bin new file mode 100644 index 0000000000..39a1ffcc1a Binary files /dev/null and b/sign/src/test/resources/com/itextpdf/signatures/PdfPKCS7Test/secondCrl.bin differ diff --git a/sign/src/test/resources/com/itextpdf/signatures/PdfPKCS7Test/signatureWithInvalidOcspTest.pdf b/sign/src/test/resources/com/itextpdf/signatures/PdfPKCS7Test/signatureWithInvalidOcspTest.pdf new file mode 100644 index 0000000000..16e49fedb5 Binary files /dev/null and b/sign/src/test/resources/com/itextpdf/signatures/PdfPKCS7Test/signatureWithInvalidOcspTest.pdf differ diff --git a/sign/src/test/resources/com/itextpdf/signatures/PdfPKCS7Test/signatureWithValidOcspTest.pdf b/sign/src/test/resources/com/itextpdf/signatures/PdfPKCS7Test/signatureWithValidOcspTest.pdf new file mode 100644 index 0000000000..d7fa4dec1f Binary files /dev/null and b/sign/src/test/resources/com/itextpdf/signatures/PdfPKCS7Test/signatureWithValidOcspTest.pdf differ diff --git a/sign/src/test/resources/com/itextpdf/signatures/PdfPKCS7Test/simpleOCSPResponse.bin b/sign/src/test/resources/com/itextpdf/signatures/PdfPKCS7Test/simpleOCSPResponse.bin new file mode 100644 index 0000000000..fe80cb291c Binary files /dev/null and b/sign/src/test/resources/com/itextpdf/signatures/PdfPKCS7Test/simpleOCSPResponse.bin differ diff --git a/sign/src/test/resources/com/itextpdf/signatures/PdfPKCS7Test/singleSignatureNotEmptyCRL.pdf b/sign/src/test/resources/com/itextpdf/signatures/PdfPKCS7Test/singleSignatureNotEmptyCRL.pdf new file mode 100644 index 0000000000..5bb2bd7216 Binary files /dev/null and b/sign/src/test/resources/com/itextpdf/signatures/PdfPKCS7Test/singleSignatureNotEmptyCRL.pdf differ diff --git a/sign/src/test/resources/com/itextpdf/signatures/certs/adobeExtensionCert.p12 b/sign/src/test/resources/com/itextpdf/signatures/certs/adobeExtensionCert.p12 new file mode 100644 index 0000000000..fa9edfff1f Binary files /dev/null and b/sign/src/test/resources/com/itextpdf/signatures/certs/adobeExtensionCert.p12 differ diff --git a/sign/src/test/resources/com/itextpdf/signatures/certs/adobeExtensionCertWithoutTag.p12 b/sign/src/test/resources/com/itextpdf/signatures/certs/adobeExtensionCertWithoutTag.p12 new file mode 100644 index 0000000000..a2f02b32f6 Binary files /dev/null and b/sign/src/test/resources/com/itextpdf/signatures/certs/adobeExtensionCertWithoutTag.p12 differ diff --git a/sign/src/test/resources/com/itextpdf/signatures/certs/emptyCertChain.p12 b/sign/src/test/resources/com/itextpdf/signatures/certs/emptyCertChain.p12 new file mode 100644 index 0000000000..63da920776 Binary files /dev/null and b/sign/src/test/resources/com/itextpdf/signatures/certs/emptyCertChain.p12 differ diff --git a/sign/src/test/resources/com/itextpdf/signatures/certs/expiredCert.p12 b/sign/src/test/resources/com/itextpdf/signatures/certs/expiredCert.p12 new file mode 100644 index 0000000000..b978938b87 Binary files /dev/null and b/sign/src/test/resources/com/itextpdf/signatures/certs/expiredCert.p12 differ diff --git a/sign/src/test/resources/com/itextpdf/signatures/certs/unsupportedCriticalExtensionCert.p12 b/sign/src/test/resources/com/itextpdf/signatures/certs/unsupportedCriticalExtensionCert.p12 new file mode 100644 index 0000000000..696ae202ca Binary files /dev/null and b/sign/src/test/resources/com/itextpdf/signatures/certs/unsupportedCriticalExtensionCert.p12 differ diff --git a/sign/src/test/resources/com/itextpdf/signatures/sign/LtvSigTest/cmp_ltvEnabledSingleSignatureNoCrlDataTest.pdf b/sign/src/test/resources/com/itextpdf/signatures/sign/LtvSigTest/cmp_ltvEnabledSingleSignatureNoCrlDataTest.pdf new file mode 100644 index 0000000000..4bc602ad0e Binary files /dev/null and b/sign/src/test/resources/com/itextpdf/signatures/sign/LtvSigTest/cmp_ltvEnabledSingleSignatureNoCrlDataTest.pdf differ diff --git a/sign/src/test/resources/com/itextpdf/signatures/sign/LtvSigTest/cmp_ltvEnabledSingleSignatureNoOcspDataTest.pdf b/sign/src/test/resources/com/itextpdf/signatures/sign/LtvSigTest/cmp_ltvEnabledSingleSignatureNoOcspDataTest.pdf new file mode 100644 index 0000000000..1badff0716 Binary files /dev/null and b/sign/src/test/resources/com/itextpdf/signatures/sign/LtvSigTest/cmp_ltvEnabledSingleSignatureNoOcspDataTest.pdf differ diff --git a/sign/src/test/resources/com/itextpdf/signatures/sign/PadesSignatureLevelTest/cmp_padesSignatureLevelLTATest01.pdf b/sign/src/test/resources/com/itextpdf/signatures/sign/PadesSignatureLevelTest/cmp_padesSignatureLevelLTATest01.pdf index 07d89a7805..7d6d4c189d 100644 Binary files a/sign/src/test/resources/com/itextpdf/signatures/sign/PadesSignatureLevelTest/cmp_padesSignatureLevelLTATest01.pdf and b/sign/src/test/resources/com/itextpdf/signatures/sign/PadesSignatureLevelTest/cmp_padesSignatureLevelLTATest01.pdf differ diff --git a/styled-xml-parser/pom.xml b/styled-xml-parser/pom.xml index ff6a99d6d0..e2671c9ef2 100644 --- a/styled-xml-parser/pom.xml +++ b/styled-xml-parser/pom.xml @@ -4,7 +4,7 @@ com.itextpdf root - 7.2.1 + 7.2.2 styled-xml-parser iText 7 - Styled XML Parser diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/CommonAttributeConstants.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/CommonAttributeConstants.java index 86220be044..7cb90489b1 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/CommonAttributeConstants.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/CommonAttributeConstants.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/CssRuleSetComparator.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/CssRuleSetComparator.java index 78b9005e14..31f311b97f 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/CssRuleSetComparator.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/CssRuleSetComparator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/IXmlParser.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/IXmlParser.java index 3ea1ed7ea7..cc336cdb26 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/IXmlParser.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/IXmlParser.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/PortUtil.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/PortUtil.java index 9a349ae682..628484ee45 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/PortUtil.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/PortUtil.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CommonCssConstants.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CommonCssConstants.java index 75eaeaadc9..29a9d214ff 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CommonCssConstants.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CommonCssConstants.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssAtRule.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssAtRule.java index 2b9c595253..9ad87a4c1e 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssAtRule.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssAtRule.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssContextNode.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssContextNode.java index c4deab02fe..af4f33a0d2 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssContextNode.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssContextNode.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssDeclaration.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssDeclaration.java index c261cfee8f..4064cf8986 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssDeclaration.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssDeclaration.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssFontFaceRule.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssFontFaceRule.java index 31db95c1a6..ee8698ee56 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssFontFaceRule.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssFontFaceRule.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -71,7 +71,10 @@ public CssFontFaceRule() { * @return the properties */ public List getProperties() { - return new ArrayList<>(properties) ; + if (properties==null) { + return new ArrayList<>(); + } + return new ArrayList<>(properties); } /* (non-Javadoc) @@ -89,7 +92,7 @@ public void addBodyCssDeclarations(List cssDeclarations) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("@").append(getRuleName()).append(" {").append("\n"); - for (CssDeclaration declaration : properties) { + for (CssDeclaration declaration : getProperties()) { sb.append(" "); sb.append(declaration); sb.append(";\n"); diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssNestedAtRule.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssNestedAtRule.java index 703ce4abd9..e87c78fc31 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssNestedAtRule.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssNestedAtRule.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssNestedAtRuleFactory.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssNestedAtRuleFactory.java index a2ce10e03f..949c696d86 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssNestedAtRuleFactory.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssNestedAtRuleFactory.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssRuleName.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssRuleName.java index a8698c9ac5..7f7f23c5e7 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssRuleName.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssRuleName.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssRuleSet.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssRuleSet.java index 49c1cff36c..680b029cd1 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssRuleSet.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssRuleSet.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssRuleSetComparator.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssRuleSetComparator.java index 806b498098..ddffbebc33 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssRuleSetComparator.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssRuleSetComparator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssSemicolonAtRule.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssSemicolonAtRule.java index 2126337521..f062240322 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssSemicolonAtRule.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssSemicolonAtRule.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssStatement.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssStatement.java index 9ec0df48e4..ec6e7025d5 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssStatement.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssStatement.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssStyleSheet.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssStyleSheet.java index 15e43cfd2e..6bdf23c643 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssStyleSheet.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/CssStyleSheet.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/ICssResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/ICssResolver.java index 365902f19c..b1494edafc 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/ICssResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/ICssResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/font/CssFontFace.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/font/CssFontFace.java index 184c6589aa..d1e3c92a92 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/font/CssFontFace.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/font/CssFontFace.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/CssMediaRule.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/CssMediaRule.java index 3989bd732f..030f5342fd 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/CssMediaRule.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/CssMediaRule.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaDeviceDescription.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaDeviceDescription.java index c8a59a161a..b1f7f06689 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaDeviceDescription.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaDeviceDescription.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaExpression.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaExpression.java index 50032b879d..07a255f59c 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaExpression.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaExpression.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -203,7 +203,8 @@ public boolean matches(MediaDeviceDescription deviceDescription) { */ private static float parseAbsoluteLength(String value) { if (CssTypesValidationUtils.isRelativeValue(value)) { - // TODO here should be used default font size of the browser, it probably should be fetched from the more generic place than private class constant + // TODO DEVSIX-6365 Use some shared default value (from default.css or CssDefaults) + // rather than a constant of this class return CssDimensionParsingUtils.parseRelativeValue(value, DEFAULT_FONT_SIZE); } else { return CssDimensionParsingUtils.parseAbsoluteLength(value); diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaFeature.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaFeature.java index df2bf76b73..c6e813074a 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaFeature.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaFeature.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaQuery.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaQuery.java index 497342fca6..b859fb5e58 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaQuery.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaQuery.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaQueryParser.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaQueryParser.java index 6b768a7bd7..8a3889a9c1 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaQueryParser.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaQueryParser.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaRuleConstants.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaRuleConstants.java index 94f7e6f5d7..a54ca0987a 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaRuleConstants.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaRuleConstants.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaType.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaType.java index 80ee825b37..a6feaca43d 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaType.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/media/MediaType.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/page/CssMarginRule.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/page/CssMarginRule.java index 190d7ee7ab..313c99465e 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/page/CssMarginRule.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/page/CssMarginRule.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -72,6 +72,7 @@ public CssMarginRule(String ruleName) { */ @Override public void addBodyCssDeclarations(List cssDeclarations) { + // TODO DEVSIX-6364 Fix the body declarations duplication for each pageSelector part for (ICssSelector pageSelector : pageSelectors) { this.body.add(new CssNonStandardRuleSet(new CssPageMarginBoxSelector(getRuleName(), pageSelector), cssDeclarations)); } diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/page/CssNonStandardRuleSet.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/page/CssNonStandardRuleSet.java index 182edd854a..c8c76ae8d1 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/page/CssNonStandardRuleSet.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/page/CssNonStandardRuleSet.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/page/CssPageRule.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/page/CssPageRule.java index 2f463a7ad8..3c4b7e6f03 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/page/CssPageRule.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/page/CssPageRule.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -85,16 +85,17 @@ public CssPageRule(String ruleParameters) { */ @Override public void addBodyCssDeclarations(List cssDeclarations) { - // TODO Due to this for-loop, on toString method call for the CssPageRule instance + // TODO DEVSIX-6364 Fix the body declarations duplication for each pageSelector part + // Due to this for-loop, on toString method call for the CssPageRule instance // all the body declarations will be duplicated for each pageSelector part. // This potentially could lead to a nasty behaviour when declarations will double - // for each read-write iteration of the same css-file (however, this use case seems - // to be unlikely to happen). - // Possible solution would be to split single page rule with compound selector into + // for each read-write iteration of the same css-file (however, this use case seems + // to be unlikely to happen). + // Possible solution would be to split single page rule with compound selector into // several page rules with simple selectors on addition of the page rule to it's parent. // // Also, the same concerns this method implementation in CssMarginRule class. - // + // // See CssStyleSheetParserTest#test11 test. for (ICssSelector pageSelector : pageSelectors) { this.body.add(new CssNonStandardRuleSet(pageSelector, cssDeclarations)); diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/page/PageContextConstants.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/page/PageContextConstants.java index 125db63ff2..b07e69058e 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/page/PageContextConstants.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/page/PageContextConstants.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/page/PageContextNode.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/page/PageContextNode.java index abac9b6b40..c1ec5e4307 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/page/PageContextNode.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/page/PageContextNode.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/page/PageMarginBoxContextNode.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/page/PageMarginBoxContextNode.java index cbf6b118b8..817e7ee1e2 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/page/PageMarginBoxContextNode.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/page/PageMarginBoxContextNode.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/CssDeclarationValueTokenizer.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/CssDeclarationValueTokenizer.java index 2429716d27..62ae527eff 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/CssDeclarationValueTokenizer.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/CssDeclarationValueTokenizer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/CssPageSelectorParser.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/CssPageSelectorParser.java index e81f235910..7c8fc4481d 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/CssPageSelectorParser.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/CssPageSelectorParser.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/CssRuleSetParser.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/CssRuleSetParser.java index 67ec6e6b06..3edc639d01 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/CssRuleSetParser.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/CssRuleSetParser.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/CssSelectorParser.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/CssSelectorParser.java index 609e0573b1..601299f0e8 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/CssSelectorParser.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/CssSelectorParser.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/CssStyleSheetParser.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/CssStyleSheetParser.java index feccc896d4..21a5e9bb8b 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/CssStyleSheetParser.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/CssStyleSheetParser.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/AtRuleBlockState.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/AtRuleBlockState.java index bb41c6aa46..380cb96a17 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/AtRuleBlockState.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/AtRuleBlockState.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/BlockState.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/BlockState.java index c665fe931d..220738d288 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/BlockState.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/BlockState.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/CommentEndState.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/CommentEndState.java index 9837b5595b..9f20513bc3 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/CommentEndState.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/CommentEndState.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/CommentInnerState.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/CommentInnerState.java index b6d2395d63..b3fc99d5e9 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/CommentInnerState.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/CommentInnerState.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/CommentStartState.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/CommentStartState.java index f1411db069..503445b444 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/CommentStartState.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/CommentStartState.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/ConditionalGroupAtRuleBlockState.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/ConditionalGroupAtRuleBlockState.java index 302f1e475c..03a26ec67a 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/ConditionalGroupAtRuleBlockState.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/ConditionalGroupAtRuleBlockState.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -65,7 +65,6 @@ class ConditionalGroupAtRuleBlockState implements IParserState { * @see com.itextpdf.styledxmlparser.css.parse.syntax.IParserState#process(char) */ @Override - // TODO use UnknownState? public void process(char ch) { if (ch == '/') { controller.enterCommentStartState(); diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/CssParserStateController.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/CssParserStateController.java index a921c18fc1..1d2b2016fc 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/CssParserStateController.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/CssParserStateController.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -344,7 +344,7 @@ void storeSemicolonAtRule() { void finishAtRuleBlock() { List storedProps = storedPropertiesWithoutSelector.pop(); CssNestedAtRule atRule = nestedAtRules.pop(); - if (isCurrentRuleSupported) { + if (isCurrentRuleSupported ) { processFinishedAtRuleBlock(atRule); if (!storedProps.isEmpty()) { atRule.addBodyCssDeclarations(storedProps); diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/IParserState.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/IParserState.java index 58d00e7c8a..4d9fe0820a 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/IParserState.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/IParserState.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/RuleState.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/RuleState.java index 3db1fb63f2..cd439c19d9 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/RuleState.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/RuleState.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/UnknownState.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/UnknownState.java index c4968a30c7..9e6810c57f 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/UnknownState.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/parse/syntax/UnknownState.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/pseudo/CssPseudoElementNode.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/pseudo/CssPseudoElementNode.java index 450d364dd0..099d314b7d 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/pseudo/CssPseudoElementNode.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/pseudo/CssPseudoElementNode.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/pseudo/CssPseudoElementUtil.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/pseudo/CssPseudoElementUtil.java index c480404e7c..7d081f58d8 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/pseudo/CssPseudoElementUtil.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/pseudo/CssPseudoElementUtil.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/AbstractCssContext.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/AbstractCssContext.java index 5e4315e753..56eae761ca 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/AbstractCssContext.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/AbstractCssContext.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/CssDefaults.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/CssDefaults.java index 86221df56d..27de4860af 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/CssDefaults.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/CssDefaults.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/CssInheritance.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/CssInheritance.java index 7104e74603..419b0967bf 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/CssInheritance.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/CssInheritance.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/CssPropertyMerger.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/CssPropertyMerger.java index 297df26510..b87b1b46f9 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/CssPropertyMerger.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/CssPropertyMerger.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/CssQuotes.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/CssQuotes.java index 3522ebd0b8..cbea120044 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/CssQuotes.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/CssQuotes.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/IStyleInheritance.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/IStyleInheritance.java index 8fcb11772f..a836af5e2f 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/IStyleInheritance.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/IStyleInheritance.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/IShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/IShorthandResolver.java index bd875275d8..66b64ff039 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/IShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/IShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/ShorthandResolverFactory.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/ShorthandResolverFactory.java index 9da5a74891..7a177116e8 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/ShorthandResolverFactory.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/ShorthandResolverFactory.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/AbstractBorderShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/AbstractBorderShorthandResolver.java index b07841516c..e546deabf7 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/AbstractBorderShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/AbstractBorderShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/AbstractBoxShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/AbstractBoxShorthandResolver.java index e162c8b3e6..c5dfe8edd8 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/AbstractBoxShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/AbstractBoxShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/AbstractCornersShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/AbstractCornersShorthandResolver.java index 11c28ea6da..a304c89306 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/AbstractCornersShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/AbstractCornersShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BackgroundPositionShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BackgroundPositionShorthandResolver.java index e5940f6733..bca66a77b5 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BackgroundPositionShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BackgroundPositionShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BackgroundShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BackgroundShorthandResolver.java index d0c9897fe8..fa0e3a5ecf 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BackgroundShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BackgroundShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderBottomShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderBottomShorthandResolver.java index f74ac1ed07..e6bbcce9fc 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderBottomShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderBottomShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderColorShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderColorShorthandResolver.java index 70499ad9dc..83d9fbf2d8 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderColorShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderColorShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderLeftShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderLeftShorthandResolver.java index b087b6a722..82ad96872b 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderLeftShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderLeftShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderRadiusShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderRadiusShorthandResolver.java index e88de46072..117b2b9a15 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderRadiusShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderRadiusShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderRightShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderRightShorthandResolver.java index 19f0ca0d02..640770f1be 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderRightShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderRightShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderShorthandResolver.java index eba647b424..beed65ba94 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderStyleShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderStyleShorthandResolver.java index ed353123a2..f932a277fb 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderStyleShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderStyleShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderTopShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderTopShorthandResolver.java index debad8f590..8f72fd488e 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderTopShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderTopShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderWidthShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderWidthShorthandResolver.java index 1fa4622fe8..aff1e95dce 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderWidthShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/BorderWidthShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/FlexFlowShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/FlexFlowShorthandResolver.java index 507e53281e..d738728a2e 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/FlexFlowShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/FlexFlowShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/FlexShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/FlexShorthandResolver.java index 2128061a63..6481287bbe 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/FlexShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/FlexShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/FontShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/FontShorthandResolver.java index a3e90ff9fa..b33b847cab 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/FontShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/FontShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/GapShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/GapShorthandResolver.java index efe59902e0..1ff7e393ea 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/GapShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/GapShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/ListStyleShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/ListStyleShorthandResolver.java index 57365e186e..de31bdf9eb 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/ListStyleShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/ListStyleShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/MarginShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/MarginShorthandResolver.java index 2ed4a571d9..aff72d3d12 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/MarginShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/MarginShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/OutlineShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/OutlineShorthandResolver.java index 54d828b72b..dda2fcdaec 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/OutlineShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/OutlineShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/PaddingShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/PaddingShorthandResolver.java index e729c4cb72..0dd699313f 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/PaddingShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/PaddingShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/PlaceItemsShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/PlaceItemsShorthandResolver.java index 254ba5929e..23769bfcbd 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/PlaceItemsShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/PlaceItemsShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/TextDecorationShorthandResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/TextDecorationShorthandResolver.java index 7c51296513..af225eca37 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/TextDecorationShorthandResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/impl/TextDecorationShorthandResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/AbstractCssSelector.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/AbstractCssSelector.java index c65e8646b8..4b59ef4871 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/AbstractCssSelector.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/AbstractCssSelector.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/CssPageMarginBoxSelector.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/CssPageMarginBoxSelector.java index 28e7200f43..49369a0d4b 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/CssPageMarginBoxSelector.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/CssPageMarginBoxSelector.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/CssPageSelector.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/CssPageSelector.java index da5d2811cc..a345f3c29a 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/CssPageSelector.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/CssPageSelector.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/CssSelector.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/CssSelector.java index 0c00b7739d..3f14c7911c 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/CssSelector.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/CssSelector.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/CssSelectorComparator.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/CssSelectorComparator.java index a1f6d9c8de..cb08429bba 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/CssSelectorComparator.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/CssSelectorComparator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/ICssSelector.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/ICssSelector.java index e06d999ad8..c967334e6b 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/ICssSelector.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/ICssSelector.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssAttributeSelectorItem.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssAttributeSelectorItem.java index 9ee8db94ad..c1ed14eef0 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssAttributeSelectorItem.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssAttributeSelectorItem.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssClassSelectorItem.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssClassSelectorItem.java index 253d354bf5..4093368304 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssClassSelectorItem.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssClassSelectorItem.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssIdSelectorItem.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssIdSelectorItem.java index 81787e4f04..0f116ad248 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssIdSelectorItem.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssIdSelectorItem.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPagePseudoClassSelectorItem.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPagePseudoClassSelectorItem.java index de46dd6e08..df5d19f8d9 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPagePseudoClassSelectorItem.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPagePseudoClassSelectorItem.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPageTypeSelectorItem.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPageTypeSelectorItem.java index 9fe2b392f2..523764dbfe 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPageTypeSelectorItem.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPageTypeSelectorItem.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassChildSelectorItem.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassChildSelectorItem.java index eda8df23c9..4c860dba2c 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassChildSelectorItem.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassChildSelectorItem.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassDisabledSelectorItem.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassDisabledSelectorItem.java index e1b9c578dc..8f4e0e5bee 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassDisabledSelectorItem.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassDisabledSelectorItem.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassEmptySelectorItem.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassEmptySelectorItem.java index 35645ce3f4..2559b82767 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassEmptySelectorItem.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassEmptySelectorItem.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassFirstChildSelectorItem.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassFirstChildSelectorItem.java index e1e313b9fe..f5e92225f1 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassFirstChildSelectorItem.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassFirstChildSelectorItem.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassFirstOfTypeSelectorItem.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassFirstOfTypeSelectorItem.java index 3205c7e839..feb30fcedd 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassFirstOfTypeSelectorItem.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassFirstOfTypeSelectorItem.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassLastChildSelectorItem.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassLastChildSelectorItem.java index 98101cb8f4..494f00b5cb 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassLastChildSelectorItem.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassLastChildSelectorItem.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassLastOfTypeSelectorItem.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassLastOfTypeSelectorItem.java index c6ac0db4ca..a7273a2d71 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassLastOfTypeSelectorItem.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassLastOfTypeSelectorItem.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassNotSelectorItem.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassNotSelectorItem.java index a67c35cfbc..451b8a08d4 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassNotSelectorItem.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassNotSelectorItem.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassNthChildSelectorItem.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassNthChildSelectorItem.java index 63e870a121..3983ee43c9 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassNthChildSelectorItem.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassNthChildSelectorItem.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassNthOfTypeSelectorItem.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassNthOfTypeSelectorItem.java index eac61c4771..41b0c8ebaa 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassNthOfTypeSelectorItem.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassNthOfTypeSelectorItem.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassNthSelectorItem.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassNthSelectorItem.java index 7c699c2a05..126129f89e 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassNthSelectorItem.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassNthSelectorItem.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassRootSelectorItem.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassRootSelectorItem.java index f9659d04ac..a340c6f507 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassRootSelectorItem.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassRootSelectorItem.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassSelectorItem.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassSelectorItem.java index dafe0f88ee..6ae5a41db6 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassSelectorItem.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassSelectorItem.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoElementSelectorItem.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoElementSelectorItem.java index 8048b8787e..d458858d83 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoElementSelectorItem.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoElementSelectorItem.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssSeparatorSelectorItem.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssSeparatorSelectorItem.java index 11b47c16c5..64035c60ed 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssSeparatorSelectorItem.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssSeparatorSelectorItem.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssSpecificityConstants.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssSpecificityConstants.java index 46bed63114..54e081c895 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssSpecificityConstants.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssSpecificityConstants.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssTagSelectorItem.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssTagSelectorItem.java index 540a002b71..e4a88cf06b 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssTagSelectorItem.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/CssTagSelectorItem.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/ICssSelectorItem.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/ICssSelectorItem.java index 83e4fd584e..2766978b21 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/ICssSelectorItem.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/selector/item/ICssSelectorItem.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/CssBackgroundUtils.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/CssBackgroundUtils.java index d2380dc7d9..00c7812ae0 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/CssBackgroundUtils.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/CssBackgroundUtils.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/CssDimensionParsingUtils.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/CssDimensionParsingUtils.java index 1ae54e86cb..d0c845cdf4 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/CssDimensionParsingUtils.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/CssDimensionParsingUtils.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/CssGradientUtil.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/CssGradientUtil.java index 034e11869d..506351c551 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/CssGradientUtil.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/CssGradientUtil.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/CssPropertyNormalizer.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/CssPropertyNormalizer.java index 0f14744a51..f99df5fdec 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/CssPropertyNormalizer.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/CssPropertyNormalizer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/CssTypesValidationUtils.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/CssTypesValidationUtils.java index 85bb55df23..81edb146c6 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/CssTypesValidationUtils.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/CssTypesValidationUtils.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/CssUtils.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/CssUtils.java index 74d7441c52..7f896d5480 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/CssUtils.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/CssUtils.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/EscapeGroup.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/EscapeGroup.java index 61d741e2b4..4f0ea882dc 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/EscapeGroup.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/util/EscapeGroup.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/CssDeclarationValidationMaster.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/CssDeclarationValidationMaster.java index 4ae98b163e..d2577c2bd0 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/CssDeclarationValidationMaster.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/CssDeclarationValidationMaster.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/ICssDataTypeValidator.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/ICssDataTypeValidator.java index be06fc1745..5e7605f6d0 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/ICssDataTypeValidator.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/ICssDataTypeValidator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/ICssDeclarationValidator.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/ICssDeclarationValidator.java index d7d6dfa587..9d1657fa5e 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/ICssDeclarationValidator.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/ICssDeclarationValidator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/ArrayDataTypeValidator.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/ArrayDataTypeValidator.java index 929b4f6b76..f87aeecb67 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/ArrayDataTypeValidator.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/ArrayDataTypeValidator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssBackgroundValidator.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssBackgroundValidator.java index fc98834d56..07da071ead 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssBackgroundValidator.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssBackgroundValidator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssBlendModeValidator.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssBlendModeValidator.java index 3f2522e9f0..4ebd391136 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssBlendModeValidator.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssBlendModeValidator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssColorValidator.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssColorValidator.java index 482b03d549..dc9c033dfb 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssColorValidator.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssColorValidator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssEnumValidator.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssEnumValidator.java index fefc49ce8d..4cd383965d 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssEnumValidator.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssEnumValidator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssIdentifierValidator.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssIdentifierValidator.java index 185940b7aa..deffde90bb 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssIdentifierValidator.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssIdentifierValidator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssLengthValueValidator.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssLengthValueValidator.java index a2799c15f2..e5a4553fc0 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssLengthValueValidator.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssLengthValueValidator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssNumberValueValidator.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssNumberValueValidator.java index 148f2da158..cd647ceb0e 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssNumberValueValidator.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssNumberValueValidator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssPercentageValueValidator.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssPercentageValueValidator.java index ecb1d5d816..34d66b2e3b 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssPercentageValueValidator.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssPercentageValueValidator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssQuotesValidator.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssQuotesValidator.java index ab481132e9..14e5f6e412 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssQuotesValidator.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssQuotesValidator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssTransformValidator.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssTransformValidator.java index 91a8949e81..de028e39ef 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssTransformValidator.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/datatype/CssTransformValidator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/declaration/MultiTypeDeclarationValidator.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/declaration/MultiTypeDeclarationValidator.java index cd295c2880..0feaa696fb 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/declaration/MultiTypeDeclarationValidator.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/declaration/MultiTypeDeclarationValidator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/declaration/SingleTypeDeclarationValidator.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/declaration/SingleTypeDeclarationValidator.java index 511f26e3dc..0eb4afb0de 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/declaration/SingleTypeDeclarationValidator.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/css/validate/impl/declaration/SingleTypeDeclarationValidator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/exceptions/ReadingByteLimitException.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/exceptions/ReadingByteLimitException.java index 488fae79f0..706eea251a 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/exceptions/ReadingByteLimitException.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/exceptions/ReadingByteLimitException.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/exceptions/StyledXMLParserException.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/exceptions/StyledXMLParserException.java index d081a7bcbf..7490088f52 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/exceptions/StyledXMLParserException.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/exceptions/StyledXMLParserException.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/exceptions/StyledXmlParserExceptionMessage.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/exceptions/StyledXmlParserExceptionMessage.java index 10302f470e..94da7bf8a2 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/exceptions/StyledXmlParserExceptionMessage.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/exceptions/StyledXmlParserExceptionMessage.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/Jsoup.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/Jsoup.java index cf74509e0f..86be6268d4 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/Jsoup.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/Jsoup.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/PortUtil.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/PortUtil.java index ebc21bd7f4..9e83536738 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/PortUtil.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/PortUtil.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/SerializationException.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/SerializationException.java index b268125632..ca0eb3dd3a 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/SerializationException.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/SerializationException.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/UncheckedIOException.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/UncheckedIOException.java index de36e40a52..17eb45111c 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/UncheckedIOException.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/UncheckedIOException.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/helper/ChangeNotifyingArrayList.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/helper/ChangeNotifyingArrayList.java index c578cb92e8..1bbe1547fc 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/helper/ChangeNotifyingArrayList.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/helper/ChangeNotifyingArrayList.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/helper/DataUtil.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/helper/DataUtil.java index 061afa1734..cab22cbcf6 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/helper/DataUtil.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/helper/DataUtil.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/helper/KeyVal.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/helper/KeyVal.java index e663fd7306..0f2f9afd99 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/helper/KeyVal.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/helper/KeyVal.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. @@ -94,4 +94,4 @@ public String contentType() { public String toString() { return key + "=" + value; } -} \ No newline at end of file +} diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/helper/Validate.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/helper/Validate.java index 8cc9cdf4d9..adb1002d7a 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/helper/Validate.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/helper/Validate.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/internal/ConstrainableInputStream.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/internal/ConstrainableInputStream.java index 4f6569ab94..2326a16c2c 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/internal/ConstrainableInputStream.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/internal/ConstrainableInputStream.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/internal/Normalizer.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/internal/Normalizer.java index edfc509d37..79fec8de20 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/internal/Normalizer.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/internal/Normalizer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/internal/StringUtil.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/internal/StringUtil.java index 9e59bc7373..1f19056d16 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/internal/StringUtil.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/internal/StringUtil.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Attribute.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Attribute.java index 141f99a86a..5dda6d3675 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Attribute.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Attribute.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Attributes.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Attributes.java index 7089b58c31..64b23d2726 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Attributes.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Attributes.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/CDataNode.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/CDataNode.java index 73848f962f..5eaa926a23 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/CDataNode.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/CDataNode.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Comment.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Comment.java index aea33bf06a..c38242f1ce 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Comment.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Comment.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/DataNode.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/DataNode.java index 85206422ea..d902eac32b 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/DataNode.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/DataNode.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Document.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Document.java index 703304902c..9856af3804 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Document.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Document.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/DocumentType.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/DocumentType.java index 7ff93823d0..324e02c638 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/DocumentType.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/DocumentType.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Element.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Element.java index 13fa18f374..133c8bcfac 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Element.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Element.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Entities.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Entities.java index 9ec8f2d453..7fe3093ea2 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Entities.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Entities.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/EntitiesData.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/EntitiesData.java index 549ea942a0..73a2485511 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/EntitiesData.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/EntitiesData.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/FormElement.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/FormElement.java index 6393194892..35e9834b2d 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/FormElement.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/FormElement.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/LeafNode.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/LeafNode.java index 94947ef980..f12658b227 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/LeafNode.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/LeafNode.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Node.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Node.java index 8bbc06428f..95788e1d20 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Node.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/Node.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/NodeUtils.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/NodeUtils.java index ea686081b8..ef3f869832 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/NodeUtils.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/NodeUtils.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/PseudoTextElement.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/PseudoTextElement.java index e74019eff7..1d5071a67a 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/PseudoTextElement.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/PseudoTextElement.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/TextNode.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/TextNode.java index 86d6bd1b0d..01bb5a07cb 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/TextNode.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/TextNode.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/XmlDeclaration.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/XmlDeclaration.java index aacb2b6fdb..32cbf4906e 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/XmlDeclaration.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/nodes/XmlDeclaration.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/CharacterReader.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/CharacterReader.java index c0d1350e39..89c16a16ef 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/CharacterReader.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/CharacterReader.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/HtmlTreeBuilder.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/HtmlTreeBuilder.java index b5c0c66faa..94d3caadf2 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/HtmlTreeBuilder.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/HtmlTreeBuilder.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/HtmlTreeBuilderState.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/HtmlTreeBuilderState.java index e517c6f9dd..374a06c1c2 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/HtmlTreeBuilderState.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/HtmlTreeBuilderState.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/ParseError.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/ParseError.java index 0fa7a3bb3a..2f39fead58 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/ParseError.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/ParseError.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/ParseErrorList.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/ParseErrorList.java index 7155629a31..177a0c310f 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/ParseErrorList.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/ParseErrorList.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/ParseSettings.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/ParseSettings.java index 1146db64f3..f19db03a5f 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/ParseSettings.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/ParseSettings.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/Parser.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/Parser.java index a194d714ec..48257de320 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/Parser.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/Parser.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/Tag.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/Tag.java index 541ec01174..af5c5c5343 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/Tag.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/Tag.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/Token.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/Token.java index d2836dc556..b63d12bb4f 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/Token.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/Token.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/TokenQueue.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/TokenQueue.java index 057fc56380..65de7299b7 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/TokenQueue.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/TokenQueue.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/Tokeniser.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/Tokeniser.java index dd0e46e6e3..ae1beebe38 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/Tokeniser.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/Tokeniser.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/TokeniserState.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/TokeniserState.java index 4be76630f0..08cdadd4f3 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/TokeniserState.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/TokeniserState.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/TreeBuilder.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/TreeBuilder.java index 3d5d63c0ed..bc50bb145c 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/TreeBuilder.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/TreeBuilder.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/XmlTreeBuilder.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/XmlTreeBuilder.java index 06abce3bf1..c510c687c6 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/XmlTreeBuilder.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/parser/XmlTreeBuilder.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/safety/Cleaner.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/safety/Cleaner.java index b609f96636..340933a0de 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/safety/Cleaner.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/safety/Cleaner.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/safety/Safelist.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/safety/Safelist.java index 58d53996a7..ff993745ba 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/safety/Safelist.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/safety/Safelist.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/safety/Whitelist.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/safety/Whitelist.java index 313bd83656..5b14deafb5 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/safety/Whitelist.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/safety/Whitelist.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/Collector.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/Collector.java index c03298e1af..059f50ab3e 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/Collector.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/Collector.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/CombiningEvaluator.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/CombiningEvaluator.java index 75da009f75..8d6a75e36b 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/CombiningEvaluator.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/CombiningEvaluator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/Elements.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/Elements.java index 488eacf4a7..5218f6b319 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/Elements.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/Elements.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/Evaluator.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/Evaluator.java index 5e0ea49aea..e86d6c0478 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/Evaluator.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/Evaluator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/NodeFilter.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/NodeFilter.java index 30792c105a..fa586a4b81 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/NodeFilter.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/NodeFilter.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/NodeTraversor.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/NodeTraversor.java index 61b536a305..d1795e0d13 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/NodeTraversor.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/NodeTraversor.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/NodeVisitor.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/NodeVisitor.java index 02b684d6bb..6741f4de07 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/NodeVisitor.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/NodeVisitor.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/QueryParser.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/QueryParser.java index e395e3bda7..f734d9aa95 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/QueryParser.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/QueryParser.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/Selector.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/Selector.java index 0c425a2d40..8e21630229 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/Selector.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/Selector.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/StructuralEvaluator.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/StructuralEvaluator.java index 20f56dabe7..7865fe1aa9 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/StructuralEvaluator.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/jsoup/select/StructuralEvaluator.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/logs/StyledXmlParserLogMessageConstant.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/logs/StyledXmlParserLogMessageConstant.java index 80520ab67e..ed07f3a69f 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/logs/StyledXmlParserLogMessageConstant.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/logs/StyledXmlParserLogMessageConstant.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IAttribute.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IAttribute.java index 431ddeb208..bab9cf1c37 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IAttribute.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IAttribute.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IAttributes.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IAttributes.java index 3a2334e01a..be38d070de 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IAttributes.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IAttributes.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/ICustomElementNode.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/ICustomElementNode.java index 30507be4b6..0b8278cc7d 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/ICustomElementNode.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/ICustomElementNode.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IDataNode.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IDataNode.java index 2e6732a421..ed721ac8dc 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IDataNode.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IDataNode.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IDocumentNode.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IDocumentNode.java index f0dce0d9b8..775283fa86 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IDocumentNode.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IDocumentNode.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IDocumentTypeNode.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IDocumentTypeNode.java index eedf905e7e..df07bca5dd 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IDocumentTypeNode.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IDocumentTypeNode.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IElementNode.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IElementNode.java index f9f9976d0b..677b295699 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IElementNode.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IElementNode.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/INode.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/INode.java index 517c7c7ae0..f6bce90902 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/INode.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/INode.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IStylesContainer.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IStylesContainer.java index f8367165be..1502969e43 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IStylesContainer.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/IStylesContainer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/ITextNode.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/ITextNode.java index 7c9fbdd94e..042191d48d 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/ITextNode.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/ITextNode.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/JsoupHtmlParser.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/JsoupHtmlParser.java index 9f4e8492be..21a4999991 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/JsoupHtmlParser.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/JsoupHtmlParser.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/JsoupXmlParser.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/JsoupXmlParser.java index 01d9164926..046c7b98a6 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/JsoupXmlParser.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/JsoupXmlParser.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupAttribute.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupAttribute.java index 09ea113734..58a0d06e4f 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupAttribute.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupAttribute.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupAttributes.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupAttributes.java index e13d9bdbce..be66fb55b9 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupAttributes.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupAttributes.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupDataNode.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupDataNode.java index b434e5376c..b5d60fc3fb 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupDataNode.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupDataNode.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupDocumentNode.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupDocumentNode.java index 0d06390b1e..c8c3431803 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupDocumentNode.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupDocumentNode.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupDocumentTypeNode.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupDocumentTypeNode.java index b0e7bcc93a..de0e6f3506 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupDocumentTypeNode.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupDocumentTypeNode.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupElementNode.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupElementNode.java index 80b2adc6c6..d0e0642166 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupElementNode.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupElementNode.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupNode.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupNode.java index f08d39f264..c90abdfb57 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupNode.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupNode.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupTextNode.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupTextNode.java index 2b02078c31..ad3b8e575f 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupTextNode.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/node/impl/jsoup/node/JsoupTextNode.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/font/BasicFontProvider.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/font/BasicFontProvider.java index c8531ae885..2e3b15bf44 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/font/BasicFontProvider.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/font/BasicFontProvider.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/DefaultResourceRetriever.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/DefaultResourceRetriever.java index 38c4bee7ee..5af5a45149 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/DefaultResourceRetriever.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/DefaultResourceRetriever.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/IResourceRetriever.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/IResourceRetriever.java index 4f693cdb5e..5e934cd078 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/IResourceRetriever.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/IResourceRetriever.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/LimitedInputStream.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/LimitedInputStream.java index bd890492ad..65861218c7 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/LimitedInputStream.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/LimitedInputStream.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/ResourceResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/ResourceResolver.java index 503009964b..07d40e845d 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/ResourceResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/ResourceResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify @@ -59,7 +59,6 @@ This file is part of the iText (R) project. /** * Utilities class to resolve resources. */ -// TODO handle tag? public class ResourceResolver { /** @@ -82,7 +81,6 @@ public class ResourceResolver { /** * The {@link SimpleImageCache} instance. */ - // TODO provide a way to configure capacity, manually reset or disable the image cache? private SimpleImageCache imageCache; private IResourceRetriever retriever; diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/SimpleImageCache.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/SimpleImageCache.java index abc9c9859a..296e80eb84 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/SimpleImageCache.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/SimpleImageCache.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/UriEncodeUtil.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/UriEncodeUtil.java index 1a19785eb5..6afe1d7903 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/UriEncodeUtil.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/UriEncodeUtil.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/UriResolver.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/UriResolver.java index c499cc510f..33a9328ed5 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/UriResolver.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/UriResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/util/FontFamilySplitterUtil.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/util/FontFamilySplitterUtil.java index f80fe480d2..bfb244debf 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/util/FontFamilySplitterUtil.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/util/FontFamilySplitterUtil.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/util/StyleUtil.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/util/StyleUtil.java index c385c10531..28b077beab 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/util/StyleUtil.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/util/StyleUtil.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/util/WhiteSpaceUtil.java b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/util/WhiteSpaceUtil.java index feb23dfb2b..f8f1b20d9c 100644 --- a/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/util/WhiteSpaceUtil.java +++ b/styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/util/WhiteSpaceUtil.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/CssFontFaceRuleTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/CssFontFaceRuleTest.java index c4a2c8f4b9..75bb8bfa60 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/CssFontFaceRuleTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/CssFontFaceRuleTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/CssFontFaceSrcTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/CssFontFaceSrcTest.java index 04e9ac2b38..00b56dd555 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/CssFontFaceSrcTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/CssFontFaceSrcTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/CssFontFaceTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/CssFontFaceTest.java index cf789222c7..09b1a25f05 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/CssFontFaceTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/CssFontFaceTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/CssMatchingTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/CssMatchingTest.java index 1d331569e7..cd01950438 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/CssMatchingTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/CssMatchingTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/CssNestedAtRuleFactoryTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/CssNestedAtRuleFactoryTest.java index 6f6ef8e606..536d5b6697 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/CssNestedAtRuleFactoryTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/CssNestedAtRuleFactoryTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/media/CssMediaRuleTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/media/CssMediaRuleTest.java index 886773f1fb..67aaa9bb8f 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/media/CssMediaRuleTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/media/CssMediaRuleTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/media/MediaExpressionTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/media/MediaExpressionTest.java index b18129eb30..1631fd7edd 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/media/MediaExpressionTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/media/MediaExpressionTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/media/MediaQueryTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/media/MediaQueryTest.java index a480f16486..ba60d48cb3 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/media/MediaQueryTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/media/MediaQueryTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/page/PageMarginBoxContextNodeTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/page/PageMarginBoxContextNodeTest.java index b4d14bf480..f042e9517c 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/page/PageMarginBoxContextNodeTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/page/PageMarginBoxContextNodeTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/parse/CssRuleSetParserTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/parse/CssRuleSetParserTest.java index d9a8177ae5..7f2151930d 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/parse/CssRuleSetParserTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/parse/CssRuleSetParserTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/parse/CssSelectorParserTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/parse/CssSelectorParserTest.java index 5f26a8ce8e..731877a1e0 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/parse/CssSelectorParserTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/parse/CssSelectorParserTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/parse/CssStyleAttributeParseTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/parse/CssStyleAttributeParseTest.java index d00f0292f8..b75ff91707 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/parse/CssStyleAttributeParseTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/parse/CssStyleAttributeParseTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/parse/CssStyleSheetParserTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/parse/CssStyleSheetParserTest.java index 872aea8acf..bc74562425 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/parse/CssStyleSheetParserTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/parse/CssStyleSheetParserTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify @@ -135,10 +135,8 @@ public void test10() throws IOException { } @Test + // TODO DEVSIX-6364 Fix the body declarations duplication for each pageSelector part public void test11() throws IOException { - // TODO in this test declarations of the page at-rule with compound selector are duplicated. - // See CssPageRule#addBodyCssDeclarations() method for the reason and possible solution if this becomes important. - String cssFile = sourceFolder + "css11.css"; String cmpFile = sourceFolder + "cmp_css11.css"; CssStyleSheet styleSheet = CssStyleSheetParser.parse(new FileInputStream(cssFile)); diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/pseudo/CssPseudoElementNodeTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/pseudo/CssPseudoElementNodeTest.java index d0268fd649..912f2eb815 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/pseudo/CssPseudoElementNodeTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/pseudo/CssPseudoElementNodeTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/pseudo/CssPseudoElementUtilTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/pseudo/CssPseudoElementUtilTest.java index 17252f2497..44af3320a2 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/pseudo/CssPseudoElementUtilTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/pseudo/CssPseudoElementUtilTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/CssDeclarationValueTokenizerTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/CssDeclarationValueTokenizerTest.java index 0c85ad4e74..2dd5f00e2a 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/CssDeclarationValueTokenizerTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/CssDeclarationValueTokenizerTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/CssInheritanceUnitTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/CssInheritanceUnitTest.java index 811082cfe6..1f9cc7539d 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/CssInheritanceUnitTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/CssInheritanceUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/CssPropertyMergerUnitTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/CssPropertyMergerUnitTest.java index 480bf240d9..4952b2c9fc 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/CssPropertyMergerUnitTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/CssPropertyMergerUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/BackgroundPositionShorthandResolverTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/BackgroundPositionShorthandResolverTest.java index cc9bb2bc53..68ab5ffa1c 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/BackgroundPositionShorthandResolverTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/BackgroundPositionShorthandResolverTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/BackgroundShorthandResolverTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/BackgroundShorthandResolverTest.java index 7bc4665140..f5bc02c9cf 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/BackgroundShorthandResolverTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/BackgroundShorthandResolverTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/CssShorthandResolverTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/CssShorthandResolverTest.java index eab638cd5c..682bad487a 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/CssShorthandResolverTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/CssShorthandResolverTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/FlexFlowShorthandResolverTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/FlexFlowShorthandResolverTest.java index 4418062fc0..5fb43f91d6 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/FlexFlowShorthandResolverTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/FlexFlowShorthandResolverTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/FlexShorthandResolverTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/FlexShorthandResolverTest.java index 005365acc9..3f2cb733a2 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/FlexShorthandResolverTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/FlexShorthandResolverTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/GapShorthandResolverTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/GapShorthandResolverTest.java index ff58b1a4ce..f752965bc4 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/GapShorthandResolverTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/GapShorthandResolverTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/PlaceItemsShorthandResolverTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/PlaceItemsShorthandResolverTest.java index 90a649abcc..44b8f365a3 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/PlaceItemsShorthandResolverTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/PlaceItemsShorthandResolverTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/TextDecorationUnitTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/TextDecorationUnitTest.java index 44bf056bf5..b2fec823f8 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/TextDecorationUnitTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/resolve/shorthand/TextDecorationUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/selector/item/CssMatchesTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/selector/item/CssMatchesTest.java index b4fb521b49..2a716abeae 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/selector/item/CssMatchesTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/selector/item/CssMatchesTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassDisabledSelectorItemTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassDisabledSelectorItemTest.java index 64e559fe25..1f1e8f7b20 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassDisabledSelectorItemTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/selector/item/CssPseudoClassDisabledSelectorItemTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/selector/item/SpecificityCalculationTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/selector/item/SpecificityCalculationTest.java index 22fbbf25ca..e9c2add011 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/selector/item/SpecificityCalculationTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/selector/item/SpecificityCalculationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/util/CssBackgroundUtilsTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/util/CssBackgroundUtilsTest.java index 13bf0b4004..acc495e3c8 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/util/CssBackgroundUtilsTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/util/CssBackgroundUtilsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/util/CssDimensionParsingUtilsTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/util/CssDimensionParsingUtilsTest.java index 1e175f0c2e..19aae3887e 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/util/CssDimensionParsingUtilsTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/util/CssDimensionParsingUtilsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/util/CssGradientUtilTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/util/CssGradientUtilTest.java index 19aaedefe4..cf6d24333a 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/util/CssGradientUtilTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/util/CssGradientUtilTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/util/CssPropertyNormalizerTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/util/CssPropertyNormalizerTest.java index 278975fb5c..8a45cacbf1 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/util/CssPropertyNormalizerTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/util/CssPropertyNormalizerTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/util/CssTypesValidationUtilsTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/util/CssTypesValidationUtilsTest.java index 263be2859a..8cd9f29895 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/util/CssTypesValidationUtilsTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/util/CssTypesValidationUtilsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/util/CssUtilsTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/util/CssUtilsTest.java index de8830778b..0487534ca0 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/util/CssUtilsTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/util/CssUtilsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/ArrayDataTypeValidatorTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/ArrayDataTypeValidatorTest.java index d33f8afcc7..c336198e04 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/ArrayDataTypeValidatorTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/ArrayDataTypeValidatorTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/CssBackgroundValidatorTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/CssBackgroundValidatorTest.java index 4c4e3de399..b334ad1c36 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/CssBackgroundValidatorTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/CssBackgroundValidatorTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/CssBlendModeValidatorTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/CssBlendModeValidatorTest.java index 5ecebc4f9f..fd0a8c7153 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/CssBlendModeValidatorTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/CssBlendModeValidatorTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/CssDeclarationValidationMasterTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/CssDeclarationValidationMasterTest.java index 4b8943b4f6..d7388094d7 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/CssDeclarationValidationMasterTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/CssDeclarationValidationMasterTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/CssLengthValueValidatorTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/CssLengthValueValidatorTest.java index 510c97b58a..49c61f0813 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/CssLengthValueValidatorTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/CssLengthValueValidatorTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/CssNumberValueValidatorTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/CssNumberValueValidatorTest.java index 4227f46e9b..f9b67fbcde 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/CssNumberValueValidatorTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/CssNumberValueValidatorTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/CssPercentageValueValidatorTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/CssPercentageValueValidatorTest.java index 562f04859d..4ed63bb5bb 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/CssPercentageValueValidatorTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/css/validate/CssPercentageValueValidatorTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/JsoupXmlParserTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/JsoupXmlParserTest.java index 2750faf4be..38ef5b2996 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/JsoupXmlParserTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/JsoupXmlParserTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/PortUtilTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/PortUtilTest.java index 1197a1b399..d6d97dc1f2 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/PortUtilTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/PortUtilTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/TextUtil.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/TextUtil.java index 56ddeb24ae..abf364ea06 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/TextUtil.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/TextUtil.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/helper/DataUtilTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/helper/DataUtilTest.java index 9d4f88cf86..ba0dd83d29 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/helper/DataUtilTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/helper/DataUtilTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/helper/ValidateTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/helper/ValidateTest.java index 83a79221f2..c6d15eb0b9 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/helper/ValidateTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/helper/ValidateTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/integration/FuzzFixesTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/integration/FuzzFixesTest.java index b4b57289ed..d26d33d375 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/integration/FuzzFixesTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/integration/FuzzFixesTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/integration/ParseTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/integration/ParseTest.java index 202c728f0c..1fed987c44 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/integration/ParseTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/integration/ParseTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/integration/SafelistExtensionTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/integration/SafelistExtensionTest.java index 8eb51ca04e..2311485fa7 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/integration/SafelistExtensionTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/integration/SafelistExtensionTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/internal/StringUtilTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/internal/StringUtilTest.java index 40eb02fe14..ad5ab327de 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/internal/StringUtilTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/internal/StringUtilTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/AttributeTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/AttributeTest.java index 83070f7ba9..d0212d2830 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/AttributeTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/AttributeTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/AttributesTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/AttributesTest.java index 285baff22c..912f3cfdd1 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/AttributesTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/AttributesTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/CommentTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/CommentTest.java index 203406b162..5c75876070 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/CommentTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/CommentTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/DocumentTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/DocumentTest.java index 9b292f7af5..17ae6fcef3 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/DocumentTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/DocumentTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/DocumentTypeTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/DocumentTypeTest.java index 0e6328422c..edb64085f6 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/DocumentTypeTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/DocumentTypeTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/ElementItTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/ElementItTest.java index c581beb91e..1e3edf4400 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/ElementItTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/ElementItTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/ElementTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/ElementTest.java index 14bc5154b9..2a063c901c 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/ElementTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/ElementTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/EntitiesTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/EntitiesTest.java index b63f06c139..1da9b14dc0 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/EntitiesTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/EntitiesTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/FormElementTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/FormElementTest.java index b819d6754b..72ac6edb63 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/FormElementTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/FormElementTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/LeafNodeTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/LeafNodeTest.java index 98323640f9..2e312bef3b 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/LeafNodeTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/LeafNodeTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/NodeTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/NodeTest.java index 0e8b030d36..c8c4c8adc7 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/NodeTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/NodeTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/TextNodeTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/TextNodeTest.java index 28d1fb078e..df06b14b00 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/TextNodeTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/nodes/TextNodeTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/AttributeParseTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/AttributeParseTest.java index cce55eb4b1..4f330e3f78 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/AttributeParseTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/AttributeParseTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/CharacterReaderTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/CharacterReaderTest.java index be1fd965de..5251913a46 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/CharacterReaderTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/CharacterReaderTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/HtmlParserTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/HtmlParserTest.java index 699b102a6e..2a95ca433b 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/HtmlParserTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/HtmlParserTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/HtmlTreeBuilderStateTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/HtmlTreeBuilderStateTest.java index 02902f1aa8..054d06c5f2 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/HtmlTreeBuilderStateTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/HtmlTreeBuilderStateTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/MultiLocaleTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/MultiLocaleTest.java index 3f48496ba9..8ffd7f6fd4 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/MultiLocaleTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/MultiLocaleTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/ParserItTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/ParserItTest.java index ebf934f401..ec2e616c4a 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/ParserItTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/ParserItTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/ParserTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/ParserTest.java index 8710a59478..ce10768062 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/ParserTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/ParserTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/TagTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/TagTest.java index aa26a3b6ec..aaebf047b9 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/TagTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/TagTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/TokenQueueTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/TokenQueueTest.java index 77808a12b6..a3914fab91 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/TokenQueueTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/TokenQueueTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/TokeniserStateTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/TokeniserStateTest.java index a54d460f95..adb9801d08 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/TokeniserStateTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/TokeniserStateTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/TokeniserTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/TokeniserTest.java index 75e00568f5..9ee7114a08 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/TokeniserTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/TokeniserTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/XmlTreeBuilderTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/XmlTreeBuilderTest.java index 4d61cacb80..161fdd1361 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/XmlTreeBuilderTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/parser/XmlTreeBuilderTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/safety/CleanerTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/safety/CleanerTest.java index aa0be24af6..241a34360b 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/safety/CleanerTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/safety/CleanerTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/safety/CompatibilityTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/safety/CompatibilityTest.java index f3fb42d103..c53b33936b 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/safety/CompatibilityTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/safety/CompatibilityTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/safety/MultiLocaleTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/safety/MultiLocaleTest.java index ffe8ee76d9..adb564b283 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/safety/MultiLocaleTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/safety/MultiLocaleTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/select/CssTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/select/CssTest.java index 6d715e50d0..39e6242f34 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/select/CssTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/select/CssTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/select/ElementsTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/select/ElementsTest.java index 50f3222921..f8dbb4b9db 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/select/ElementsTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/select/ElementsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/select/MultiLocaleTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/select/MultiLocaleTest.java index d79ccfcb97..2ea1921b75 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/select/MultiLocaleTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/select/MultiLocaleTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/select/QueryParserTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/select/QueryParserTest.java index d76f108987..c26bf9ed2b 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/select/QueryParserTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/select/QueryParserTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/select/SelectorTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/select/SelectorTest.java index 170fff69b2..3a4578a9c4 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/select/SelectorTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/select/SelectorTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/select/TraversorTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/select/TraversorTest.java index df0dc70f27..005df6b7ed 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/select/TraversorTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/jsoup/select/TraversorTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/resolver/resource/LimitedInputStreamTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/resolver/resource/LimitedInputStreamTest.java index 295f71429a..5059a60cbb 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/resolver/resource/LimitedInputStreamTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/resolver/resource/LimitedInputStreamTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/resolver/resource/ResourceResolverTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/resolver/resource/ResourceResolverTest.java index d988553a8a..3fe293bfd6 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/resolver/resource/ResourceResolverTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/resolver/resource/ResourceResolverTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/resolver/resource/SimpleImageCacheTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/resolver/resource/SimpleImageCacheTest.java index 53eb548c56..2d11912043 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/resolver/resource/SimpleImageCacheTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/resolver/resource/SimpleImageCacheTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/resolver/resource/UriResolverTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/resolver/resource/UriResolverTest.java index bd35ed45b4..c44cc23035 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/resolver/resource/UriResolverTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/resolver/resource/UriResolverTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify @@ -237,13 +237,28 @@ public void uriResolverTest14() throws MalformedURLException { UriResolver resolver = new UriResolver("base/uri/index.html"); String runFolder = Paths.get("").toUri().toURL().toExternalForm(); Assert.assertEquals(runFolder + "base/uri/index.html", resolver.getBaseUri()); - Assert.assertEquals("file:/c:/test/folder/img.txt", resolver.resolveAgainstBaseUri("file:/c:/test/folder/img.txt").toExternalForm()); - Assert.assertEquals("file://c:/test/folder/img.txt", resolver.resolveAgainstBaseUri("file://c:/test/folder/img.txt").toExternalForm()); - Assert.assertEquals("file:/c:/test/folder/data.jpg", resolver.resolveAgainstBaseUri("file:///c:/test/folder/data.jpg").toExternalForm()); + + final String firstUriResolvingResult = resolver.resolveAgainstBaseUri("file:/c:/test/folder/img.txt") + .toExternalForm(); + final String expectedUriWithSingleSlash = "file:/c:/test/folder/img.txt"; + final String expectedUriWithTripleSlash = "file:///c:/test/folder/img.txt"; + + // Both variants(namely with triple and single slashes) are valid. + Assert.assertTrue(expectedUriWithSingleSlash.equals(firstUriResolvingResult) + || expectedUriWithTripleSlash.equals(firstUriResolvingResult)); + + Assert.assertEquals("file://c:/test/folder/img.txt", + resolver.resolveAgainstBaseUri("file://c:/test/folder/img.txt").toExternalForm()); + + final String thirdUriResolvingResult = resolver.resolveAgainstBaseUri("file:///c:/test/folder/img.txt") + .toExternalForm(); + // Result of resolving uri with triple slash should be the same as if it contained single slash. + Assert.assertEquals(firstUriResolvingResult, thirdUriResolvingResult); // It is windows specific to assume this to work. On unix it shall fail, as it will assume that it is // an absolute URI with scheme 'c', and will not recognize this scheme. - // Assert.assertEquals("file:/c:/test/folder/data.jpg", resolver.resolveAgainstBaseUri("c:/test/folder/data.jpg").toExternalForm()); + // Assert.assertEquals("file:/c:/test/folder/data.jpg", resolver.resolveAgainstBaseUri("c:/test/folder/data + // .jpg").toExternalForm()); } @Test diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/util/FontFamilySplitterTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/util/FontFamilySplitterTest.java index 9e2c840cef..a8fe9b0c77 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/util/FontFamilySplitterTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/util/FontFamilySplitterTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/util/StyleUtilUnitTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/util/StyleUtilUnitTest.java index de1867fe25..461d11669f 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/util/StyleUtilUnitTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/util/StyleUtilUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/util/WhiteSpaceUtilUnitTest.java b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/util/WhiteSpaceUtilUnitTest.java index 65987ec49c..9da75c1385 100644 --- a/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/util/WhiteSpaceUtilUnitTest.java +++ b/styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/util/WhiteSpaceUtilUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/pom.xml b/svg/pom.xml index fba6a86658..0d95bc9813 100644 --- a/svg/pom.xml +++ b/svg/pom.xml @@ -4,7 +4,7 @@ com.itextpdf root - 7.2.1 + 7.2.2 svg iText 7 - SVG diff --git a/svg/src/main/java/com/itextpdf/svg/MarkerVertexType.java b/svg/src/main/java/com/itextpdf/svg/MarkerVertexType.java index 74e9562a1a..84069ab421 100644 --- a/svg/src/main/java/com/itextpdf/svg/MarkerVertexType.java +++ b/svg/src/main/java/com/itextpdf/svg/MarkerVertexType.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/main/java/com/itextpdf/svg/SvgConstants.java b/svg/src/main/java/com/itextpdf/svg/SvgConstants.java index 7c4e23ae0f..dc64b20de2 100644 --- a/svg/src/main/java/com/itextpdf/svg/SvgConstants.java +++ b/svg/src/main/java/com/itextpdf/svg/SvgConstants.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/converter/SvgConverter.java b/svg/src/main/java/com/itextpdf/svg/converter/SvgConverter.java index 21a0938931..9066576f71 100644 --- a/svg/src/main/java/com/itextpdf/svg/converter/SvgConverter.java +++ b/svg/src/main/java/com/itextpdf/svg/converter/SvgConverter.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/css/SvgCssContext.java b/svg/src/main/java/com/itextpdf/svg/css/SvgCssContext.java index 7fa654bcbd..9e1152fa2f 100644 --- a/svg/src/main/java/com/itextpdf/svg/css/SvgCssContext.java +++ b/svg/src/main/java/com/itextpdf/svg/css/SvgCssContext.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/css/impl/SvgAttributeInheritance.java b/svg/src/main/java/com/itextpdf/svg/css/impl/SvgAttributeInheritance.java index 63010b0b35..c12ab5b101 100644 --- a/svg/src/main/java/com/itextpdf/svg/css/impl/SvgAttributeInheritance.java +++ b/svg/src/main/java/com/itextpdf/svg/css/impl/SvgAttributeInheritance.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: Bruno Lowagie, Paulo Soares, et al. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/css/impl/SvgNodeRendererInheritanceResolver.java b/svg/src/main/java/com/itextpdf/svg/css/impl/SvgNodeRendererInheritanceResolver.java index 8ebbaae745..95c96c8712 100644 --- a/svg/src/main/java/com/itextpdf/svg/css/impl/SvgNodeRendererInheritanceResolver.java +++ b/svg/src/main/java/com/itextpdf/svg/css/impl/SvgNodeRendererInheritanceResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/css/impl/SvgStyleResolver.java b/svg/src/main/java/com/itextpdf/svg/css/impl/SvgStyleResolver.java index c9c55dd397..5fcce1e631 100644 --- a/svg/src/main/java/com/itextpdf/svg/css/impl/SvgStyleResolver.java +++ b/svg/src/main/java/com/itextpdf/svg/css/impl/SvgStyleResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/exceptions/SvgExceptionMessageConstant.java b/svg/src/main/java/com/itextpdf/svg/exceptions/SvgExceptionMessageConstant.java index f9410b5a42..0f749639f2 100644 --- a/svg/src/main/java/com/itextpdf/svg/exceptions/SvgExceptionMessageConstant.java +++ b/svg/src/main/java/com/itextpdf/svg/exceptions/SvgExceptionMessageConstant.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/exceptions/SvgProcessingException.java b/svg/src/main/java/com/itextpdf/svg/exceptions/SvgProcessingException.java index b74c27c42a..7c644f9dc9 100644 --- a/svg/src/main/java/com/itextpdf/svg/exceptions/SvgProcessingException.java +++ b/svg/src/main/java/com/itextpdf/svg/exceptions/SvgProcessingException.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/logs/SvgLogMessageConstant.java b/svg/src/main/java/com/itextpdf/svg/logs/SvgLogMessageConstant.java index aab6cad0fa..c8da4d187e 100644 --- a/svg/src/main/java/com/itextpdf/svg/logs/SvgLogMessageConstant.java +++ b/svg/src/main/java/com/itextpdf/svg/logs/SvgLogMessageConstant.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/processors/ISvgConverterProperties.java b/svg/src/main/java/com/itextpdf/svg/processors/ISvgConverterProperties.java index 0b7330a8de..afb915ae32 100644 --- a/svg/src/main/java/com/itextpdf/svg/processors/ISvgConverterProperties.java +++ b/svg/src/main/java/com/itextpdf/svg/processors/ISvgConverterProperties.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/processors/ISvgProcessor.java b/svg/src/main/java/com/itextpdf/svg/processors/ISvgProcessor.java index e76a3efdf6..98e4667a71 100644 --- a/svg/src/main/java/com/itextpdf/svg/processors/ISvgProcessor.java +++ b/svg/src/main/java/com/itextpdf/svg/processors/ISvgProcessor.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/processors/ISvgProcessorResult.java b/svg/src/main/java/com/itextpdf/svg/processors/ISvgProcessorResult.java index 827e9800b4..0772e82e3b 100644 --- a/svg/src/main/java/com/itextpdf/svg/processors/ISvgProcessorResult.java +++ b/svg/src/main/java/com/itextpdf/svg/processors/ISvgProcessorResult.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/processors/impl/DefaultSvgProcessor.java b/svg/src/main/java/com/itextpdf/svg/processors/impl/DefaultSvgProcessor.java index 62999d88d7..ed71a82d16 100644 --- a/svg/src/main/java/com/itextpdf/svg/processors/impl/DefaultSvgProcessor.java +++ b/svg/src/main/java/com/itextpdf/svg/processors/impl/DefaultSvgProcessor.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/processors/impl/ProcessorState.java b/svg/src/main/java/com/itextpdf/svg/processors/impl/ProcessorState.java index 9cfe109fde..d18a59b176 100644 --- a/svg/src/main/java/com/itextpdf/svg/processors/impl/ProcessorState.java +++ b/svg/src/main/java/com/itextpdf/svg/processors/impl/ProcessorState.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/processors/impl/SvgConverterProperties.java b/svg/src/main/java/com/itextpdf/svg/processors/impl/SvgConverterProperties.java index 036bb641a9..ccda5a3467 100644 --- a/svg/src/main/java/com/itextpdf/svg/processors/impl/SvgConverterProperties.java +++ b/svg/src/main/java/com/itextpdf/svg/processors/impl/SvgConverterProperties.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/processors/impl/SvgProcessorContext.java b/svg/src/main/java/com/itextpdf/svg/processors/impl/SvgProcessorContext.java index 8675ba82bb..64f0d931f9 100644 --- a/svg/src/main/java/com/itextpdf/svg/processors/impl/SvgProcessorContext.java +++ b/svg/src/main/java/com/itextpdf/svg/processors/impl/SvgProcessorContext.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/processors/impl/SvgProcessorResult.java b/svg/src/main/java/com/itextpdf/svg/processors/impl/SvgProcessorResult.java index b5416dfa2d..e25844cf69 100644 --- a/svg/src/main/java/com/itextpdf/svg/processors/impl/SvgProcessorResult.java +++ b/svg/src/main/java/com/itextpdf/svg/processors/impl/SvgProcessorResult.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/processors/impl/font/SvgFontProcessor.java b/svg/src/main/java/com/itextpdf/svg/processors/impl/font/SvgFontProcessor.java index d8b163d6f1..3f601cf2b3 100644 --- a/svg/src/main/java/com/itextpdf/svg/processors/impl/font/SvgFontProcessor.java +++ b/svg/src/main/java/com/itextpdf/svg/processors/impl/font/SvgFontProcessor.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/IBranchSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/IBranchSvgNodeRenderer.java index dec573c805..7ad231cec4 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/IBranchSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/IBranchSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/IMarkerCapable.java b/svg/src/main/java/com/itextpdf/svg/renderers/IMarkerCapable.java index 9c2eadf8ed..2638b7cf47 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/IMarkerCapable.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/IMarkerCapable.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/INoDrawSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/INoDrawSvgNodeRenderer.java index c5be858896..38ce4e5985 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/INoDrawSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/INoDrawSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/ISvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/ISvgNodeRenderer.java index 7aad96a35a..176195f285 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/ISvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/ISvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/ISvgPaintServer.java b/svg/src/main/java/com/itextpdf/svg/renderers/ISvgPaintServer.java index efe6f2652c..50de2d814e 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/ISvgPaintServer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/ISvgPaintServer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/SvgDrawContext.java b/svg/src/main/java/com/itextpdf/svg/renderers/SvgDrawContext.java index a00d7d2299..469f360972 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/SvgDrawContext.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/SvgDrawContext.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/factories/DefaultSvgNodeRendererFactory.java b/svg/src/main/java/com/itextpdf/svg/renderers/factories/DefaultSvgNodeRendererFactory.java index bc2be78bb0..4475e068b7 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/factories/DefaultSvgNodeRendererFactory.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/factories/DefaultSvgNodeRendererFactory.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/factories/DefaultSvgNodeRendererMapper.java b/svg/src/main/java/com/itextpdf/svg/renderers/factories/DefaultSvgNodeRendererMapper.java index 206421ddae..7abe2b31b9 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/factories/DefaultSvgNodeRendererMapper.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/factories/DefaultSvgNodeRendererMapper.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/factories/ISvgNodeRendererFactory.java b/svg/src/main/java/com/itextpdf/svg/renderers/factories/ISvgNodeRendererFactory.java index 1a7b1cda13..770eb2153f 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/factories/ISvgNodeRendererFactory.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/factories/ISvgNodeRendererFactory.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/AbstractBranchSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/AbstractBranchSvgNodeRenderer.java index 911974df1e..19fe868a30 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/AbstractBranchSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/AbstractBranchSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/AbstractContainerSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/AbstractContainerSvgNodeRenderer.java index 381b9436ec..98c3baff29 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/AbstractContainerSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/AbstractContainerSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/AbstractGradientSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/AbstractGradientSvgNodeRenderer.java index 4e3e6ace00..d66c49cca8 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/AbstractGradientSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/AbstractGradientSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/AbstractSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/AbstractSvgNodeRenderer.java index e1de79e3b0..bc2e9228e9 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/AbstractSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/AbstractSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/CircleSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/CircleSvgNodeRenderer.java index 231b1b636a..9d96ce4733 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/CircleSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/CircleSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/ClipPathSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/ClipPathSvgNodeRenderer.java index a653044490..c9b41fb119 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/ClipPathSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/ClipPathSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/DefsSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/DefsSvgNodeRenderer.java index edf8451b01..a749b74a3a 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/DefsSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/DefsSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/EllipseSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/EllipseSvgNodeRenderer.java index 47425ea423..c6df0a5708 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/EllipseSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/EllipseSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/GroupSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/GroupSvgNodeRenderer.java index 7fb04813e6..286f89e7be 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/GroupSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/GroupSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/ISvgTextNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/ISvgTextNodeRenderer.java index dcd3d94b31..b3094d5df2 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/ISvgTextNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/ISvgTextNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/ImageSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/ImageSvgNodeRenderer.java index 62d5c45b16..1695ce5490 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/ImageSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/ImageSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/LineSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/LineSvgNodeRenderer.java index 4ea53f5494..41ec9ef73a 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/LineSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/LineSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/LinearGradientSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/LinearGradientSvgNodeRenderer.java index 129112cfb5..c845b71a82 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/LinearGradientSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/LinearGradientSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/MarkerSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/MarkerSvgNodeRenderer.java index acdfecc9a9..1a97ff982b 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/MarkerSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/MarkerSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/PathSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/PathSvgNodeRenderer.java index 1b8db55d56..c74f4bbf68 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/PathSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/PathSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/PatternSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/PatternSvgNodeRenderer.java index 3be5f4925e..abbd4422ae 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/PatternSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/PatternSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/PdfRootSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/PdfRootSvgNodeRenderer.java index 1dee4ba529..872c78b2d2 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/PdfRootSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/PdfRootSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/PolygonSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/PolygonSvgNodeRenderer.java index d6fda58087..35c43156ba 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/PolygonSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/PolygonSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/PolylineSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/PolylineSvgNodeRenderer.java index 0b2eb265d7..314f4735d6 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/PolylineSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/PolylineSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/RectangleSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/RectangleSvgNodeRenderer.java index f3efc39fd2..022013f0d0 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/RectangleSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/RectangleSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/StopSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/StopSvgNodeRenderer.java index 13308a3837..376fdb5603 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/StopSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/StopSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/SvgTagSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/SvgTagSvgNodeRenderer.java index f045fd8799..a54223735c 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/SvgTagSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/SvgTagSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/SymbolSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/SymbolSvgNodeRenderer.java index 3ad768e367..b2fd182dd1 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/SymbolSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/SymbolSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/TextLeafSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/TextLeafSvgNodeRenderer.java index 3f4f77f8f4..fd674c7c12 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/TextLeafSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/TextLeafSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/TextSvgBranchRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/TextSvgBranchRenderer.java index c2a17b037a..48d34a39cb 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/TextSvgBranchRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/TextSvgBranchRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/TextSvgTSpanBranchRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/TextSvgTSpanBranchRenderer.java index bebd22db45..6e3ba6d4d5 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/TextSvgTSpanBranchRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/TextSvgTSpanBranchRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/impl/UseSvgNodeRenderer.java b/svg/src/main/java/com/itextpdf/svg/renderers/impl/UseSvgNodeRenderer.java index 848b6b85aa..a18f82cffb 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/impl/UseSvgNodeRenderer.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/impl/UseSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/path/IPathShape.java b/svg/src/main/java/com/itextpdf/svg/renderers/path/IPathShape.java index 7220ff01d4..bac049af73 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/path/IPathShape.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/path/IPathShape.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/path/IPathShapeMapper.java b/svg/src/main/java/com/itextpdf/svg/renderers/path/IPathShapeMapper.java index 279b84d94d..a45e2ece91 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/path/IPathShapeMapper.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/path/IPathShapeMapper.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/path/SvgPathShapeFactory.java b/svg/src/main/java/com/itextpdf/svg/renderers/path/SvgPathShapeFactory.java index 961394c212..6bfcff44dc 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/path/SvgPathShapeFactory.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/path/SvgPathShapeFactory.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/AbstractPathShape.java b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/AbstractPathShape.java index 3ae8db46af..b3de215c5f 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/AbstractPathShape.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/AbstractPathShape.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/ClosePath.java b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/ClosePath.java index 06a7effb5f..7d2a9f44cd 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/ClosePath.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/ClosePath.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/CurveTo.java b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/CurveTo.java index 5d15c4b08e..8931dad9e8 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/CurveTo.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/CurveTo.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/EllipticalCurveTo.java b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/EllipticalCurveTo.java index 4c1e88c635..d7ef53b6d2 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/EllipticalCurveTo.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/EllipticalCurveTo.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/HorizontalLineTo.java b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/HorizontalLineTo.java index 0af05e2e42..95006451c2 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/HorizontalLineTo.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/HorizontalLineTo.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/IControlPointCurve.java b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/IControlPointCurve.java index 7f6bd314bc..753fa477f8 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/IControlPointCurve.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/IControlPointCurve.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/IOperatorConverter.java b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/IOperatorConverter.java index 039e9b5f80..510be528b3 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/IOperatorConverter.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/IOperatorConverter.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/LineTo.java b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/LineTo.java index 93eed37fcf..a34a8f7429 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/LineTo.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/LineTo.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/MoveTo.java b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/MoveTo.java index 3c33b0f79d..2f513a4def 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/MoveTo.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/MoveTo.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/PathShapeMapper.java b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/PathShapeMapper.java index 0d3eaf75a7..f3c934f519 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/PathShapeMapper.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/PathShapeMapper.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/QuadraticCurveTo.java b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/QuadraticCurveTo.java index 10470f5fbc..df131c194b 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/QuadraticCurveTo.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/QuadraticCurveTo.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/QuadraticSmoothCurveTo.java b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/QuadraticSmoothCurveTo.java index b4ee06137b..55010b486d 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/QuadraticSmoothCurveTo.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/QuadraticSmoothCurveTo.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/SmoothSCurveTo.java b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/SmoothSCurveTo.java index b81d9849b7..b4b19fe64d 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/SmoothSCurveTo.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/SmoothSCurveTo.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/VerticalLineTo.java b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/VerticalLineTo.java index 2d832fa242..649b6ee061 100644 --- a/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/VerticalLineTo.java +++ b/svg/src/main/java/com/itextpdf/svg/renderers/path/impl/VerticalLineTo.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/utils/DrawUtils.java b/svg/src/main/java/com/itextpdf/svg/utils/DrawUtils.java index 3ce61f0ba8..8b9011a4c5 100644 --- a/svg/src/main/java/com/itextpdf/svg/utils/DrawUtils.java +++ b/svg/src/main/java/com/itextpdf/svg/utils/DrawUtils.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/utils/SvgCoordinateUtils.java b/svg/src/main/java/com/itextpdf/svg/utils/SvgCoordinateUtils.java index 63829758ae..8a1929b911 100644 --- a/svg/src/main/java/com/itextpdf/svg/utils/SvgCoordinateUtils.java +++ b/svg/src/main/java/com/itextpdf/svg/utils/SvgCoordinateUtils.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/utils/SvgCssUtils.java b/svg/src/main/java/com/itextpdf/svg/utils/SvgCssUtils.java index 9426c57f73..50dbcaa8c3 100644 --- a/svg/src/main/java/com/itextpdf/svg/utils/SvgCssUtils.java +++ b/svg/src/main/java/com/itextpdf/svg/utils/SvgCssUtils.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/utils/SvgTextUtil.java b/svg/src/main/java/com/itextpdf/svg/utils/SvgTextUtil.java index 35f2140fad..506fbf9afe 100644 --- a/svg/src/main/java/com/itextpdf/svg/utils/SvgTextUtil.java +++ b/svg/src/main/java/com/itextpdf/svg/utils/SvgTextUtil.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/main/java/com/itextpdf/svg/utils/TextRectangle.java b/svg/src/main/java/com/itextpdf/svg/utils/TextRectangle.java index f2fbc9bea9..627964a6ec 100644 --- a/svg/src/main/java/com/itextpdf/svg/utils/TextRectangle.java +++ b/svg/src/main/java/com/itextpdf/svg/utils/TextRectangle.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/main/java/com/itextpdf/svg/utils/TransformUtils.java b/svg/src/main/java/com/itextpdf/svg/utils/TransformUtils.java index 63d43572c0..20ef111517 100644 --- a/svg/src/main/java/com/itextpdf/svg/utils/TransformUtils.java +++ b/svg/src/main/java/com/itextpdf/svg/utils/TransformUtils.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/converter/SvgConverterIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/converter/SvgConverterIntegrationTest.java index 5e50be3614..445953214c 100644 --- a/svg/src/test/java/com/itextpdf/svg/converter/SvgConverterIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/converter/SvgConverterIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/converter/SvgConverterUnitNullTest.java b/svg/src/test/java/com/itextpdf/svg/converter/SvgConverterUnitNullTest.java index 41f6756d8a..982c72ba03 100644 --- a/svg/src/test/java/com/itextpdf/svg/converter/SvgConverterUnitNullTest.java +++ b/svg/src/test/java/com/itextpdf/svg/converter/SvgConverterUnitNullTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/converter/SvgConverterUnitTest.java b/svg/src/test/java/com/itextpdf/svg/converter/SvgConverterUnitTest.java index 296e606b7a..48030106a0 100644 --- a/svg/src/test/java/com/itextpdf/svg/converter/SvgConverterUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/converter/SvgConverterUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/css/AttributesRelativeUnitTest.java b/svg/src/test/java/com/itextpdf/svg/css/AttributesRelativeUnitTest.java index 41e086432b..8fe86a6924 100644 --- a/svg/src/test/java/com/itextpdf/svg/css/AttributesRelativeUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/css/AttributesRelativeUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/test/java/com/itextpdf/svg/css/DefaultStyleInheritanceIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/css/DefaultStyleInheritanceIntegrationTest.java index 2b5dab6548..83828ff2db 100644 --- a/svg/src/test/java/com/itextpdf/svg/css/DefaultStyleInheritanceIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/css/DefaultStyleInheritanceIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/css/DefaultStylesTest.java b/svg/src/test/java/com/itextpdf/svg/css/DefaultStylesTest.java index ca2b169137..c29678c827 100644 --- a/svg/src/test/java/com/itextpdf/svg/css/DefaultStylesTest.java +++ b/svg/src/test/java/com/itextpdf/svg/css/DefaultStylesTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/css/FontRelativeUnitTest.java b/svg/src/test/java/com/itextpdf/svg/css/FontRelativeUnitTest.java index 144b5804c0..9ef9a7fec4 100644 --- a/svg/src/test/java/com/itextpdf/svg/css/FontRelativeUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/css/FontRelativeUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/test/java/com/itextpdf/svg/css/SvgStyleResolverIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/css/SvgStyleResolverIntegrationTest.java index a37266d8f9..bebd032243 100644 --- a/svg/src/test/java/com/itextpdf/svg/css/SvgStyleResolverIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/css/SvgStyleResolverIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/css/SvgStyleResolverTest.java b/svg/src/test/java/com/itextpdf/svg/css/SvgStyleResolverTest.java index fc0d1a4ff8..f3194af1ab 100644 --- a/svg/src/test/java/com/itextpdf/svg/css/SvgStyleResolverTest.java +++ b/svg/src/test/java/com/itextpdf/svg/css/SvgStyleResolverTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify @@ -186,9 +186,21 @@ public void svgCssResolverXlinkTest() { Map attr = sr.resolveStyles(node, new SvgCssContext()); String fileName = baseUri + "itis.jpg"; - String expectedURL = UrlUtil.toNormalizedURI(fileName).toString(); + final String expectedUrl = UrlUtil.toNormalizedURI(fileName).toString(); + String expectedUrlAnotherValidVersion; - Assert.assertEquals(expectedURL, attr.get("xlink:href")); + if (expectedUrl.startsWith("file:///")) { + expectedUrlAnotherValidVersion = "file:/" + expectedUrl.substring("file:///".length()); + } else if (expectedUrl.startsWith("file:/")) { + expectedUrlAnotherValidVersion = "file:///" + expectedUrl.substring("file:/".length()); + } else { + expectedUrlAnotherValidVersion = expectedUrl; + } + + final String url = attr.get("xlink:href"); + + // Both variants(namely with triple and single slashes) are valid. + Assert.assertTrue(expectedUrl.equals(url) || expectedUrlAnotherValidVersion.equals(url)); } @Test diff --git a/svg/src/test/java/com/itextpdf/svg/css/XLinkTest.java b/svg/src/test/java/com/itextpdf/svg/css/XLinkTest.java index d888be1d21..357e71fdc1 100644 --- a/svg/src/test/java/com/itextpdf/svg/css/XLinkTest.java +++ b/svg/src/test/java/com/itextpdf/svg/css/XLinkTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/css/impl/SvgNodeRendererInheritanceResolverUnitTest.java b/svg/src/test/java/com/itextpdf/svg/css/impl/SvgNodeRendererInheritanceResolverUnitTest.java index 5805ea6f0d..f3a0ae0b16 100644 --- a/svg/src/test/java/com/itextpdf/svg/css/impl/SvgNodeRendererInheritanceResolverUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/css/impl/SvgNodeRendererInheritanceResolverUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/customization/CustomizeTextLeafSvgNodeRendererTest.java b/svg/src/test/java/com/itextpdf/svg/customization/CustomizeTextLeafSvgNodeRendererTest.java index e799177cbd..5d29e8e68d 100644 --- a/svg/src/test/java/com/itextpdf/svg/customization/CustomizeTextLeafSvgNodeRendererTest.java +++ b/svg/src/test/java/com/itextpdf/svg/customization/CustomizeTextLeafSvgNodeRendererTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/test/java/com/itextpdf/svg/dummy/css/impl/DummyCssResolver.java b/svg/src/test/java/com/itextpdf/svg/dummy/css/impl/DummyCssResolver.java index 2b6d7a9839..696bd11f9b 100644 --- a/svg/src/test/java/com/itextpdf/svg/dummy/css/impl/DummyCssResolver.java +++ b/svg/src/test/java/com/itextpdf/svg/dummy/css/impl/DummyCssResolver.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/dummy/factories/DummySvgNodeFactory.java b/svg/src/test/java/com/itextpdf/svg/dummy/factories/DummySvgNodeFactory.java index efd9c61eda..f5410abbe1 100644 --- a/svg/src/test/java/com/itextpdf/svg/dummy/factories/DummySvgNodeFactory.java +++ b/svg/src/test/java/com/itextpdf/svg/dummy/factories/DummySvgNodeFactory.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/dummy/processors/impl/DummySvgConverterProperties.java b/svg/src/test/java/com/itextpdf/svg/dummy/processors/impl/DummySvgConverterProperties.java index f25fb165db..714f97b6d7 100644 --- a/svg/src/test/java/com/itextpdf/svg/dummy/processors/impl/DummySvgConverterProperties.java +++ b/svg/src/test/java/com/itextpdf/svg/dummy/processors/impl/DummySvgConverterProperties.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/dummy/renderers/impl/DummyArgumentedConstructorSvgNodeRenderer.java b/svg/src/test/java/com/itextpdf/svg/dummy/renderers/impl/DummyArgumentedConstructorSvgNodeRenderer.java index 398fef01a7..0bdc6fec67 100644 --- a/svg/src/test/java/com/itextpdf/svg/dummy/renderers/impl/DummyArgumentedConstructorSvgNodeRenderer.java +++ b/svg/src/test/java/com/itextpdf/svg/dummy/renderers/impl/DummyArgumentedConstructorSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/dummy/renderers/impl/DummyBranchSvgNodeRenderer.java b/svg/src/test/java/com/itextpdf/svg/dummy/renderers/impl/DummyBranchSvgNodeRenderer.java index 854f88a5b4..a0cadad58a 100644 --- a/svg/src/test/java/com/itextpdf/svg/dummy/renderers/impl/DummyBranchSvgNodeRenderer.java +++ b/svg/src/test/java/com/itextpdf/svg/dummy/renderers/impl/DummyBranchSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/dummy/renderers/impl/DummyProcessableSvgNodeRenderer.java b/svg/src/test/java/com/itextpdf/svg/dummy/renderers/impl/DummyProcessableSvgNodeRenderer.java index ea5874c9a2..57b42eb035 100644 --- a/svg/src/test/java/com/itextpdf/svg/dummy/renderers/impl/DummyProcessableSvgNodeRenderer.java +++ b/svg/src/test/java/com/itextpdf/svg/dummy/renderers/impl/DummyProcessableSvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/dummy/renderers/impl/DummySvgNodeRenderer.java b/svg/src/test/java/com/itextpdf/svg/dummy/renderers/impl/DummySvgNodeRenderer.java index d587defb78..a264c2aa64 100644 --- a/svg/src/test/java/com/itextpdf/svg/dummy/renderers/impl/DummySvgNodeRenderer.java +++ b/svg/src/test/java/com/itextpdf/svg/dummy/renderers/impl/DummySvgNodeRenderer.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/dummy/sdk/ExceptionInputStream.java b/svg/src/test/java/com/itextpdf/svg/dummy/sdk/ExceptionInputStream.java index b02453c31e..0cad48b12a 100644 --- a/svg/src/test/java/com/itextpdf/svg/dummy/sdk/ExceptionInputStream.java +++ b/svg/src/test/java/com/itextpdf/svg/dummy/sdk/ExceptionInputStream.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/googlecharts/ColumnChartsTest.java b/svg/src/test/java/com/itextpdf/svg/googlecharts/ColumnChartsTest.java index fda4c304ba..582ee8d5ea 100644 --- a/svg/src/test/java/com/itextpdf/svg/googlecharts/ColumnChartsTest.java +++ b/svg/src/test/java/com/itextpdf/svg/googlecharts/ColumnChartsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/googlecharts/GanttChartsTest.java b/svg/src/test/java/com/itextpdf/svg/googlecharts/GanttChartsTest.java index 2defea42a2..068b2466ed 100644 --- a/svg/src/test/java/com/itextpdf/svg/googlecharts/GanttChartsTest.java +++ b/svg/src/test/java/com/itextpdf/svg/googlecharts/GanttChartsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/googlecharts/GaugeChartsTest.java b/svg/src/test/java/com/itextpdf/svg/googlecharts/GaugeChartsTest.java index 6009ec99b5..d1ef1ecd3b 100644 --- a/svg/src/test/java/com/itextpdf/svg/googlecharts/GaugeChartsTest.java +++ b/svg/src/test/java/com/itextpdf/svg/googlecharts/GaugeChartsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/googlecharts/GeoChartsTest.java b/svg/src/test/java/com/itextpdf/svg/googlecharts/GeoChartsTest.java index 277e846b1c..01a7b7312b 100644 --- a/svg/src/test/java/com/itextpdf/svg/googlecharts/GeoChartsTest.java +++ b/svg/src/test/java/com/itextpdf/svg/googlecharts/GeoChartsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/googlecharts/GoogleChartsTest.java b/svg/src/test/java/com/itextpdf/svg/googlecharts/GoogleChartsTest.java index fdb0944ef0..586dced508 100644 --- a/svg/src/test/java/com/itextpdf/svg/googlecharts/GoogleChartsTest.java +++ b/svg/src/test/java/com/itextpdf/svg/googlecharts/GoogleChartsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/googlecharts/IntervalsChartsTest.java b/svg/src/test/java/com/itextpdf/svg/googlecharts/IntervalsChartsTest.java index ad3829136d..fe3005d348 100644 --- a/svg/src/test/java/com/itextpdf/svg/googlecharts/IntervalsChartsTest.java +++ b/svg/src/test/java/com/itextpdf/svg/googlecharts/IntervalsChartsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/googlecharts/LineChartsTest.java b/svg/src/test/java/com/itextpdf/svg/googlecharts/LineChartsTest.java index 816decaf2b..d154a8eaa5 100644 --- a/svg/src/test/java/com/itextpdf/svg/googlecharts/LineChartsTest.java +++ b/svg/src/test/java/com/itextpdf/svg/googlecharts/LineChartsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/googlecharts/PieChartsTest.java b/svg/src/test/java/com/itextpdf/svg/googlecharts/PieChartsTest.java index d252d72da8..6555fbcfe8 100644 --- a/svg/src/test/java/com/itextpdf/svg/googlecharts/PieChartsTest.java +++ b/svg/src/test/java/com/itextpdf/svg/googlecharts/PieChartsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/googlecharts/SankeyChartsTest.java b/svg/src/test/java/com/itextpdf/svg/googlecharts/SankeyChartsTest.java index edb2b12f6b..45c637e095 100644 --- a/svg/src/test/java/com/itextpdf/svg/googlecharts/SankeyChartsTest.java +++ b/svg/src/test/java/com/itextpdf/svg/googlecharts/SankeyChartsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/googlecharts/ScatterChartsTest.java b/svg/src/test/java/com/itextpdf/svg/googlecharts/ScatterChartsTest.java index 305af2b934..0165b4d4a5 100644 --- a/svg/src/test/java/com/itextpdf/svg/googlecharts/ScatterChartsTest.java +++ b/svg/src/test/java/com/itextpdf/svg/googlecharts/ScatterChartsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/googlecharts/SliceChartsTest.java b/svg/src/test/java/com/itextpdf/svg/googlecharts/SliceChartsTest.java index 38e1683589..aac4375153 100644 --- a/svg/src/test/java/com/itextpdf/svg/googlecharts/SliceChartsTest.java +++ b/svg/src/test/java/com/itextpdf/svg/googlecharts/SliceChartsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/googlecharts/SteppedAreaChartTest.java b/svg/src/test/java/com/itextpdf/svg/googlecharts/SteppedAreaChartTest.java index d201f7a34d..686e8be689 100644 --- a/svg/src/test/java/com/itextpdf/svg/googlecharts/SteppedAreaChartTest.java +++ b/svg/src/test/java/com/itextpdf/svg/googlecharts/SteppedAreaChartTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/googlecharts/TimelineChartsTest.java b/svg/src/test/java/com/itextpdf/svg/googlecharts/TimelineChartsTest.java index 4e27543e62..254c931a0f 100644 --- a/svg/src/test/java/com/itextpdf/svg/googlecharts/TimelineChartsTest.java +++ b/svg/src/test/java/com/itextpdf/svg/googlecharts/TimelineChartsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/googlecharts/TreemapsChartsTest.java b/svg/src/test/java/com/itextpdf/svg/googlecharts/TreemapsChartsTest.java index 66feab83c2..d2f543d376 100644 --- a/svg/src/test/java/com/itextpdf/svg/googlecharts/TreemapsChartsTest.java +++ b/svg/src/test/java/com/itextpdf/svg/googlecharts/TreemapsChartsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/googlecharts/TrendlinesChartsTest.java b/svg/src/test/java/com/itextpdf/svg/googlecharts/TrendlinesChartsTest.java index eb5a3d0ac4..8481d021ea 100644 --- a/svg/src/test/java/com/itextpdf/svg/googlecharts/TrendlinesChartsTest.java +++ b/svg/src/test/java/com/itextpdf/svg/googlecharts/TrendlinesChartsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/googlecharts/WordTreesChartsTest.java b/svg/src/test/java/com/itextpdf/svg/googlecharts/WordTreesChartsTest.java index f4e28886f5..24485471da 100644 --- a/svg/src/test/java/com/itextpdf/svg/googlecharts/WordTreesChartsTest.java +++ b/svg/src/test/java/com/itextpdf/svg/googlecharts/WordTreesChartsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/jfreesvg/JFreeSvgTest.java b/svg/src/test/java/com/itextpdf/svg/jfreesvg/JFreeSvgTest.java index 64b37bf1d2..85d4d8d3c8 100644 --- a/svg/src/test/java/com/itextpdf/svg/jfreesvg/JFreeSvgTest.java +++ b/svg/src/test/java/com/itextpdf/svg/jfreesvg/JFreeSvgTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/processors/DefaultSvgProcessorIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/processors/DefaultSvgProcessorIntegrationTest.java index 4d57d971f1..676c99e8ed 100644 --- a/svg/src/test/java/com/itextpdf/svg/processors/DefaultSvgProcessorIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/processors/DefaultSvgProcessorIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/processors/ProcessorStateTest.java b/svg/src/test/java/com/itextpdf/svg/processors/ProcessorStateTest.java index 287d184d2b..a2bbf578ae 100644 --- a/svg/src/test/java/com/itextpdf/svg/processors/ProcessorStateTest.java +++ b/svg/src/test/java/com/itextpdf/svg/processors/ProcessorStateTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/processors/SvgConverterPropertiesTest.java b/svg/src/test/java/com/itextpdf/svg/processors/SvgConverterPropertiesTest.java index 6a026d0af5..d87513d8f6 100644 --- a/svg/src/test/java/com/itextpdf/svg/processors/SvgConverterPropertiesTest.java +++ b/svg/src/test/java/com/itextpdf/svg/processors/SvgConverterPropertiesTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/processors/impl/DefaultSvgProcessorUnitTest.java b/svg/src/test/java/com/itextpdf/svg/processors/impl/DefaultSvgProcessorUnitTest.java index 9bcb02aab3..904ad332e7 100644 --- a/svg/src/test/java/com/itextpdf/svg/processors/impl/DefaultSvgProcessorUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/processors/impl/DefaultSvgProcessorUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify @@ -275,11 +275,14 @@ public void xLinkAttributeBaseDirDoesNotExistTest() { SvgTagSvgNodeRenderer rootActual = (SvgTagSvgNodeRenderer) processor().process(root, props).getRootRenderer(); String fileName = resolvedBaseUrl + "/img.png"; - String expectedURL = UrlUtil.toNormalizedURI(fileName).toString(); + final String expectedURL = UrlUtil.toNormalizedURI(fileName).toString(); + final String expectedURLAnotherValidVersion = createAnotherValidUrlVersion(expectedURL); ISvgNodeRenderer imageRendered = rootActual.getChildren().get(0); String url = imageRendered.getAttribute(SvgConstants.Attributes.XLINK_HREF); - Assert.assertEquals(expectedURL, url); + + // Both variants(namely with triple and single slashes) are valid. + Assert.assertTrue(expectedURL.equals(url) || expectedURLAnotherValidVersion.equals(url)); } @Test @@ -290,12 +293,14 @@ public void xLinkAttributeResolveNonEmptyBaseUrlTest() { SvgTagSvgNodeRenderer rootActual = (SvgTagSvgNodeRenderer) processor().process(root, props).getRootRenderer(); String fileName = baseUrl + "/img.png"; - String expectedURL = UrlUtil.toNormalizedURI(fileName).toString(); + final String expectedURL = UrlUtil.toNormalizedURI(fileName).toString(); + final String expectedURLAnotherValidVersion = createAnotherValidUrlVersion(expectedURL); ISvgNodeRenderer imageRendered = rootActual.getChildren().get(0); String url = imageRendered.getAttribute(SvgConstants.Attributes.XLINK_HREF); - Assert.assertEquals(expectedURL, url); + // Both variants(namely with triple and single slashes) are valid. + Assert.assertTrue(expectedURL.equals(url) || expectedURLAnotherValidVersion.equals(url)); } private INode createSvgContainingImage() { @@ -308,6 +313,16 @@ private INode createSvgContainingImage() { return root; } + private static String createAnotherValidUrlVersion(String url) { + if (url.startsWith("file:///")) { + return "file:/" + url.substring("file:///".length()); + } else if (url.startsWith("file:/")) { + return "file:///" + url.substring("file:/".length()); + } else { + return url; + } + } + private static ISvgProcessor processor() { return new DefaultSvgProcessor(); } diff --git a/svg/src/test/java/com/itextpdf/svg/processors/impl/SvgProcessorResultUnitTest.java b/svg/src/test/java/com/itextpdf/svg/processors/impl/SvgProcessorResultUnitTest.java index 73c906cba4..0ac8405a05 100644 --- a/svg/src/test/java/com/itextpdf/svg/processors/impl/SvgProcessorResultUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/processors/impl/SvgProcessorResultUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. @@ -38,26 +38,19 @@ This file is part of the iText (R) project. import java.util.HashMap; import java.util.Map; import org.junit.Assert; -import org.junit.Rule; import org.junit.Test; import org.junit.experimental.categories.Category; -import org.junit.rules.ExpectedException; @Category(UnitTest.class) public class SvgProcessorResultUnitTest extends ExtendedITextTest { - @Rule - public ExpectedException junitExpectedException = ExpectedException.none(); - @Test public void contextParameterCannotBeNullTest() { Map namedObjects = new HashMap<>(); ISvgNodeRenderer root = new SvgTagSvgNodeRenderer(); - - junitExpectedException.expect(IllegalArgumentException.class); - junitExpectedException.expectMessage(SvgExceptionMessageConstant.PARAMETER_CANNOT_BE_NULL); - - SvgProcessorResult result = new SvgProcessorResult(namedObjects, root, null); + Exception exception = Assert.assertThrows(IllegalArgumentException.class, + () -> new SvgProcessorResult(namedObjects, root, null)); + Assert.assertEquals(SvgExceptionMessageConstant.PARAMETER_CANNOT_BE_NULL, exception.getMessage()); } @Test diff --git a/svg/src/test/java/com/itextpdf/svg/processors/impl/font/FontFaceTest.java b/svg/src/test/java/com/itextpdf/svg/processors/impl/font/FontFaceTest.java index 413cb4d4ac..767a10c248 100644 --- a/svg/src/test/java/com/itextpdf/svg/processors/impl/font/FontFaceTest.java +++ b/svg/src/test/java/com/itextpdf/svg/processors/impl/font/FontFaceTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/processors/impl/font/FontSizeTest.java b/svg/src/test/java/com/itextpdf/svg/processors/impl/font/FontSizeTest.java index 98cfb9b86f..32cc97d8bb 100644 --- a/svg/src/test/java/com/itextpdf/svg/processors/impl/font/FontSizeTest.java +++ b/svg/src/test/java/com/itextpdf/svg/processors/impl/font/FontSizeTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/processors/impl/font/SvgFontProcessorTest.java b/svg/src/test/java/com/itextpdf/svg/processors/impl/font/SvgFontProcessorTest.java index 7308ae80fa..5cc20d8d14 100644 --- a/svg/src/test/java/com/itextpdf/svg/processors/impl/font/SvgFontProcessorTest.java +++ b/svg/src/test/java/com/itextpdf/svg/processors/impl/font/SvgFontProcessorTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/DefaultSvgNodeRendererFactoryDrawTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/DefaultSvgNodeRendererFactoryDrawTest.java index 8af2c0af99..8f12356367 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/DefaultSvgNodeRendererFactoryDrawTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/DefaultSvgNodeRendererFactoryDrawTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/DefaultSvgNodeRendererFactoryTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/DefaultSvgNodeRendererFactoryTest.java index f75b297ec1..5e995b0fdc 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/DefaultSvgNodeRendererFactoryTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/DefaultSvgNodeRendererFactoryTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/FillTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/FillTest.java index 997617f844..5e666a0a20 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/FillTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/FillTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/GUnitTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/GUnitTest.java index ee324dc6fd..f832b8a881 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/GUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/GUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/OpacityTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/OpacityTest.java index e9f14c0871..2c67291a33 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/OpacityTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/OpacityTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/StrokeTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/StrokeTest.java index e63ed8a56e..5e16f9d900 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/StrokeTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/StrokeTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/SvgDrawContextTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/SvgDrawContextTest.java index ba845ff7b7..796fbe42bb 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/SvgDrawContextTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/SvgDrawContextTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/SvgIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/SvgIntegrationTest.java index 0308376fae..72270d21c0 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/SvgIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/SvgIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/TransformationApplicationTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/TransformationApplicationTest.java index 8e85867626..adb0c701bf 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/TransformationApplicationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/TransformationApplicationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/TransparencyTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/TransparencyTest.java index 532ed48874..d3de02e168 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/TransparencyTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/TransparencyTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/factories/DefaultSvgNodeRendererFactoryTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/factories/DefaultSvgNodeRendererFactoryTest.java index 96633cd259..66b634bbd6 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/factories/DefaultSvgNodeRendererFactoryTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/factories/DefaultSvgNodeRendererFactoryTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/factories/DefaultSvgNodeRendererMapperTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/factories/DefaultSvgNodeRendererMapperTest.java index 726b44a9c6..71455e95d9 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/factories/DefaultSvgNodeRendererMapperTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/factories/DefaultSvgNodeRendererMapperTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/AnimationSvgTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/AnimationSvgTest.java index cd0e0da3ff..b66ffdf7c9 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/AnimationSvgTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/AnimationSvgTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/CircleNodeRendererIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/CircleNodeRendererIntegrationTest.java index 9b0a5a636a..ddb274b24c 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/CircleNodeRendererIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/CircleNodeRendererIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/ClipPathSvgNodeRendererIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/ClipPathSvgNodeRendererIntegrationTest.java index a62542ae80..b845491ecc 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/ClipPathSvgNodeRendererIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/ClipPathSvgNodeRendererIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/ClipPathSvgNodeRendererLowLevelIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/ClipPathSvgNodeRendererLowLevelIntegrationTest.java index 0ef902db45..04a0376be3 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/ClipPathSvgNodeRendererLowLevelIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/ClipPathSvgNodeRendererLowLevelIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/ClipPathSvgNodeRendererUnitTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/ClipPathSvgNodeRendererUnitTest.java index 48b5040658..37f0eb1f60 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/ClipPathSvgNodeRendererUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/ClipPathSvgNodeRendererUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/DefsSvgNodeRendererIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/DefsSvgNodeRendererIntegrationTest.java index 0cf3080070..0ba218f4e2 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/DefsSvgNodeRendererIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/DefsSvgNodeRendererIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/DefsSvgNodeRendererUnitTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/DefsSvgNodeRendererUnitTest.java index 35457c6d42..c59e2e7e26 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/DefsSvgNodeRendererUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/DefsSvgNodeRendererUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/EllipseSvgNodeRendererIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/EllipseSvgNodeRendererIntegrationTest.java index ca893733b4..8443968717 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/EllipseSvgNodeRendererIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/EllipseSvgNodeRendererIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/EllipseSvgNodeRendererUnitTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/EllipseSvgNodeRendererUnitTest.java index c58424f844..d1ddfe2658 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/EllipseSvgNodeRendererUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/EllipseSvgNodeRendererUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/GroupSvgNodeRendererIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/GroupSvgNodeRendererIntegrationTest.java index 15f5fe8189..32933899d5 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/GroupSvgNodeRendererIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/GroupSvgNodeRendererIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/GroupSvgNodeRendererUnitTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/GroupSvgNodeRendererUnitTest.java index 2c14258928..2ee4a9d1de 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/GroupSvgNodeRendererUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/GroupSvgNodeRendererUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/ImageSvgNodeRendererIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/ImageSvgNodeRendererIntegrationTest.java index 3376806c32..52bbc902a3 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/ImageSvgNodeRendererIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/ImageSvgNodeRendererIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/ImageSvgNodeRendererUnitTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/ImageSvgNodeRendererUnitTest.java index f6facf1d80..e57f169eba 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/ImageSvgNodeRendererUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/ImageSvgNodeRendererUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/LineSvgNodeRendererTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/LineSvgNodeRendererTest.java index f940a273a7..b3d8885669 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/LineSvgNodeRendererTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/LineSvgNodeRendererTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/LinearGradientSvgNodeRendererTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/LinearGradientSvgNodeRendererTest.java index e47307f490..1ce4f3f0f1 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/LinearGradientSvgNodeRendererTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/LinearGradientSvgNodeRendererTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/LinearGradientSvgNodeRendererUnitTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/LinearGradientSvgNodeRendererUnitTest.java index d38c655df9..68d0e395fd 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/LinearGradientSvgNodeRendererUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/LinearGradientSvgNodeRendererUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/MarkerSvgNodeRendererIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/MarkerSvgNodeRendererIntegrationTest.java index 733c88489f..5bbf738dbe 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/MarkerSvgNodeRendererIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/MarkerSvgNodeRendererIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/MarkerSvgNodeRendererUnitTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/MarkerSvgNodeRendererUnitTest.java index 60f2c957c2..f591c436a1 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/MarkerSvgNodeRendererUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/MarkerSvgNodeRendererUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/MaskTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/MaskTest.java index 22522e95bf..3ed4b81ad1 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/MaskTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/MaskTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/NamedObjectsTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/NamedObjectsTest.java index 610f2a9956..a37c45f0c1 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/NamedObjectsTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/NamedObjectsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/NestedSvgTagSvgNodeRendererIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/NestedSvgTagSvgNodeRendererIntegrationTest.java index ac017ed115..d3155a5da0 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/NestedSvgTagSvgNodeRendererIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/NestedSvgTagSvgNodeRendererIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/OverflowAttributeTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/OverflowAttributeTest.java index cc8aa68bd8..14210dcc7c 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/OverflowAttributeTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/OverflowAttributeTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PathOperatorSplitTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PathOperatorSplitTest.java index 916eef16dc..724cc0dda9 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PathOperatorSplitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PathOperatorSplitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PathParsingIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PathParsingIntegrationTest.java index fe64d9cf8a..cc2d4d3208 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PathParsingIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PathParsingIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PathParsingTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PathParsingTest.java index 1f8301c75e..13341cea85 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PathParsingTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PathParsingTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PathSvgNodeRendererLowLevelIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PathSvgNodeRendererLowLevelIntegrationTest.java index 9b79a63596..4d008309e4 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PathSvgNodeRendererLowLevelIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PathSvgNodeRendererLowLevelIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PathSvgNodeRendererTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PathSvgNodeRendererTest.java index 8a3221f537..4553820b1c 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PathSvgNodeRendererTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PathSvgNodeRendererTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PatternSvgNodeRendererUnitTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PatternSvgNodeRendererUnitTest.java index b30b218e51..d091b1092f 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PatternSvgNodeRendererUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PatternSvgNodeRendererUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PatternTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PatternTest.java index 0d8903f3d6..510a12fd15 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PatternTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PatternTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PdfRootSvgNodeRendererIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PdfRootSvgNodeRendererIntegrationTest.java index 053897a62c..f40b5ddfec 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PdfRootSvgNodeRendererIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PdfRootSvgNodeRendererIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PdfRootSvgNodeRendererUnitTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PdfRootSvgNodeRendererUnitTest.java index 2ccd554b7d..06a1cb95c4 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PdfRootSvgNodeRendererUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PdfRootSvgNodeRendererUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PolygonSvgNodeRendererTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PolygonSvgNodeRendererTest.java index 619cc828c6..e5d1702815 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PolygonSvgNodeRendererTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PolygonSvgNodeRendererTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PolylineSvgNodeRendererTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PolylineSvgNodeRendererTest.java index 0979cfe07e..4586e7701f 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PolylineSvgNodeRendererTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PolylineSvgNodeRendererTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PolylineSvgNodeRendererUnitTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PolylineSvgNodeRendererUnitTest.java index 75df63f577..1b1a44c05e 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PolylineSvgNodeRendererUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PolylineSvgNodeRendererUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PreserveAspectRatioSvgNodeRendererIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PreserveAspectRatioSvgNodeRendererIntegrationTest.java index fb6d246153..1d7930dfa4 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PreserveAspectRatioSvgNodeRendererIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PreserveAspectRatioSvgNodeRendererIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PreserveAspectRatioSvgNodeRendererUnitTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PreserveAspectRatioSvgNodeRendererUnitTest.java index 532d48deeb..5132504e6f 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/PreserveAspectRatioSvgNodeRendererUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/PreserveAspectRatioSvgNodeRendererUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/RectangleSvgNodeRendererIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/RectangleSvgNodeRendererIntegrationTest.java index 76d94b317f..52c7c0414d 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/RectangleSvgNodeRendererIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/RectangleSvgNodeRendererIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/RectangleSvgNodeRendererUnitTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/RectangleSvgNodeRendererUnitTest.java index cd95aac172..854c4c69db 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/RectangleSvgNodeRendererUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/RectangleSvgNodeRendererUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/SimpleSvgTagSvgNodeRendererIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/SimpleSvgTagSvgNodeRendererIntegrationTest.java index 5d30f11afa..7aa58e9c77 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/SimpleSvgTagSvgNodeRendererIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/SimpleSvgTagSvgNodeRendererIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/StopSvgNodeRendererUnitTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/StopSvgNodeRendererUnitTest.java index 12c0f6ad29..c6e348893e 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/StopSvgNodeRendererUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/StopSvgNodeRendererUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/SvgTagSvgNodeRendererUnitTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/SvgTagSvgNodeRendererUnitTest.java index 0072de03a0..8109554c66 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/SvgTagSvgNodeRendererUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/SvgTagSvgNodeRendererUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/SymbolSvgNodeRendererUnitTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/SymbolSvgNodeRendererUnitTest.java index 689b9f2811..8c5a3cb750 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/SymbolSvgNodeRendererUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/SymbolSvgNodeRendererUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/SymbolTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/SymbolTest.java index e64e7f0e98..404e3029fe 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/SymbolTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/SymbolTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/TSpanNodeRendererIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/TSpanNodeRendererIntegrationTest.java index a1aa03bc6b..6f9e014e76 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/TSpanNodeRendererIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/TSpanNodeRendererIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/TextLeafSvgNodeRendererIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/TextLeafSvgNodeRendererIntegrationTest.java index ecf7df828d..4b12b0cd79 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/TextLeafSvgNodeRendererIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/TextLeafSvgNodeRendererIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/TextLeafSvgNodeRendererUnitTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/TextLeafSvgNodeRendererUnitTest.java index 93e783ccd8..889ab147f9 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/TextLeafSvgNodeRendererUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/TextLeafSvgNodeRendererUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/TextSvgBranchRendererIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/TextSvgBranchRendererIntegrationTest.java index 6e00121ce9..ce51738cdd 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/TextSvgBranchRendererIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/TextSvgBranchRendererIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/UseIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/UseIntegrationTest.java index ea40cb0828..bac23cecba 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/UseIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/UseIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/UseSvgNodeRendererUnitTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/UseSvgNodeRendererUnitTest.java index 37c19c9662..e25c1e31f2 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/UseSvgNodeRendererUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/UseSvgNodeRendererUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/UseUnitTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/UseUnitTest.java index 633191250b..3b436cb41c 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/UseUnitTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/UseUnitTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/ViewBoxSvgTagSvgNodeRendererIntegrationTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/ViewBoxSvgTagSvgNodeRendererIntegrationTest.java index a8b7b06a56..d3ed1f7b35 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/ViewBoxSvgTagSvgNodeRendererIntegrationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/ViewBoxSvgTagSvgNodeRendererIntegrationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/impl/XLinkDataTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/impl/XLinkDataTest.java index 4cd83f003d..1dad66b2f1 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/impl/XLinkDataTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/impl/XLinkDataTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/path/PathShapeMapperTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/path/PathShapeMapperTest.java index 55b4a48e63..1e74ecef05 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/path/PathShapeMapperTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/path/PathShapeMapperTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/path/impl/EllipseArcTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/path/impl/EllipseArcTest.java index 84712c64b5..4e3e5f0f31 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/path/impl/EllipseArcTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/path/impl/EllipseArcTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/renderers/path/impl/EllipticalPathOperatorTest.java b/svg/src/test/java/com/itextpdf/svg/renderers/path/impl/EllipticalPathOperatorTest.java index 1ecf0a9e57..bd252ac549 100644 --- a/svg/src/test/java/com/itextpdf/svg/renderers/path/impl/EllipticalPathOperatorTest.java +++ b/svg/src/test/java/com/itextpdf/svg/renderers/path/impl/EllipticalPathOperatorTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/utils/MatrixTransformationTest.java b/svg/src/test/java/com/itextpdf/svg/utils/MatrixTransformationTest.java index 0adae95c1a..ec50b13b34 100644 --- a/svg/src/test/java/com/itextpdf/svg/utils/MatrixTransformationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/utils/MatrixTransformationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/utils/RotateTransformationTest.java b/svg/src/test/java/com/itextpdf/svg/utils/RotateTransformationTest.java index a0b74a1ea6..9d6befb4be 100644 --- a/svg/src/test/java/com/itextpdf/svg/utils/RotateTransformationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/utils/RotateTransformationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/utils/ScaleTransformationTest.java b/svg/src/test/java/com/itextpdf/svg/utils/ScaleTransformationTest.java index 6d6d454052..5667569357 100644 --- a/svg/src/test/java/com/itextpdf/svg/utils/ScaleTransformationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/utils/ScaleTransformationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/utils/SkewXTransformationTest.java b/svg/src/test/java/com/itextpdf/svg/utils/SkewXTransformationTest.java index 6c1951cf4a..f6e868e527 100644 --- a/svg/src/test/java/com/itextpdf/svg/utils/SkewXTransformationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/utils/SkewXTransformationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/utils/SkewYTransformationTest.java b/svg/src/test/java/com/itextpdf/svg/utils/SkewYTransformationTest.java index 77bc4ac8b4..150d93e849 100644 --- a/svg/src/test/java/com/itextpdf/svg/utils/SkewYTransformationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/utils/SkewYTransformationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/utils/SvgCoordinateUtilsTest.java b/svg/src/test/java/com/itextpdf/svg/utils/SvgCoordinateUtilsTest.java index a5d8ef0f34..0423359d03 100644 --- a/svg/src/test/java/com/itextpdf/svg/utils/SvgCoordinateUtilsTest.java +++ b/svg/src/test/java/com/itextpdf/svg/utils/SvgCoordinateUtilsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is offered under a commercial and under the AGPL license. diff --git a/svg/src/test/java/com/itextpdf/svg/utils/SvgCssUtilsTest.java b/svg/src/test/java/com/itextpdf/svg/utils/SvgCssUtilsTest.java index 76b71beffe..822bb0143a 100644 --- a/svg/src/test/java/com/itextpdf/svg/utils/SvgCssUtilsTest.java +++ b/svg/src/test/java/com/itextpdf/svg/utils/SvgCssUtilsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/utils/SvgTextUtilTest.java b/svg/src/test/java/com/itextpdf/svg/utils/SvgTextUtilTest.java index c9608ce36f..868d7dd51c 100644 --- a/svg/src/test/java/com/itextpdf/svg/utils/SvgTextUtilTest.java +++ b/svg/src/test/java/com/itextpdf/svg/utils/SvgTextUtilTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/utils/TestUtils.java b/svg/src/test/java/com/itextpdf/svg/utils/TestUtils.java index 603fbf3f8d..b6341996ea 100644 --- a/svg/src/test/java/com/itextpdf/svg/utils/TestUtils.java +++ b/svg/src/test/java/com/itextpdf/svg/utils/TestUtils.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/utils/TransformUtilsTest.java b/svg/src/test/java/com/itextpdf/svg/utils/TransformUtilsTest.java index 10d33496c9..80b6d938b2 100644 --- a/svg/src/test/java/com/itextpdf/svg/utils/TransformUtilsTest.java +++ b/svg/src/test/java/com/itextpdf/svg/utils/TransformUtilsTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify diff --git a/svg/src/test/java/com/itextpdf/svg/utils/TranslateTransformationTest.java b/svg/src/test/java/com/itextpdf/svg/utils/TranslateTransformationTest.java index 4c78421fc4..018ad777b4 100644 --- a/svg/src/test/java/com/itextpdf/svg/utils/TranslateTransformationTest.java +++ b/svg/src/test/java/com/itextpdf/svg/utils/TranslateTransformationTest.java @@ -1,6 +1,6 @@ /* This file is part of the iText (R) project. - Copyright (c) 1998-2021 iText Group NV + Copyright (c) 1998-2022 iText Group NV Authors: iText Software. This program is free software; you can redistribute it and/or modify