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)
 | |
|     }
 | |
| }
 |