Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package yubico-piv-tool for openSUSE:Factory 
checked in at 2024-02-15 21:01:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yubico-piv-tool (Old)
 and      /work/SRC/openSUSE:Factory/.yubico-piv-tool.new.1815 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yubico-piv-tool"

Thu Feb 15 21:01:21 2024 rev:20 rq:1146792 version:2.5.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/yubico-piv-tool/yubico-piv-tool.changes  
2024-02-09 23:55:20.369492454 +0100
+++ 
/work/SRC/openSUSE:Factory/.yubico-piv-tool.new.1815/yubico-piv-tool.changes    
    2024-02-15 21:02:33.320537377 +0100
@@ -1,0 +2,9 @@
+Wed Feb 14 09:05:14 UTC 2024 - Wolfgang Frisch <wolfgang.fri...@suse.com>
+
+- update to 2.5.1:
+  * ykpiv: cmd: ykcs11: Fix buffer size for key import.
+- add cmake-flags-upstream-issue-474.patch: 
+  proper fix for the cmake flags issue
+- remove temporary-cmake-flags-fix.patch
+
+-------------------------------------------------------------------

Old:
----
  temporary-cmake-flags-fix.patch
  yubico-piv-tool-2.5.0.tar.gz
  yubico-piv-tool-2.5.0.tar.gz.sig

New:
----
  cmake-flags-upstream-issue-474.patch
  yubico-piv-tool-2.5.1.tar.gz
  yubico-piv-tool-2.5.1.tar.gz.sig

BETA DEBUG BEGIN:
  Old:  proper fix for the cmake flags issue
- remove temporary-cmake-flags-fix.patch
BETA DEBUG END:

BETA DEBUG BEGIN:
  New:  * ykpiv: cmd: ykcs11: Fix buffer size for key import.
- add cmake-flags-upstream-issue-474.patch: 
  proper fix for the cmake flags issue
BETA DEBUG END:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ yubico-piv-tool.spec ++++++
--- /var/tmp/diff_new_pack.fLWFPc/_old  2024-02-15 21:02:33.936559028 +0100
+++ /var/tmp/diff_new_pack.fLWFPc/_new  2024-02-15 21:02:33.940559169 +0100
@@ -18,7 +18,7 @@
 
 %define sover  2
 Name:           yubico-piv-tool
-Version:        2.5.0
+Version:        2.5.1
 Release:        0
 Summary:        Yubico YubiKey NEO CCID Manager
 License:        BSD-2-Clause
@@ -28,8 +28,8 @@
 Source1:        
https://developers.yubico.com/yubico-piv-tool/Releases/%{name}-%{version}.tar.gz.sig
 Source3:        yubico-piv-tool.keyring
 Patch1:         pthread-link.patch
-# Remove the following patch once cmake/* is fixed in upstream:
-Patch2:         temporary-cmake-flags-fix.patch
+# https://github.com/Yubico/yubico-piv-tool/issues/474
+Patch2:         cmake-flags-upstream-issue-474.patch
 BuildRequires:  c++_compiler
 BuildRequires:  check-devel
 BuildRequires:  cmake

++++++ cmake-flags-upstream-issue-474.patch ++++++
commit a3b81d574ac20a1f17eea245da6096f59416b8f7
Author: Wolfgang Frisch <wolfgang.fri...@suse.com>
Date:   Thu Feb 15 10:23:03 2024 +0100

    cmake: fix semicolons in CFLAGS of custom modules
    
    Both `openssl.cmake` and `pcscd.cmake` use FindPkgConfig to retrieve the
    required CFLAGS and LDFLAGS. However FindPkgConfig returns lists [1],
    which are stored as semicolon-separated strings in CMake.  This breaks
    the build when there's more than one flag in any of those variables.
    
    Fixes https://github.com/Yubico/yubico-piv-tool/issues/474

diff --git a/CMakeLists.txt b/CMakeLists.txt
index ae6654e..1bc068a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -25,7 +25,7 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-cmake_minimum_required (VERSION 3.5)
+cmake_minimum_required (VERSION 3.12)
 # policy CMP0025 is to get AppleClang identifier rather than Clang for both
 # this matters since the apple compiler accepts different flags.
 cmake_policy(SET CMP0025 NEW)
diff --git a/cmake/openssl.cmake b/cmake/openssl.cmake
index e650d81..ec29ee3 100644
--- a/cmake/openssl.cmake
+++ b/cmake/openssl.cmake
@@ -84,8 +84,9 @@ macro (find_libcrypto)
     endif(WIN32 OR OPENSSL_STATIC_LINK)
     
     message("        OpenSSL version:   ${OPENSSL_VERSION}")
-    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LIBCRYPTO_CFLAGS}")
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LIBCRYPTO_CFLAGS}")
+    list(JOIN LIBCRYPTO_CFLAGS " " LIBCRYPTO_CFLAGS_STRING)
+    set(CMAKE_C_FLAGS "${LIBCRYPTO_CFLAGS_STRING} ${CMAKE_C_FLAGS}")
+    set(CMAKE_CXX_FLAGS "${LIBCRYPTO_CFLAGS_STRING} ${CMAKE_CXX_FLAGS}")
     link_directories(${LIBCRYPTO_LIBRARY_DIRS})
     include_directories(${LIBCRYPTO_INCLUDE_DIRS})
 
diff --git a/cmake/pcscd.cmake b/cmake/pcscd.cmake
index 4222693..5fe0ad9 100644
--- a/cmake/pcscd.cmake
+++ b/cmake/pcscd.cmake
@@ -75,7 +75,7 @@ macro (find_pcscd)
         set(ENV{PKG_CONFIG_PATH} "${PCSCLITE_PKG_PATH}:$ENV{PKG_CONFIG_PATH}")
         pkg_check_modules(PCSC REQUIRED libpcsclite)
         if(PCSC_FOUND)
-            set(PCSC_LIBRARIES ${PCSC_LDFLAGS})
+            list(JOIN PCSC_LDFLAGS " " PCSC_LIBRARIES)
             if(VERBOSE_CMAKE)
                 message("PCSC_FOUND: ${PCSC_FOUND}")
                 message("PCSC_LIBRARY_DIRS: ${PCSC_LIBRARY_DIRS}")
@@ -100,8 +100,9 @@ macro (find_pcscd)
         else(${PCSC_DIR} NOT STREQUAL "")
             set(PCSC_CUSTOM_LIBS "-Wl,-l${PCSC_LIB}")
         endif(${PCSC_DIR} NOT STREQUAL "")
