From dfca2f832c358fd44163c6799a49ee30c1849d0b Mon Sep 17 00:00:00 2001 From: Elias Bonnici Date: Fri, 8 Nov 2024 13:34:07 +0100 Subject: [PATCH] Add Sphinx documentation --- .github/workflows/build.yml | 58 ++++++++++ .gitignore | 1 + docs/Makefile | 20 ++++ docs/conf.py | 195 +++++++++++++++++++++++++++++++++ docs/favicon.ico | Bin 0 -> 18764 bytes docs/index.rst | 21 ++++ docs/make.bat | 35 ++++++ docs/rst/fido2.attestation.rst | 61 +++++++++++ docs/rst/fido2.ctap2.rst | 69 ++++++++++++ docs/rst/fido2.hid.rst | 69 ++++++++++++ docs/rst/fido2.rst | 127 +++++++++++++++++++++ docs/rst/packages.rst | 7 ++ fido2/server.py | 1 + pyproject.toml | 3 + 14 files changed, 667 insertions(+) create mode 100644 docs/Makefile create mode 100644 docs/conf.py create mode 100644 docs/favicon.ico create mode 100644 docs/index.rst create mode 100644 docs/make.bat create mode 100644 docs/rst/fido2.attestation.rst create mode 100644 docs/rst/fido2.ctap2.rst create mode 100644 docs/rst/fido2.hid.rst create mode 100644 docs/rst/fido2.rst create mode 100644 docs/rst/packages.rst diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 821cd256..9f6092e1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -75,3 +75,61 @@ jobs: with: name: fido2-python-sdist path: dist + + docs: + runs-on: ubuntu-latest + name: Build sphinx documentation + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: 3.12 + + - name: Install python dependencies + run: | + python -m pip install --upgrade pip + python -m pip install poetry + poetry install -E pcsc + + - name: Build sphinx documentation + run: poetry run make -C docs/ html + + - name: Upload documentation + uses: actions/upload-artifact@v4 + with: + name: python-fido2-docs + path: docs/_build/html + + docs_win: + runs-on: windows-latest + name: Build sphinx documentation on Windows + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: 3.12 + + - name: Install python dependencies + shell: bash + run: | + python -m pip install --upgrade pip + python -m pip install poetry + poetry install -E pcsc + + - name: Build sphinx documentation + shell: bash + run: poetry run make -C docs/ html + + - name: Upload documentation + uses: actions/upload-artifact@v4 + with: + name: python-fido2-docs-win + path: docs/_build/html + + diff --git a/.gitignore b/.gitignore index d292caf4..d381c4b8 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ dist/ ChangeLog man/*.1 poetry.lock +**/_build # Unit test / coverage reports htmlcov/ diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 00000000..d4bb2cbb --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 00000000..5e5e44b7 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,195 @@ +# -*- coding: utf-8 -*- +# +# Configuration file for the Sphinx documentation builder. +# +# This file does only contain a selection of the most common options. For a +# full list see the documentation: +# http://www.sphinx-doc.org/en/master/config + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +import os +import sys +import re + +sys.path.insert(0, os.path.abspath("../")) + + +def get_version(): + with open("../fido2/__init__.py", "r") as f: + match = re.search(r"(?m)^__version__\s*=\s*['\"](.+)['\"]$", f.read()) + return match.group(1) + + +# -- Project information ----------------------------------------------------- + +project = "python-fido2" +copyright = "2024, Yubico" +author = "Yubico" + +# The full version, including alpha/beta/rc tags +release = get_version() + +# The short X.Y version +version = ".".join(release.split(".")[:2]) + +# -- General configuration --------------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. +# +# needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + "sphinx.ext.autodoc", + "sphinx_autodoc_typehints", + "sphinx.ext.doctest", + "sphinx.ext.intersphinx", + "sphinx.ext.viewcode", +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ["_templates"] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +# +# source_suffix = ['.rst', '.md'] +source_suffix = ".rst" + +# The master toctree document. +master_doc = "index" + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = "en" + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path . +exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = "sphinx" + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = "sphinx_rtd_theme" + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +# +# html_theme_options = {} + +html_favicon = "favicon.ico" + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ["_static"] + +# Don't show a "View page source" link on each page. +html_show_sourcelink = False + +# Custom sidebar templates, must be a dictionary that maps document names +# to template names. +# +# The default sidebars (for documents that don't match any pattern) are +# defined by theme itself. Builtin themes are using these templates by +# default: ``['localtoc.html', 'relations.html', 'sourcelink.html', +# 'searchbox.html']``. +# +# html_sidebars = {} + + +# -- Options for HTMLHelp output --------------------------------------------- + +# Output file base name for HTML help builder. +htmlhelp_basename = "python-fido2doc" + + +# -- Options for LaTeX output ------------------------------------------------ + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + # + # 'papersize': 'letterpaper', + # The font size ('10pt', '11pt' or '12pt'). + # + # 'pointsize': '10pt', + # Additional stuff for the LaTeX preamble. + # + # 'preamble': '', + # Latex figure (float) alignment + # + # 'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + ( + master_doc, + "python-fido2.tex", + "python-fido2 Documentation", + "Yubico", + "manual", + ) +] + + +# -- Options for manual page output ------------------------------------------ + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + (master_doc, "python-fido2", "python-fido2 Documentation", [author], 1) +] + + +# -- Options for Texinfo output ---------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + ( + master_doc, + "python-fido2", + "python-fido2 Documentation", + author, + "python-fido2", + "One line description of project.", + "Miscellaneous", + ) +] + + +# -- Extension configuration ------------------------------------------------- + +# -- Options for intersphinx extension --------------------------------------- + +# Example configuration for intersphinx: refer to the Python standard library. +intersphinx_mapping = { + "python": ("https://docs.python.org/", None), + "cryptography": ("https://cryptography.io/en/latest/", None), +} + + +# Custom config +autodoc_member_order = "bysource" \ No newline at end of file diff --git a/docs/favicon.ico b/docs/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c7194ccf49a6225cfb8eaf0004c4bf6949009ab2 GIT binary patch literal 18764 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 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "" goto help + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/rst/fido2.attestation.rst b/docs/rst/fido2.attestation.rst new file mode 100644 index 00000000..10273626 --- /dev/null +++ b/docs/rst/fido2.attestation.rst @@ -0,0 +1,61 @@ +fido2.attestation package +========================= + +Submodules +---------- + +fido2.attestation.android module +-------------------------------- + +.. automodule:: fido2.attestation.android + :members: + :undoc-members: + :show-inheritance: + +fido2.attestation.apple module +------------------------------ + +.. automodule:: fido2.attestation.apple + :members: + :undoc-members: + :show-inheritance: + +fido2.attestation.base module +----------------------------- + +.. automodule:: fido2.attestation.base + :members: + :undoc-members: + :show-inheritance: + +fido2.attestation.packed module +------------------------------- + +.. automodule:: fido2.attestation.packed + :members: + :undoc-members: + :show-inheritance: + +fido2.attestation.tpm module +---------------------------- + +.. automodule:: fido2.attestation.tpm + :members: + :undoc-members: + :show-inheritance: + +fido2.attestation.u2f module +---------------------------- + +.. automodule:: fido2.attestation.u2f + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: fido2.attestation + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/rst/fido2.ctap2.rst b/docs/rst/fido2.ctap2.rst new file mode 100644 index 00000000..cabc8272 --- /dev/null +++ b/docs/rst/fido2.ctap2.rst @@ -0,0 +1,69 @@ +fido2.ctap2 package +=================== + +Submodules +---------- + +fido2.ctap2.base module +----------------------- + +.. automodule:: fido2.ctap2.base + :members: + :undoc-members: + :show-inheritance: + +fido2.ctap2.bio module +---------------------- + +.. automodule:: fido2.ctap2.bio + :members: + :undoc-members: + :show-inheritance: + +fido2.ctap2.blob module +----------------------- + +.. automodule:: fido2.ctap2.blob + :members: + :undoc-members: + :show-inheritance: + +fido2.ctap2.config module +------------------------- + +.. automodule:: fido2.ctap2.config + :members: + :undoc-members: + :show-inheritance: + +fido2.ctap2.credman module +-------------------------- + +.. automodule:: fido2.ctap2.credman + :members: + :undoc-members: + :show-inheritance: + +fido2.ctap2.extensions module +----------------------------- + +.. automodule:: fido2.ctap2.extensions + :members: + :undoc-members: + :show-inheritance: + +fido2.ctap2.pin module +---------------------- + +.. automodule:: fido2.ctap2.pin + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: fido2.ctap2 + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/rst/fido2.hid.rst b/docs/rst/fido2.hid.rst new file mode 100644 index 00000000..92b73feb --- /dev/null +++ b/docs/rst/fido2.hid.rst @@ -0,0 +1,69 @@ +fido2.hid package +================= + +Submodules +---------- + +fido2.hid.base module +--------------------- + +.. automodule:: fido2.hid.base + :members: + :undoc-members: + :show-inheritance: + +fido2.hid.freebsd module +------------------------ + +.. automodule:: fido2.hid.freebsd + :members: + :undoc-members: + :show-inheritance: + +fido2.hid.linux module +---------------------- + +.. automodule:: fido2.hid.linux + :members: + :undoc-members: + :show-inheritance: + +fido2.hid.macos module +---------------------- + +.. automodule:: fido2.hid.macos + :members: + :undoc-members: + :show-inheritance: + +fido2.hid.netbsd module +----------------------- + +.. automodule:: fido2.hid.netbsd + :members: + :undoc-members: + :show-inheritance: + +fido2.hid.openbsd module +------------------------ + +.. automodule:: fido2.hid.openbsd + :members: + :undoc-members: + :show-inheritance: + +fido2.hid.windows module +------------------------ + +.. automodule:: fido2.hid.windows + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: fido2.hid + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/rst/fido2.rst b/docs/rst/fido2.rst new file mode 100644 index 00000000..337d7b7e --- /dev/null +++ b/docs/rst/fido2.rst @@ -0,0 +1,127 @@ +fido2 package +============= + +Subpackages +----------- + +.. toctree:: + :maxdepth: 4 + + fido2.attestation + fido2.ctap2 + fido2.hid + +Submodules +---------- + +fido2.cbor module +----------------- + +.. automodule:: fido2.cbor + :members: + :undoc-members: + :show-inheritance: + +fido2.client module +------------------- + +.. automodule:: fido2.client + :members: + :undoc-members: + :show-inheritance: + +fido2.cose module +----------------- + +.. automodule:: fido2.cose + :members: + :undoc-members: + :show-inheritance: + +fido2.ctap module +----------------- + +.. automodule:: fido2.ctap + :members: + :undoc-members: + :show-inheritance: + +fido2.ctap1 module +------------------ + +.. automodule:: fido2.ctap1 + :members: + :undoc-members: + :show-inheritance: + +fido2.features module +--------------------- + +.. automodule:: fido2.features + :members: + :undoc-members: + :show-inheritance: + +fido2.mds3 module +----------------- + +.. automodule:: fido2.mds3 + :members: + :undoc-members: + :show-inheritance: + +fido2.pcsc module +----------------- + +.. automodule:: fido2.pcsc + :members: + :undoc-members: + :show-inheritance: + +fido2.rpid module +----------------- + +.. automodule:: fido2.rpid + :members: + :undoc-members: + :show-inheritance: + +fido2.server module +------------------- + +.. automodule:: fido2.server + :members: + :undoc-members: + :show-inheritance: + +fido2.utils module +------------------ + +.. automodule:: fido2.utils + :members: + :undoc-members: + :show-inheritance: + +fido2.webauthn module +--------------------- + +.. automodule:: fido2.webauthn + :members: + :undoc-members: + :show-inheritance: + +fido2.win\_api module +--------------------- + +.. automodule:: fido2.win_api + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: fido2 + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/rst/packages.rst b/docs/rst/packages.rst new file mode 100644 index 00000000..3fe35490 --- /dev/null +++ b/docs/rst/packages.rst @@ -0,0 +1,7 @@ +python-fido2 +============ + +.. toctree:: + :maxdepth: 4 + + fido2 diff --git a/fido2/server.py b/fido2/server.py index bd30f16c..bbaa935d 100644 --- a/fido2/server.py +++ b/fido2/server.py @@ -471,6 +471,7 @@ class U2FFido2Server(Fido2Server): :param app_id: The appId which was used for U2F registration. :param verify_u2f_origin: (optional) Alternative function to validate an origin for U2F credentials. + For other parameters, see Fido2Server. """ diff --git a/pyproject.toml b/pyproject.toml index 81401b44..d9700c3d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,6 +40,9 @@ pcsc = ["pyscard"] [tool.poetry.dev-dependencies] pytest = "^7.0" +Sphinx = {version = "^8.1", python = ">=3.10"} +sphinx-rtd-theme = {version = "^3.0.1", python = ">=3.10"} +sphinx-autodoc-typehints = {version = "^2.5.0", python = ">=3.10"} [build-system] requires = ["poetry-core>=1.0.0"]