0

I am struggling with Swift 3. I am getting (hexString) response from server in encrypted form and I am first converting it into Data.

Below is my method to converting hexString to in Data:

extension String {
  func dataFromHexadecimalString() -> Data? {
    var data = Data(capacity: characters.count / 2)

    let regex = try! NSRegularExpression(pattern: "[0-9a-f]{1,2}", options: .caseInsensitive)
    regex.enumerateMatches(in: self, options: [], range: NSMakeRange(0, characters.count)) { match, flags, stop in
        let byteString = (self as NSString).substring(with: match!.range)
        var num = UInt8(byteString, radix: 16)!
        data.append(&num, count: 1)
    }

    guard data.count > 0 else {
        return nil
    }

    return data
   }
}

After that I am Decrypting the data using CryptoSwift framework. Here below is my method to decrypt the data :-

func getAllShops(data : [String : AnyObject]) {

    AFWrapper.sharedInstance.requestPOSTURL(My_URL, params: data, headers: nil, success: {(json) in

        // Key for AES
        let key = "My_Key"

        // Iv for AES
        let iv = "My_IV"

        //Hex String from Server Response
        let str = json["encrypted"].string!

        do {

            //Converting Hex String to Data
            let dataStr = str.dataFromHexadecimalString()

            //Decrypt the Data
            let decryptedData = try AES(key: key, iv: iv, blockMode: .CBC, padding: NoPadding()).decrypt(dataStr!)

            //Getting json string Response
            var jsonResponse = String(bytes: decryptedData, encoding: .utf8)!

            /*let response = JSON(jsonResponse)
              print(response)
              let validJson = JSONSerialization.isValidJSONObject(response)//(JSONSerialization.JSONObjectWithData(jsonData, options:nil, error: &error) != nil)
              print("Valid JSON: \(validJson)")*/


             /*let data = jsonResponse.data(using: String.Encoding.utf8)

            let jsonsdd = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [String:Any]

            print(jsonsdd)*/



        }

        catch {
            print(error)
        }



    }, failure: {(Error) in
        print(Error.localizedDescription)
    })
}. 

I am trying to convert that json String to in JSON object so that I can parse the data.

I tried with swiftyJSON and JSONSerialization in my code that part is commented. but not able to convert it.

I guess I am missing small thing that I don't know.

halfer
  • 19,824
  • 17
  • 99
  • 186
Kishor Pahalwani
  • 1,010
  • 1
  • 23
  • 53

0 Answers0