From d8b10bcdc1390e94b25617cd29857874a2eccca8 Mon Sep 17 00:00:00 2001 From: Mohamed ElKalioby Date: Mon, 13 Jun 2022 16:47:31 +0300 Subject: [PATCH] WIP: Upgrading Fido2 --- mfa/FIDO2.py | 10 +++++----- setup.py | 8 ++++++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/mfa/FIDO2.py b/mfa/FIDO2.py index 98a6e5e..576c0df 100644 --- a/mfa/FIDO2.py +++ b/mfa/FIDO2.py @@ -1,6 +1,6 @@ -from fido2.client import ClientData +from fido2.client import Fido2Client from fido2.server import Fido2Server, PublicKeyCredentialRpEntity -from fido2.ctap2 import AttestationObject, AuthenticatorData +from fido2.webauthn import AttestationObject, AuthenticatorData from django.template.context_processors import csrf from django.views.decorators.csrf import csrf_exempt from django.shortcuts import render @@ -11,7 +11,7 @@ from django.http import HttpResponse from django.conf import settings from .models import * from fido2.utils import websafe_decode, websafe_encode -from fido2.ctap2 import AttestedCredentialData +from fido2.webauthn import AttestedCredentialData from .views import login, reset_cookie import datetime from .Common import get_redirect_url @@ -51,7 +51,7 @@ def complete_reg(request): try: data = cbor.decode(request.body) - client_data = ClientData(data['clientDataJSON']) + client_data = Fido2Client(data['clientDataJSON']) att_obj = AttestationObject((data['attestationObject'])) server = getServer() auth_data = server.register_complete( @@ -112,7 +112,7 @@ def authenticate_complete(request): credentials = getUserCredentials(username) data = cbor.decode(request.body) credential_id = data['credentialId'] - client_data = ClientData(data['clientDataJSON']) + client_data = Fido2Client(data['clientDataJSON']) auth_data = AuthenticatorData(data['authenticatorData']) signature = data['signature'] try: diff --git a/setup.py b/setup.py index ac13127..ef40792 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ from setuptools import find_packages, setup setup( name='django-mfa2', - version='2.4.0', + version='2.5.0dev', description='Allows user to add 2FA to their accounts', long_description=open("README.md").read(), long_description_content_type="text/markdown", @@ -24,7 +24,7 @@ setup( 'ua-parser', 'user-agents', 'python-jose', - 'fido2 == 0.9.2', + 'fido2 == 1.0.0', 'jsonLookup' ], python_requires=">=3.5", @@ -39,6 +39,8 @@ setup( "Framework :: Django :: 2.2", "Framework :: Django :: 3.0", "Framework :: Django :: 3.1", + "Framework :: Django :: 3.2", + "Framework :: Django :: 4.0", "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python", @@ -47,6 +49,8 @@ setup( "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", "Topic :: Software Development :: Libraries :: Python Modules", ] )