Skip to main content

python-decouple-nacl

Asymmetrisesti salattujen asetuksien tuki python-decouple-paketissa.

Täydentää python-decouple-paketin määrittelemää Config-luokkaa siten, että

  • kuvioon !{...} täsmäävät merkkijonot asetuksen arvossa tunnistetaan salatuiksi merkkijonoiksi
  • aaltosulkeiden sisältö tulkitaan Base-64-koodattuna tavujonona
  • tavujono puretaan selväkieliseksi yksityisellä avaimella
  • kuvio korvataan tällä selväkielisellä tekstillä ennen mahdollisten cast- ja default-parametrien soveltamista.

Avaimet

Yksityinen avain poimitaan DECOUPLE_NACL_SK-asetusavaimella samasta AutoConfig- tai Config-oliosta kuin purettavat asetukset.

  • avaimia voi olla useita pilkulla erotettuna
  • kunkin avaimen arvo tulkitaan Base-64-koodattuna tavujonona

Mikäli myös julkinen avain on annettu asetusavaimella DECOUPLE_NACL_PK, tulkitaan tämäkin Base-64-tavujonona ja validoidaan yhdessä yksityisen avaimen kanssa.

Mikäli yksityisiä avaimia on asetettu useita, on julkisen avaimen asetus pakollinen: käytettävä yksityinen avain valitaan tämän perusteella.

Asennus

Paketti:

pip install python-decouple-nacl

Tuonti (kuten python-decouple-paketissa):

from decouple_nacl import config, ...

config(...)

Huomaa, että import-käsky tekee tarvittavat muutokset python-decouple-paketin toteuttamiin luokkiin ja funktioihin; tarvittaessa voidaan tehdä pelkkä tyhjä tuonti:

import decouple_nacl

Käyttöönotto

Avainpari

from decouple_nacl_tyokalut import luo_avainpari
luo_avainpari()  # Tulostaa yksityisen ja julkisen avaimen.

# TAI:

from nacl.public import PrivateKey
sk = PrivateKey.generate()
pk = pk.public_key

# Tallennetaan yksityinen avain omaan (suojattuun) .env-tiedostoonsa:
with open('/(1)/.env', 'w') as kahva:
  kahva.write(
    f'DECOUPLE_NACL_SK={base64.b64encode(sk.encode()).decode()}\n'
  )

# Tallennetaan julkinen avain erilliseen, julkisesti (git) hallinnoituun
# .env-tiedostoonsa:
with open('/(2)/.env', 'w') as kahva:
  kahva.write(
    f'DECOUPLE_NACL_PK={base64.b64encode(pk.encode()).decode()}\n'
  )

Salatut parametrit

Tulostetaan tarvittavat asetusparametrit salatussa muodossa. Tuloste viedään sellaisenaan julkiseen .env-tiedostoon.

from decouple_nacl_tyokalut import salaa_data
salaa_data('...')  # sulkujen sisään DECOUPLE_NACL_PK-parametrin sisältö

Esimerkki tulostiedostoista:

# /(1)/.env
DECOUPLE_NACL_SK=/CRP06uxYokIqZeTrnFkRxBhGMmipige8h+etn/qz2c=


# /(2)/.env
DECOUPLE_NACL_PK=Iuhvvgo3J4bKxDo+jMeT/J6ELzOW6+H8qElWxqJj0xc=
SALAISUUS=!{hHUNiQieNxzIhYC8Pk2qgbT3w4hMdEAUMp9tx39gwkTp0vUuql83hl9//KCqXDnDDZA=}

Komento uusien parametrien lisäämiseksi .env-tiedostoon:

$ python -c '__import__("decouple_nacl_tyokalut").salaa_data("'$( sed -En 's/DECOUPLE_NACL_PK=//p' projekti/.env )'")' <<EOF >>> projekti/.env
AVAIN = arvo
AVAIN2 = arvo2
...
EOF
$

Käyttö

Käyttäjälle parametrien salaaminen ei näy. Käyttö tavanomaisesti decouplen työkaluilla:

from decouple import AutoConfig

CONFIG = AutoConfig(...)
assert CONFIG('SALAISUUS', cast=int) == '42'

Metadata

Release files for python-decouple-nacl 0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for python-decouple-nacl 0.2
File Size Uploaded
python_decouple_nacl-0.2.tar.gz 6.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for python-decouple-nacl 0.2
File Interpreter ABI Platform
python_decouple_nacl-0.2-py3-none-any.whl Python 3 none any Details

Total release size: 13.2 kB

Release files / python_decouple_nacl-0.2.tar.gz

Download URL python_decouple_nacl-0.2.tar.gz
Size 6.1 kB
Tags Source
SHA-256 checksum
How to use checksums
0e644f7ddf724bfd08fa1f7ab5633ced8bdfd307bd96336a9807018a455d2cc6
BLAKE2b-256 checksum
How to use checksums
63a9b27f941ef25d106470aed53b72313303d30cf49299312f48834345170dd1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.0

Release files / python_decouple_nacl-0.2-py3-none-any.whl

Download URL python_decouple_nacl-0.2-py3-none-any.whl
Size 7.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
347531a9514c998e2669a5a8da77f0ae7889eb53b3177b05ddc57974d5beab2d
BLAKE2b-256 checksum
How to use checksums
e0172d700d6b4011239df60ed7dbffdfdfdd635c1a755b319849f87470d9f289
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.0

Release history Release notifications | RSS feed

This release

0.2 This release

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page