Расшифруйте данные, используя AES.GCM.SealedBox в swift - PullRequest
1 голос
/ 14 января 2020

Я пытаюсь расшифровать данные с помощью AES.GCM. Зашифрованные данные работают нормально, но когда я пытаюсь расшифровать данные с использованием того же ключа, выдается ошибка аутентификации. Ниже приведен код для расшифровки

func decryptData(decryptToData:Data,key:SymmetricKey)->String{

    var decryptedString:String!

    let combinedData = decryptToData // Previous sealed bo

    let sealedBoxToOpen = try! AES.GCM.SealedBox(combined: decryptToData)

    if let decryptedData = try? AES.GCM.open(sealedBoxToOpen, using: key) {
          decryptedString = String(data: decryptedData, encoding: .utf8)!
             print(decryptedString)
    } else {

        print("error",CryptoKitError.self)
        // Ouch, doSomething() threw an error.
    }


      return decryptedString

}

Ниже приведен мой код шифрования

  let iv = AES.GCM.Nonce()
var encryptedData :Data!

let key = SymmetricKey(size: .bits128)


   func encryptData(encryptString:String,key:SymmetricKey)->Data{
     var encryptedData: Data?

    do{
                  let datatoEncrypt1 = encryptString.data(using: .utf8)!

                     let mySealedBox  = try AES.GCM.seal(datatoEncrypt1, using: key, nonce: iv)

                encryptedData = mySealedBox.combined


              }
              catch{

                  print("Error")

              }
              return encryptedData
   }
...