Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document how to use high level and low level APIs #15

Open
jvz opened this issue Dec 25, 2020 · 0 comments
Open

Document how to use high level and low level APIs #15

jvz opened this issue Dec 25, 2020 · 0 comments
Assignees
Labels
documentation Improvements or additions to documentation
Milestone

Comments

@jvz
Copy link
Contributor

jvz commented Dec 25, 2020

The primary feature a good cryptographic library provides for making things easy to use and hard to misuse is documentation; without documentation, the only users who can understand these types of libraries are cryptographers and security engineers who already know how to use the low level primitives and have little need for a library like this. In particular, various vocabulary must be defined, use cases explained (e.g., when do you need non-repudiation versus just authenticity, using context metadata/AAD for simulating type information, identities, and session state, how to handle key exchange, authentication, etc.), and examples provided. For the high level API, these should be both documented in javadoc (for more API-specific concerns) as well as in the wiki or future website with an appropriate narrative. Links to established standards (and perhaps even papers) are expected, but links are not sufficient for the documentation; make sure to summarize any important information.

Some established cryptography projects offer a lot of documentation. See libsodium docs and Themis docs for some decent examples of higher level documentation.

Lower level APIs (e.g., crypto primitives) can be documented via javadoc. While it may be nice to mention some of the math going on in the background (e.g., prime order groups and permutations), this may get overly technical which may also end up incorrect without accompanying proofs.

@jvz jvz added the documentation Improvements or additions to documentation label Dec 25, 2020
@jvz jvz added this to the 1.0 milestone Dec 25, 2020
@jvz jvz self-assigned this Dec 25, 2020
@jvz jvz changed the title Document how to use high level and low level APIS Document how to use high level and low level APIs Feb 21, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

1 participant