From 008b54885bccea72bde0623dbbd3a7e7c930f3c0 Mon Sep 17 00:00:00 2001 From: akgamerz_790 Date: Sun, 2 Nov 2025 11:20:42 +0530 Subject: [PATCH 1/3] Fix incorrect logic in issuer_or_subject_length function The else clause was attached to the 'if common:' statement instead of checking the total length. This change ensures the TypeError is raised when no certificate information is provided, regardless of which parameter is missing. Fixes #30 --- adafruit_atecc/adafruit_atecc_asn1.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/adafruit_atecc/adafruit_atecc_asn1.py b/adafruit_atecc/adafruit_atecc_asn1.py index 14b584c..39783a0 100755 --- a/adafruit_atecc/adafruit_atecc_asn1.py +++ b/adafruit_atecc/adafruit_atecc_asn1.py @@ -268,6 +268,7 @@ def issuer_or_subject_length( tot_len += 11 + len(org_unit) if common: tot_len += 11 + len(common) - else: + + if not tot_len: raise TypeError("Provided length must be > 0") return tot_len From adb555af03df80317eca0789af026d9e2c534ecf Mon Sep 17 00:00:00 2001 From: Dan Halbert Date: Sun, 2 Nov 2025 11:33:07 -0500 Subject: [PATCH 2/3] Change exception type from TypeError to ValueError; check for negative total_len --- adafruit_atecc/adafruit_atecc_asn1.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/adafruit_atecc/adafruit_atecc_asn1.py b/adafruit_atecc/adafruit_atecc_asn1.py index 39783a0..084b413 100755 --- a/adafruit_atecc/adafruit_atecc_asn1.py +++ b/adafruit_atecc/adafruit_atecc_asn1.py @@ -252,7 +252,7 @@ def issuer_or_subject_length( :param str org: Organization of certificate :param str org_unit: Organization unit of certificate :param str common: Common data of certificate - :raises: TypeError if return value is 0 + :raises: ValueError if return value is <= 0 :return: Total length of provided certificate information. """ tot_len = 0 @@ -269,6 +269,6 @@ def issuer_or_subject_length( if common: tot_len += 11 + len(common) - if not tot_len: - raise TypeError("Provided length must be > 0") + if tot_len <= 0: + raise ValueError("Provided length must be > 0") return tot_len From d12e6b113779268a9ae0830f325efdad50bfcd75 Mon Sep 17 00:00:00 2001 From: Dan Halbert Date: Sun, 2 Nov 2025 11:41:45 -0500 Subject: [PATCH 3/3] fix whitespace --- adafruit_atecc/adafruit_atecc_asn1.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adafruit_atecc/adafruit_atecc_asn1.py b/adafruit_atecc/adafruit_atecc_asn1.py index 084b413..f9701ac 100755 --- a/adafruit_atecc/adafruit_atecc_asn1.py +++ b/adafruit_atecc/adafruit_atecc_asn1.py @@ -268,7 +268,7 @@ def issuer_or_subject_length( tot_len += 11 + len(org_unit) if common: tot_len += 11 + len(common) - + if tot_len <= 0: raise ValueError("Provided length must be > 0") return tot_len