Yelp API OAuth - oauth_signature

Я пытаюсь использовать Yelp API в приложении Swift для iOS, но я новичок в шифровании. Я понимаю, что должен зашифровать подпись с помощью SHA1, но не могу найти хороших ресурсов для этого в Swift / Xcode.

Кроме того, в документации Yelp говорится, что я должен передать значение подписи как «Сгенерированная подпись запроса, подписанная полученным oauth_token_secret». Я не понимаю, что означает «подписано с». Ссылка на документы здесь: Yelp Authentication

Любая помощь будет очень признательна.


person creeperspeak    schedule 09.12.2015    source источник
comment
Во-первых, если бы вы могли ссылаться на документы, это было бы хорошо. Во-вторых, подписание чего-либо вашим секретным ключом - это то, как другие могут проверить ваш запрос. Процесс подписания во многом похож на процесс шифрования, но там, где вы обычно используете открытый ключ для шифрования, вы должны вместо этого использовать свой закрытый ключ. Возможно, посмотрите en.wikipedia.org/wiki/Public-key_cryptography   -  person hdost    schedule 10.12.2015


Ответы (1)


Обновление: взгляните на решения CocoaPods YELP, у вас есть варианты использования CocoaPod, напрямую встраивая код или просто используя код в качестве примера.

Другой способ - CocoaPods OAuth.

SHA1 не является шифрованием, это хеш-функция, которая создает 20-байтовую подпись для своего ввода.

Вот пример, который может быть полезен, но может не соответствовать вашим форматам входных и выходных данных:

func sha1(string string: String) -> [UInt8] {
    var digest = [UInt8](count: Int(CC_SHA1_DIGEST_LENGTH), repeatedValue: 0)
    if let data = string.dataUsingEncoding(NSUTF8StringEncoding) {
        CC_SHA1(data.bytes, CC_LONG(data.length), &digest)
    }
    return digest
}

// Тестовое задание:

let digest = sha1(string:"Here is the test string")
print("digest: \(digest)")

Выход:

дайджест: [143, 131, 57, 51, 3, 161, 81, 234, 51, 191, 110, 62, 187, 194, 133, 148]

person zaph    schedule 09.12.2015