Skip to content

Commit d36d26b

Browse files
tiranfrozencemetery
authored andcommitted
Drop asn1crypto and just support pyasn1
I added asn1crypto support three years ago in #33, because I was under the impression that other Python packages such as PyCA cryptography were going to standardize on asn1crypto. Since 2017 cryptography and other dependencies have dropped asn1crypto. kdcproxy is currently the only package in RHEL that depends on python-asn1crypto. Let's keep it simple and just support pyasn1. Signed-off-by: Christian Heimes <[email protected]>
1 parent fcad7d5 commit d36d26b

File tree

5 files changed

+3
-153
lines changed

5 files changed

+3
-153
lines changed

kdcproxy/codec.py

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -19,36 +19,11 @@
1919
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2020
# THE SOFTWARE.
2121

22-
import os
2322
import struct
2423

24+
from kdcproxy import parse_pyasn1 as asn1mod
2525
from kdcproxy.exceptions import ParsingError
2626

27-
ASN1MOD = os.environ.get('KDCPROXY_ASN1MOD')
28-
29-
if ASN1MOD is None:
30-
try:
31-
from asn1crypto.version import __version_info__ as asn1crypto_version
32-
except ImportError:
33-
asn1crypto_version = None
34-
else:
35-
if asn1crypto_version >= (0, 22, 0):
36-
ASN1MOD = 'asn1crypto'
37-
if ASN1MOD is None:
38-
try:
39-
__import__('pyasn1')
40-
except ImportError:
41-
pass
42-
else:
43-
ASN1MOD = 'pyasn1'
44-
45-
if ASN1MOD == 'asn1crypto':
46-
from kdcproxy import parse_asn1crypto as asn1mod
47-
elif ASN1MOD == 'pyasn1':
48-
from kdcproxy import parse_pyasn1 as asn1mod
49-
else:
50-
raise ValueError("Invalid KDCPROXY_ASN1MOD='{}'".format(ASN1MOD))
51-
5227

5328
class ProxyRequest(object):
5429
TYPE = None

kdcproxy/parse_asn1crypto.py

Lines changed: 0 additions & 104 deletions
This file was deleted.

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
from setuptools import setup
2525

2626
install_requires = [
27-
'asn1crypto>=0.23',
27+
'pyasn1',
2828
'dnspython'
2929
]
3030

tests.py

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
# THE SOFTWARE.
2121

2222
import os
23-
import sys
2423
import unittest
2524
from base64 import b64decode
2625
try:
@@ -226,21 +225,6 @@ def test_kpasswdreq(self):
226225
'FREEIPA.LOCAL KPASSWD-REQ (603 bytes) (version 0x0001)'
227226
)
228227

229-
def test_asn1mod(self):
230-
modmap = {
231-
'asn1crypto': (
232-
'kdcproxy.parse_asn1crypto', 'kdcproxy.parse_pyasn1'),
233-
'pyasn1': (
234-
'kdcproxy.parse_pyasn1', 'kdcproxy.parse_asn1crypto'),
235-
}
236-
asn1mod = os.environ.get('KDCPROXY_ASN1MOD', None)
237-
if asn1mod is None:
238-
self.fail("Tests require KDCPROXY_ASN1MOD env var.")
239-
self.assertIn(asn1mod, modmap)
240-
mod, opposite = modmap[asn1mod]
241-
self.assertIn(mod, set(sys.modules))
242-
self.assertNotIn(opposite, set(sys.modules))
243-
244228

245229
class KDCProxyConfigTests(unittest.TestCase):
246230

tox.ini

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,11 @@
11
[tox]
22
minversion = 2.3.1
3-
envlist = {py36,py37,py38,py39}-{asn1crypto,pyasn1},pep8,py3pep8,doc,coverage-report
3+
envlist = py36,py37,py38,py39,pep8,py3pep8,doc,coverage-report
44
skip_missing_interpreters = true
55

66
[testenv]
77
deps =
88
.[tests]
9-
pyasn1: pyasn1
10-
asn1crypto: asn1crypto>=0.23
11-
setenv =
12-
asn1crypto: KDCPROXY_ASN1MOD=asn1crypto
13-
pyasn1: KDCPROXY_ASN1MOD=pyasn1
149
commands =
1510
{envpython} -m coverage run --parallel \
1611
-m pytest --capture=no --strict {posargs}

0 commit comments

Comments
 (0)