From 5c5594520ec9fb441df33f747a98ad68b9949a73 Mon Sep 17 00:00:00 2001 From: knobix Date: Wed, 13 Nov 2019 13:50:43 +0100 Subject: [PATCH] Switch from "pycryptodome" to "pycryptodomex" When NetBox is used outside an virtualenv it can happen that there's a Python package conflict between "pycryptodome", which is required by NetBox, and "pycrypto", which is required by another Python package. Thus switch from "pycryptodome" to its library independent variant "pycryptodomex". The latter one uses "Cryptodome" as package name instead of "Crypto". --- base_requirements.txt | 2 +- netbox/secrets/api/views.py | 2 +- netbox/secrets/forms.py | 4 ++-- netbox/secrets/models.py | 6 +++--- netbox/secrets/tests/test_models.py | 2 +- old_requirements.txt | 1 + requirements.txt | 2 +- 7 files changed, 10 insertions(+), 9 deletions(-) diff --git a/base_requirements.txt b/base_requirements.txt index f0f6cfe38..8ac516380 100644 --- a/base_requirements.txt +++ b/base_requirements.txt @@ -81,4 +81,4 @@ py-gfm # Extensive cryptographic library (fork of pycrypto) # https://github.com/Legrandin/pycryptodome -pycryptodome +pycryptodomex diff --git a/netbox/secrets/api/views.py b/netbox/secrets/api/views.py index ee2b87a1f..dd22c424a 100644 --- a/netbox/secrets/api/views.py +++ b/netbox/secrets/api/views.py @@ -1,6 +1,6 @@ import base64 -from Crypto.PublicKey import RSA +from Cryptodome.PublicKey import RSA from django.db.models import Count from django.http import HttpResponseBadRequest from rest_framework.exceptions import ValidationError diff --git a/netbox/secrets/forms.py b/netbox/secrets/forms.py index ed0f455c1..f9998e991 100644 --- a/netbox/secrets/forms.py +++ b/netbox/secrets/forms.py @@ -1,5 +1,5 @@ -from Crypto.Cipher import PKCS1_OAEP -from Crypto.PublicKey import RSA +from Cryptodome.Cipher import PKCS1_OAEP +from Cryptodome.PublicKey import RSA from django import forms from taggit.forms import TagField diff --git a/netbox/secrets/models.py b/netbox/secrets/models.py index 6dcb5abee..5539bdb38 100644 --- a/netbox/secrets/models.py +++ b/netbox/secrets/models.py @@ -1,9 +1,9 @@ import os import sys -from Crypto.Cipher import AES, PKCS1_OAEP -from Crypto.PublicKey import RSA -from Crypto.Util import strxor +from Cryptodome.Cipher import AES, PKCS1_OAEP +from Cryptodome.PublicKey import RSA +from Cryptodome.Util import strxor from django.conf import settings from django.contrib.auth.hashers import make_password, check_password from django.contrib.auth.models import Group, User diff --git a/netbox/secrets/tests/test_models.py b/netbox/secrets/tests/test_models.py index b3ba0cee1..b4e506a19 100644 --- a/netbox/secrets/tests/test_models.py +++ b/netbox/secrets/tests/test_models.py @@ -1,6 +1,6 @@ import string -from Crypto.PublicKey import RSA +from Cryptodome.PublicKey import RSA from django.conf import settings from django.contrib.auth.models import User from django.core.exceptions import ValidationError diff --git a/old_requirements.txt b/old_requirements.txt index b3f7b3c47..924b3bf17 100644 --- a/old_requirements.txt +++ b/old_requirements.txt @@ -1,3 +1,4 @@ django-rest-swagger psycopg2 pycrypto +pycryptodome diff --git a/requirements.txt b/requirements.txt index b467651cd..1395cba49 100644 --- a/requirements.txt +++ b/requirements.txt @@ -19,4 +19,4 @@ netaddr==0.7.19 Pillow==6.2.0 psycopg2-binary==2.8.3 py-gfm==0.1.4 -pycryptodome==3.8.2 +pycryptodomex==3.8.2