Skip to content

Undocumented breaking changes for "get pubkey" and "get wrapped", behavior changes between yubihsm-shell 2.5.0 and 2.6.0 #487

Description

@eliasrudberg

For the "get pubkey" command, a new "t:key_type=asymmetric-key" argument was added, which is a breaking change for users who are using the subsequent file argument:

yubihsm-shell$ git checkout 2.5.0
yubihsm-shell$ git grep -A1 "yh_com_get_pubkey,"
src/main.c:  register_subcommand(*c, (Command){"pubkey", yh_com_get_pubkey,
src/main.c-                                    "e:session,w:key_id,F:file=-", fmt_nofmt,

yubihsm-shell$ git checkout 2.6.0
yubihsm-shell$ git grep -A1 "yh_com_get_pubkey,"
src/main.c:  register_subcommand(*c, (Command){"pubkey", yh_com_get_pubkey,
src/main.c-                                    "e:session,w:key_id,t:key_type=asymmetric-key,F:file=-", fmt_nofmt,

Similarly, for the "get wrapped" command, another new argument was added in a way that becomes a breaking change for users who are using the file argument:

yubihsm-shell$ git checkout 2.5.0
yubihsm-shell$ git grep -A1 "yh_com_get_wrapped,"
src/main.c:                      (Command){"wrapped", yh_com_get_wrapped,
src/main.c-                                "e:session,w:wrapkey_id,t:type,w:id,F:file=-",

yubihsm-shell$ git checkout 2.6.0
yubihsm-shell$ git grep -A1 "yh_com_get_wrapped,"
src/main.c:                      (Command){"wrapped", yh_com_get_wrapped,
src/main.c-                                "e:session,w:wrapkey_id,t:type,w:id,b:include_seed=0,F:file=-",

Both changes were done in the commit 080e32d

In the changelog https://github.com/Yubico/yubihsm-shell/blob/master/CHANGELOG that change is described as "Add support for asymmetric wrap".

Could the new functionality be added in a way that does not break existing yubihsm-shell usage?

Breaking changes like this make it more cumbersome to maintain things relying on yubihsm-shell. Example: https://git.glasklar.is/sigsum/core/key-mgmt/-/merge_requests/28

The changes regarding "get pubkey" and "get wrapped" should at least be documented as breaking changes to alert users to the fact that existing scripts may stop working when yubihsm-shell is upgraded?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions