No project description provided
Project description
Beskrivelse
Et repo som inneholder kode for en modul som gjør at man kan interagere med kryptert data, som er delt via f.eks Delta Sharing.
Bruk
For å installere biblioteket kjører man bare
pip install kv-dataplatform-consumer
Testet med versjon 3.13.1
Generer en egen nøkkel
Som konsument av kryptert data vil du trenge en egen asymmentrisk nøkkel for å dekryptere Kartverkets datakey (symmetriske nøkkel i steg1 under). Den kan du generere på følgende måte
from kv_dataplatform_consumer import crypto_utils
crypto_utils.generate_public_private_key()
Ta vare på private_key og lagre denne et sikkert sted hos deg selv, og del public_key med Kartverket. I første omgang kan den sendes manuelt til dine kontaktpersoner i Kartverket.
Om du ikke kan bruke biblioteket kan du bruke følgende kommandoer
# Generer RSA 4096 private key
openssl genrsa -out private.pem 4096
# Print public key til fil
openssl rsa -in private.pem -pubout > public.pem
Komme i gang med utvikling
- Man må ha pipx og poetry installert
- Deretter er det bare å kjøre
poetry install - Så kan man kjøre testene via
poetry run pytest
Forklaring på kryptoflyten
- Generer en unik symmetrisk nøkkel =
key - Generer en tilhørende unik UUID =
key_id - Lagre denne et sikkert sted, slik at man senere kan slå opp på
key_id - Oppretter / rekrypterer en tabell, der man for hver rad i gjenbruker nøkkelen key og genererer en unik nonce for (kolonne,rad) som skal krypteres. Tabellen vil lagres inn i et gjenbrukbart schema, f.eks pii_schema. Gitt en tabell kalt person med kolonnene navn og alder, og man skal kryptere navn, så vil man da ende opp med en tabell som ser slik ut:
| navn_enc | navn_nonce | alder | key_id |
|---|---|---|---|
| qwkeoqwke | 12mkqqwek | 20 | ce-232 |
| qwkej123j | 1kocmmqwe | 30 | ce-232 |
| koko2k313 | cmk2kpqeq | 40 | ce-232 |
- Deretter så vil man for hver consumer c ta inn deres public key =
pkc, og da lage et entry, der man kryptererkeymed konsumenten sin offentlige nøkkelpkc. Da kan man lage et entry i__keys__c__pii_schemaog en tabell som også heterperson, som vil se slik ut:
| key_id | key |
|---|---|
| ce-232 | wqkeo123koq |
- Konsumenten kan da ta i bruk pakken i repoet, og bruke
consume_table_from_sharefunksjonen iconsume_share.py. Den tar inn en gitt tabell i et skjema, og den asymmetriske private nøkkelen til konsumenten =pc.consume_table_from_sharevil da gitt person-tabellen, joine sammenpii_schema.personog__keys__c__pii_schema.person. Deretter henter den ut en rad, der den fisker ut den gjeldende nøkkelenkey. Den dekrypteres medpc. Deretter går den gjennom hver rad, og gittnavn_encognavn_nonceså dekrypterer den raden med den symmetriske nøkkelen. Får da ut tabellen slik:
| navn | alder |
|---|---|
| August | 20 |
| Jonas | 30 |
| Joachim | 40 |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kv_dataplatform_consumer-0.2.0.tar.gz.
File metadata
- Download URL: kv_dataplatform_consumer-0.2.0.tar.gz
- Upload date:
- Size: 4.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.0.1 CPython/3.13.2 Darwin/24.3.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc54a9f0df0260a943c9c4031bc298b4006d9642453b5b12d17c31eacca0e67a
|
|
| MD5 |
36bf2937c55b00fc08c742a106fc03f0
|
|
| BLAKE2b-256 |
fe203c07b090aa34aee69c5f7e3abdbab363dcf85a58c4aa96d59371acc5aaf4
|
File details
Details for the file kv_dataplatform_consumer-0.2.0-py3-none-any.whl.
File metadata
- Download URL: kv_dataplatform_consumer-0.2.0-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.0.1 CPython/3.13.2 Darwin/24.3.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec28de1e14f8429d4bc4100aa8c8d51b8cdefcdcbce8d75eee9101148283e388
|
|
| MD5 |
769584b255f0545b72211e21cd0e2245
|
|
| BLAKE2b-256 |
5bb5f95362509b4f93ff2c7f48e85269728f742710ab4d5b29b67bd3853221e6
|