-        set(CMAKE_C_FLAGS ${PCSC_CFLAGS} ${CMAKE_C_FLAGS})
-        set(PCSC_LIBRARIES ${PCSC_LIBRARIES} ${PCSC_CUSTOM_LIBS})
+        list(JOIN PCSC_CFLAGS " " PCSC_CFLAGS_STRING)
+        set(CMAKE_C_FLAGS "${PCSC_CFLAGS_STRING} ${CMAKE_C_FLAGS}")
+        set(PCSC_LIBRARIES "${PCSC_LIBRARIES} ${PCSC_CUSTOM_LIBS}")
         unset(PCSC_MACOSX_LIBS)
         unset(PCSC_WIN_LIBS)
         unset(PCSC_LIBS)

++++++ yubico-piv-tool-2.5.0.tar.gz -> yubico-piv-tool-2.5.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yubico-piv-tool-2.5.0/CMakeLists.txt 
new/yubico-piv-tool-2.5.1/CMakeLists.txt
--- old/yubico-piv-tool-2.5.0/CMakeLists.txt    2024-01-31 12:38:07.000000000 
+0100
+++ new/yubico-piv-tool-2.5.1/CMakeLists.txt    2024-02-12 13:19:18.000000000 
+0100
@@ -40,7 +40,7 @@
 
 set (yubico_piv_tool_VERSION_MAJOR 2)
 set (yubico_piv_tool_VERSION_MINOR 5)
-set (yubico_piv_tool_VERSION_PATCH 0)
+set (yubico_piv_tool_VERSION_PATCH 1)
 set (VERSION 
"${yubico_piv_tool_VERSION_MAJOR}.${yubico_piv_tool_VERSION_MINOR}.${yubico_piv_tool_VERSION_PATCH}")
 set (SO_VERSION 2)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yubico-piv-tool-2.5.0/NEWS 
new/yubico-piv-tool-2.5.1/NEWS
--- old/yubico-piv-tool-2.5.0/NEWS      2024-01-31 12:38:07.000000000 +0100
+++ new/yubico-piv-tool-2.5.1/NEWS      2024-02-12 13:19:18.000000000 +0100
@@ -1,11 +1,12 @@
 yubico-piv-tool NEWS -- History of user-visible changes.        -*- outline -*-
 
+* Version 2.5.1 (released 2024-02-14)
+
+** ykpiv: cmd: ykcs11: Fix buffer size for key import.
+
 * Version 2.5.0 (released 2024-01-31)
 
-** ykpiv: cmd: ykcs11: Add support for RSA3072 and RSA4096 key types. 
Available in firmware 5.7.0 and newer
-** ykpiv: cmd: Add support for ED25519 and X25519 key types. Available in 
firmware 5.7.0 and newer
-** ykpiv: cmd: Add support for deleting keys. Available in firmware 5.7.0 and 
newer
-** ykpiv: cmd: Add support for moving keys between slots. Available in 
firmware 5.7.0 and newer
+** ykpiv: cmd: ykcs11: Various changes and improvements.
 
 * Version 2.4.2 (released 2023-12-07)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yubico-piv-tool-2.5.0/debian/changelog 
new/yubico-piv-tool-2.5.1/debian/changelog
--- old/yubico-piv-tool-2.5.0/debian/changelog  2024-01-31 12:38:07.000000000 
+0100
+++ new/yubico-piv-tool-2.5.1/debian/changelog  2024-02-12 13:19:18.000000000 
+0100
@@ -1,3 +1,9 @@
+yubico-piv-tool (2.5.1) stable; urgency=medium
+
+  * ykpiv: cmd: ykcs11: Fix buffer size for key import.
+
+ -- Aveen Ismail <aveen.ism...@yubico.com>  Wed, 14 Feb 2024 13:08:31 +0100
+
 yubico-piv-tool (2.5.0) stable; urgency=medium
 
   * ykpiv: cmd: ykcs11: Add support for RSA3072 and RSA4096 key types. 
Available in firmware 5.7.0 and newer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yubico-piv-tool-2.5.0/doc/Actions/index.adoc 
new/yubico-piv-tool-2.5.1/doc/Actions/index.adoc
--- old/yubico-piv-tool-2.5.0/doc/Actions/index.adoc    2024-01-31 
12:38:07.000000000 +0100
+++ new/yubico-piv-tool-2.5.1/doc/Actions/index.adoc    2024-02-12 
13:19:18.000000000 +0100
@@ -12,6 +12,8 @@
 |link:key_generation.adoc[request, request-certificate]         | Generated a 
certification request for an asymmetric key stored on a specific slot
 |link:key_generation.adoc[selfsign, selfsign-certificate]       | Generates a 
self signed X509 certificate for an asymmetric key stored on a specific slot
 |link:delete_certificate.adoc[delete-cert, delete-certificate]  | Deletes a 
certificate from a specific slot
+|link:key_delete.adoc[delete-key]                               | Deletes a 
key from a specific slot
+|link:key_move.adoc[move-key]                                   | Moves a key 
between slots
 |link:read_certificate.adoc[read-cert, read-certificate]        | Returns the 
X509 certificate stored on a specific slot
 |link:read_write_objects.adoc[write-object]                     | Stores an 
object in a slot
 |link:read_write_objects.adoc[read-object]                      | Returns the 
content of a slot
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yubico-piv-tool-2.5.0/doc/Actions/key_delete.adoc 
new/yubico-piv-tool-2.5.1/doc/Actions/key_delete.adoc
--- old/yubico-piv-tool-2.5.0/doc/Actions/key_delete.adoc       1970-01-01 
01:00:00.000000000 +0100
+++ new/yubico-piv-tool-2.5.1/doc/Actions/key_delete.adoc       2024-02-12 
13:19:18.000000000 +0100
@@ -0,0 +1,31 @@
+== Key Delete
+    $ yubico-piv-tool -a delete-key -s <slot> -k
+
+=== Description
+Deletes a key from the specified PIV slot.
+
+NOTE: This actions deletes only the key, not the certificate. So if the slot 
already stores a certificate, it
+might still look populated even if the key is no longer there.
+
+Deleting a key is an action that requires authentication, which is done
+by providing the management key. If no management key is provided, the tool 
will try to authenticate
+using the default management key.footnote:[It is strongly recommended to 
change the Yubikey's PIN, PUK and
+management key before start using it.]
+
+=== Parameters
+
+|===================================
+|Parameter          | Required | Optional | Description | Possible values | 
Default value
+
+|-s, --slot         | X | | What key slot to delete the key from | 9a, 9c, 9d, 
9e, 82, 83, 84, 85, 86, 87, 88, 89,
+8a, 8b, 8c, 8d, 8e, 8f, 90, 91, 92, 93, 94, 95, f9 |
+|-k, --key          | X | | Management key to use, if no value is specified 
key will be asked for | | 010203040506070801020304050607080102030405060708
+|===================================
+
+=== Examples
+
+    $ yubico-piv-tool -a delete-key -s 9c -k
+    Enter Password:
+    Enter management key:
+    Successfully deleted key.
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yubico-piv-tool-2.5.0/doc/Actions/key_generation.adoc 
new/yubico-piv-tool-2.5.1/doc/Actions/key_generation.adoc
--- old/yubico-piv-tool-2.5.0/doc/Actions/key_generation.adoc   2024-01-31 
12:38:07.000000000 +0100
+++ new/yubico-piv-tool-2.5.1/doc/Actions/key_generation.adoc   2024-02-12 
13:19:18.000000000 +0100
@@ -30,7 +30,7 @@
 |-s, --slot        | X | | What key slot to operate on | 9a, 9c, 9d, 9e, 82, 
