Библиотека PKCS#11 возвращает открытый ключ ECDSA в через поле CKA_EC_POINT в формате OCTET_STRING
04 41 04 8B 92 09 CC C0 A1 B4 19 BA 80 2E 44 5D A2 16 E6 92 AA 9C BB B9 CC B0 CE 5C 76 71 C6 DF E4 CA 83 46 BB 92 2B C8 6F FC 15 20 D8 11 5F 32 4F 7F CA BB DE 9F E3 62 5E 8E 2C D2 2D C2 51 EC 3B 8C 67
04 41 04 (открытый ключ - 64 байта)
04 - тег
41 - размер
04 - тег
далее - открытый ключ
30 56 30 10 06 07 2A 86 48 CE 3D 02 01 06 05 2B 81 04 00 0A 03 42 00 04 (открытый ключ - 64 байта)
30 - тег
56 - размер
30 - тег
10 - размер
06 - тег
07 - размер
2A 86 48 CE 3D 02 01 - id-ecPublicKey
06 - тег
05 - размер
2B 81 04 00 0A - secp256k1
03 - тег
42 - размер
00 04 - магия
30 56 30 10 06 07 2A 86 48 CE 3D 02 01 06 05 2B 81 04 00 0A 03 42 00 04 8B 92 09 CC C0 A1 B4 19 BA 80 2E 44 5D A2 16 E6 92 AA 9C BB B9 CC B0 CE 5C 76 71 C6 DF E4 CA 83 46 BB 92 2B C8 6F FC 15 20 D8 11 5F 32 4F 7F CA BB DE 9F E3 62 5E 8E 2C D2 2D C2 51 EC 3B 8C 67
Для утилиты openssl нужен открытый ключ в формате PEM
Чтобы перевести в PEM формат нужно выполнить команду
openssl ec -pubin -inform DER -in pubkey.der -outform PEM -out pubkey.pem
openssl ec -check -pubin -in pubkey.pem
Команда напишет EC Key valid. если открытый ключ корректный
Библиотека PKCS#11 возвращает подпись через буфер в функции С_Sign в виде R|S
EC 8D 6D 05 96 B9 8A AE 04 F6 AE 83 D8 04 99 FA D4 A3 EA 37 86 95 A9 DC 0D 3F 09 7F 76 5A F8 40 AA 09 E6 8D D6 56 82 02 4B CF 15 78 21 A6 23 75 81 6C 93 51 90 ED 58 91 33 6E E2 91 4D 57 B5 50
Первые 32 байта - R, остальные 32 байта - S
30 46 02 21 00 (R - 32 байта) 02 21 00 (S - 32 байта)
30 - тег
46 - размер
02 - тег
21 - размер
00 - нулевой байт (добавлен так как первый байт R - ЕС, а ЕС > 7F)
02 - тег
21 - размер
00 - нулевой байт (добавлен так как первый байт S - AA, а AA > 7F)
30 46 02 21 00 EC 8D 6D 05 96 B9 8A AE 04 F6 AE 83 D8 04 99 FA D4 A3 EA 37 86 95 A9 DC 0D 3F 09 7F 76 5A F8 40 02 21 00 AA 09 E6 8D D6 56 82 02 4B CF 15 78 21 A6 23 75 81 6C 93 51 90 ED 58 91 33 6E E2 91 4D 57 B5 50
Никак преобразовывать подпись далее не нужно, можно оставить в этом же виде
Проверка подписи утилитой openssl
openssl dgst -sha256 -verify pubkey.pem -signature sign.der data.bin
Команда напишет Verified OK если подпись корректная