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- jadefault-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)
| File | Size | Uploaded | |
|---|---|---|---|
| python_decouple_nacl-0.2.tar.gz | 6.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|