Text Blame History Raw

How to contribute

Patches are more than welcome at OpenCryptoki, be it to fix a bug or to add a new feature. To make your life, and also our life, easy there are a few steps that we need the contributors to follow.

Getting started

  • Read and study the PKCS #11 standard v2.20 or, preferably, v2.40.
  • Make sure to subscribe to our technical discussion mailing-list
  • Make sure you have a GitHub account
  • Submit a ticket for your issue, assuming one does not already exist.
  • Clearly describe the issue, including steps to reproduce when it is a bug.
  • Make sure you fill in the earliest version that you know has the issue.
  • In case of a bug, try to attach some logs. Enable tracing on OpenCryptoki by running export OPENCRYPTOKI_TRACE_LEVEL=<level>. For more information about trace level check the FAQ.
  • Include information from your environment (OS, gcc version, and any other related packages version).
  • In case of a new hardware token, please provide a way for us to have access to an environment that contains such hardware or a way to run automated tests through Jenkins or other similar tool.
  • Fork the repository on GitHub.

Making changes

  • Create a topic/issue branch from the master branch.
  • Please avoid working directly on the master branch.
  • If the changes are too big, please separate it into smaller, logical, commits. This will improve commit history and code review.
  • Follow the coding style guidelines.
  • Check for unnecessary whitespace with git diff --check before committing.
  • Make sure your commit messages are in the proper format and sign your patch:
    Add CONTRIBUTING guideline

    The CONTRIBUTING.md file describes the guidelines that every Contributor
    should follow to get their code integrated into OpenCryptoki. This will
    improve Contributors/Maintainers work.

    Signed-off-by: YOUR_NAME <youremail@something.com>
  • Make sure you have added the necessary tests for your changes.
  • Run all the tests to assure nothing else was accidentally broken. If you do not have the necessary hardware to run all tests, please write it down to us, so we can manage to do the testing for you.

Submitting Changes

  • Sign your commits, as mentioned above.
  • There are two ways to submit patches:
  • If you prefer the old school way of sending patches to a mailing-list, then feel free to send your patch to the technical discussion mailing-list . We will keep you posted as the code review goes by.
  • If you like GitHub and all the tools it has, then submit a pull request to
  • the opencryptoki repository on opencryptoki organization.
  • Include test information/results on the email thread of your patch or on the pull request.
  • Wait for the Maintainers feedback about your changes. Although we are always working on the project, sometimes we have our attention caught up on higher priority tasks for the project.
  • Be ready to answer any doubts that we might have about your changes, otherwise if we do not get an answer we will not be able to merge your code.

Final thoughts

  • Feel free to ask questions, there is no such thing as a stupid question, just stupid people.
  • You can find us on the mailing list mentioned above.
  • Have fun in the process, coding is fun!