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

Implement PKCS12 decoder support #52

Open
17 tasks
pavlo-v-chernykh opened this issue Sep 27, 2024 · 0 comments · May be fixed by #55
Open
17 tasks

Implement PKCS12 decoder support #52

pavlo-v-chernykh opened this issue Sep 27, 2024 · 0 comments · May be fixed by #55

Comments

@pavlo-v-chernykh
Copy link
Owner

pavlo-v-chernykh commented Sep 27, 2024

Extend the library to support decoding PKCS#12 container files, matching the decoding capabilities of the Java Keystore implementation.

  • Implement functions to read and parse .p12/.pfx files.
  • Support password-protected PKCS#12 files, including handling incorrect passwords gracefully.
  • Ability to extract private keys from the PKCS#12 container.
  • Extract public certificates and certificate chains.
  • Retrieve and manage keys and certificates using aliases (friendly names), similar to Java Keystore.
  • Support PKCS#12 files containing multiple key and certificate entries.
  • Correctly parse and associate certificate chains with their respective private keys.
  • Validate that PKCS#12 files generated by Java Keystore and OpenSSL can be correctly decoded by the library.
  • Develop unit tests covering all decoding functionalities
  • Perform tests with PKCS#12 files from Java Keystore and OpenSSL to verify interoperability.

Acceptance criteria

  • Ability to read and parse password-protected PKCS#12 files.
  • Successfully extract private keys, certificates, and certificate chains.
  • Support for aliases and multiple entries within a PKCS#12 file.
  • Successfully import PKCS#12 files generated by Java Keystore and OpenSSL.
  • Unit tests cover at least 60% of the new decoding code.
  • Interoperability tests with PKCS#12 files from other tools are documented and included.
  • Code adheres to the project’s coding standards and guidelines.

Notes:

  • Be cautious of third-party libraries to avoid license incompatibilities.
  • Design with future maintenance and potential extensions in mind.
  • Keep tests consistent across the codebase (stdlib or testify).
  • Squash all commits into one in your PR.
  • Rebase instead of merge
  • Use the imperative mood in the first line of a commit message (e.g., "Implement PKCS12 decoder")
  • Start the first line of the commit message from the capital letter
@nitram509 nitram509 linked a pull request Oct 2, 2024 that will close this issue
21 tasks
@pavlo-v-chernykh pavlo-v-chernykh linked a pull request Oct 2, 2024 that will close this issue
21 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant