Подпись DSS-сертификатом

Для подписания DSS-сертификатом нужно вызвать метод DssSign. В результате его выполнения вы получите идентификатор операции, а в приложение myDSS на телефоне пользователя придет запрос на подтверждение. Затем надо периодически вызывать метод DssSignResult, дождаться окончания операции и получить файлы подписи или статус о неуспешном завершении операции.

Пример с использованием C# SDK

var nameOnShelf1 = api.UploadFileToShelf(authToken, Encoding.UTF8.GetBytes("test 1"));
var nameOnShelf2 = api.UploadFileToShelf(authToken, Encoding.UTF8.GetBytes("test 2"));

var request = new DssSignRequest
{
    Files = {
        new DssSignFile { FileName = "file1.txt", Content = new Content_v3 { NameOnShelf = nameOnShelf1 } },
        new DssSignFile { FileName = "file2.txt", Content = new Content_v3 { NameOnShelf = nameOnShelf2 } }
    }
};

var operation = api.DssSign(authToken, boxId, request, dssCertificateThumbprint);
var stopwatch = Stopwatch.StartNew();
while (true)
{
    var result = api.DssSignResult(authToken, boxId, operation.TaskId);
    switch (result.OperationStatus)
    {
        case DssOperationStatus.Completed:
            Assert.That(result.FileSigningResults.Count, Is.EqualTo(2));
            return;
        case DssOperationStatus.InProgress:
            if (stopwatch.Elapsed > TimeSpan.FromMinutes(5)) throw new TimeoutException();
            Thread.Sleep(TimeSpan.FromSeconds(15));
            continue;
        default:
            throw new InvalidOperationException(string.Format("Signing has failed: {0}", result.OperationStatus);
    }
}

HTTP-интерфейс