文字列の復号化で「nil」が返ってきて正常に復号化出来ない
Alamofire.request(.POST, "http://sample.com/api/login", parameters: param)
.responseJSON { (responce) in
guard let object = responce.result.value else {
return
}
let json = JSON(object)
let aaa = json["result"].string!
let bbb = aaa.dataUsingEncoding(NSUTF8StringEncoding)
let ccc = bbb?.base64EncodedStringWithOptions(.Encoding64CharacterLineLength)
let ddd = ccc!.dataUsingEncoding(NSUTF8StringEncoding)
let eee = dataTool.decrypt(ddd!)
print(ddd)
}
-----サーバから返ってくる文字列-----
Z1h/9XCDaMZQ+JIwQLWkfqfNbHmcRs3dK3ITMCewCr8f15witQB7bX/fnhMFBBOmalQkbioX40Io8GzzL8meo5kkeD9TMePEG6ugvZ7fJ6TMXZ2FVcCXMerlOPbYnpGjHWSL4ayM0cAAYhWlNRooACXfUjkmLoTeeUefVIdZ1P4=
public func decrypt(encryptData: NSData) -> NSString? {
let privKey = findKey("com.sample.Test.private")
let cipherBuffer = UnsafePointer<UInt8>(encryptData.bytes)
var plaintextBufferSize = SecKeyGetBlockSize(privKey!)
var plaintextBuffer = [UInt8](count:Int(plaintextBufferSize), repeatedValue:0)
let status = SecKeyDecrypt(privKey!,
SecPadding.PKCS1,
cipherBuffer,
encryptData.length,
&plaintextBuffer,
&plaintextBufferSize)
if (status != errSecSuccess) {
return nil
}
return NSString(bytes: UnsafePointer<Void>(plaintextBuffer), length:Int(plaintextBufferSize), encoding: NSUTF8StringEncoding)
}
サーバ側APIから受け取った暗号化文字列を復号化しようとすると、
nilが返ってきてしまいます。
正常に復号化した文字列を表示したいのですが何がいけないのでしょうか。
ご教授願います。
bbb, ccc, ddd の処理で64文字ごとで改行する処理を行っているつもりです。
OSStatusの値は「-9809」