{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-products/sws/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["img"]},"type":"markdown"},"seo":{"title":"Sign Web Services (SWS)","description":"Integration and usage documentation.","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"sign-web-services-sws","__idx":0},"children":["Sign Web Services (SWS)"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"table-of-contents","__idx":1},"children":["Table of Contents"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#introduction"},"children":["Introduction"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#supported-devices"},"children":["Supported Devices"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#supported-signature-formats"},"children":["Supported Signature Formats"]}]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#how-sws-works-during-the-signing-flow"},"children":["How SWS Works During the Signing Flow"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#network-and-bandwidth-considerations"},"children":["Network and Bandwidth Considerations"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#external-services-used"},"children":["External Services Used"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#1-raw-signature-service-pkcs1"},"children":["RAW Signature Service (PKCS#1)"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#2-timestamping-authority-tsa"},"children":["Timestamping Authority (TSA)"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#3-certification-authorities-ca"},"children":["Certification Authorities (CA)"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#4-trusted-list-tls-updates"},"children":["Trusted List (TLS) Updates"]}]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#high-availability"},"children":["High Availability"]}]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#how-sws-works-during-the-verify-flow"},"children":["How SWS Works During the Verify Flow"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#type-of-distributions"},"children":["Type of Distributions"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#1-on-premise"},"children":["On-Premise"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#2-saas"},"children":["SaaS"]}]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#best-practice"},"children":["Best Practice"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#recommendations"},"children":["Recommendations"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#license"},"children":["License"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"introduction","__idx":2},"children":["Introduction"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["SWS (Sign Web Services) allows signing and verifying different document types. The application can be used only with devices enrolled by Namirial."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"supported-devices","__idx":3},"children":["Supported Devices"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Automatic signature"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Remote signature"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Disposable"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Lean Disposable"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["eSeal (electronic seal)"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"supported-signature-formats","__idx":4},"children":["Supported Signature Formats"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["CAdES"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["PAdES"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["XAdES"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["JAdES"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["RAW signature (PKCS#1)"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["It is also possible to set different signature levels such as:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["B"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["T"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["LT"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["LTV"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["These details are described in the official documentation about integration with SWS."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The timestamps applied are compliant with:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["RFC 3161"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["RFC 5544"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["During verification, SWS can validate certificates issued by all accredited Certification Authorities in the European Community. It supports verification for:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["CAdES"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["PAdES"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["XAdES"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can see a SWS like a blackbox like in this image:"]},{"$$mdtype":"Tag","name":"Image","attributes":{"src":"/assets/description1.972ce140e0544e61f02e46dcec3107a850d8da20c0916f031a1eca6686426a88.0818044b.png","alt":"","withLightbox":false,"width":"700","align":"center"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This is the flow during the signing process"," ","While during the verify, this is the flow:"]},{"$$mdtype":"Tag","name":"Image","attributes":{"src":"/assets/description2.be12d60796250b62acb17ed32ace7c6f6cae8f7162792142f22833bb07e9c010.0818044b.png","alt":"","withLightbox":false,"width":"700","align":"center"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Naturally SWS contact external services to complete the flow of signing and verify. Below will be described the external services used."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"how-sws-works-during-the-signing-flow","__idx":5},"children":["How SWS Works During the Signing Flow"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When SWS receives a file to sign:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Hash Calculation"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["SWS calculates the hash of the file."]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Hash Transmission to FRA"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The hash is sent to the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["FRA component"]},", located in the Namirial CA datacenter."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["FRA manages the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["HSMs (Hardware Security Modules)"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The signature algorithm used is ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["RSA"]},"."]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Signature Generation"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["FRA signs the hash (RAW PKCS#1 signature)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The signed hash is returned to SWS."]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Signature Composition"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["SWS embeds the RAW signature into the requested format (CAdES, PAdES, XAdES, etc.)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If required, a timestamp is added."]}]}]}]},{"$$mdtype":"Tag","name":"Image","attributes":{"src":"/assets/description3.d56eb030deda7a71680c8267f6d45109ca61b41e09fc886269709fd3674ae940.0818044b.jpeg","alt":"","withLightbox":false,"width":"700","align":"center"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"network-and-bandwidth-considerations","__idx":6},"children":["Network and Bandwidth Considerations"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If SWS is deployed inside the same LAN as the client applications:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Document exchange happens over a private network."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Only the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["hash"]}," is transmitted to FRA."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Approximately ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["7 KB per signature"]}," are exchanged, regardless of document size."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Merged requests reduce bandwidth usage thanks to:",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["TCP optimization"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["HTTPS efficiency"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["SOAP protocol efficiency"]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"external-services-used","__idx":7},"children":["External Services Used"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["SWS exposes services via:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["SOAP"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["REST"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["SWS acts as a client toward the following services:"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"1-raw-signature-service-pkcs1","__idx":8},"children":["1. RAW Signature Service (PKCS#1)"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Endpoint: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://fra.firmacerta.it"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["High reliability service."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["HSM and FRA components are functionally redundant."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"2-timestamping-authority-tsa","__idx":9},"children":["2. Timestamping Authority (TSA)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Supported protocols:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["HTTP"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["HTTPS"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Namirial TSA endpoints:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["http://timestamp.firmacerta.it"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://timestamp.firmacerta.it"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"3-certification-authorities-ca","__idx":10},"children":["3. Certification Authorities (CA)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For verification of signatures, SWS contacts:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The CA that issued the signer’s certificate"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["To validate certificate status (revocation checks, validity)"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"4-trusted-list-tls-updates","__idx":11},"children":["4. Trusted List (TLS) Updates"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["SWS periodically contacts:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["National supervisory bodies of EU Certification Authorities",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In Italy: ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["AgID"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"high-availability","__idx":12},"children":["High Availability"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["SWS is stateless."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To ensure high reliability:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Deploy ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["2 or more SWS instances"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Load Balancer"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Configure a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Round-Robin policy with same weight"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Since SWS does not manage sessions:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["No sticky sessions are required."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"how-sws-works-during-the-verify-flow","__idx":13},"children":["How SWS Works During the Verify Flow"]},{"$$mdtype":"Tag","name":"Image","attributes":{"src":"/assets/description4.763e679741e4caf756e1cca2d3985702b3eafb9e4e165d15f6d749a0be48d35e.0818044b.jpeg","alt":"","withLightbox":false,"width":"700","align":"center"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"type-of-distributions","__idx":14},"children":["Type of Distributions"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["SWS can be distributed in two modes:"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"1-on-premise","__idx":15},"children":["1. On-Premise"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The customer receives:",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Docker image"]}]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Deployment is managed within the customer infrastructure."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"2-saas","__idx":16},"children":["2. SaaS"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The customer receives:",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["An integration endpoint"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["An SSL certificate"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Infrastructure and maintenance are managed by Namirial."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"best-practice","__idx":17},"children":["Best Practice"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Namirial recommends:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Deploying ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["at least 2 active SWS instances"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Configuring them behind a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["load balancer"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Ensuring proper monitoring of:",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Connectivity to FRA"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Connectivity to TSA"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["CA reachability"]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Each instance is:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Stateless"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Independent"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Not sharing sessions"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"recommendations","__idx":18},"children":["Recommendations"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["⚠ ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["The SWS appliance must NOT be publicly exposed to the Internet."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Namirial does not assume responsibility for improper exposure."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["SWS should be:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Deployed inside a protected network (LAN or secured environment)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Accessible only by authorized internal applications"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"license","__idx":19},"children":["License"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Below is the list of libraries/frameworks used in SWS:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Library / Framework"},"children":["Library / Framework"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"License"},"children":["License"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["DSS (Digital Signature Service)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://www.gnu.org/licenses/lgpl-3.0.en.html"},"children":["LGPL-3.0"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["BouncyCastle"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://www.bouncycastle.org/licence.html"},"children":["BouncyCastle License"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Apache Commons"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://www.apache.org/licenses/LICENSE-2.0"},"children":["Apache License 2.0"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["CXF"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://www.apache.org/licenses/LICENSE-2.0"},"children":["Apache License 2.0"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["PDFBox"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://www.apache.org/licenses/LICENSE-2.0"},"children":["Apache License 2.0"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Xerces"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://www.apache.org/licenses/LICENSE-2.0"},"children":["Apache License 2.0"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Xalan"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://www.apache.org/licenses/LICENSE-2.0"},"children":["Apache License 2.0"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["xml-apis"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://www.apache.org/licenses/LICENSE-2.0"},"children":["Apache License 2.0"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["xmlschema-core"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://www.apache.org/licenses/LICENSE-2.0"},"children":["Apache License 2.0"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["xmlsec"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://www.apache.org/licenses/LICENSE-2.0"},"children":["Apache License 2.0"]}]}]}]}]}]}]},"headings":[{"value":"Sign Web Services (SWS)","id":"sign-web-services-sws","depth":1},{"value":"Table of Contents","id":"table-of-contents","depth":2},{"value":"Introduction","id":"introduction","depth":2},{"value":"Supported Devices","id":"supported-devices","depth":3},{"value":"Supported Signature Formats","id":"supported-signature-formats","depth":3},{"value":"How SWS Works During the Signing Flow","id":"how-sws-works-during-the-signing-flow","depth":1},{"value":"Network and Bandwidth Considerations","id":"network-and-bandwidth-considerations","depth":2},{"value":"External Services Used","id":"external-services-used","depth":2},{"value":"1. RAW Signature Service (PKCS#1)","id":"1-raw-signature-service-pkcs1","depth":3},{"value":"2. Timestamping Authority (TSA)","id":"2-timestamping-authority-tsa","depth":3},{"value":"3. Certification Authorities (CA)","id":"3-certification-authorities-ca","depth":3},{"value":"4. Trusted List (TLS) Updates","id":"4-trusted-list-tls-updates","depth":3},{"value":"High Availability","id":"high-availability","depth":2},{"value":"How SWS Works During the Verify Flow","id":"how-sws-works-during-the-verify-flow","depth":1},{"value":"Type of Distributions","id":"type-of-distributions","depth":1},{"value":"1. On-Premise","id":"1-on-premise","depth":2},{"value":"2. SaaS","id":"2-saas","depth":2},{"value":"Best Practice","id":"best-practice","depth":1},{"value":"Recommendations","id":"recommendations","depth":1},{"value":"License","id":"license","depth":1}],"frontmatter":{"seo":{"title":"Sign Web Services (SWS)"}},"lastModified":"2026-03-23T10:44:53.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/sws/customer_documentation/description","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}