![]() |
Signet Forge 0.1.0
C++20 Parquet library with AI-native extensions
|
DEMO |
Classes | |
| struct | ColumnClassification |
| Column-level data classification descriptor. More... | |
| struct | DPIARecord |
| Data Protection Impact Assessment record per GDPR Art. 35. More... | |
| struct | PolicyValidationResult |
| Validation result for GDPR writer policy. More... | |
| struct | ProcessingActivity |
| Record of Processing Activity per GDPR Art. 30. More... | |
| struct | PseudonymConfig |
| Pseudonymizer configuration. More... | |
| struct | RetentionPolicy |
| Retention policy for a dataset or column. More... | |
| struct | SubjectDataQuery |
| DSAR query parameters for finding subject data across files. More... | |
| struct | SubjectDataResponse |
| DSAR response record. More... | |
Enumerations | |
| enum class | DataClassification : int32_t { PUBLIC = 0 , INTERNAL = 1 , PERSONAL = 2 , SENSITIVE = 3 , PSEUDONYMIZED = 4 , ANONYMIZED = 5 } |
| Data classification levels for GDPR compliance. More... | |
| enum class | PseudonymStrategy : int32_t { HMAC_SHA256 = 0 , RANDOM_TOKEN = 1 } |
| Pseudonymization strategy. More... | |
Functions | |
| bool | requires_encryption (DataClassification c) |
| Check if a classification level requires encryption under GDPR Art. | |
| bool | allows_pseudonymization (DataClassification c) |
| Check if a classification level allows pseudonymization. | |
| void | pseudonymize_hmac (const uint8_t *key, size_t key_size, const uint8_t *value, size_t value_size, char *out, size_t out_size) |
| Pseudonymize a value using HMAC-SHA256. | |
| PolicyValidationResult | validate_gdpr_policy (const std::vector< ColumnClassification > &classifications, const std::vector< std::string > &encrypted_columns) |
| Validate that all PII-classified columns have encryption keys. | |
| bool | is_expired (const RetentionPolicy &policy, int64_t data_created_ns, int64_t now_ns) |
| Check if data has exceeded its retention period. | |
|
strong |
Data classification levels for GDPR compliance.
Assign one of these to each Parquet column to drive automatic encryption and pseudonymization policies.
Definition at line 417 of file compliance_types.hpp.
|
strong |
Pseudonymization strategy.
| Enumerator | |
|---|---|
| HMAC_SHA256 | HMAC-SHA256 hash (deterministic, irreversible). |
| RANDOM_TOKEN | Random token (non-deterministic, requires mapping table). |
Definition at line 831 of file compliance_types.hpp.
|
inline |
Check if a classification level allows pseudonymization.
Definition at line 446 of file compliance_types.hpp.
|
inline |
Check if data has exceeded its retention period.
| policy | Retention policy. |
| data_created_ns | Data creation timestamp (ns since epoch). |
| now_ns | Current timestamp (ns since epoch). |
Definition at line 982 of file compliance_types.hpp.
|
inline |
Pseudonymize a value using HMAC-SHA256.
Produces a deterministic, irreversible hex string pseudonym. Same (key, value) always produces the same pseudonym, enabling consistent joins across pseudonymized datasets.
| key | Secret pseudonymization key (min 32 bytes recommended). |
| key_size | Key size in bytes. |
| value | Plaintext value to pseudonymize. |
| value_size | Value size in bytes. |
| out | Output buffer for hex string (must be at least 64 bytes for full hash). |
| out_size | Number of hex characters to write (max 64). |
Definition at line 855 of file compliance_types.hpp.
|
inline |
Check if a classification level requires encryption under GDPR Art.
32.
Definition at line 440 of file compliance_types.hpp.
|
inline |
Validate that all PII-classified columns have encryption keys.
| classifications | Column classifications (from G-2). |
| encrypted_columns | Set of column names that have encryption keys. |
Definition at line 913 of file compliance_types.hpp.