You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2020/09/06 14:29:28 UTC
svn commit: r1881512 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/PDSeedValue.java
Author: lehmi
Date: Sun Sep 6 14:29:28 2020
New Revision: 1881512
URL: http://svn.apache.org/viewvc?rev=1881512&view=rev
Log:
PDFBOX-4954: harmonized types for getter and setter, eliminate the usage of COSArrayList
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/PDSeedValue.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/PDSeedValue.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/PDSeedValue.java?rev=1881512&r1=1881511&r2=1881512&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/PDSeedValue.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/PDSeedValue.java Sun Sep 6 14:29:28 2020
@@ -16,14 +16,14 @@
*/
package org.apache.pdfbox.pdmodel.interactive.digitalsignature;
-import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
import org.apache.pdfbox.cos.COSArray;
import org.apache.pdfbox.cos.COSBase;
import org.apache.pdfbox.cos.COSDictionary;
import org.apache.pdfbox.cos.COSName;
-import org.apache.pdfbox.pdmodel.common.COSArrayList;
import org.apache.pdfbox.pdmodel.common.COSObjectable;
/**
@@ -33,6 +33,14 @@ import org.apache.pdfbox.pdmodel.common.
*/
public class PDSeedValue implements COSObjectable
{
+
+ private static final List<String> allowedDigestNames = Arrays.asList(
+ COSName.DIGEST_SHA1.getName(), //
+ COSName.DIGEST_SHA256.getName(), //
+ COSName.DIGEST_SHA384.getName(), //
+ COSName.DIGEST_SHA512.getName(), //
+ COSName.DIGEST_RIPEMD160.getName());
+
/**
* A Ff flag.
*/
@@ -271,23 +279,12 @@ public class PDSeedValue implements COSO
*/
public List<String> getSubFilter()
{
- List<String> retval = null;
- COSArray fields = (COSArray)dictionary.getDictionaryObject(COSName.SUB_FILTER);
-
+ COSArray fields = dictionary.getCOSArray(COSName.SUB_FILTER);
if (fields != null)
{
- List<String> actuals = new ArrayList<>();
- for ( int i = 0; i < fields.size(); i++ )
- {
- String element = fields.getName(i);
- if (element != null)
- {
- actuals.add(element);
- }
- }
- retval = new COSArrayList<>(actuals, fields);
+ return fields.toCOSNameStringList();
}
- return retval;
+ return Collections.emptyList();
}
/**
@@ -297,9 +294,10 @@ public class PDSeedValue implements COSO
*
* @param subfilter is the name that shall be used for encoding
*/
- public void setSubFilter(List<COSName> subfilter)
+ public void setSubFilter(List<String> subfilter)
{
- dictionary.setItem(COSName.SUB_FILTER, COSArrayList.converterToCOSArray(subfilter));
+ dictionary.setItem(COSName.SUB_FILTER,
+ COSArray.convertStringListToCOSNameCOSArray(subfilter));
}
/**
@@ -311,23 +309,12 @@ public class PDSeedValue implements COSO
*/
public List<String> getDigestMethod()
{
- List<String> retval = null;
- COSArray fields = (COSArray)dictionary.getDictionaryObject(COSName.DIGEST_METHOD);
-
+ COSArray fields = dictionary.getCOSArray(COSName.DIGEST_METHOD);
if (fields != null)
{
- List<String> actuals = new ArrayList<>();
- for ( int i = 0; i < fields.size(); i++ )
- {
- String element = fields.getName(i);
- if (element != null)
- {
- actuals.add(element);
- }
- }
- retval = new COSArrayList<>(actuals, fields);
+ return fields.toCOSNameStringList();
}
- return retval;
+ return Collections.emptyList();
}
/**
@@ -342,21 +329,19 @@ public class PDSeedValue implements COSO
* @param digestMethod is a list of possible names of the digests, that should be
* used for signing.
*/
- public void setDigestMethod(List<COSName> digestMethod)
+ public void setDigestMethod(List<String> digestMethod)
{
// integrity check
- for ( COSName cosName : digestMethod )
+ for (String digestName : digestMethod)
{
- if (!(cosName.equals(COSName.DIGEST_SHA1)
- || cosName.equals(COSName.DIGEST_SHA256)
- || cosName.equals(COSName.DIGEST_SHA384)
- || cosName.equals(COSName.DIGEST_SHA512)
- || cosName.equals(COSName.DIGEST_RIPEMD160)))
+ if (!allowedDigestNames.contains(digestName))
{
- throw new IllegalArgumentException("Specified digest " + cosName.getName() + " isn't allowed.");
+ throw new IllegalArgumentException(
+ "Specified digest " + digestName + " isn't allowed.");
}
}
- dictionary.setItem(COSName.DIGEST_METHOD, COSArrayList.converterToCOSArray(digestMethod));
+ dictionary.setItem(COSName.DIGEST_METHOD,
+ COSArray.convertStringListToCOSNameCOSArray(digestMethod));
}
/**
@@ -400,23 +385,12 @@ public class PDSeedValue implements COSO
*/
public List<String> getReasons()
{
- List<String> retval = null;
- COSArray fields = (COSArray)dictionary.getDictionaryObject(COSName.REASONS);
-
+ COSArray fields = dictionary.getCOSArray(COSName.REASONS);
if (fields != null)
{
- List<String> actuals = new ArrayList<>();
- for ( int i = 0; i < fields.size(); i++ )
- {
- String element = fields.getString(i);
- if (element != null)
- {
- actuals.add(element);
- }
- }
- retval = new COSArrayList<>(actuals, fields);
+ return fields.toCOSNameStringList();
}
- return retval;
+ return Collections.emptyList();
}
/**
@@ -546,23 +520,12 @@ public class PDSeedValue implements COSO
*/
public List<String> getLegalAttestation()
{
- List<String> retval = null;
- COSArray fields = (COSArray)dictionary.getDictionaryObject(COSName.LEGAL_ATTESTATION);
-
+ COSArray fields = dictionary.getCOSArray(COSName.LEGAL_ATTESTATION);
if (fields != null)
{
- List<String> actuals = new ArrayList<>();
- for ( int i = 0; i < fields.size(); i++ )
- {
- String element = fields.getString(i);
- if (element != null)
- {
- actuals.add(element);
- }
- }
- retval = new COSArrayList<>(actuals, fields);
+ return fields.toCOSNameStringList();
}
- return retval;
+ return Collections.emptyList();
}
/**