我正在尝试集成Amazon SDK,但无法获取kCCHmacAlgSHA256的标识符
import AWSCore
import AWSAPIGateway
我有签名
let signature = AWSSignatureSignerUtility.hmacSign(dataToSign,
withKey: secretKey, usingAlgorithm: UInt32(kCCHmacAlgSHA256))
我想知道是否必须导入算法(如果有快速的内置算法)。
完整的代码如下
func signedParametersForParameters(_ parameters: [String: String]) -> [String:AnyObject]{
let secretKey = getAmazonAccountCredentials().2
let sortedKeys = Array(parameters.keys).sorted(by: <)
var components: [(String, String)] = []
for key in sortedKeys {
components += URLEncoding.queryString.queryComponents(fromKey: key, value: parameters[key]!)
}
let query = (components.map { "\($0)=\($1)" } as [String]).joined(separator: "&")
let stringToSign = "GET\nwebservices.amazon.in\n/onca/xml\n\(query)"
let dataToSign = stringToSign.data(using: String.Encoding.utf8)
let signature = AWSSignatureSignerUtility.hmacSign(dataToSign, withKey: secretKey, usingAlgorithm: UInt32(kCCHmacAlgSHA256))
var params : [String:AnyObject] = parameters as [String : AnyObject]
params["Signature"] = signature as AnyObject?
return params
}