restpki-ng-python-client 0.9.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- restpki_ng_python_client/__init__.py +200 -0
- restpki_ng_python_client/api/__init__.py +17 -0
- restpki_ng_python_client/api/authentication_api.py +2041 -0
- restpki_ng_python_client/api/cades_signature_api.py +2376 -0
- restpki_ng_python_client/api/document_keys_api.py +1199 -0
- restpki_ng_python_client/api/documents_api.py +868 -0
- restpki_ng_python_client/api/pades_signature_api.py +1797 -0
- restpki_ng_python_client/api/pades_visual_positioning_presets_api.py +869 -0
- restpki_ng_python_client/api/pdf_api.py +334 -0
- restpki_ng_python_client/api/signature_api.py +624 -0
- restpki_ng_python_client/api/signature_inspection_api.py +337 -0
- restpki_ng_python_client/api/signature_sessions_api.py +891 -0
- restpki_ng_python_client/api/timestamp_api.py +654 -0
- restpki_ng_python_client/api/upload_api.py +1124 -0
- restpki_ng_python_client/api/xml_signature_api.py +1781 -0
- restpki_ng_python_client/api_client.py +741 -0
- restpki_ng_python_client/api_response.py +21 -0
- restpki_ng_python_client/configuration.py +426 -0
- restpki_ng_python_client/exceptions.py +166 -0
- restpki_ng_python_client/file_utils.py +122 -0
- restpki_ng_python_client/models/__init__.py +165 -0
- restpki_ng_python_client/models/allocate_document_key_batch_request.py +96 -0
- restpki_ng_python_client/models/allocate_document_key_request.py +93 -0
- restpki_ng_python_client/models/attribute_certificate_model.py +141 -0
- restpki_ng_python_client/models/audit_package_options.py +90 -0
- restpki_ng_python_client/models/authentication_failures.py +45 -0
- restpki_ng_python_client/models/authentication_get_response.py +92 -0
- restpki_ng_python_client/models/authentication_post_request.py +116 -0
- restpki_ng_python_client/models/authentication_post_response.py +98 -0
- restpki_ng_python_client/models/authentications_post_request.py +95 -0
- restpki_ng_python_client/models/authentications_post_response.py +114 -0
- restpki_ng_python_client/models/authentications_post_signed_bytes_request.py +99 -0
- restpki_ng_python_client/models/authentications_post_signed_bytes_response.py +98 -0
- restpki_ng_python_client/models/auto_positioning_horizontal_directions.py +45 -0
- restpki_ng_python_client/models/auto_positioning_vertical_directions.py +45 -0
- restpki_ng_python_client/models/blockchains.py +45 -0
- restpki_ng_python_client/models/cades_signature_model.py +123 -0
- restpki_ng_python_client/models/cades_signature_post_request_v1.py +137 -0
- restpki_ng_python_client/models/cades_signature_post_request_v2.py +152 -0
- restpki_ng_python_client/models/cades_signature_post_request_v3.py +149 -0
- restpki_ng_python_client/models/cades_signature_post_response.py +120 -0
- restpki_ng_python_client/models/cades_signature_post_signed_bytes_request.py +92 -0
- restpki_ng_python_client/models/cades_signature_post_signed_bytes_response.py +106 -0
- restpki_ng_python_client/models/cades_signer_model.py +159 -0
- restpki_ng_python_client/models/cades_timestamp_model.py +140 -0
- restpki_ng_python_client/models/certificate_model.py +197 -0
- restpki_ng_python_client/models/certificate_reference_model.py +99 -0
- restpki_ng_python_client/models/certificate_requirement.py +95 -0
- restpki_ng_python_client/models/certificate_requirement_types.py +45 -0
- restpki_ng_python_client/models/certificate_summary.py +142 -0
- restpki_ng_python_client/models/certified_attribute_model.py +94 -0
- restpki_ng_python_client/models/certified_attribute_types.py +44 -0
- restpki_ng_python_client/models/cms_content_types.py +50 -0
- restpki_ng_python_client/models/cms_signature_options.py +109 -0
- restpki_ng_python_client/models/color_model.py +98 -0
- restpki_ng_python_client/models/commitment_type_model.py +99 -0
- restpki_ng_python_client/models/complete_authentication_request.py +93 -0
- restpki_ng_python_client/models/complete_authentication_response.py +103 -0
- restpki_ng_python_client/models/complete_signature_request.py +95 -0
- restpki_ng_python_client/models/complete_signature_request_v2.py +91 -0
- restpki_ng_python_client/models/create_signature_session_request.py +161 -0
- restpki_ng_python_client/models/create_signature_session_response.py +95 -0
- restpki_ng_python_client/models/digest_algorithm_and_value_model.py +103 -0
- restpki_ng_python_client/models/digest_algorithms.py +49 -0
- restpki_ng_python_client/models/document_file_model.py +137 -0
- restpki_ng_python_client/models/document_key_model.py +100 -0
- restpki_ng_python_client/models/document_key_query_response.py +110 -0
- restpki_ng_python_client/models/document_key_summary.py +100 -0
- restpki_ng_python_client/models/document_model.py +150 -0
- restpki_ng_python_client/models/document_query_response.py +93 -0
- restpki_ng_python_client/models/document_status.py +47 -0
- restpki_ng_python_client/models/document_summary.py +128 -0
- restpki_ng_python_client/models/error_model_v2.py +120 -0
- restpki_ng_python_client/models/file_model.py +114 -0
- restpki_ng_python_client/models/file_reference_model.py +137 -0
- restpki_ng_python_client/models/full_xml_signature_post_request.py +136 -0
- restpki_ng_python_client/models/general_name_choices.py +52 -0
- restpki_ng_python_client/models/general_name_model.py +108 -0
- restpki_ng_python_client/models/holder_types.py +45 -0
- restpki_ng_python_client/models/inspect_signature_failures.py +44 -0
- restpki_ng_python_client/models/inspect_signature_request.py +127 -0
- restpki_ng_python_client/models/inspect_signature_response.py +131 -0
- restpki_ng_python_client/models/multipart_upload_begin_response.py +95 -0
- restpki_ng_python_client/models/multipart_upload_end_request.py +95 -0
- restpki_ng_python_client/models/name_model.py +205 -0
- restpki_ng_python_client/models/namespace_model.py +99 -0
- restpki_ng_python_client/models/open_cades_signature_request_model.py +147 -0
- restpki_ng_python_client/models/open_signature_request_model.py +145 -0
- restpki_ng_python_client/models/open_xml_signature_request_model.py +151 -0
- restpki_ng_python_client/models/other_name_model.py +107 -0
- restpki_ng_python_client/models/pades_certification_level.py +47 -0
- restpki_ng_python_client/models/pades_horizontal_align.py +46 -0
- restpki_ng_python_client/models/pades_measurement_units.py +45 -0
- restpki_ng_python_client/models/pades_page_optimization_model.py +98 -0
- restpki_ng_python_client/models/pades_signature_model.py +113 -0
- restpki_ng_python_client/models/pades_signature_post_request_v1.py +167 -0
- restpki_ng_python_client/models/pades_signature_post_request_v2.py +171 -0
- restpki_ng_python_client/models/pades_signature_post_response.py +120 -0
- restpki_ng_python_client/models/pades_signature_post_signed_bytes_request.py +92 -0
- restpki_ng_python_client/models/pades_signature_post_signed_bytes_response.py +106 -0
- restpki_ng_python_client/models/pades_signer_model.py +168 -0
- restpki_ng_python_client/models/pades_size_model.py +89 -0
- restpki_ng_python_client/models/pades_text_horizontal_align.py +45 -0
- restpki_ng_python_client/models/pades_vertical_align.py +46 -0
- restpki_ng_python_client/models/pades_visual_auto_positioning_model.py +106 -0
- restpki_ng_python_client/models/pades_visual_image_model.py +105 -0
- restpki_ng_python_client/models/pades_visual_positioning_model.py +109 -0
- restpki_ng_python_client/models/pades_visual_rectangle_model.py +127 -0
- restpki_ng_python_client/models/pades_visual_representation_model.py +103 -0
- restpki_ng_python_client/models/pades_visual_text_model.py +111 -0
- restpki_ng_python_client/models/page_orientations.py +46 -0
- restpki_ng_python_client/models/paper_sizes.py +56 -0
- restpki_ng_python_client/models/pdf_add_marks_request.py +117 -0
- restpki_ng_python_client/models/pdf_add_marks_response.py +91 -0
- restpki_ng_python_client/models/pdf_container_definition.py +208 -0
- restpki_ng_python_client/models/pdf_helper.py +43 -0
- restpki_ng_python_client/models/pdf_mark_element_model.py +230 -0
- restpki_ng_python_client/models/pdf_mark_element_type.py +46 -0
- restpki_ng_python_client/models/pdf_mark_image_model.py +98 -0
- restpki_ng_python_client/models/pdf_mark_model.py +168 -0
- restpki_ng_python_client/models/pdf_mark_page_options.py +47 -0
- restpki_ng_python_client/models/pdf_signature_options.py +101 -0
- restpki_ng_python_client/models/pdf_text_section_model.py +125 -0
- restpki_ng_python_client/models/pdf_text_style.py +46 -0
- restpki_ng_python_client/models/pki_brazil_certificate_model.py +159 -0
- restpki_ng_python_client/models/pki_brazil_certificate_types.py +54 -0
- restpki_ng_python_client/models/pki_italy_certificate_model.py +103 -0
- restpki_ng_python_client/models/pki_italy_certificate_types.py +46 -0
- restpki_ng_python_client/models/prepare_authentication_request.py +100 -0
- restpki_ng_python_client/models/prepare_authentication_response.py +99 -0
- restpki_ng_python_client/models/prepare_signature_failures.py +46 -0
- restpki_ng_python_client/models/prepare_signature_request.py +133 -0
- restpki_ng_python_client/models/prepare_signature_response.py +116 -0
- restpki_ng_python_client/models/resource_content_or_reference.py +107 -0
- restpki_ng_python_client/models/role_attribute_model.py +114 -0
- restpki_ng_python_client/models/session_completion_status.py +89 -0
- restpki_ng_python_client/models/signature_algorithm_and_value_model.py +106 -0
- restpki_ng_python_client/models/signature_algorithm_identifier.py +88 -0
- restpki_ng_python_client/models/signature_algorithms.py +48 -0
- restpki_ng_python_client/models/signature_b_stamp_model.py +135 -0
- restpki_ng_python_client/models/signature_policy_identifier_model.py +105 -0
- restpki_ng_python_client/models/signature_result_model.py +105 -0
- restpki_ng_python_client/models/signature_session_document_data.py +128 -0
- restpki_ng_python_client/models/signature_session_document_summary.py +138 -0
- restpki_ng_python_client/models/signature_session_model.py +126 -0
- restpki_ng_python_client/models/signature_session_status.py +49 -0
- restpki_ng_python_client/models/signature_types.py +46 -0
- restpki_ng_python_client/models/signer_b_stamp_model.py +132 -0
- restpki_ng_python_client/models/signer_model.py +187 -0
- restpki_ng_python_client/models/signer_summary.py +94 -0
- restpki_ng_python_client/models/timestamp_issue_response.py +99 -0
- restpki_ng_python_client/models/validation_item_model.py +111 -0
- restpki_ng_python_client/models/validation_item_types.py +91 -0
- restpki_ng_python_client/models/validation_results_model.py +131 -0
- restpki_ng_python_client/models/webhook_event_model.py +94 -0
- restpki_ng_python_client/models/webhook_event_types.py +44 -0
- restpki_ng_python_client/models/xml_attribute_model.py +107 -0
- restpki_ng_python_client/models/xml_element_location_model.py +111 -0
- restpki_ng_python_client/models/xml_element_model.py +115 -0
- restpki_ng_python_client/models/xml_element_signature_post_request.py +145 -0
- restpki_ng_python_client/models/xml_id_attribute_model.py +96 -0
- restpki_ng_python_client/models/xml_id_resolution_table_model.py +123 -0
- restpki_ng_python_client/models/xml_insertion_options.py +47 -0
- restpki_ng_python_client/models/xml_node_name_model.py +96 -0
- restpki_ng_python_client/models/xml_signature_model.py +154 -0
- restpki_ng_python_client/models/xml_signature_options.py +102 -0
- restpki_ng_python_client/models/xml_signature_post_response.py +120 -0
- restpki_ng_python_client/models/xml_signature_post_signed_bytes_request.py +92 -0
- restpki_ng_python_client/models/xml_signature_post_signed_bytes_response.py +106 -0
- restpki_ng_python_client/models/xml_signature_response_model.py +113 -0
- restpki_ng_python_client/models/xml_signature_types.py +47 -0
- restpki_ng_python_client/models/xml_signed_entity_types.py +46 -0
- restpki_ng_python_client/py.typed +0 -0
- restpki_ng_python_client/rest.py +231 -0
- restpki_ng_python_client/restpki_ng_client.py +458 -0
- restpki_ng_python_client/standard_signature_policies.py +24 -0
- restpki_ng_python_client/utils.py +80 -0
- restpki_ng_python_client-0.9.0.dist-info/METADATA +16 -0
- restpki_ng_python_client-0.9.0.dist-info/RECORD +181 -0
- restpki_ng_python_client-0.9.0.dist-info/WHEEL +5 -0
- restpki_ng_python_client-0.9.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Rest PKI Core API
|
|
5
|
+
|
|
6
|
+
<b><i>Para Português, <a href=\"https://docs.lacunasoftware.com/pt-br/articles/rest-pki/core/integration/get-started\">clique aqui</a></i></b> <p> <a href=\"https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/\">Rest PKI Core</a> is an upcoming version of <a href=\"https://docs.lacunasoftware.com/en-us/articles/rest-pki/\">Rest PKI</a> that will have extended compatibility with environments and databases. </p> <p> In addition to Windows Server (which is already supported by Rest PKI), Rest PKI Core will also run on <b>Linux</b> (Debian- and RedHat-based distributions) and on <b>Docker</b>. As for database servers, in addition to SQL Server, <b>PostgreSQL</b> will also be supported. </p> <p> <b>Before getting started, see the integration overview on the <a href=\"https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/\">Integration Guide</a></b> </p> <p> For questions regarding the usage of this API, please reach us at <a href=\"https://lacuna.help/\">lacuna.help</a> </p> <h2>Parameters</h2> <p> You will need the following parameters: </p> <ul> <li><b>Endpoint</b>: address of the Rest PKI Core instance that will be used</li> <li><b>API Key</b>: authorization key for using the API</li> </ul> <p> The <span class=\"model\">endpoint</span> must be prefixed to all relative URLs mentioned here. As for the <span class=\"model\">API Key</span>, see how to use it below. </p> <h2>Authentication</h2> <p> The API key must be sent on the <span class=\"model\">X-Api-Key</span> header on each request: </p> <!-- unfortunately, class \"example microlight\" doesn't seem to work here --> <pre style=\"font-size: 12px; padding: 10px; border-radius: 4px; background: #41444e; font-weight: 600; color: #fff;\"> X-Api-Key: yourapp|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx </pre> <h2>HTTP Codes</h2> <p> The APIs will return the following HTTP codes: </p> <table> <thead> <tr> <th>Code</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><strong class=\"model-title\">200 (OK)</strong></td> <td>Request processed successfully. The response is different for each API, please refer to the operation's documentation</td> </tr> <tr> <td><strong class=\"model-title\">400 (Bad Request)</strong></td> <td>Syntax error. For instance, when a required field was not provided</td> </tr> <tr> <td><strong class=\"model-title\">401 (Unauthorized)</strong></td> <td>API key not provided or invalid</td> </tr> <tr> <td><strong class=\"model-title\">403 (Forbidden)</strong></td> <td>API key is valid, but the application has insufficient permissions to complete the requested operation</td> </tr> <tr> <td><strong class=\"model-title\">422 (Unprocessable Entity)</strong></td> <td>API error. The response body is an <a href=\"#model-ErrorModelV2\" class=\"model\">ErrorModelV2</a> </tr> <tr> <td><strong class=\"model-title\">500 (Internal Server Error)</strong></td> <td>An unexpected error occurred. The <span class=\"model\">exceptionCode</span> contained on the response body may be of help for our support team during diagnostic.</td> </tr> </tbody> </table> <h3>Error Codes</h3> <p> Some of the error codes returned in the <span class=\"model\">code</span> field of an <a href=\"#model-ErrorModelV2\" class=\"model\">ErrorModelV2</a> (body of responses with HTTP status code 422) are provided below*: </p> <table> <thead> <tr> <th>Code</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td class=\"model\">DocumentNotFound</td> <td>A referenced document was not found (check the document ID)</td> </tr> <tr> <td class=\"model\">SecurityContextNotFound</td> <td>A referenced security context was not found (check the security context ID)</td> </tr> <tr> <td class=\"model\">SignatureSessionNotFound</td> <td>A referenced signature session was not found (check the signature session ID)</td> </tr> <tr> <td class=\"model\">BadSignatureSessionOperation</td> <td>The operation is invalid for the current signature session or document status. For instance, trying to await the session's completion if it is still <span class=\"model\">Pending</span> results in this error</td> </tr> <tr> <td class=\"model\">BackgroundProcessing</td> <td>The operation cannot be completed at this time because the resource is being processed in background</td> </tr> <tr> <td class=\"model\">SignatureSessionTokenRequired</td> <td>The signature session token was not passed on the <span class=\"model\">X-Signature-Session-Token</span> request header</td> </tr> <tr> <td class=\"model\">BadSignatureSessionToken</td> <td>An invalid signature session token was passed on the <span class=\"model\">X-Signature-Session-Token</span> request header. Check your application for possible corruption of the session token, which may contain characters <span class=\"code\">-</span> (hyphen) and <span class=\"code\">_</span> (underscore)</td> </tr> <tr> <td class=\"model\">ExpiredSignatureSessionToken</td> <td>An expired signature session token was passed on the <span class=\"model\">X-Signature-Session-Token</span> request header. Signature session tokens are normally valid for 4 hours.</td> </tr> </tbody> </table> <p style=\"font-size: 0.9em\"> *The codes shown above are the most common error codes. Nonetheless, this list is not comprehensive. New codes may be added anytime without previous warning. </p> <h2>Culture / Internationalization (i18n)</h2> <p>The <span class=\"model\">Accept-Language</span> request header is observed by this API. The following cultures are supported:</p> <ul> <li><span class=\"code\">en-US</span> (or simply <span class=\"code\">en</span>)</li> <li><span class=\"code\">pt-BR</span> (or simply <span class=\"code\">pt</span>)</li> </ul> <p><i>Notice: error messages are not affected by this header and therefore should not be displayed to users, being better suited for logging.</i></p>
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 2.1.2
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
import io
|
|
16
|
+
import warnings
|
|
17
|
+
|
|
18
|
+
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
|
19
|
+
from typing import Dict, List, Optional, Tuple, Union, Any
|
|
20
|
+
|
|
21
|
+
try:
|
|
22
|
+
from typing import Annotated
|
|
23
|
+
except ImportError:
|
|
24
|
+
from typing_extensions import Annotated
|
|
25
|
+
|
|
26
|
+
from typing import Optional
|
|
27
|
+
|
|
28
|
+
from restpki_ng_python_client.models.inspect_signature_request import InspectSignatureRequest
|
|
29
|
+
from restpki_ng_python_client.models.inspect_signature_response import InspectSignatureResponse
|
|
30
|
+
|
|
31
|
+
from restpki_ng_python_client.api_client import ApiClient
|
|
32
|
+
from restpki_ng_python_client.api_response import ApiResponse
|
|
33
|
+
from restpki_ng_python_client.rest import RESTResponseType
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class SignatureInspectionApi:
|
|
37
|
+
"""NOTE: This class is auto generated by OpenAPI Generator
|
|
38
|
+
Ref: https://openapi-generator.tech
|
|
39
|
+
|
|
40
|
+
Do not edit the class manually.
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
def __init__(self, api_client=None) -> None:
|
|
44
|
+
if api_client is None:
|
|
45
|
+
api_client = ApiClient.get_default()
|
|
46
|
+
self.api_client = api_client
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
@validate_call
|
|
50
|
+
def api_signature_inspection_put(
|
|
51
|
+
self,
|
|
52
|
+
inspect_signature_request: Optional[InspectSignatureRequest] = None,
|
|
53
|
+
_request_timeout: Union[
|
|
54
|
+
None,
|
|
55
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
56
|
+
Tuple[
|
|
57
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
58
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
59
|
+
]
|
|
60
|
+
] = None,
|
|
61
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
62
|
+
_content_type: Optional[StrictStr] = None,
|
|
63
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
64
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
65
|
+
) -> InspectSignatureResponse:
|
|
66
|
+
"""Inspects a signed file, returning information about its signers and metadata about the corresponding document (if signed on this instance)
|
|
67
|
+
|
|
68
|
+
## Overview The simplest usage of this API is by simply passing the `file` to be inspected. If passing a file by its contents, make sure to pass its `mimeType` so that the API can infer the signature type (PDF/PAdES, CMS/CAdES or XML/XmlDSig) from it. Information about each signer found is returned on the `signers` property. If the file was signed on this instance, additional information about the document is returned on the `document` property. Please note that by default the signatures are not validated. This means that the `validationResults` property of each signer will be `null` (unless the file was signed on this instance, in which case the property will be filled). ## Signature validation By default, the signed file is only inspected, but not validated. To validate the signatures, pass `validate = true`. In this case, you may optionally specify the `securityContextId` to be used to validate the certificates. If omitted, your default security context will be used. Please note that validating the signatures may take several seconds or even longer, depending on the number of signers. If more than 10 signers are found, only the first 10 are validated (this limit may be increased on on-demand instances). If your documents can have a large number of signers per document, please consider using the signer inspection API to validate each user separately on-demand as the user interacts with the UI. ## Validating detached CMS/CAdES signatures When validating detached CMS/CAdES signatures, the detached data file must be specified on the `dataFile` property or its digests must be given on the `dataHashes` property. If passing `dataHashes`, make sure to pass at least the SHA-256 digest of the data file (other digests may be necessary depending on the signature algorithm used by the signers). If your data files can be considerably large, passing the `dataHashes` is recommended since it avoids transmitting the actual data files through the API. If a CMS/CAdES signature is given with `validate = true` and without the corresponding data file specified, the API returns a 200 (OK) response with `success = false` and `failure = DataFileRequired`. This allows you to implement a validation form that lets the user submit the signature file and only requests the data file if necessary.
|
|
69
|
+
|
|
70
|
+
:param inspect_signature_request:
|
|
71
|
+
:type inspect_signature_request: InspectSignatureRequest
|
|
72
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
73
|
+
number provided, it will be total request
|
|
74
|
+
timeout. It can also be a pair (tuple) of
|
|
75
|
+
(connection, read) timeouts.
|
|
76
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
77
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
78
|
+
request; this effectively ignores the
|
|
79
|
+
authentication in the spec for a single request.
|
|
80
|
+
:type _request_auth: dict, optional
|
|
81
|
+
:param _content_type: force content-type for the request.
|
|
82
|
+
:type _content_type: str, Optional
|
|
83
|
+
:param _headers: set to override the headers for a single
|
|
84
|
+
request; this effectively ignores the headers
|
|
85
|
+
in the spec for a single request.
|
|
86
|
+
:type _headers: dict, optional
|
|
87
|
+
:param _host_index: set to override the host_index for a single
|
|
88
|
+
request; this effectively ignores the host_index
|
|
89
|
+
in the spec for a single request.
|
|
90
|
+
:type _host_index: int, optional
|
|
91
|
+
:return: Returns the result object.
|
|
92
|
+
""" # noqa: E501
|
|
93
|
+
|
|
94
|
+
_param = self._api_signature_inspection_put_serialize(
|
|
95
|
+
inspect_signature_request=inspect_signature_request,
|
|
96
|
+
_request_auth=_request_auth,
|
|
97
|
+
_content_type=_content_type,
|
|
98
|
+
_headers=_headers,
|
|
99
|
+
_host_index=_host_index
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
103
|
+
'200': "InspectSignatureResponse",
|
|
104
|
+
'400': None,
|
|
105
|
+
'401': None,
|
|
106
|
+
'403': None,
|
|
107
|
+
'422': None
|
|
108
|
+
|
|
109
|
+
}
|
|
110
|
+
response_data = self.api_client.call_api(
|
|
111
|
+
*_param,
|
|
112
|
+
_request_timeout=_request_timeout
|
|
113
|
+
)
|
|
114
|
+
response_data.read()
|
|
115
|
+
return self.api_client.response_deserialize(
|
|
116
|
+
response_data=response_data,
|
|
117
|
+
response_types_map=_response_types_map,
|
|
118
|
+
).data
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
@validate_call
|
|
122
|
+
def api_signature_inspection_put_with_http_info(
|
|
123
|
+
self,
|
|
124
|
+
inspect_signature_request: Optional[InspectSignatureRequest] = None,
|
|
125
|
+
_request_timeout: Union[
|
|
126
|
+
None,
|
|
127
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
128
|
+
Tuple[
|
|
129
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
130
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
131
|
+
]
|
|
132
|
+
] = None,
|
|
133
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
134
|
+
_content_type: Optional[StrictStr] = None,
|
|
135
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
136
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
137
|
+
) -> ApiResponse[InspectSignatureResponse]:
|
|
138
|
+
"""Inspects a signed file, returning information about its signers and metadata about the corresponding document (if signed on this instance)
|
|
139
|
+
|
|
140
|
+
## Overview The simplest usage of this API is by simply passing the `file` to be inspected. If passing a file by its contents, make sure to pass its `mimeType` so that the API can infer the signature type (PDF/PAdES, CMS/CAdES or XML/XmlDSig) from it. Information about each signer found is returned on the `signers` property. If the file was signed on this instance, additional information about the document is returned on the `document` property. Please note that by default the signatures are not validated. This means that the `validationResults` property of each signer will be `null` (unless the file was signed on this instance, in which case the property will be filled). ## Signature validation By default, the signed file is only inspected, but not validated. To validate the signatures, pass `validate = true`. In this case, you may optionally specify the `securityContextId` to be used to validate the certificates. If omitted, your default security context will be used. Please note that validating the signatures may take several seconds or even longer, depending on the number of signers. If more than 10 signers are found, only the first 10 are validated (this limit may be increased on on-demand instances). If your documents can have a large number of signers per document, please consider using the signer inspection API to validate each user separately on-demand as the user interacts with the UI. ## Validating detached CMS/CAdES signatures When validating detached CMS/CAdES signatures, the detached data file must be specified on the `dataFile` property or its digests must be given on the `dataHashes` property. If passing `dataHashes`, make sure to pass at least the SHA-256 digest of the data file (other digests may be necessary depending on the signature algorithm used by the signers). If your data files can be considerably large, passing the `dataHashes` is recommended since it avoids transmitting the actual data files through the API. If a CMS/CAdES signature is given with `validate = true` and without the corresponding data file specified, the API returns a 200 (OK) response with `success = false` and `failure = DataFileRequired`. This allows you to implement a validation form that lets the user submit the signature file and only requests the data file if necessary.
|
|
141
|
+
|
|
142
|
+
:param inspect_signature_request:
|
|
143
|
+
:type inspect_signature_request: InspectSignatureRequest
|
|
144
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
145
|
+
number provided, it will be total request
|
|
146
|
+
timeout. It can also be a pair (tuple) of
|
|
147
|
+
(connection, read) timeouts.
|
|
148
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
149
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
150
|
+
request; this effectively ignores the
|
|
151
|
+
authentication in the spec for a single request.
|
|
152
|
+
:type _request_auth: dict, optional
|
|
153
|
+
:param _content_type: force content-type for the request.
|
|
154
|
+
:type _content_type: str, Optional
|
|
155
|
+
:param _headers: set to override the headers for a single
|
|
156
|
+
request; this effectively ignores the headers
|
|
157
|
+
in the spec for a single request.
|
|
158
|
+
:type _headers: dict, optional
|
|
159
|
+
:param _host_index: set to override the host_index for a single
|
|
160
|
+
request; this effectively ignores the host_index
|
|
161
|
+
in the spec for a single request.
|
|
162
|
+
:type _host_index: int, optional
|
|
163
|
+
:return: Returns the result object.
|
|
164
|
+
""" # noqa: E501
|
|
165
|
+
|
|
166
|
+
_param = self._api_signature_inspection_put_serialize(
|
|
167
|
+
inspect_signature_request=inspect_signature_request,
|
|
168
|
+
_request_auth=_request_auth,
|
|
169
|
+
_content_type=_content_type,
|
|
170
|
+
_headers=_headers,
|
|
171
|
+
_host_index=_host_index
|
|
172
|
+
)
|
|
173
|
+
|
|
174
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
175
|
+
'200': "InspectSignatureResponse",
|
|
176
|
+
'400': None,
|
|
177
|
+
'401': None,
|
|
178
|
+
'403': None,
|
|
179
|
+
'422': None
|
|
180
|
+
|
|
181
|
+
}
|
|
182
|
+
response_data = self.api_client.call_api(
|
|
183
|
+
*_param,
|
|
184
|
+
_request_timeout=_request_timeout
|
|
185
|
+
)
|
|
186
|
+
response_data.read()
|
|
187
|
+
return self.api_client.response_deserialize(
|
|
188
|
+
response_data=response_data,
|
|
189
|
+
response_types_map=_response_types_map,
|
|
190
|
+
)
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
@validate_call
|
|
194
|
+
def api_signature_inspection_put_without_preload_content(
|
|
195
|
+
self,
|
|
196
|
+
inspect_signature_request: Optional[InspectSignatureRequest] = None,
|
|
197
|
+
_request_timeout: Union[
|
|
198
|
+
None,
|
|
199
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
200
|
+
Tuple[
|
|
201
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
202
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
203
|
+
]
|
|
204
|
+
] = None,
|
|
205
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
206
|
+
_content_type: Optional[StrictStr] = None,
|
|
207
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
208
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
209
|
+
) -> RESTResponseType:
|
|
210
|
+
"""Inspects a signed file, returning information about its signers and metadata about the corresponding document (if signed on this instance)
|
|
211
|
+
|
|
212
|
+
## Overview The simplest usage of this API is by simply passing the `file` to be inspected. If passing a file by its contents, make sure to pass its `mimeType` so that the API can infer the signature type (PDF/PAdES, CMS/CAdES or XML/XmlDSig) from it. Information about each signer found is returned on the `signers` property. If the file was signed on this instance, additional information about the document is returned on the `document` property. Please note that by default the signatures are not validated. This means that the `validationResults` property of each signer will be `null` (unless the file was signed on this instance, in which case the property will be filled). ## Signature validation By default, the signed file is only inspected, but not validated. To validate the signatures, pass `validate = true`. In this case, you may optionally specify the `securityContextId` to be used to validate the certificates. If omitted, your default security context will be used. Please note that validating the signatures may take several seconds or even longer, depending on the number of signers. If more than 10 signers are found, only the first 10 are validated (this limit may be increased on on-demand instances). If your documents can have a large number of signers per document, please consider using the signer inspection API to validate each user separately on-demand as the user interacts with the UI. ## Validating detached CMS/CAdES signatures When validating detached CMS/CAdES signatures, the detached data file must be specified on the `dataFile` property or its digests must be given on the `dataHashes` property. If passing `dataHashes`, make sure to pass at least the SHA-256 digest of the data file (other digests may be necessary depending on the signature algorithm used by the signers). If your data files can be considerably large, passing the `dataHashes` is recommended since it avoids transmitting the actual data files through the API. If a CMS/CAdES signature is given with `validate = true` and without the corresponding data file specified, the API returns a 200 (OK) response with `success = false` and `failure = DataFileRequired`. This allows you to implement a validation form that lets the user submit the signature file and only requests the data file if necessary.
|
|
213
|
+
|
|
214
|
+
:param inspect_signature_request:
|
|
215
|
+
:type inspect_signature_request: InspectSignatureRequest
|
|
216
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
217
|
+
number provided, it will be total request
|
|
218
|
+
timeout. It can also be a pair (tuple) of
|
|
219
|
+
(connection, read) timeouts.
|
|
220
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
221
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
222
|
+
request; this effectively ignores the
|
|
223
|
+
authentication in the spec for a single request.
|
|
224
|
+
:type _request_auth: dict, optional
|
|
225
|
+
:param _content_type: force content-type for the request.
|
|
226
|
+
:type _content_type: str, Optional
|
|
227
|
+
:param _headers: set to override the headers for a single
|
|
228
|
+
request; this effectively ignores the headers
|
|
229
|
+
in the spec for a single request.
|
|
230
|
+
:type _headers: dict, optional
|
|
231
|
+
:param _host_index: set to override the host_index for a single
|
|
232
|
+
request; this effectively ignores the host_index
|
|
233
|
+
in the spec for a single request.
|
|
234
|
+
:type _host_index: int, optional
|
|
235
|
+
:return: Returns the result object.
|
|
236
|
+
""" # noqa: E501
|
|
237
|
+
|
|
238
|
+
_param = self._api_signature_inspection_put_serialize(
|
|
239
|
+
inspect_signature_request=inspect_signature_request,
|
|
240
|
+
_request_auth=_request_auth,
|
|
241
|
+
_content_type=_content_type,
|
|
242
|
+
_headers=_headers,
|
|
243
|
+
_host_index=_host_index
|
|
244
|
+
)
|
|
245
|
+
|
|
246
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
247
|
+
'200': "InspectSignatureResponse",
|
|
248
|
+
'400': None,
|
|
249
|
+
'401': None,
|
|
250
|
+
'403': None,
|
|
251
|
+
'422': None
|
|
252
|
+
|
|
253
|
+
}
|
|
254
|
+
response_data = self.api_client.call_api(
|
|
255
|
+
*_param,
|
|
256
|
+
_request_timeout=_request_timeout
|
|
257
|
+
)
|
|
258
|
+
return response_data.response
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
def _api_signature_inspection_put_serialize(
|
|
262
|
+
self,
|
|
263
|
+
inspect_signature_request,
|
|
264
|
+
_request_auth,
|
|
265
|
+
_content_type,
|
|
266
|
+
_headers,
|
|
267
|
+
_host_index,
|
|
268
|
+
) -> Tuple:
|
|
269
|
+
|
|
270
|
+
_host = None
|
|
271
|
+
|
|
272
|
+
_collection_formats: Dict[str, str] = {
|
|
273
|
+
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
_path_params: Dict[str, str] = {}
|
|
277
|
+
_query_params: List[Tuple[str, str]] = []
|
|
278
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
279
|
+
_form_params: List[Tuple[str, str]] = []
|
|
280
|
+
_files: Dict[str, str] = {}
|
|
281
|
+
_body_params: Optional[bytes] = None
|
|
282
|
+
|
|
283
|
+
# process the path parameters
|
|
284
|
+
# process the query parameters
|
|
285
|
+
# process the header parameters
|
|
286
|
+
# process the form parameters
|
|
287
|
+
# process the body parameter
|
|
288
|
+
if inspect_signature_request is not None:
|
|
289
|
+
_body_params = inspect_signature_request
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
# set the HTTP header `Accept`
|
|
293
|
+
_header_params['Accept'] = self.api_client.select_header_accept(
|
|
294
|
+
[
|
|
295
|
+
'text/plain',
|
|
296
|
+
'application/json',
|
|
297
|
+
'text/json'
|
|
298
|
+
]
|
|
299
|
+
)
|
|
300
|
+
|
|
301
|
+
# set the HTTP header `Content-Type`
|
|
302
|
+
if _content_type:
|
|
303
|
+
_header_params['Content-Type'] = _content_type
|
|
304
|
+
else:
|
|
305
|
+
_default_content_type = (
|
|
306
|
+
self.api_client.select_header_content_type(
|
|
307
|
+
[
|
|
308
|
+
'application/json-patch+json',
|
|
309
|
+
'application/json',
|
|
310
|
+
'text/json',
|
|
311
|
+
'application/*+json'
|
|
312
|
+
]
|
|
313
|
+
)
|
|
314
|
+
)
|
|
315
|
+
if _default_content_type is not None:
|
|
316
|
+
_header_params['Content-Type'] = _default_content_type
|
|
317
|
+
|
|
318
|
+
# authentication setting
|
|
319
|
+
_auth_settings: List[str] = [
|
|
320
|
+
]
|
|
321
|
+
|
|
322
|
+
return self.api_client.param_serialize(
|
|
323
|
+
method='PUT',
|
|
324
|
+
resource_path='/api/signature-inspection',
|
|
325
|
+
path_params=_path_params,
|
|
326
|
+
query_params=_query_params,
|
|
327
|
+
header_params=_header_params,
|
|
328
|
+
body=_body_params,
|
|
329
|
+
post_params=_form_params,
|
|
330
|
+
files=_files,
|
|
331
|
+
auth_settings=_auth_settings,
|
|
332
|
+
collection_formats=_collection_formats,
|
|
333
|
+
_host=_host,
|
|
334
|
+
_request_auth=_request_auth
|
|
335
|
+
)
|
|
336
|
+
|
|
337
|
+
|