83, 84, 85, 86, 87, 88, 89,
                                                           8a, 8b, 8c, 8d, 8e, 
8f, 90, 91, 92, 93, 94, 95, f9 |
 |-k, --key         | X | | Management key to use, if no value is specified key 
will be asked for | | 010203040506070801020304050607080102030405060708
-|-A, --algorithm   | | X | What algorithm to use to generate the key pair | 
RSA1024, RSA2048, ECCP256, ECCP384 | RSA2048
+|-A, --algorithm   | | X | What algorithm to use to generate the key pair | 
RSA1024, RSA2048, RSA3072, RSA4096, ECCP256, ECCP384, ED25519, X25519 | RSA2048
 |-i, --input       | | X | Filename to use as input | file name or "-" for 
stdin | -
 |-o, --output      | | X | Filename to use as output | file name or "-" for 
stdin | -
 |-S, --subject     | | X | The subject to use for the certificate. The subject 
must be written as: /CN=host.example.com/OU=test/O=example.com/ | |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yubico-piv-tool-2.5.0/doc/Actions/key_move.adoc 
new/yubico-piv-tool-2.5.1/doc/Actions/key_move.adoc
--- old/yubico-piv-tool-2.5.0/doc/Actions/key_move.adoc 1970-01-01 
01:00:00.000000000 +0100
+++ new/yubico-piv-tool-2.5.1/doc/Actions/key_move.adoc 2024-02-12 
13:19:18.000000000 +0100
@@ -0,0 +1,33 @@
+== Key Move
+    $ yubico-piv-tool -a move-key -s <slot> --to-slot <slot> -k
+
+=== Description
+Moves a key from one PIV slot to another.
+
+NOTE: This actions moves only the key, not the certificate. So if the slot 
already stores a certificate, it
+might still look populated even if the key is no longer there.
+
+Moving a key is an action that requires authentication, which is done
+by providing the management key. If no management key is provided, the tool 
will try to authenticate
+using the default management key.footnote:[It is strongly recommended to 
change the Yubikey's PIN, PUK and
+management key before start using it.]
+
+=== Parameters
+
+|===================================
+|Parameter          | Required | Optional | Description | Possible values | 
Default value
+
+|-s, --slot         | X | | What key slot to move the key from | 9a, 9c, 9d, 
9e, 82, 83, 84, 85, 86, 87, 88, 89,
+8a, 8b, 8c, 8d, 8e, 8f, 90, 91, 92, 93, 94, 95, f9 |
+|--to-slot          | X | | What key slot to move the key to | 9a, 9c, 9d, 9e, 
82, 83, 84, 85, 86, 87, 88, 89,
+8a, 8b, 8c, 8d, 8e, 8f, 90, 91, 92, 93, 94, 95, f9 |
+|-k, --key          | X | | Management key to use, if no value is specified 
key will be asked for | | 010203040506070801020304050607080102030405060708
+|===================================
+
+=== Examples
+
+    $ yubico-piv-tool -a move-key -s 9c --to-slot 84 -k
+    Enter Password:
+    Enter management key:
+    Successfully moved key.
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yubico-piv-tool-2.5.0/doc/Actions/signing.adoc 
new/yubico-piv-tool-2.5.1/doc/Actions/signing.adoc
--- old/yubico-piv-tool-2.5.0/doc/Actions/signing.adoc  2024-01-31 
12:38:07.000000000 +0100
+++ new/yubico-piv-tool-2.5.1/doc/Actions/signing.adoc  2024-02-12 
13:19:18.000000000 +0100
@@ -14,7 +14,7 @@
 
 |-s, --slot        | X | | What key slot to operate on | 9a, 9c, 9d, 9e, 82, 
83, 84, 85, 86, 87, 88, 89,
                                                           8a, 8b, 8c, 8d, 8e, 
8f, 90, 91, 92, 93, 94, 95, f9 |
-|-A, --algorithm   | | X | What algorithm to use to generate the key pair | 
RSA1024, RSA2048, ECCP256, ECCP384 | RSA2048
+|-A, --algorithm   | | X | What algorithm to use to generate the key pair | 
RSA1024, RSA2048, RSA3072, RSA4096, ECCP256, ECCP384, ED25519 | RSA2048
 |-H, --hash        | | X |  Hash to use for signatures | SHA1, SHA256, SHA384, 
SHA512 | SHA256
 |-i, --input       | | X | Filename to use as input | file name or "-" for 
stdin | -
 |-o, --output      | | X | Filename to use as output | file name or "-" for 
stdin | -
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yubico-piv-tool-2.5.0/lib/tests/api.c 
new/yubico-piv-tool-2.5.1/lib/tests/api.c
--- old/yubico-piv-tool-2.5.0/lib/tests/api.c   2024-01-31 12:38:07.000000000 
+0100
+++ new/yubico-piv-tool-2.5.1/lib/tests/api.c   2024-02-12 13:19:18.000000000 
+0100
@@ -228,55 +228,92 @@
 
 // RSA2048 private key, generated with: `openssl genrsa 2048 -out private.pem`
 static const char *private_key_pem =
