Skip to main content

Asymmetrisen salauksen tuki python-decouple-pakettiin

Project description

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'

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python_decouple_nacl-0.2.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

python_decouple_nacl-0.2-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file python_decouple_nacl-0.2.tar.gz.

File metadata

  • Download URL: python_decouple_nacl-0.2.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.0

File hashes

Hashes for python_decouple_nacl-0.2.tar.gz
Algorithm Hash digest
SHA256 0e644f7ddf724bfd08fa1f7ab5633ced8bdfd307bd96336a9807018a455d2cc6
MD5 ad205fdb62d743702857d993ab3a5bfe
BLAKE2b-256 63a9b27f941ef25d106470aed53b72313303d30cf49299312f48834345170dd1

See more details on using hashes here.

File details

Details for the file python_decouple_nacl-0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for python_decouple_nacl-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 347531a9514c998e2669a5a8da77f0ae7889eb53b3177b05ddc57974d5beab2d
MD5 f6a831a4cb582eba1fcc775c21448ae7
BLAKE2b-256 e0172d700d6b4011239df60ed7dbffdfdfdd635c1a755b319849f87470d9f289

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page