Skip to main content

spakky-cryptography

spakky-cryptography는 암호화 utility와 서명된 AuthContextSnapshot 전파를 제공합니다. Password hash 검증과 snapshot sign/verify capability를 spakky-auth provider contribution으로 연결합니다.

유지되는 Utility

  • Key, Base64Encoder, Hash, HMAC
  • ICryptor, ISigner
  • Aes, Gcm, Rsa, AsymmetricKey
  • Argon2PasswordEncoder, BcryptPasswordEncoder, Pbkdf2PasswordEncoder, ScryptPasswordEncoder

JWT/OIDC token 검증은 이 패키지의 범위 밖이며 spakky-oidc가 담당합니다.

설치

pip install spakky-cryptography

Auth snapshot propagation이나 password provider로 쓰려면 spakky-auth와 함께 로드합니다.

pip install spakky-auth spakky-cryptography

설정

CryptographyAuthProviderConfigSPAKKY_CRYPTOGRAPHY_ 접두사의 환경변수를 읽습니다.

환경변수 의미 기본값
SPAKKY_CRYPTOGRAPHY_SNAPSHOT_KEY snapshot HMAC key, URL-safe base64 문자열 런타임 생성 32-byte key
SPAKKY_CRYPTOGRAPHY_SNAPSHOT_KEY_ID signed snapshot envelope에 들어갈 key id spakky-cryptography:default
SPAKKY_CRYPTOGRAPHY_SNAPSHOT_TTL 새 snapshot 유효 기간. 환경변수로 지정할 때는 초 단위 숫자 또는 Pydantic duration 형식을 사용 300
SPAKKY_CRYPTOGRAPHY_VERIFICATION_AVAILABLE snapshot verification provider 가용성 true
SPAKKY_CRYPTOGRAPHY_PASSWORD_AVAILABLE password hash/verify provider 가용성 true

운영에서는 모든 프로세스가 같은 snapshot을 검증할 수 있도록 SNAPSHOT_KEY를 명시적으로 고정하세요. 기본 key는 프로세스 시작마다 생성되므로 단일 프로세스 개발용입니다.

Auth Provider Capability

플러그인은 다음 capability를 구현하는 CryptographyAuthProvider를 등록합니다.

  • AuthCapability.SNAPSHOT_SIGN
  • AuthCapability.SNAPSHOT_VERIFY
  • AuthCapability.PASSWORD_HASH
  • AuthCapability.PASSWORD_VERIFY

Snapshot verification은 누락, invalid, expired envelope을 CHALLENGE decision으로 매핑합니다. Provider를 사용할 수 없는 상태는 ERROR로 매핑합니다.

플러그인 등록

Base plugin entry point는 CryptographyAuthProviderConfig, CryptographyAuthProvider를 등록하고 다음 port를 같은 provider 구현체에 binding합니다.

  • IAuthContextSnapshotSigner
  • IAuthContextSnapshotVerifier
  • IPasswordHasher
  • IPasswordVerifier

Auth feature contribution entry point는 spakky.contributions.spakky.auth group에 AuthProviderContribution capability metadata를 등록합니다. spakky-auth의 startup validation은 이 metadata로 snapshot/password capability provider count를 검증합니다.

사용 예

import spakky.auth
import spakky.plugins.cryptography
from spakky.core.application.application import SpakkyApplication
from spakky.core.application.application_context import ApplicationContext

app = (
    SpakkyApplication(ApplicationContext())
    .load_plugins(
        include={
            spakky.auth.PLUGIN_NAME,
            spakky.plugins.cryptography.PLUGIN_NAME,
        }
    )
    .start()
)

개발 검증

패키지 단위 검증은 해당 패키지 디렉토리에서 실행합니다.

uv run ruff format .
uv run ruff check .
uv run pyrefly check
uv run pytest

pytest는 각 패키지 pyproject.toml의 coverage 설정을 사용합니다.

라이선스

MIT License

Download files

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

Source Distribution

spakky_cryptography-7.2.0.tar.gz (14.4 kB view details)

Uploaded Source

Built Distribution

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

spakky_cryptography-7.2.0-py3-none-any.whl (26.0 kB view details)

Uploaded Python 3

File details

Details for the file spakky_cryptography-7.2.0.tar.gz.

File metadata

  • Download URL: spakky_cryptography-7.2.0.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for spakky_cryptography-7.2.0.tar.gz
Algorithm Hash digest
SHA256 e6e6e400b890344dac84d23eb291e913edf5c24023b98ab2f991e7c6d79d851b
MD5 91cce4d3eb4369a73e1bf3d8ef18af9a
BLAKE2b-256 714c49c365b334ef9bb5742e864c147ba1bc956a1f2c622f8922b45906aea7f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for spakky_cryptography-7.2.0.tar.gz:

Publisher: release.yml on E5presso/spakky-framework

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spakky_cryptography-7.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for spakky_cryptography-7.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 45454f8099ef08043ec1dc6cf15d6b992bfbab01694f15d5c760129c39b98356
MD5 b3178aaabf85860b18f3a61033f8f1c8
BLAKE2b-256 974b3487755718ac98a2fb25c07c3638090e8b094328703f179e6f3e66a05072

See more details on using hashes here.

Provenance

The following attestation bundles were made for spakky_cryptography-7.2.0-py3-none-any.whl:

Publisher: release.yml on E5presso/spakky-framework

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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