// // Copyright (c) 2018 Open Whisper Systems. All rights reserved. // import Foundation import XCTest import Curve25519Kit @testable import SignalServiceKit class DeviceNamesTest: SSKBaseTestSwift { override func setUp() { super.setUp() } override func tearDown() { super.tearDown() } // MARK: func testNotEncrypted1() { let identityKeyPair = Curve25519.generateKeyPair() let plaintext = "alice" guard let plaintextData = plaintext.data(using: .utf8) else { XCTFail("Could not convert text to UTF-8.") return } do { _ = try DeviceNames.decryptDeviceName(base64Data: plaintextData, identityKeyPair: identityKeyPair) XCTFail("Unexpectedly did not throw error.") } catch DeviceNameError.invalidInput { // Expected error. } catch { owsFailDebug("Unexpected \(error)") } } func testNotEncrypted2() { let identityKeyPair = Curve25519.generateKeyPair() let plaintext = "alice" guard let plaintextData = plaintext.data(using: .utf8) else { XCTFail("Could not convert text to UTF-8.") return } let base64Data = plaintextData.base64EncodedData() do { _ = try DeviceNames.decryptDeviceName(base64Data: base64Data, identityKeyPair: identityKeyPair) XCTFail("Unexpectedly did not throw error.") } catch DeviceNameError.invalidInput { // Expected error. } catch { owsFailDebug("Unexpected \(error)") } } func testSimple() { let identityKeyPair = Curve25519.generateKeyPair() let plaintext = "alice" let encrypted: Data do { encrypted = try DeviceNames.encryptDeviceName(plaintext: plaintext, identityKeyPair: identityKeyPair) } catch { XCTFail("Failed with error: \(error)") return } let decrypted: String do { decrypted = try DeviceNames.decryptDeviceName(base64Data: encrypted, identityKeyPair: identityKeyPair) } catch { XCTFail("Failed with error: \(error)") return } XCTAssertEqual(plaintext, decrypted) } }