mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			91 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Swift
		
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Swift
		
	
//
 | 
						|
//  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)
 | 
						|
    }
 | 
						|
}
 |