Commit 44641a0
authored
Develop (#58)
This pull request introduces several important improvements and bug
fixes to the uPKI CA Server, focusing on robust Distinguished Name (DN)
handling, enhanced certificate management APIs, and dependency updates.
The changes ensure compatibility with both slash-separated and RFC 4514
comma-separated DN formats, fix certificate renewal bugs, and add
comprehensive tests for these scenarios. Additionally, the pull request
updates dependencies, removes the obsolete `setup.py`, and increments
the project version.
**Key changes:**
### DN Handling and Certificate Management
* Refactored all certificate management methods in `Authority`
(`revoke_certificate`, `unrevoke_certificate`, `renew_certificate`,
`view_certificate`, and `delete_certificate`) to correctly extract and
use the Common Name (CN) from both slash-separated and RFC 4514
comma-separated Distinguished Names, fixing bugs where certificates
could not be found or renewed if the DN was not in the expected format.
[[1]](diffhunk://#diff-55729ca46f7c8f84c983dc6ce4b678948d538c8771c7037a9db28c021844c773R590-R596)
[[2]](diffhunk://#diff-55729ca46f7c8f84c983dc6ce4b678948d538c8771c7037a9db28c021844c773R653-R656)
[[3]](diffhunk://#diff-55729ca46f7c8f84c983dc6ce4b678948d538c8771c7037a9db28c021844c773L699-R706)
[[4]](diffhunk://#diff-55729ca46f7c8f84c983dc6ce4b678948d538c8771c7037a9db28c021844c773L709-R723)
[[5]](diffhunk://#diff-55729ca46f7c8f84c983dc6ce4b678948d538c8771c7037a9db28c021844c773L775-R784)
[[6]](diffhunk://#diff-55729ca46f7c8f84c983dc6ce4b678948d538c8771c7037a9db28c021844c773R876-R881)
[[7]](diffhunk://#diff-55729ca46f7c8f84c983dc6ce4b678948d538c8771c7037a9db28c021844c773L826-L828)
* Added a new `list_nodes` method to `Authority` to enumerate all
certificates issued by the CA, including those not revoked or renewed,
and expose their revocation status.
### Testing and Regression Coverage
* Introduced comprehensive tests for DN parsing, certificate renewal,
and the new `list_nodes` API, including regression tests for real-world
bugs involving RFC 4514 DNs and renewal failures.
[[1]](diffhunk://#diff-44ccbaf10c5a27481125e68ca0397fbf805936e44266cf4dedda6493515cbd4aR55-R67)
[[2]](diffhunk://#diff-0c03354020754c0ffe5e1c4b723181f6bc057b2e6bb73af9a0a2071055085dccR1709-R1899)
* Updated functional tests to handle variations in OpenSSL subject
formatting across versions using regular expressions.
[[1]](diffhunk://#diff-0c03354020754c0ffe5e1c4b723181f6bc057b2e6bb73af9a0a2071055085dccL198-R200)
[[2]](diffhunk://#diff-0c03354020754c0ffe5e1c4b723181f6bc057b2e6bb73af9a0a2071055085dccL300-R308)
[[3]](diffhunk://#diff-0c03354020754c0ffe5e1c4b723181f6bc057b2e6bb73af9a0a2071055085dccL532-R540)
### Dependency and Build System Updates
* Updated Python dependencies to the latest compatible versions in
`pyproject.toml`, including `cryptography`, `pyzmq`, `tinydb`, `pytest`,
and `ruff`.
* Set the Python version to 3.11.13 in `.python-version`.
* Removed the obsolete `setup.py` file in favor of modern build tooling.
### Versioning
* Bumped the project version to 0.1.5 in `upki_ca/__init__.py`.
### Minor
* Minor import fix in tests to support new test cases.11 files changed
Lines changed: 524 additions & 289 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
14 | | - | |
15 | | - | |
| 14 | + | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
29 | | - | |
30 | | - | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| |||
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
55 | 68 | | |
56 | 69 | | |
57 | 70 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| 17 | + | |
17 | 18 | | |
18 | 19 | | |
19 | 20 | | |
| |||
195 | 196 | | |
196 | 197 | | |
197 | 198 | | |
198 | | - | |
199 | | - | |
| 199 | + | |
| 200 | + | |
200 | 201 | | |
201 | 202 | | |
202 | 203 | | |
| |||
297 | 298 | | |
298 | 299 | | |
299 | 300 | | |
300 | | - | |
| 301 | + | |
301 | 302 | | |
302 | 303 | | |
303 | 304 | | |
304 | 305 | | |
305 | 306 | | |
306 | 307 | | |
307 | | - | |
| 308 | + | |
308 | 309 | | |
309 | 310 | | |
310 | 311 | | |
| |||
529 | 530 | | |
530 | 531 | | |
531 | 532 | | |
532 | | - | |
| 533 | + | |
533 | 534 | | |
534 | 535 | | |
535 | 536 | | |
536 | 537 | | |
537 | 538 | | |
538 | 539 | | |
539 | | - | |
| 540 | + | |
540 | 541 | | |
541 | 542 | | |
542 | 543 | | |
| |||
1705 | 1706 | | |
1706 | 1707 | | |
1707 | 1708 | | |
| 1709 | + | |
| 1710 | + | |
| 1711 | + | |
| 1712 | + | |
| 1713 | + | |
| 1714 | + | |
| 1715 | + | |
| 1716 | + | |
| 1717 | + | |
| 1718 | + | |
| 1719 | + | |
| 1720 | + | |
| 1721 | + | |
| 1722 | + | |
| 1723 | + | |
| 1724 | + | |
| 1725 | + | |
| 1726 | + | |
| 1727 | + | |
| 1728 | + | |
| 1729 | + | |
| 1730 | + | |
| 1731 | + | |
| 1732 | + | |
| 1733 | + | |
| 1734 | + | |
| 1735 | + | |
| 1736 | + | |
| 1737 | + | |
| 1738 | + | |
| 1739 | + | |
| 1740 | + | |
| 1741 | + | |
| 1742 | + | |
| 1743 | + | |
| 1744 | + | |
| 1745 | + | |
| 1746 | + | |
| 1747 | + | |
| 1748 | + | |
| 1749 | + | |
| 1750 | + | |
| 1751 | + | |
| 1752 | + | |
| 1753 | + | |
| 1754 | + | |
| 1755 | + | |
| 1756 | + | |
| 1757 | + | |
| 1758 | + | |
| 1759 | + | |
| 1760 | + | |
| 1761 | + | |
| 1762 | + | |
| 1763 | + | |
| 1764 | + | |
| 1765 | + | |
| 1766 | + | |
| 1767 | + | |
| 1768 | + | |
| 1769 | + | |
| 1770 | + | |
| 1771 | + | |
| 1772 | + | |
| 1773 | + | |
| 1774 | + | |
| 1775 | + | |
| 1776 | + | |
| 1777 | + | |
| 1778 | + | |
| 1779 | + | |
| 1780 | + | |
| 1781 | + | |
| 1782 | + | |
| 1783 | + | |
| 1784 | + | |
| 1785 | + | |
| 1786 | + | |
| 1787 | + | |
| 1788 | + | |
| 1789 | + | |
| 1790 | + | |
| 1791 | + | |
| 1792 | + | |
| 1793 | + | |
| 1794 | + | |
| 1795 | + | |
| 1796 | + | |
| 1797 | + | |
| 1798 | + | |
| 1799 | + | |
| 1800 | + | |
| 1801 | + | |
| 1802 | + | |
| 1803 | + | |
| 1804 | + | |
| 1805 | + | |
| 1806 | + | |
| 1807 | + | |
| 1808 | + | |
| 1809 | + | |
| 1810 | + | |
| 1811 | + | |
| 1812 | + | |
| 1813 | + | |
| 1814 | + | |
| 1815 | + | |
| 1816 | + | |
| 1817 | + | |
| 1818 | + | |
| 1819 | + | |
| 1820 | + | |
| 1821 | + | |
| 1822 | + | |
| 1823 | + | |
| 1824 | + | |
| 1825 | + | |
| 1826 | + | |
| 1827 | + | |
| 1828 | + | |
| 1829 | + | |
| 1830 | + | |
| 1831 | + | |
| 1832 | + | |
| 1833 | + | |
| 1834 | + | |
| 1835 | + | |
| 1836 | + | |
| 1837 | + | |
| 1838 | + | |
| 1839 | + | |
| 1840 | + | |
| 1841 | + | |
| 1842 | + | |
| 1843 | + | |
| 1844 | + | |
| 1845 | + | |
| 1846 | + | |
| 1847 | + | |
| 1848 | + | |
| 1849 | + | |
| 1850 | + | |
| 1851 | + | |
| 1852 | + | |
| 1853 | + | |
| 1854 | + | |
| 1855 | + | |
| 1856 | + | |
| 1857 | + | |
| 1858 | + | |
| 1859 | + | |
| 1860 | + | |
| 1861 | + | |
| 1862 | + | |
| 1863 | + | |
| 1864 | + | |
| 1865 | + | |
| 1866 | + | |
| 1867 | + | |
| 1868 | + | |
| 1869 | + | |
| 1870 | + | |
| 1871 | + | |
| 1872 | + | |
| 1873 | + | |
| 1874 | + | |
| 1875 | + | |
| 1876 | + | |
| 1877 | + | |
| 1878 | + | |
| 1879 | + | |
| 1880 | + | |
| 1881 | + | |
| 1882 | + | |
| 1883 | + | |
| 1884 | + | |
| 1885 | + | |
| 1886 | + | |
| 1887 | + | |
| 1888 | + | |
| 1889 | + | |
| 1890 | + | |
| 1891 | + | |
| 1892 | + | |
| 1893 | + | |
| 1894 | + | |
| 1895 | + | |
| 1896 | + | |
| 1897 | + | |
| 1898 | + | |
| 1899 | + | |
1708 | 1900 | | |
1709 | 1901 | | |
1710 | 1902 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | | - | |
| 16 | + | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
| 19 | + | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| |||
0 commit comments