-  "-----BEGIN RSA PRIVATE KEY-----\n"
-  "MIIEpAIBAAKCAQEAwVUwmVbc+ffOy2+RivxBpgleTVN6bUa0q7jNYB+AseFQYaYq\n"
-  "EGfa+VGdxSGo+8DV1KT9+fNEd5243gXn/tcjtMItKeB+oAQc64s9lIFlYuR8bpq1\n"
-  "ibr33iW2elnnv9mpecqohdCVwM2McWveoPyb7MwlwVuhqexOzJO29bqJcazLbtkf\n"
-  "ZETK0oBx53/ylA4Y6nE9Pa46jW2qhj+KShf1iBg+gAyt3eI+wI2Wmub1WxLLH8D2\n"
-  "w+kow8QhQOa8dHCkRRw771JxVO5+d+Y/Y+x9B1HgF4q0q9xUlhWLK2TR4ChBFzXe\n"
-  "47sAHsSqi/pl5JbwYrHPOE/VEBLukmjL8NFCSQIDAQABAoIBADmEyOK2DyRnb6Ti\n"
-  "2qBJEJb/boj+7wuX36S/ZIrWlIlXiXyj3RvoaiOG/rNpokbURknvlIhKsfIMgLW9\n"
-  "eBo/k6Xxp1IwMjwVPS1uzbFjFfDoHYUijiQd9iSnf7TDDsnrThqoCp9VQViNTt1n\n"
-  "xGKNBS7cRddTFbPiVEdVIzfUeZPR2oRrc4maBCRCrQgg8WNknawmc8zhkf2NiPj3\n"
-  "tWLQHMy1/MgW2W1LM9sgzllEtS5CZUnyGy2HbbhS2tbZ6j9kPzOp0pPxxTTzJmmV\n"
-  "fi1vkJcVW4+MdXjWmhALcPA4dO7Y2Ljiu6VxIxQORRO1DyiCjAs1AVMQxgPAAY41\n"
-  "YR4Q2EkCgYEA4zE0oytg97aVaBY9CKi7/PqR+NI/uEvfoQCnT+ddaJgp/qsspuXo\n"
-  "tJt94p13ANd8O7suqQTVNvbZq1rX10xQjJZ9nvlqQa6iHkN6Epq31XBK3Z+acjIV\n"
-  "A2rAgKBByjz9/CpKHqnOsrTWU1Y7x416IG4BZt42hHdrxRH98/wiDH8CgYEA2djj\n"
-  "AjwgK+MwDnshwT1NNgCSP/2ZHatBAykZ5BCs9BJ6MNYqqXVGYoqs5Z5kSkow+Db3\n"
-  "pipkEieo5w2Rd5zkolTThaVCvRkSe5wRiBpZhaeY+b0UFwavGCb6zU/MmJIMDPiI\n"
-  "2iRGeCXgQDvIS/icIqzbTtp6dZaoMgG7LdSR7TcCgYBtxGhaLas8A8tL7vKuLFgn\n"
-  "cij0vyBqOr5hW596y54l2t7vXGTGfm5gVIAN7WaB0ZsEgPuaTet2Eu44DDwcmZKR\n"
-  "WmR3Wqor8eQCGzfvpTEMvqRtT5+fbPMaI4m+m68ttyo/m28UQZbMYPLscM2RLJnE\n"
-  "8WFcAiD0/33iST8ZksggoQKBgQDE/7Yhsj+hkHxHzB+1QPtOp2uaBHnvc4uCESwB\n"
-  "qvbMbN0kxrejsJLqz98UcozdBYSNIiAHmvQN2uGJuCJhGXdEORNjGxRkLoUhVPwh\n"
-  "qTplfC8BQHQncnrqi21oNw6ctg3BuQsAwaccRZwqWiWCVhrT3J8iCr6NEaWeOySK\n"
-  "iF1CNwKBgQCRpkkZArlccwS0kMvkK+tQ1rG2xWm7c05G34gP/g6dHFRy0gPNMyvi\n"
-  "SkiLTJmQIEZSAEiq0FFgcVwM6o556ftvQZuwDp5rHUbwqnHCpMJKpD9aJpStvfPi\n"
-  "4p9JbYdaGqnq4eoNKemmGnbUof0dR9Zr0lGmcMTwwzBib+4E1d7soA==\n"
-  "-----END RSA PRIVATE KEY-----\n";
+    "-----BEGIN RSA PRIVATE KEY-----\n"
+    "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\n"
+    "-----END RSA PRIVATE KEY-----\n";
 
 // Certificate signed with key above:
 // `openssl req -x509 -key private.pem -out cert.pem -subj 
