|
PACS System 0.1.0
PACS DICOM system library
|
#include <digital_signature.h>

Static Public Member Functions | |
| static auto | sign (core::dicom_dataset &dataset, const certificate &cert, const private_key &key, signature_algorithm algo=signature_algorithm::rsa_sha256) -> kcenon::common::VoidResult |
| Sign a DICOM dataset. | |
| static auto | sign_tags (core::dicom_dataset &dataset, const certificate &cert, const private_key &key, std::span< const core::dicom_tag > tags_to_sign, signature_algorithm algo=signature_algorithm::rsa_sha256) -> kcenon::common::VoidResult |
| Sign specific tags in a DICOM dataset. | |
| static auto | verify (const core::dicom_dataset &dataset) -> kcenon::common::Result< signature_status > |
| Verify digital signatures in a dataset. | |
| static auto | verify_with_trust (const core::dicom_dataset &dataset, const std::vector< certificate > &trusted_certs) -> kcenon::common::Result< signature_status > |
| Verify digital signatures with a trusted certificate store. | |
| static auto | get_signature_info (const core::dicom_dataset &dataset) -> std::optional< signature_info > |
| Get information about signatures in a dataset. | |
| static auto | get_all_signatures (const core::dicom_dataset &dataset) -> std::vector< signature_info > |
| Get all signatures in a dataset. | |
| static auto | has_signature (const core::dicom_dataset &dataset) -> bool |
| Check if a dataset contains digital signatures. | |
| static auto | remove_signatures (core::dicom_dataset &dataset) -> bool |
| Remove all digital signatures from a dataset. | |
| static auto | generate_signature_uid () -> std::string |
| Generate a new Digital Signature UID. | |
Static Private Member Functions | |
| static auto | compute_mac (const core::dicom_dataset &dataset, std::span< const core::dicom_tag > tags, mac_algorithm algo) -> std::vector< std::uint8_t > |
| static auto | sign_mac (std::span< const std::uint8_t > mac_data, const private_key &key, signature_algorithm algo) -> kcenon::common::Result< std::vector< std::uint8_t > > |
| static auto | verify_mac_signature (std::span< const std::uint8_t > mac_data, std::span< const std::uint8_t > signature, const certificate &cert, signature_algorithm algo) -> bool |
Definition at line 68 of file digital_signature.h.
|
staticprivate |
Definition at line 602 of file digital_signature.cpp.
|
staticnodiscard |
Generate a new Digital Signature UID.
Creates a new unique identifier for a digital signature.
Definition at line 598 of file digital_signature.cpp.
|
staticnodiscard |
Get all signatures in a dataset.
Extracts information for all signatures if multiple are present.
| dataset | The dataset to inspect |
Definition at line 556 of file digital_signature.cpp.
|
staticnodiscard |
Get information about signatures in a dataset.
Extracts signature metadata from the Digital Signature Sequence without performing verification.
| dataset | The dataset to inspect |
Definition at line 506 of file digital_signature.cpp.
References kcenon::pacs::security::certificate::load_from_der(), and kcenon::pacs::security::rsa_sha256.

|
staticnodiscard |
Check if a dataset contains digital signatures.
| dataset | The dataset to check |
Definition at line 570 of file digital_signature.cpp.
|
static |
Remove all digital signatures from a dataset.
Removes the Digital Signature Sequence (0400,0561) from the dataset.
| dataset | The dataset to modify |
Definition at line 578 of file digital_signature.cpp.
|
staticnodiscard |
Sign a DICOM dataset.
Creates a digital signature for the entire dataset and adds the Digital Signature Sequence (0400,0561) to the dataset.
| dataset | The dataset to sign (modified in place) |
| cert | Signer's X.509 certificate |
| key | Signer's private key (must match certificate's public key) |
| algo | Signature algorithm to use (default: RSA-SHA256) |
Definition at line 289 of file digital_signature.cpp.
|
staticprivate |
Definition at line 637 of file digital_signature.cpp.
|
staticnodiscard |
Sign specific tags in a DICOM dataset.
Creates a digital signature for only the specified tags.
| dataset | The dataset to sign (modified in place) |
| cert | Signer's X.509 certificate |
| key | Signer's private key |
| tags_to_sign | List of tags to include in signature |
| algo | Signature algorithm to use |
Definition at line 300 of file digital_signature.cpp.
References kcenon::pacs::encoding::AT, kcenon::pacs::encoding::CS, kcenon::pacs::encoding::DT, kcenon::pacs::encoding::OB, kcenon::pacs::security::to_dicom_uid(), and kcenon::pacs::encoding::UI.

|
staticnodiscard |
Verify digital signatures in a dataset.
Verifies all digital signatures present in the Digital Signature Sequence (0400,0561).
| dataset | The dataset to verify |
Definition at line 389 of file digital_signature.cpp.
References kcenon::pacs::security::expired, kcenon::pacs::security::invalid, kcenon::pacs::security::certificate::load_from_der(), kcenon::pacs::security::no_signature, kcenon::pacs::security::sha256, kcenon::pacs::security::untrusted_signer, and kcenon::pacs::security::valid.

|
staticprivate |
Definition at line 695 of file digital_signature.cpp.
|
staticnodiscard |
Verify digital signatures with a trusted certificate store.
Verifies signatures and validates the signer's certificate against a set of trusted certificates.
| dataset | The dataset to verify |
| trusted_certs | Trusted certificates for validation |
Definition at line 467 of file digital_signature.cpp.
References kcenon::pacs::security::certificate::load_from_der(), kcenon::pacs::security::untrusted_signer, and kcenon::pacs::security::valid.
