crypto: use older syntax for type union

Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
Jens Langhammer 2021-12-22 22:22:06 +01:00
parent 84cc0b5490
commit 2bde43e5dc
6 changed files with 22 additions and 20 deletions

View File

@ -1,7 +1,7 @@
"""authentik crypto models""" """authentik crypto models"""
from binascii import hexlify from binascii import hexlify
from hashlib import md5 from hashlib import md5
from typing import Optional from typing import Optional, Union
from uuid import uuid4 from uuid import uuid4
from cryptography.hazmat.backends import default_backend from cryptography.hazmat.backends import default_backend
@ -41,8 +41,8 @@ class CertificateKeyPair(ManagedModel, CreatedUpdatedModel):
) )
_cert: Optional[Certificate] = None _cert: Optional[Certificate] = None
_private_key: Optional[RSAPrivateKey | EllipticCurvePrivateKey | Ed25519PrivateKey] = None _private_key: Optional[Union[RSAPrivateKey, EllipticCurvePrivateKey, Ed25519PrivateKey]] = None
_public_key: Optional[RSAPublicKey | EllipticCurvePublicKey | Ed25519PublicKey] = None _public_key: Optional[Union[RSAPublicKey, EllipticCurvePublicKey, Ed25519PublicKey]] = None
@property @property
def certificate(self) -> Certificate: def certificate(self) -> Certificate:
@ -54,14 +54,16 @@ class CertificateKeyPair(ManagedModel, CreatedUpdatedModel):
return self._cert return self._cert
@property @property
def public_key(self) -> Optional[RSAPublicKey | EllipticCurvePublicKey]: def public_key(self) -> Optional[Union[RSAPublicKey, EllipticCurvePublicKey, Ed25519PublicKey]]:
"""Get public key of the private key""" """Get public key of the private key"""
if not self._public_key: if not self._public_key:
self._public_key = self.private_key.public_key() self._public_key = self.private_key.public_key()
return self._public_key return self._public_key
@property @property
def private_key(self) -> Optional[RSAPrivateKey | EllipticCurvePrivateKey]: def private_key(
self,
) -> Optional[Union[RSAPrivateKey, EllipticCurvePrivateKey, Ed25519PrivateKey]]:
"""Get python cryptography PrivateKey instance""" """Get python cryptography PrivateKey instance"""
if not self._private_key and self.key_data != "": if not self._private_key and self.key_data != "":
try: try:

View File

@ -1,6 +1,5 @@
"""OAuth2Provider API Views""" """OAuth2Provider API Views"""
from django.urls import reverse from django.urls import reverse
from django.utils.translation import gettext_lazy as _
from drf_spectacular.utils import OpenApiResponse, extend_schema from drf_spectacular.utils import OpenApiResponse, extend_schema
from rest_framework.decorators import action from rest_framework.decorators import action
from rest_framework.fields import CharField from rest_framework.fields import CharField

View File

@ -6,17 +6,20 @@ from django.db import migrations
class Migration(migrations.Migration): class Migration(migrations.Migration):
dependencies = [ dependencies = [
('authentik_providers_oauth2', '0007_auto_20201016_1107_squashed_0017_alter_oauth2provider_token_validity'), (
"authentik_providers_oauth2",
"0007_auto_20201016_1107_squashed_0017_alter_oauth2provider_token_validity",
),
] ]
operations = [ operations = [
migrations.RenameField( migrations.RenameField(
model_name='oauth2provider', model_name="oauth2provider",
old_name='rsa_key', old_name="rsa_key",
new_name='signing_key', new_name="signing_key",
), ),
migrations.RemoveField( migrations.RemoveField(
model_name='oauth2provider', model_name="oauth2provider",
name='jwt_alg', name="jwt_alg",
), ),
] ]

View File

@ -8,9 +8,9 @@ from datetime import datetime
from hashlib import sha256 from hashlib import sha256
from typing import Any, Optional, Type from typing import Any, Optional, Type
from urllib.parse import urlparse from urllib.parse import urlparse
from cryptography.hazmat.primitives.asymmetric.ec import EllipticCurvePrivateKey from cryptography.hazmat.primitives.asymmetric.ec import EllipticCurvePrivateKey
from cryptography.hazmat.primitives.asymmetric.rsa import RSAPrivateKey from cryptography.hazmat.primitives.asymmetric.rsa import RSAPrivateKey
from dacite import from_dict from dacite import from_dict
from django.db import models from django.db import models
from django.http import HttpRequest from django.http import HttpRequest

View File

@ -1,7 +1,10 @@
"""authentik OAuth2 JWKS Views""" """authentik OAuth2 JWKS Views"""
from base64 import urlsafe_b64encode from base64 import urlsafe_b64encode
from cryptography.hazmat.primitives.asymmetric.ec import EllipticCurvePrivateKey, EllipticCurvePublicKey
from cryptography.hazmat.primitives.asymmetric.ec import (
EllipticCurvePrivateKey,
EllipticCurvePublicKey,
)
from cryptography.hazmat.primitives.asymmetric.rsa import RSAPrivateKey, RSAPublicKey from cryptography.hazmat.primitives.asymmetric.rsa import RSAPrivateKey, RSAPublicKey
from django.http import HttpRequest, HttpResponse, JsonResponse from django.http import HttpRequest, HttpResponse, JsonResponse
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
@ -58,7 +61,6 @@ class JWKSView(View):
} }
] ]
response = JsonResponse(response_data) response = JsonResponse(response_data)
response["Access-Control-Allow-Origin"] = "*" response["Access-Control-Allow-Origin"] = "*"

View File

@ -16,11 +16,7 @@ from authentik.providers.oauth2.constants import (
SCOPE_OPENID_EMAIL, SCOPE_OPENID_EMAIL,
SCOPE_OPENID_PROFILE, SCOPE_OPENID_PROFILE,
) )
from authentik.providers.oauth2.models import ( from authentik.providers.oauth2.models import ClientTypes, OAuth2Provider, ScopeMapping
ClientTypes,
OAuth2Provider,
ScopeMapping,
)
SCOPE_AK_PROXY = "ak_proxy" SCOPE_AK_PROXY = "ak_proxy"