20 lines
492 B
Python
20 lines
492 B
Python
from dataclasses import dataclass
|
|
from typing import Optional, Dict
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class JwtPublicKey:
|
|
kid: str
|
|
public_key_pem: str
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class JwtPublicKeySet:
|
|
active: JwtPublicKey
|
|
previous: Optional[JwtPublicKey] = None
|
|
|
|
def public_keys_by_kid(self) -> Dict[str, str]:
|
|
out = {self.active.kid: self.active.public_key_pem}
|
|
if self.previous:
|
|
out[self.previous.kid] = self.previous.public_key_pem
|
|
return out |