pyeudiw.sd_jwt package

Submodules

pyeudiw.sd_jwt.common module

class pyeudiw.sd_jwt.common.SDJWTCommon(serialization_format)[source]

Bases: object

COMBINED_SERIALIZATION_FORMAT_SEPARATOR = '~'
HASH_ALG = {'fn': <built-in function openssl_sha256>, 'name': 'sha-256'}
KB_JWT_TYP_HEADER = 'kb+jwt'
SD_JWT_HEADER = 'dc+sd-jwt'
class pyeudiw.sd_jwt.common.SDObj(value: any)[source]

Bases: object

This class can be used to make this part of the object selective disclosable.

value: any

pyeudiw.sd_jwt.disclosure module

class pyeudiw.sd_jwt.disclosure.SDJWTDisclosure(issuer: any, key: str | None, value: any)[source]

Bases: object

This class represents a disclosure of a claim.

property b64
property hash
issuer: any
property json
key: str | None
value: any

pyeudiw.sd_jwt.exceptions module

exception pyeudiw.sd_jwt.exceptions.InvalidKeyBinding[source]

Bases: Exception

exception pyeudiw.sd_jwt.exceptions.MissingConfirmationKey[source]

Bases: Exception

Raised when a given VP not contain a confirmation key

exception pyeudiw.sd_jwt.exceptions.SDJWTHasSDClaimException(error_location: any)[source]

Bases: Exception

Exception raised when input data contains the special _sd claim reserved for SD-JWT internal data.

exception pyeudiw.sd_jwt.exceptions.UnsupportedSdAlg[source]

Bases: Exception

pyeudiw.sd_jwt.holder module

pyeudiw.sd_jwt.issuer module

pyeudiw.sd_jwt.schema module

class pyeudiw.sd_jwt.schema.KeyBindingJwtHeader(*, typ: str, alg: str)[source]

Bases: BaseModel

alg: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

typ: str
classmethod validate_typ(v: str) str[source]
class pyeudiw.sd_jwt.schema.KeyBindingJwtPayload(*, iat: int, aud: str, nonce: str, sd_hash: str)[source]

Bases: BaseModel

aud: str
iat: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

nonce: str
sd_hash: str
class pyeudiw.sd_jwt.schema.VcSdJwtHeaderSchema(*, typ: str, alg: str, kid: str | None = None, trust_chain: list[str] | None = None, x5c: str | None = None, vctm: list[str] | None = None)[source]

Bases: BaseModel

alg: str
check_typ_when_not_x5c() Self[source]
kid: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

trust_chain: list[str] | None
typ: str
classmethod validate_typ(v: str) str[source]
vctm: list[str] | None
x5c: str | None
class pyeudiw.sd_jwt.schema.VcSdJwtPayloadSchema(*, iss: HttpUrl, sub: str, iat: int, exp: int, status: dict, cnf: Dict[Literal['jwk'], JwkSchema], vct: str, verification: dict)[source]

Bases: BaseModel

cnf: Dict[Literal['jwk'], JwkSchema]
exp: int
iat: int
iss: HttpUrl
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_post_init(context: Any, /) None

This function is meant to behave like a BaseModel method to initialise private attributes.

It takes context as an argument since that’s what pydantic-core passes when calling it.

Args:

self: The BaseModel instance. context: The context.

status: dict
sub: str
classmethod validate_status(v: dict) dict[source]
classmethod validate_verification(v: dict) dict[source]
vct: str
verification: dict
class pyeudiw.sd_jwt.schema.VerifierChallenge[source]

Bases: TypedDict

aud: str
nonce: str
pyeudiw.sd_jwt.schema.is_sd_jwt_format(sd_jwt: str) bool[source]
pyeudiw.sd_jwt.schema.is_sd_jwt_kb_format(sd_jwt_kb: str) bool[source]

pyeudiw.sd_jwt.sd_jwt module

pyeudiw.sd_jwt.verifier module

Module contents