Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline romanrvachev  
#1 Оставлено : 15 августа 2024 г. 11:21:17(UTC)
romanrvachev

Статус: Новичок

Группы: Участники
Зарегистрирован: 10.07.2024(UTC)
Сообщений: 5
Российская Федерация
Откуда: Омск

Сказал(а) «Спасибо»: 1 раз
Добрый день!

Пока не особо получается разобраться с license_api. Доки нет, примеров нет

В кратце из всех методов работает только license_check

license_set как будто ничего не делает, пишу на Swift, код прикладываю
Цитата:

var buffer = Array(licenseNumber.utf8)
buffer.append(0)
license_set(&buffer, nil, 0)


license_get нормально вычисляет длину возвращаемой строки, но результирующая строка состоит из \0 (так называемые null terminator)
Цитата:

var dataLength: UInt32 = 0
license_get(nil, &dataLength, nil, 0)
let data = malloc(Int(dataLength)).assumingMemoryBound(to: BYTE.self)
license_get(data, &dataLength, nil, 0)
let licenseData = Data(bytes: data, count: Int(dataLength))
if let licenseString = String(data: licenseData, encoding: .utf8) {
print(licenseString)
}


Можете, пожалуйста, подсказать, где можно увидеть примеры работы с этой апишкой или документацию какую-нибудь конкретную?
Offline romanrvachev  
#2 Оставлено : 16 августа 2024 г. 10:50:31(UTC)
romanrvachev

Статус: Новичок

Группы: Участники
Зарегистрирован: 10.07.2024(UTC)
Сообщений: 5
Российская Федерация
Откуда: Омск

Сказал(а) «Спасибо»: 1 раз
Если как-то может помочь, то при самом первом запуске приложения, падает вот такой лог
Цитата:

13:39:20.830094 support_an_fopen:90 p:8995 t:0x202b80188 support_an_fopen("/var/mobile/Containers/Data/Application/68EE6518-106E-4BA4-98A1-2340C8C974FE/Documents/../Documents/cprocsp//etc/license.ini", "rb") = 0x0 fail No such file or directory(2)
Online Русев Андрей  
#3 Оставлено : 16 августа 2024 г. 14:30:53(UTC)
Русев Андрей

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,503

Сказал(а) «Спасибо»: 42 раз
Поблагодарили: 609 раз в 421 постах
Здравствуйте.
Все функции API возвращают коды ошибок - их необходимо проверять на ноль (успех), иные значения будут говорить об ошибках. Их смысл можно узнать, например, на https://www.magnumdb.com
Официальная техподдержка. Официальная база знаний.
Offline romanrvachev  
#4 Оставлено : 19 августа 2024 г. 8:41:46(UTC)
romanrvachev

Статус: Новичок

Группы: Участники
Зарегистрирован: 10.07.2024(UTC)
Сообщений: 5
Российская Федерация
Откуда: Омск

Сказал(а) «Спасибо»: 1 раз
Автор: Русев Андрей Перейти к цитате
Здравствуйте.
Все функции API возвращают коды ошибок - их необходимо проверять на ноль (успех), иные значения будут говорить об ошибках. Их смысл можно узнать, например, на https://www.magnumdb.com


Андрей, спасибо за ответ!

При вызове функции set_license выдается код 2148073504, что значит NTE_FAIL, но как это напрямую относится к api работы с лицензией мне непонятно. Дополнительно отмечу, что функциональность добавления сертификатов и подписания работают нормально
Offline romanrvachev  
#5 Оставлено : 19 августа 2024 г. 11:42:18(UTC)
romanrvachev

Статус: Новичок

Группы: Участники
Зарегистрирован: 10.07.2024(UTC)
Сообщений: 5
Российская Федерация
Откуда: Омск

Сказал(а) «Спасибо»: 1 раз
После некоторых танцев с бубном получилось добиться кода 0 в license_set, но теперь license_get выдает 7055 - ERROR_CTX_LICENSE_CLIENT_INVALID. В какую сторону можно покопать в таком случае?

Из примечательного, при первом запуске license_get нормально печатает лицензию, которая по умолчанию установлена из файла license.enc, но после вызова license_set, все ломается и падает такая ошибка
Online Русев Андрей  
#6 Оставлено : 20 августа 2024 г. 22:56:37(UTC)
Русев Андрей

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,503

Сказал(а) «Спасибо»: 42 раз
Поблагодарили: 609 раз в 421 постах
Автор: romanrvachev Перейти к цитате
После некоторых танцев с бубном получилось добиться кода 0 в license_set
А что именно вы сделали для этого?
Автор: romanrvachev Перейти к цитате
но теперь license_get выдает 7055 - ERROR_CTX_LICENSE_CLIENT_INVALID. В какую сторону можно покопать в таком случае?
Скорее всего, это означает, что вы установили невалидую лицензию. Перед license_set() надо делать license_check(), чтобы убедиться, что вы ставите корректное значение. При этом надо проверить и код ошибки (его надо проверять всегда), и validity.

Из логических ошибок: у вас везде utf8, а лицензионный ключ - в ascii.
Официальная техподдержка. Официальная база знаний.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.