"/CN=bar/OU=test/O=example.com/" -new`
 static const char *certificate_pem =
-  "-----BEGIN CERTIFICATE-----\n"
-  "MIIC5zCCAc+gAwIBAgIJAOq8A/cmpxF5MA0GCSqGSIb3DQEBCwUAMDMxDDAKBgNV\n"
-  "BAMMA2JhcjENMAsGA1UECwwEdGVzdDEUMBIGA1UECgwLZXhhbXBsZS5jb20wHhcN\n"
-  "MTcwODAzMTE1MDI2WhcNMTgwODAzMTE1MDI2WjAzMQwwCgYDVQQDDANiYXIxDTAL\n"
-  "BgNVBAsMBHRlc3QxFDASBgNVBAoMC2V4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0B\n"
-  "AQEFAAOCAQ8AMIIBCgKCAQEAwVUwmVbc+ffOy2+RivxBpgleTVN6bUa0q7jNYB+A\n"
-  "seFQYaYqEGfa+VGdxSGo+8DV1KT9+fNEd5243gXn/tcjtMItKeB+oAQc64s9lIFl\n"
-  "YuR8bpq1ibr33iW2elnnv9mpecqohdCVwM2McWveoPyb7MwlwVuhqexOzJO29bqJ\n"
-  "cazLbtkfZETK0oBx53/ylA4Y6nE9Pa46jW2qhj+KShf1iBg+gAyt3eI+wI2Wmub1\n"
-  "WxLLH8D2w+kow8QhQOa8dHCkRRw771JxVO5+d+Y/Y+x9B1HgF4q0q9xUlhWLK2TR\n"
-  "4ChBFzXe47sAHsSqi/pl5JbwYrHPOE/VEBLukmjL8NFCSQIDAQABMA0GCSqGSIb3\n"
-  "DQEBCwUAA4IBAQCamrwdEhNmY2GCQWq6U90Q3XQT6w0HHW/JmtuGeF+BTpVr12gN\n"
-  "/UvEXTo9geWbGcCTjaMMURTa7mUjVUIttIWEVHZMKqBuvsUM1RcuOEX/vitaJJ8K\n"
-  "Sw4upjCNa3ZxUXmSA1FBixZgDzFqjEeSiaJjMU0yX5W2p1T4iNYtF3YqzMF5AWSI\n"
-  "qCO7gP5ezPyg5kDnrO3V7DBgnDiqawq7Pyn9DynKNULX/hc1yls/R+ebb2u8Z+h5\n"
-  "W4YXbzGZb8qdT27qIZaHD638tL6liLkI6UE4KCXH8X8e3fqdbmqvwrq403nOGmsP\n"
-  "cbJb2PEXibNEQG234riKxm7x7vNDLL79Jwtc\n"
-  "-----END CERTIFICATE-----\n";
+    "-----BEGIN CERTIFICATE-----\n"
+    "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\n"
+    "CuRM0YVggUE4so4=\n"
+    "-----END CERTIFICATE-----\n";
 
 
 static void import_key(unsigned char slot, unsigned char pin_policy) {
@@ -288,12 +325,12 @@
     BIO *bio = NULL;
     RSA *rsa_private_key = NULL;
     unsigned char e[4] = {0};
-    unsigned char p[128] = {0};
-    unsigned char q[128] = {0};
-    unsigned char dmp1[128] = {0};
-    unsigned char dmq1[128] = {0};
-    unsigned char iqmp[128] = {0};
-    int element_len = 128;
+    unsigned char p[256] = {0};
+    unsigned char q[256] = {0};
+    unsigned char dmp1[256] = {0};
+    unsigned char dmq1[256] = {0};
+    unsigned char iqmp[256] = {0};
+    int element_len = 256;
     const BIGNUM *bn_e, *bn_p, *bn_q, *bn_dmp1, *bn_dmq1, *bn_iqmp;
 
     bio = BIO_new_mem_buf(private_key_pem, strlen(private_key_pem));
@@ -328,7 +365,7 @@
     // Try right algorithm
     res = ykpiv_import_private_key(g_state,
                                    slot,
-                                   YKPIV_ALGO_RSA2048,
+                                   YKPIV_ALGO_RSA4096,
                                    p, element_len,
                                    q, element_len,
                                    dmp1, element_len,
@@ -346,9 +383,9 @@
     BIO *bio = NULL;
     X509 *cert = NULL;
     EVP_PKEY *pub_key = NULL;
-    unsigned char secret[32] = {0};
-    unsigned char secret2[32] = {0};
-    unsigned char data[256] = {0};
+    unsigned char secret[64] = {0};
+    unsigned char secret2[64] = {0};
+    unsigned char data[512] = {0};
     int len;
     size_t len2 = sizeof(data);
     RSA *rsa = NULL;
@@ -367,7 +404,7 @@
     ck_assert_int_ge(len, 0);
     res = ykpiv_verify(g_state, "123456", NULL);
     ck_assert_int_eq(res, YKPIV_OK);
-    res = ykpiv_decipher_data(g_state, data, (size_t)len, data, &len2, 
YKPIV_ALGO_RSA2048, slot);
+    res = ykpiv_decipher_data(g_state, data, (size_t)len, data, &len2, 
YKPIV_ALGO_RSA4096, slot);
     ck_assert_int_eq(res, YKPIV_OK);
     len = RSA_padding_check_PKCS1_type_2(secret2, sizeof(secret2), data + 1, 
len2 - 1, RSA_size(rsa));
     ck_assert_int_eq(len, sizeof(secret));
@@ -391,14 +428,14 @@
     const EVP_MD *md = EVP_sha256();
     EVP_MD_CTX *mdctx;
 
-    unsigned char signature[1024] = {0};
-    unsigned char encoded[1024] = {0};
-    unsigned char data[1024] = {0};
-    unsigned char signinput[1024] = {0};
+    unsigned char signature[2048] = {0};
+    unsigned char encoded[2048] = {0};
+    unsigned char data[2048] = {0};
+    unsigned char signinput[2048] = {0};
     unsigned char rand[128] = {0};
 
     size_t sig_len = sizeof(signature);
-    size_t padlen = 256;
+    size_t padlen = 512;
     unsigned int enc_len;
     unsigned int data_len;
 
@@ -420,7 +457,7 @@
 
     prepare_rsa_signature(data, data_len, encoded, &enc_len, EVP_MD_type(md));
     ck_assert_int_ne(RSA_padding_add_PKCS1_type_1(signinput, padlen, encoded, 
enc_len), 0);
-    res = ykpiv_sign_data(g_state, signinput, padlen, signature, &sig_len, 
YKPIV_ALGO_RSA2048, 0x9a);
+    res = ykpiv_sign_data(g_state, signinput, padlen, signature, &sig_len, 
YKPIV_ALGO_RSA4096, 0x9a);
     ck_assert_int_eq(res, YKPIV_OK);
 
     ck_assert_int_eq(RSA_verify(EVP_MD_type(md), data, data_len, signature, 
sig_len, rsa), 1);
@@ -432,7 +469,7 @@
 
   // Verify that imported key can not be attested
   {
-    unsigned char attest[2048] = {0};
+    unsigned char attest[4096] = {0};
     size_t attest_len = sizeof(attest);
     ykpiv_devmodel model;
     model = ykpiv_util_devicemodel(g_state);
@@ -502,23 +539,23 @@
     ck_assert_int_ne(RSA_padding_add_PKCS1_type_1(signinput, padlen, encoded, 
enc_len), 0);
 
     // Sign without verify: fail
-    res = ykpiv_sign_data(g_state, signinput, padlen, signature, &sig_len, 
YKPIV_ALGO_RSA2048, 0x9e);
+    res = ykpiv_sign_data(g_state, signinput, padlen, signature, &sig_len, 
YKPIV_ALGO_RSA4096, 0x9e);
     ck_assert_int_eq(res, YKPIV_AUTHENTICATION_ERROR);
 
     // Sign with verify: pass
     res = ykpiv_verify(g_state, "123456", NULL);
     ck_assert_int_eq(res, YKPIV_OK);
-    res = ykpiv_sign_data(g_state, signinput, padlen, signature, &sig_len, 
YKPIV_ALGO_RSA2048, 0x9e);
+    res = ykpiv_sign_data(g_state, signinput, padlen, signature, &sig_len, 
YKPIV_ALGO_RSA4096, 0x9e);
     ck_assert_int_eq(res, YKPIV_OK);
 
     // Sign again without verify: fail
-    res = ykpiv_sign_data(g_state, signinput, padlen, signature, &sig_len, 
YKPIV_ALGO_RSA2048, 0x9e);
+    res = ykpiv_sign_data(g_state, signinput, padlen, signature, &sig_len, 
YKPIV_ALGO_RSA4096, 0x9e);
     ck_assert_int_eq(res, YKPIV_AUTHENTICATION_ERROR);
 
     // Sign again with verify: pass
     res = ykpiv_verify(g_state, "123456", NULL);
     ck_assert_int_eq(res, YKPIV_OK);
-    res = ykpiv_sign_data(g_state, signinput, padlen, signature, &sig_len, 
YKPIV_ALGO_RSA2048, 0x9e);
+    res = ykpiv_sign_data(g_state, signinput, padlen, signature, &sig_len, 
YKPIV_ALGO_RSA4096, 0x9e);
     ck_assert_int_eq(res, YKPIV_OK);
 
     ck_assert_int_eq(RSA_verify(EVP_MD_type(md), data, data_len, signature, 
sig_len, rsa), 1);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yubico-piv-tool-2.5.0/lib/ykpiv-config.h 
new/yubico-piv-tool-2.5.1/lib/ykpiv-config.h
--- old/yubico-piv-tool-2.5.0/lib/ykpiv-config.h        2024-01-31 
12:38:15.000000000 +0100
+++ new/yubico-piv-tool-2.5.1/lib/ykpiv-config.h        2024-02-12 
13:19:28.000000000 +0100
@@ -43,7 +43,7 @@
         * version number.  Used together with ykneomgr_check_version() to 
verify
         * header file and run-time library consistency.
         */
-#define YKPIV_VERSION_STRING "2.5.0"
+#define YKPIV_VERSION_STRING "2.5.1"
 
        /**
         * YKPIV_VERSION_NUMBER
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yubico-piv-tool-2.5.0/lib/ykpiv.c 
new/yubico-piv-tool-2.5.1/lib/ykpiv.c
--- old/yubico-piv-tool-2.5.0/lib/ykpiv.c       2024-01-31 12:38:07.000000000 
+0100
+++ new/yubico-piv-tool-2.5.1/lib/ykpiv.c       2024-02-12 13:19:18.000000000 
+0100
@@ -1887,7 +1887,7 @@
                                   const unsigned char *ec_data, unsigned char 
ec_data_len,
                                   const unsigned char pin_policy, const 
unsigned char touch_policy) {
 
-  unsigned char key_data[1024] = {0};
+  unsigned char key_data[2048] = {0};
   unsigned char *in_ptr = key_data;
   unsigned char templ[] = {0, YKPIV_INS_IMPORT_KEY, algorithm, key};
   unsigned char data[256] = {0};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yubico-piv-tool-2.5.0/lib/ykpiv.pc 
new/yubico-piv-tool-2.5.1/lib/ykpiv.pc
--- old/yubico-piv-tool-2.5.0/lib/ykpiv.pc      2024-01-31 12:38:15.000000000 
+0100
+++ new/yubico-piv-tool-2.5.1/lib/ykpiv.pc      2024-02-12 13:19:28.000000000 
+0100
@@ -33,7 +33,7 @@
 Name: yubico-piv-tool
 Description: Yubico PIV C Library
 URL: https://www.yubico.com/
-Version: 2.5.0
+Version: 2.5.1
 Requires.private: libcrypto
 Libs: -L${libdir} -lykpiv
 Cflags: -I${includedir}/ykpiv
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yubico-piv-tool-2.5.0/resources/macos/make_release_binaries.sh 
new/yubico-piv-tool-2.5.1/resources/macos/make_release_binaries.sh
--- old/yubico-piv-tool-2.5.0/resources/macos/make_release_binaries.sh  
2024-01-31 12:38:07.000000000 +0100
+++ new/yubico-piv-tool-2.5.1/resources/macos/make_release_binaries.sh  
2024-02-12 13:19:18.000000000 +0100
@@ -75,13 +75,13 @@
 install_name_tool -change $BREW_LIB/openssl@3/lib/libcrypto.3.dylib 
@loader_path/../lib/libcrypto.3.dylib 
$FINAL_INSTALL_DIR/lib/libykcs11.$VERSION.dylib
 install_name_tool -change $BREW_LIB/openssl@3/lib/libcrypto.3.dylib 
@loader_path/../lib/libcrypto.3.dylib $FINAL_INSTALL_DIR/bin/yubico-piv-tool
 
-install_name_tool -change $BREW_LIB/zlib/lib/libz.1.dylib 
@loader_path/../lib/libz.1.dylib $FINAL_INSTALL_DIR/lib/libykpiv.$VERSION.dylib
-install_name_tool -change $BREW_LIB/zlib/lib/libz.1.dylib 
@loader_path/../lib/libz.1.dylib $FINAL_INSTALL_DIR/lib/libykcs11.$VERSION.dylib
-install_name_tool -change $BREW_LIB/zlib/lib/libz.1.dylib 
@loader_path/../lib/libz.1.dylib $FINAL_INSTALL_DIR/bin/yubico-piv-tool
+install_name_tool -change /usr/lib/libz.1.dylib 
@loader_path/../lib/libz.1.dylib $FINAL_INSTALL_DIR/lib/libykcs11.$VERSION.dylib
+install_name_tool -change /usr/lib/libz.1.dylib 
@loader_path/../lib/libz.1.dylib $FINAL_INSTALL_DIR/lib/libykpiv.$VERSION.dylib
+install_name_tool -change /usr/lib/libz.1.dylib 
@loader_path/../lib/libz.1.dylib $FINAL_INSTALL_DIR/bin/yubico-piv-tool
 
-install_name_tool -rpath "$FINAL_INSTALL_DIR/lib" "@loader_path/../lib" 
"$FINAL_INSTALL_DIR/lib/libykpiv.$VERSION.dylib"
-install_name_tool -rpath "$FINAL_INSTALL_DIR/lib" "@loader_path/../lib" 
"$FINAL_INSTALL_DIR/lib/libykcs11.$VERSION.dylib"
-install_name_tool -rpath "$FINAL_INSTALL_DIR/lib" "@loader_path/../lib" 
"$FINAL_INSTALL_DIR/bin/yubico-piv-tool"
+install_name_tool -rpath "/usr/local/lib" "@loader_path/../lib" 
"$FINAL_INSTALL_DIR/lib/libykcs11.$VERSION.dylib"
+install_name_tool -rpath "/usr/local/lib" "@loader_path/../lib" 
"$FINAL_INSTALL_DIR/lib/libykpiv.$VERSION.dylib"
+install_name_tool -rpath "/usr/local/lib" "@loader_path/../lib" 
"$FINAL_INSTALL_DIR/bin/yubico-piv-tool"
 
 if otool -L $FINAL_INSTALL_DIR/lib/*.dylib $FINAL_INSTALL_DIR/bin/* | grep 
'$FINAL_INSTALL_DIR' | grep -q compatibility; then
        echo "something is incorrectly linked!";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yubico-piv-tool-2.5.0/resources/scripts/opensc_tests.sh 
new/yubico-piv-tool-2.5.1/resources/scripts/opensc_tests.sh
--- old/yubico-piv-tool-2.5.0/resources/scripts/opensc_tests.sh 2024-01-31 
12:38:07.000000000 +0100
+++ new/yubico-piv-tool-2.5.1/resources/scripts/opensc_tests.sh 2024-02-12 
13:19:18.000000000 +0100
@@ -20,6 +20,8 @@
 pkcs11-tool --module $MODULE --login --login-type so --so-pin 
010203040506070801020304050607080102030405060708 --keypairgen --id 2 --key-type 
EC:prime256v1
 pkcs11-tool --module $MODULE --login --login-type so --so-pin 
010203040506070801020304050607080102030405060708 --keypairgen --id 3 --key-type 
rsa:1024
 pkcs11-tool --module $MODULE --login --login-type so --so-pin 
010203040506070801020304050607080102030405060708 --keypairgen --id 4 --key-type 
rsa:2048
+pkcs11-tool --module $MODULE --login --login-type so --so-pin 
010203040506070801020304050607080102030405060708 --keypairgen --id 5 --key-type 
rsa:3072
+pkcs11-tool --module $MODULE --login --login-type so --so-pin 
010203040506070801020304050607080102030405060708 --keypairgen --id 6 --key-type 
rsa:4096
 
 echo "******************* Signing Tests ********************* "
 echo "this is test data" > data.txt
@@ -27,6 +29,8 @@
 pkcs11-tool --module $MODULE --sign --pin 123456 --id 2 -m ECDSA-SHA1 
--signature-format openssl -i data.txt -o data.sig
 pkcs11-tool --module $MODULE --sign --pin 123456 --id 3 -i data.txt -o data.sig
 pkcs11-tool --module $MODULE --sign --pin 123456 --id 4 -i data.txt -o data.sig
+pkcs11-tool --module $MODULE --sign --pin 123456 --id 5 -i data.txt -o data.sig
+pkcs11-tool --module $MODULE --sign --pin 123456 --id 6 -i data.txt -o data.sig
 rm data.txt
 rm data.sig
 
@@ -41,6 +45,14 @@
 openssl x509 -inform DER -outform PEM -in 9e_cert.crt -out 9e_cert.pem
 openssl x509 -in 9e_cert.pem -pubkey -noout > 9e_pubkey.pem
 
+pkcs11-tool --module $MODULE --read-object --type cert --id 5 -o 5_cert.crt
+openssl x509 -inform DER -outform PEM -in 5_cert.crt -out 5_cert.pem
+openssl x509 -in 5_cert.pem -pubkey -noout > 5_pubkey.pem
+
+pkcs11-tool --module $MODULE --read-object --type cert --id 6 -o 6_cert.crt
+openssl x509 -inform DER -outform PEM -in 6_cert.crt -out 6_cert.pem
+openssl x509 -in 6_cert.pem -pubkey -noout > 6_pubkey.pem
+
 openssl rsautl -encrypt -oaep -inkey 9d_pubkey.pem -pubin -in data.txt -out 
data.oaep
 pkcs11-tool --module $MODULE --decrypt --pin 123456 --id 3 -m RSA-PKCS-OAEP -i 
data.oaep
 rm data.oaep
@@ -49,8 +61,18 @@
 pkcs11-tool --module $MODULE --decrypt --pin 123456 --id 4 -m RSA-PKCS-OAEP -i 
data.oaep
 rm data.oaep
 
+openssl rsautl -encrypt -oaep -inkey 5_pubkey.pem -pubin -in data.txt -out 
data.oaep
+pkcs11-tool --module $MODULE --decrypt --pin 123456 --id 5 -m RSA-PKCS-OAEP -i 
data.oaep
+rm data.oaep
+
+openssl rsautl -encrypt -oaep -inkey 6_pubkey.pem -pubin -in data.txt -out 
data.oaep
+pkcs11-tool --module $MODULE --decrypt --pin 123456 --id 6 -m RSA-PKCS-OAEP -i 
data.oaep
+rm data.oaep
+
 rm 9d_cert.crt 9d_cert.pem 9d_pubkey.pem
 rm 9e_cert.crt 9e_cert.pem 9e_pubkey.pem
+rm 5_cert.crt 5_cert.pem 5_pubkey.pem
+rm 6_cert.crt 6_cert.pem 6_pubkey.pem
 
 rm data.txt
 echo "******************* Testing RSA Tests ********************* "
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yubico-piv-tool-2.5.0/resources/win/yubico-piv-tool_x64.wxs 
new/yubico-piv-tool-2.5.1/resources/win/yubico-piv-tool_x64.wxs
--- old/yubico-piv-tool-2.5.0/resources/win/yubico-piv-tool_x64.wxs     
2024-01-31 12:38:07.000000000 +0100
+++ new/yubico-piv-tool-2.5.1/resources/win/yubico-piv-tool_x64.wxs     
2024-02-12 13:19:18.000000000 +0100
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"; 
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension";>
-  <?define ProductVersion="2.5.0" ?>
+  <?define ProductVersion="2.5.1" ?>
   <?define ProductName="Yubico PIV Tool (x64)" ?>
 
    <Product Id="*" UpgradeCode="e4f980c4-5dd5-4d39-95b7-c6362ae65be8" 
Name="$(var.ProductName)" Version="$(var.ProductVersion)" Manufacturer="Yubico 
AB" Language="1033">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yubico-piv-tool-2.5.0/resources/win/yubico-piv-tool_x86.wxs 
new/yubico-piv-tool-2.5.1/resources/win/yubico-piv-tool_x86.wxs
--- old/yubico-piv-tool-2.5.0/resources/win/yubico-piv-tool_x86.wxs     
2024-01-31 12:38:07.000000000 +0100
+++ new/yubico-piv-tool-2.5.1/resources/win/yubico-piv-tool_x86.wxs     
2024-02-12 13:19:18.000000000 +0100
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"; 
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension";>
-  <?define ProductVersion="2.5.0" ?>
+  <?define ProductVersion="2.5.1" ?>
   <?define ProductName="Yubico PIV Tool (x86)" ?>
 
    <Product Id="*" UpgradeCode="1aa2f085-add9-4556-9e21-299b078e6273" 
Name="$(var.ProductName)" Version="$(var.ProductVersion)" Manufacturer="Yubico 
AB" Language="1033">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yubico-piv-tool-2.5.0/tool/yubico-piv-tool.1 
new/yubico-piv-tool-2.5.1/tool/yubico-piv-tool.1
--- old/yubico-piv-tool-2.5.0/tool/yubico-piv-tool.1    2024-01-31 
12:38:20.000000000 +0100
+++ new/yubico-piv-tool-2.5.1/tool/yubico-piv-tool.1    2024-02-12 
13:19:33.000000000 +0100
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
-.TH YUBICO-PIV-TOOL "1" "January 2024" "yubico-piv-tool 2.5.0" "User Commands"
+.TH YUBICO-PIV-TOOL "1" "February 2024" "yubico-piv-tool 2.5.1" "User Commands"
 .SH NAME
 yubico-piv-tool \- Tool for managing Personal Identity Verification 
credentials on Yubikeys
 .SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yubico-piv-tool-2.5.0/tool/yubico-piv-tool.c 
new/yubico-piv-tool-2.5.1/tool/yubico-piv-tool.c
--- old/yubico-piv-tool-2.5.0/tool/yubico-piv-tool.c    2024-01-31 
12:38:07.000000000 +0100
+++ new/yubico-piv-tool-2.5.1/tool/yubico-piv-tool.c    2024-02-12 
13:19:18.000000000 +0100
@@ -520,16 +520,30 @@
     if(YKPIV_IS_RSA(algorithm)) {
       RSA *rsa_private_key = EVP_PKEY_get1_RSA(private_key);
       unsigned char e[4] = {0};
-      unsigned char p[128] = {0};
-      unsigned char q[128] = {0};
-      unsigned char dmp1[128] = {0};
-      unsigned char dmq1[128] = {0};
-      unsigned char iqmp[128] = {0};
+      unsigned char p[256] = {0};
+      unsigned char q[256] = {0};
+      unsigned char dmp1[256] = {0};
+      unsigned char dmq1[256] = {0};
+      unsigned char iqmp[256] = {0};
       const BIGNUM *bn_e, *bn_p, *bn_q, *bn_dmp1, *bn_dmq1, *bn_iqmp;
 
-      int element_len = 128;
-      if(algorithm == YKPIV_ALGO_RSA1024) {
-        element_len = 64;
+      int element_len = 0;
+      switch(algorithm) {
+        case YKPIV_ALGO_RSA1024:
+          element_len = 64;
+          break;
+        case YKPIV_ALGO_RSA2048:
+          element_len = 128;
+          break;
+        case YKPIV_ALGO_RSA3072:
+          element_len = 192;
+          break;
+        case YKPIV_ALGO_RSA4096:
+          element_len = 256;
+          break;
+        default:
+          fprintf(stderr, "Unsupported RSA algorithm\n");
+          goto import_out;
       }
 
       RSA_get0_key(rsa_private_key, NULL, &bn_e, NULL);
@@ -567,11 +581,11 @@
       }
 
       rc = ykpiv_import_private_key(state, key, algorithm,
-                                    p, (size_t)element_len,
-                                    q, (size_t)element_len,
-                                    dmp1, (size_t)element_len,
-                                    dmq1, (size_t)element_len,
-                                    iqmp, (size_t)element_len,
+                                    p, element_len,
+                                    q, element_len,
+                                    dmp1, element_len,
+                                    dmq1, element_len,
+                                    iqmp, element_len,
                                     NULL, 0,
                                     pp, tp);
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yubico-piv-tool-2.5.0/ykcs11/mechanisms.c 
new/yubico-piv-tool-2.5.1/ykcs11/mechanisms.c
--- old/yubico-piv-tool-2.5.0/ykcs11/mechanisms.c       2024-01-31 
12:38:07.000000000 +0100
+++ new/yubico-piv-tool-2.5.1/ykcs11/mechanisms.c       2024-02-12 
13:19:18.000000000 +0100
@@ -292,7 +292,7 @@
   }
 
   // Sign with PIV
-  unsigned char sigbuf[256] = {0};
+  unsigned char sigbuf[512] = {0};
   size_t siglen = sizeof(sigbuf);
   ykpiv_rc rcc = ykpiv_sign_data(session->slot->piv_state, 
session->op_info.buf, session->op_info.buf_len, sigbuf, &siglen, 
session->op_info.op.sign.algorithm, session->op_info.op.sign.piv_key);
   if(rcc == YKPIV_OK) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yubico-piv-tool-2.5.0/ykcs11/objects.c 
new/yubico-piv-tool-2.5.1/ykcs11/objects.c
--- old/yubico-piv-tool-2.5.0/ykcs11/objects.c  2024-01-31 12:38:07.000000000 
+0100
+++ new/yubico-piv-tool-2.5.1/ykcs11/objects.c  2024-02-12 13:19:18.000000000 
+0100
@@ -2171,7 +2171,7 @@
     return CKR_TEMPLATE_INCOMPLETE;
   }
 
-  if (*p_len != 64 && *p_len != 128) {
+  if (*p_len != 64 && *p_len != 128 && *p_len != 192 && *p_len != 256) {
     DBG("Invalid RSA component lengths");
     return CKR_ATTRIBUTE_VALUE_INVALID;
   }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yubico-piv-tool-2.5.0/ykcs11/ykcs11-config.h 
new/yubico-piv-tool-2.5.1/ykcs11/ykcs11-config.h
--- old/yubico-piv-tool-2.5.0/ykcs11/ykcs11-config.h    2024-01-31 
12:38:15.000000000 +0100
+++ new/yubico-piv-tool-2.5.1/ykcs11/ykcs11-config.h    2024-02-12 
13:19:28.000000000 +0100
@@ -43,7 +43,7 @@
         * version number.  Used together with ykneomgr_check_version() to 
verify
         * header file and run-time library consistency.
         */
-#define YKCS11_VERSION_STRING "2.5.0"
+#define YKCS11_VERSION_STRING "2.5.1"
 
        /**
         * YKCS11_VERSION_NUMBER
@@ -53,7 +53,7 @@
         * this symbol will have the value 0x01020300.  The last two digits
         * are only used between public releases, and will otherwise be 00.
         */
-#define YKCS11_VERSION_NUMBER 2.5.0
+#define YKCS11_VERSION_NUMBER 2.5.1
 
        /**
         * YKCS11_VERSION_MAJOR
@@ -80,7 +80,7 @@
         * level of the header file version number.  For example, when the
         * header version is 1.2.3 this symbol will be 3.
         */
-#define YKCS11_VERSION_PATCH 0
+#define YKCS11_VERSION_PATCH 1
 
     /**
      * _WIN32
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yubico-piv-tool-2.5.0/ykcs11/ykcs11.pc 
new/yubico-piv-tool-2.5.1/ykcs11/ykcs11.pc
--- old/yubico-piv-tool-2.5.0/ykcs11/ykcs11.pc  2024-01-31 12:38:15.000000000 
+0100
+++ new/yubico-piv-tool-2.5.1/ykcs11/ykcs11.pc  2024-02-12 13:19:28.000000000 
+0100
@@ -33,5 +33,5 @@
 Name: yubico-piv-tool
 Description: Yubico PIV PKCS#11 Module
 URL: https://www.yubico.com/
-Version: 2.5.0
+Version: 2.5.1
 Libs: -L${libdir} -lykcs11

Reply via email to