GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — OpenPGP Smart Card: getSupportedAlgorithms(), changePIN(), generateKey(), external_secrets_01 by vanitasvitae · Pull Request #2565 · bcgit/bc-java

Conversation

@vanitasvitae

@vanitasvitae vanitasvitae commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

This PR implements milestone 5 and adds a number of changes:

  • OpenPGP Smart Cards now expose supported algorithms via OpenPGPSmartCard.getSupportedAlgorithms(), which is implemented by the yubikey and simulator backends.
  • There is now an API to change the admin / user PIN of cards via OpenPGPSmartCard.changeUserPIN(oldCardPinProvider, newCardPinProvider), OpenPGPSmartCard.changeAdminPIN(oldCardPinProvider, newCardPinProvider).
  • It is now possible to instruct the card to generate a key on-device, returning the public key component. This is done in preparation for milestone 7 and 8, which will allow high-level on-device key generation.
  • The OpenPGP External Secret Keys document has been adopted by the OpenPGP working group and is now available here. This PR adopts the changes from revision 01, which flips the logic for empty locator hints to mean "unavailable" rather than "best effort".

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
vanitasvitae added 17 commits November 9, 2026 12:08
@vanitasvitae
OpenPGPSmartCard: Add getSupportedAlgorithms() and implement it in su…
2549c16
…bclasses
@vanitasvitae
Replace char[] argument in uploadKey() methods with KeyPassphraseProv…
319fbc6
…ider
@vanitasvitae
Implement changing of user/admin PIN
cef83d5
@vanitasvitae
SimulatorOpenPGPSmartCard: Implement supported algorithms
959464d
@vanitasvitae
Better abstraction for OpenPGPSmartCard, fix tests
8c25f83
@vanitasvitae
PGPKeyConverter: Add missing check for secp256k1
164916b
@vanitasvitae
Add tests for on-device key generation
69362d8
@vanitasvitae
SupportedAlgorithms: Add support for X448,Ed448
93f0974
@vanitasvitae
Add shortcuts for specific keys
9893652
@vanitasvitae
Update README.md
c3b973a
@vanitasvitae
Add test for smart card PIN changing
d4a908c
@vanitasvitae
Remove unused imports
391483c
@vanitasvitae
OpenPGP External Secret Keys: Update spec link
35d4b2a
@vanitasvitae
Update External Secret Key implementation to revision 01 (unreleased)…
29e8d4c
… of the draft
@vanitasvitae
Add documentation
d5bfac3
@vanitasvitae
Add OpenPGPSmartCardManager.addBackend(idx, backend)
e1e535b
@vanitasvitae
External OpenPGP Secret Keys: Update spec references and test vectors…
9420131
… to draft-ietf-openpgp-external-secrets-01
@vanitasvitae

vanitasvitae commented Nov 9, 2026

Copy link
Copy Markdown
Contributor Author

In the mean time, I started working on a prototype Smart Card library based on javax.smartcardio, which works with Yubikey and Nitrokey devices (and potentially any device implementing the OpenPGP Smart Card spec 3.4.
This library will help ensuring that the API is generic enough to be implemented by different backend libraries, not just yubikit.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@dghgit dghgit self-assigned this Nov 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

@dghgit dghgit

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@vanitasvitae @dghgit
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.