int bufSignatureOffset = (int)(signatureOffset - inLength);
System.arraycopy(buffer, 0, signBuffer, 0, bufSignatureOffset);
System.arraycopy(buffer, bufSignatureOffset + (int)signatureLength,
signBuffer, bufSignatureOffset, buffer.length - bufSignatureOffset - (int)signatureLength);
SequenceInputStream signStream = new SequenceInputStream(new ByteArrayInputStream(inputBytes),
new ByteArrayInputStream(signBuffer));
// sign the bytes
SignatureInterface signatureInterface = doc.getSignatureInterface();
byte[] sign = signatureInterface.sign(signStream);