[
https://issues.apache.org/jira/browse/PDFBOX-4554?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16853355#comment-16853355
]
Jason Pyeron commented on PDFBOX-4554:
--------------------------------------
why do you litter the code with new byte[] ?
https://www.youtube.com/watch?v=j7OHG7tHrNM&t=44 !
use N ByteBuffer , 1 for each pair in the byte-range. that is what
java.nio.ByteBuffer is for.
/**
* Return the signed content of the document. This is not a PDF file, nor
is it the PDF file
* before signing, it is the byte sequence made of the input minus the area
where the signature
* bytes will be. See "The ByteRange and signature value" in the document
* <a
href="https://www.adobe.com/devnet-docs/acrobatetk/tools/DigSig/Acrobat_DigitalSignatures_in_PDF.pdf#page=5">Digital
* Signatures in a PDF</a>.
*
* @param pdfFile The signed pdf file as byte array
* @param offset The offset in the pdfFile buffer of the first byte to read.
* @param length The maximum number of bytes to read from the pdfFile
buffer.
* @return an array of ByteBuffer each containing the signed part of the
content, altogether the whole signed content is returned
* @throws IOException if the pdfFile can't be read
*/
public ByteBuffer[] getSignedContents(byte[] pdfFile, int offset, int
length) throws IOException
{
int[] ranges = getByteRange();
ByteBuffer[] res=new ByteBuffer[ranges.length/2];
for (int i = 0; i<ranges.length/2; ++i)
{
res[i]=ByteBuffer.wrap(pdfFile, offset+ranges[i*2], ranges[i*2+1]);
}
return res;
}
> operations taking a byte[] need to allow for offset and length too
> ------------------------------------------------------------------
>
> Key: PDFBOX-4554
> URL: https://issues.apache.org/jira/browse/PDFBOX-4554
> Project: PDFBox
> Issue Type: Improvement
> Reporter: Jason Pyeron
> Priority: Major
>
> Without this, massive amounts of memory must be copied/allocated to "trim"
> byte[].
> See forthcoming pull request.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]