Рутокен ЭЦП 2.0 + SSSD

Проверил локальную авторизацию через pam_pkcs11 - успешно, но вот когда дело касается SSSD возникают проблемы при авторизации (SSSD ver. - 2.2.2)
Ошибка:
(Tue Jan 28 17:09:20 2020) [[sssd[p11_child[47180]]]] [sign_data] (0x0040): C_SignInit failed [112][The crypto mechanism is invalid or unrecognized].
Сертификат записывался через pkcs11-tool и стандартным приложением Рутокена в винде. Итог один. Алгоритм соответственно - RSA. Использовалась при работе стандартная библиотека librtpkcs11ECP.

Re: Рутокен ЭЦП 2.0 + SSSD

Здравствуйте.

Судя по всему SSSD использует в один заход хэширование и подпись:

prefs[] = {
        { CKM_SHA512_RSA_PKCS, "CKM_SHA512_RSA_PKCS", EVP_sha512(), "sha512" },
        { CKM_SHA384_RSA_PKCS, "CKM_SHA384_RSA_PKCS", EVP_sha384(), "sha384" },
        { CKM_SHA256_RSA_PKCS, "CKM_SHA256_RSA_PKCS", EVP_sha256(), "sha256" },
        { CKM_SHA224_RSA_PKCS, "CKM_SHA224_RSA_PKCS", EVP_sha224(), "sha224" },
        { CKM_SHA1_RSA_PKCS,   "CKM_SHA1_RSA_PKCS",   EVP_sha1(),   "sha1" },
        { 0, NULL }
    };

https://pagure.io/SSSD/sssd/blob/master … _openssl.c

В нашем PKCS поддерживаются CKM_RSA_PKCS и CKM_RSA_PKCS_OAEP

На первый взгляд можно поправить несколько строк в исходнике SSSD и собрать его с поддержкой нашего PKCS:

case CKK_RSA:
        rv = get_preferred_rsa_mechanism(cert, module, slot_id,
                                         &preferred_mechanism, &evp_md);
        if (rv != CKR_OK) {
            DEBUG(SSSDBG_OP_FAILURE, "get_preferred_rsa_mechanism failed, "
                                     "using default CKM_RSA_PKCS.\n");

 //дальше идет измененый код

            preferred_mechanism = CKM_RSA_PKCS;
            card_does_hash = false;
            evp_md = EVP_sha1();
        } else {
            card_does_hash = true;
        }

        mechanism.mechanism = preferred_mechanism;
        DEBUG(SSSDBG_TRACE_ALL, "Found RSA key using mechanism [%lu].\n",
              preferred_mechanism);
        break;

Задачу по реализации совместимости с SSSD передадим разработчикам в бэклог.

Re: Рутокен ЭЦП 2.0 + SSSD

Спасибо большое за ответ.