Невозможно получить ключи, используя PKCS11 и OpenSSL (CKR_ARGUMENTS_BAD) - PullRequest
0 голосов
/ 10 октября 2019

Я борюсь здесь с чем-то, что должно быть простым.

Все, что я пытаюсь сделать, это получить ключ, используя ECDH.

Я использую OpenSSL 1.1.0i-fips на openSuSE LEAP 15.

sudo pkcs11-tool -l --id 30 --derive --input-file /home/foo/tmp/y.der -m ECDH1-DERIVE --output-file /home/foo/tmp/foo
Using slot 0 with a present token (0x0)
Logging in to "UserPIN (SmartCard-HSM)".
Please enter User PIN: 
Using derive algorithm 0x00001050 ECDH1-DERIVE
error: PKCS11 function C_DeriveKey failed: rv = CKR_ARGUMENTS_BAD (0x7)
Aborting.

sudo pkcs15-tool --dump
Private EC Key [foobar]                                                                                                                                                                      
        Object Flags   : [0x3], private, modifiable                                                                                                                                            
        Usage          : [0x10C], sign, signRecover, derive                                                                                                                                    
        Access Flags   : [0x1D], sensitive, alwaysSensitive, neverExtract, local                                                                                                               
        FieldLength    : 512                                                                                                                                                                   
        Key ref        : 5 (0x5)                                                                                                                                                               
        Native         : yes
        Auth ID        : 01
        ID             : 30
        MD:guid        : <REMOVED FOR SECURITY>

openssl ec -in /home/foo/tmp/y.der  -pubin -inform der -text -noout
read EC key
Public-Key: (512 bit)
pub:
    04:9b:1a:36:f4:a7:6d:f8:fe:7b:af:b3:24:76:d4:
    60:49:08:5b:cd:d8:35:bf:49:de:f1:b6:57:17:1d:
    1b:e0:07:8e:e8:09:d9:df:e7:80:41:b9:c2:1f:4c:
    03:4f:2f:54:92:dd:a9:c1:7b:08:5d:3a:dd:3a:e0:
    a7:27:9f:78:91:9e:cc:d5:08:d8:03:6e:a5:ad:e0:
    45:9f:17:c3:7e:69:01:4e:73:ba:2a:3a:69:bb:da:
    82:bd:f7:f1:8b:19:86:dc:48:1f:fa:ed:78:0f:a7:
    92:64:ac:72:39:62:ba:d2:f3:90:53:da:17:dc:4d:
    11:69:9a:f2:08:88:be:a4:c5
ASN1 OID: brainpoolP512r1

Ключ был создан с помощью:

pkcs11-tool --login --keypairgen --key-type EC:brainpoolP512r1 --id 30 --label foobar --usage-sign --usage-decrypt --usage-derive

...