Class
DSSCertificatesManagerNonQual
public final class DSSCertificatesManagerNonQual
Класс для управления сертификатами в DSS со стороны SDK Используется для работы с УНЭП (Неквалифицированная подпись)
Methods
sign(certificateRequest:user:keyInfo:pin:completion:)
public static func sign(
certificateRequest: DSSCertificate,
user: DSSUser,
keyInfo: DSSKeyInfo,
pin: String,
completion: @escaping (_ result: Result<Void, Error>) -> Void
)
Подписывает запрос на сертификат и отправляет на сервер
В метод необходимо передать ключевую пару пользователя DSSKeyInfo
и экземпляр DSSCertificate
, для которого выполняются условия:
certificateRequest.type == .request
&& certificateRequest.state == .signWait
&& certificateRequest.isClient == true
Если условия не будут выполнены, то метод вернёт ошибку DSSError.wrongCertificateRequest
Предварительно необходимо вызвать метод DSSUsersManager.submitPassword(user:callback:)
.
Иначе вернётся ошибка DSSError.handleInvalid
.
Parameters
Name | Type | Description |
---|---|---|
certificateRequest | DSSCertificate |
Подписываемый запрос на сертификат |
user | DSSUser |
Пользователь, которым будет подписан запрос |
callback | Замыкание возвращает результат |
|
result | В случае успеха не возвращает ничего. Иначе — возвращает ошибку |
sign(certificateRequest:user:completion:)
public static func sign(
certificateRequest: DSSCertificate,
user: DSSUser,
completion: @escaping (_ result: Result<Void, Error>) -> Void
)
Подписывает запрос на сертификат и отправляет на сервер
В метод необходимо передать экземпляр DSSCertificate
, для которого
выполняются условия:
certificateRequest.type == .request
&& certificateRequest.state == .signWait
&& certificateRequest.isClient == true
Если условия не будут выполнены, то метод вернёт ошибку DSSError.wrongCertificateRequest
При вызове метода запустится UI и SDK запросит ПИН-код пользователя.
Для подписи будет создан ключ для данного пользователя. Если ранее уже был создан ключ и им не подписывали ни один запрос, то будет использован он.
Parameters
Name | Type | Description |
---|---|---|
certificateRequest | DSSCertificate |
Подписываемый запрос на сертификат |
user | DSSUser |
Пользователь, которым будет подписан запрос |
callback | Замыкание возвращает результат |
|
result | В случае успеха не возвращает ничего. Иначе — возвращает ошибку |
install(certificate:user:keyInfo:pin:)
public static func install(
certificate: DSSCertificate,
user: DSSUser,
keyInfo: DSSKeyInfo,
pin: String
) throws
Устанавливает сертификат в контейнер приложения
В метод необходимо передать экземпляр DSSCertificate
, для которого
выполняются условия:
certificate.type == .certificate
&& (certificate.state == .active || certificate.state == .outOfOrder)
Parameters
Name | Type | Description |
---|---|---|
certificate | DSSCertificate |
Сертификат для установки |
user | DSSUser |
Пользователь, для которого устанавливается сертификат |
keyInfo | DSSKeyInfo |
Данные о ключе, которым был подписан запрос на сертификат |
pin | String |
Пин-код для ключа |
install(certificate:user:)
public static func install(
certificate: DSSCertificate,
user: DSSUser
) throws
Устанавливает сертификат в контейнер приложения
В метод необходимо передать экземпляр DSSCertificate
,
для которого выполняются условия:
certificate.type == .certificate
&& (certificate.state == .active || certificate.state == .outOfOrder)
Parameters
Name | Type | Description |
---|---|---|
certificate | DSSCertificate |
Сертификат для установки |
user | DSSUser |
Пользователь, для которого устанавливается сертификат |
checkIfInstalled(certificate:for:)
public static func checkIfInstalled(
certificate: DSSCertificate,
for user: DSSUser
) -> Bool
Проверяет, установлен ли сертификат в хранилище
Parameters
Name | Type | Description |
---|---|---|
user | DSSUser |
Пользователь, для которого устанавливается сертификат |
certificate | DSSCertificate |
Проверяемый сертификат |
Returns
Возвращает true
, если сертификат установлен
checkIfAccessibleOnThisDevice(certificate:for:)
public static func checkIfAccessibleOnThisDevice(
certificate: DSSCertificate,
for user: DSSUser
) -> Bool
Проверяет, доступен ли данный сертификат для использования на текущем устройстве
Ксли сертификат подписан на сервере или на текущем устройстве, то функция вернёт true
.
Если вернётся false
— то запрос на сертификат был подписан на другом устройстве.
Parameters
Name | Type | Description |
---|---|---|
user | DSSUser |
Пользователь, для которого проверяется доступность |
certificate | DSSCertificate |
Проверяемый сертификат |
Returns
Возвращает true
, если сертификат доступен для использования