Uploaded image for project: 'Santuario'
  1. Santuario
  2. SANTUARIO-393

Performance regression as signature data is not buffered

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: Java 1.5.5
    • Fix Version/s: Java 1.5.7, Java 2.0.1
    • Component/s: Java
    • Labels:

      Description

      Note: Only tested on 1.5.5 so affects version might be earlier.

      After upgrading from xmlsec (java) 1.4 to 1.5 we saw a significant drop
      in signature generation performance especially when using a network
      based HSM.

      After some investigation it turns out that the problem is that the
      hashing is done with one byte at a time which with network latencies
      gives the bad performance.

      Looking in the code of DOMSignedInfo.java it looks like the code intends
      to use an UnsyncBufferedOutputStream however only its close method is
      actually called, which as far as I can see won't have any side affect at
      all when operated on a ByteArrayOutputStream.

      The attached patch resolves the performance issue by actually using the
      UnsyncBufferedOutputStream and that way perform the digests on a
      possibly full buffer instead of byte by byte. The patch has been tested
      on version 1.5.5 but also applies on 1.5.6.

        Issue Links

          Activity

          There are no comments yet on this issue.

            People

            • Assignee:
              coheigea Colm O hEigeartaigh
              Reporter:
              netmackan Markus Kilås
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development