Подпись с помощью функции C_EX_PKCS7Sign не проходит. OS iOS
Добрый день.
Пытаюсь подписать некоторые данные используя C_EX_PKCS7Sign, но она всегда отдает в результате CKR_ATTRIBUTE_TYPE_INVALID.
Используемые код:
CK_OBJECT_CLASS keyClass = CKO_PUBLIC_KEY;
CK_ATTRIBUTE template[] = {
{CKA_CLASS, &keyClass, sizeof(keyClass)},
{CKA_ID, (void*)[[certificate id] bytes], [[certificate id] length]},
};
rv = _functions->C_FindObjectsInit(_session, template, ARRAY_LENGTH(template));
if (CKR_OK != rv) [Pkcs11Error initWithCode:rv];
rv = _functions->C_FindObjects(_session, &publicKey, 1, &count);
if (CKR_OK != rv) [Pkcs11Error initWithCode:rv];
rv = _functions->C_FindObjectsFinal(_session);
if (CKR_OK != rv) [Pkcs11Error initWithCode:rv];
if (count != 1) {
[Pkcs11Error initWithDescription:@"public key for certificate not found"];
}
CK_BYTE_PTR signature;
CK_ULONG signatureSize;
unsigned char data[7] = "qwerty";
rv = _extendedFunctions->C_EX_PKCS7Sign(_session, data, sizeof(data), publicKey, &signature, &signatureSize, 0, NULL, 0, 0);
Здесь rv получается равен 18.
Подскажите, пожалуйста, что я делаю не так?
> Пользователь авторизован.
> если вместо вызова C_EX_PKCS7Sign использовать кусок кода из https://github.com/AktivCo/rutoken-demo … ken.m#L385 с openssl, то все работает.