This commit is contained in:
Ben Toews 2017-07-19 11:54:47 -06:00
Родитель bb192edd77
Коммит 06061b6244
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: E9C423BE17EFEE70
67 изменённых файлов: 155 добавлений и 373 удалений

Просмотреть файл

@ -1,6 +1,6 @@
// //
// AuthenticationRequest.swift // AuthenticationRequest.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 9/14/16. // Created by Benjamin P Toews on 9/14/16.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.
@ -12,7 +12,7 @@ public struct AuthenticationRequest: RawConvertible {
public let header: CommandHeader public let header: CommandHeader
public let body: Data public let body: Data
public let trailer: CommandTrailer public let trailer: CommandTrailer
public var control: Control { public var control: Control {
return Control(rawValue: header.p1) ?? .Invalid return Control(rawValue: header.p1) ?? .Invalid
} }
@ -28,7 +28,7 @@ public struct AuthenticationRequest: RawConvertible {
let upperBound = lowerBound + U2F_APPID_SIZE let upperBound = lowerBound + U2F_APPID_SIZE
return body.subdata(in: lowerBound..<upperBound) return body.subdata(in: lowerBound..<upperBound)
} }
var keyHandleLength: Int { var keyHandleLength: Int {
return Int(body[U2F_CHAL_SIZE + U2F_APPID_SIZE]) return Int(body[U2F_CHAL_SIZE + U2F_APPID_SIZE])
} }
@ -45,7 +45,7 @@ public struct AuthenticationRequest: RawConvertible {
writer.writeData(applicationParameter) writer.writeData(applicationParameter)
writer.write(UInt8(keyHandle.count)) writer.write(UInt8(keyHandle.count))
writer.writeData(keyHandle) writer.writeData(keyHandle)
self.body = writer.buffer self.body = writer.buffer
self.header = CommandHeader(ins: .Authenticate, p1: control.rawValue, dataLength: body.count) self.header = CommandHeader(ins: .Authenticate, p1: control.rawValue, dataLength: body.count)
self.trailer = CommandTrailer(noBody: false) self.trailer = CommandTrailer(noBody: false)
@ -58,17 +58,17 @@ extension AuthenticationRequest: Command {
self.body = body self.body = body
self.trailer = trailer self.trailer = trailer
} }
public func validateBody() throws { public func validateBody() throws {
// Make sure it's at least long enough to have key-handle length. // Make sure it's at least long enough to have key-handle length.
if body.count < U2F_CHAL_SIZE + U2F_APPID_SIZE + 1 { if body.count < U2F_CHAL_SIZE + U2F_APPID_SIZE + 1 {
throw ResponseStatus.WrongLength throw ResponseStatus.WrongLength
} }
if body.count != U2F_CHAL_SIZE + U2F_APPID_SIZE + 1 + keyHandleLength { if body.count != U2F_CHAL_SIZE + U2F_APPID_SIZE + 1 + keyHandleLength {
throw ResponseStatus.WrongLength throw ResponseStatus.WrongLength
} }
if control == .Invalid { if control == .Invalid {
throw ResponseStatus.OtherError throw ResponseStatus.OtherError
} }

Просмотреть файл

@ -1,6 +1,6 @@
// //
// AuthenticationResponse.swift // AuthenticationResponse.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 9/14/16. // Created by Benjamin P Toews on 9/14/16.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// Command.swift // Command.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 2/7/17. // Created by Benjamin P Toews on 2/7/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// CommandHeader.swift // CommandHeader.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 9/11/16. // Created by Benjamin P Toews on 9/11/16.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// CommandTrailer.swift // CommandTrailer.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 1/25/17. // Created by Benjamin P Toews on 1/25/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// Constants.swift // Constants.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 2/7/17. // Created by Benjamin P Toews on 2/7/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// DataReader.swift // DataReader.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 9/11/16. // Created by Benjamin P Toews on 9/11/16.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// DataWriter.swift // DataWriter.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 9/12/16. // Created by Benjamin P Toews on 9/12/16.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// EndianProtocol.swift // EndianProtocol.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 9/12/16. // Created by Benjamin P Toews on 9/12/16.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// ErrorResponse.swift // ErrorResponse.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 1/26/17. // Created by Benjamin P Toews on 1/26/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// MessagePart.swift // MessagePart.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 2/7/17. // Created by Benjamin P Toews on 2/7/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// RawConvertible.swift // RawConvertible.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 2/7/17. // Created by Benjamin P Toews on 2/7/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// RegisterRequest.swift // RegisterRequest.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 9/10/16. // Created by Benjamin P Toews on 9/10/16.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// RegisterResponse.swift // RegisterResponse.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 9/11/16. // Created by Benjamin P Toews on 9/11/16.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// Response.swift // Response.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 2/7/17. // Created by Benjamin P Toews on 2/7/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// VersionRequest.swift // VersionRequest.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 1/25/17. // Created by Benjamin P Toews on 1/25/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// VersionResponse.swift // VersionResponse.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 1/25/17. // Created by Benjamin P Toews on 1/25/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// AuthenticationRequestTests.swift // AuthenticationRequestTests.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 2/6/17. // Created by Benjamin P Toews on 2/6/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// CommandHeaderTests.swift // CommandHeaderTests.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 9/11/16. // Created by Benjamin P Toews on 9/11/16.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// CommandTrailerTests.swift // CommandTrailerTests.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 1/25/17. // Created by Benjamin P Toews on 1/25/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// DataReaderTests.swift // DataReaderTests.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 9/11/16. // Created by Benjamin P Toews on 9/11/16.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// DataWriterTests.swift // DataWriterTests.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 9/12/16. // Created by Benjamin P Toews on 9/12/16.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// RegisterRequestTests.swift // RegisterRequestTests.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 2/6/17. // Created by Benjamin P Toews on 2/6/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// ResponseTests.swift // ResponseTests.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 9/12/16. // Created by Benjamin P Toews on 9/12/16.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// Util.swift // Util.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 9/10/16. // Created by Benjamin P Toews on 9/10/16.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// VersionRequestTests.swift // VersionRequestTests.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 2/6/17. // Created by Benjamin P Toews on 2/6/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -23,19 +23,19 @@ The app runs in the background. When a site loaded in a U2F-compatible browser a
Unload the launchd agent Unload the launchd agent
``` ```
$ launchctl unload ~/Library/LaunchAgents/com.github.SoftU2FTool.plist $ launchctl unload ~/Library/LaunchAgents/com.github.SoftU2F.plist
``` ```
Delete the launch agent plist Delete the launch agent plist
``` ```
$ rm ~/Library/LaunchAgents/com.github.SoftU2FTool.plist $ rm ~/Library/LaunchAgents/com.github.SoftU2F.plist
``` ```
Delete the `.app` Delete the `.app`
``` ```
$ sudo rm -rf /Applications/SoftU2FTool.app/ $ sudo rm -rf /Applications/SoftU2F.app/
``` ```
Unload the kernel extension (this may fail if a browser is still talking to the driver. Deleting the `.kext` and restarting the system will fix this) Unload the kernel extension (this may fail if a browser is still talking to the driver. Deleting the `.kext` and restarting the system will fix this)
@ -62,7 +62,7 @@ You must have Xcode Command Line Tools installed to build this project.
# Install Commaned Line Tools # Install Commaned Line Tools
xcode-select --install xcode-select --install
# Build softu2f.kext and SoftU2FTool.app. # Build softu2f.kext and SoftU2F.app.
script/build script/build
``` ```

Просмотреть файл

@ -1,6 +1,6 @@
// //
// private.h // private.h
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 2/7/17. // Created by Benjamin P Toews on 2/7/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -176,19 +176,19 @@
5131C1B11E3B9EA1006A820C /* libu2f-host.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libu2f-host.a"; path = "../../../../usr/local/Cellar/libu2f-host/1.1.3/lib/libu2f-host.a"; sourceTree = "<group>"; }; 5131C1B11E3B9EA1006A820C /* libu2f-host.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libu2f-host.a"; path = "../../../../usr/local/Cellar/libu2f-host/1.1.3/lib/libu2f-host.a"; sourceTree = "<group>"; };
514F3D811E43C833008FA513 /* Keychain.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Keychain.swift; sourceTree = "<group>"; }; 514F3D811E43C833008FA513 /* Keychain.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Keychain.swift; sourceTree = "<group>"; };
514F3D861E43E828008FA513 /* KeyPair.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyPair.swift; sourceTree = "<group>"; }; 514F3D861E43E828008FA513 /* KeyPair.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyPair.swift; sourceTree = "<group>"; };
518537BF1E380E4600600911 /* SoftU2FTool-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SoftU2FTool-Bridging-Header.h"; sourceTree = "<group>"; }; 518537BF1E380E4600600911 /* SoftU2F-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SoftU2F-Bridging-Header.h"; sourceTree = "<group>"; };
5190B6111E3BFE3D00E6FE06 /* UserPresence.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserPresence.swift; sourceTree = "<group>"; }; 5190B6111E3BFE3D00E6FE06 /* UserPresence.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserPresence.swift; sourceTree = "<group>"; };
51B289E41E39903F00AD90CC /* U2FAuthenticator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = U2FAuthenticator.swift; sourceTree = "<group>"; }; 51B289E41E39903F00AD90CC /* U2FAuthenticator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = U2FAuthenticator.swift; sourceTree = "<group>"; };
51E214531E3822B8005B2864 /* SoftU2FToolTests-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SoftU2FToolTests-Bridging-Header.h"; sourceTree = "<group>"; }; 51E214531E3822B8005B2864 /* SoftU2FTests-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SoftU2FTests-Bridging-Header.h"; sourceTree = "<group>"; };
51E2145D1E3823E0005B2864 /* SHA256Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SHA256Tests.swift; sourceTree = "<group>"; }; 51E2145D1E3823E0005B2864 /* SHA256Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SHA256Tests.swift; sourceTree = "<group>"; };
51E2145F1E3823E7005B2864 /* SHA256.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SHA256.swift; sourceTree = "<group>"; }; 51E2145F1E3823E7005B2864 /* SHA256.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SHA256.swift; sourceTree = "<group>"; };
51E214611E382521005B2864 /* WebSafeBase64.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebSafeBase64.swift; sourceTree = "<group>"; }; 51E214611E382521005B2864 /* WebSafeBase64.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebSafeBase64.swift; sourceTree = "<group>"; };
51E214631E382529005B2864 /* WebSafeBase64Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebSafeBase64Tests.swift; sourceTree = "<group>"; }; 51E214631E382529005B2864 /* WebSafeBase64Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebSafeBase64Tests.swift; sourceTree = "<group>"; };
51EF60B11E427EE200D429F2 /* UtilsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UtilsTests.swift; sourceTree = "<group>"; }; 51EF60B11E427EE200D429F2 /* UtilsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UtilsTests.swift; sourceTree = "<group>"; };
51F0900C1E37E8C600F03AD3 /* SoftU2FTool.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SoftU2FTool.app; sourceTree = BUILT_PRODUCTS_DIR; }; 51F0900C1E37E8C600F03AD3 /* SoftU2F.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SoftU2F.app; sourceTree = BUILT_PRODUCTS_DIR; };
51F0900F1E37E8C600F03AD3 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; }; 51F0900F1E37E8C600F03AD3 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
51F090181E37E8C600F03AD3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 51F090181E37E8C600F03AD3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
51F0901D1E37E8C600F03AD3 /* SoftU2FToolTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SoftU2FToolTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 51F0901D1E37E8C600F03AD3 /* SoftU2FTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SoftU2FTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
51F090231E37E8C600F03AD3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 51F090231E37E8C600F03AD3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
51FE30EC1E403DA000BAE824 /* U2FRegistration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = U2FRegistration.swift; sourceTree = "<group>"; }; 51FE30EC1E403DA000BAE824 /* U2FRegistration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = U2FRegistration.swift; sourceTree = "<group>"; };
51FE30EE1E40F3DB00BAE824 /* U2FRegistrationTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = U2FRegistrationTests.swift; sourceTree = "<group>"; }; 51FE30EE1E40F3DB00BAE824 /* U2FRegistrationTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = U2FRegistrationTests.swift; sourceTree = "<group>"; };
@ -331,8 +331,8 @@
children = ( children = (
F725EBC51F1FAD3C000A003C /* SoftU2FDriver */, F725EBC51F1FAD3C000A003C /* SoftU2FDriver */,
F725EBE71F1FB0BD000A003C /* SoftU2FDriverLib */, F725EBE71F1FB0BD000A003C /* SoftU2FDriverLib */,
51F0900E1E37E8C600F03AD3 /* SoftU2FTool */, 51F0900E1E37E8C600F03AD3 /* SoftU2F */,
51F090201E37E8C600F03AD3 /* SoftU2FToolTests */, 51F090201E37E8C600F03AD3 /* SoftU2FTests */,
F738F4F21E4A2CCB005680A2 /* APDU */, F738F4F21E4A2CCB005680A2 /* APDU */,
F738F5301E4A2E8A005680A2 /* APDUTests */, F738F5301E4A2E8A005680A2 /* APDUTests */,
F738F55B1E4A31DE005680A2 /* SelfSignedCertificate */, F738F55B1E4A31DE005680A2 /* SelfSignedCertificate */,
@ -345,8 +345,8 @@
51F0900D1E37E8C600F03AD3 /* Products */ = { 51F0900D1E37E8C600F03AD3 /* Products */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
51F0900C1E37E8C600F03AD3 /* SoftU2FTool.app */, 51F0900C1E37E8C600F03AD3 /* SoftU2F.app */,
51F0901D1E37E8C600F03AD3 /* SoftU2FToolTests.xctest */, 51F0901D1E37E8C600F03AD3 /* SoftU2FTests.xctest */,
F738F4F11E4A2CCB005680A2 /* APDU.framework */, F738F4F11E4A2CCB005680A2 /* APDU.framework */,
F738F52F1E4A2E8A005680A2 /* APDUTests.xctest */, F738F52F1E4A2E8A005680A2 /* APDUTests.xctest */,
F738F55A1E4A31DE005680A2 /* SelfSignedCertificate.framework */, F738F55A1E4A31DE005680A2 /* SelfSignedCertificate.framework */,
@ -357,7 +357,7 @@
name = Products; name = Products;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
51F0900E1E37E8C600F03AD3 /* SoftU2FTool */ = { 51F0900E1E37E8C600F03AD3 /* SoftU2F */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
F7ABD9BD1E80603D00768FEC /* Assets.xcassets */, F7ABD9BD1E80603D00768FEC /* Assets.xcassets */,
@ -374,13 +374,14 @@
51213EC51E3916EB005454E0 /* U2FHID.swift */, 51213EC51E3916EB005454E0 /* U2FHID.swift */,
51B289E41E39903F00AD90CC /* U2FAuthenticator.swift */, 51B289E41E39903F00AD90CC /* U2FAuthenticator.swift */,
51FE30EC1E403DA000BAE824 /* U2FRegistration.swift */, 51FE30EC1E403DA000BAE824 /* U2FRegistration.swift */,
518537BF1E380E4600600911 /* SoftU2FTool-Bridging-Header.h */, 518537BF1E380E4600600911 /* SoftU2F-Bridging-Header.h */,
51F090181E37E8C600F03AD3 /* Info.plist */, 51F090181E37E8C600F03AD3 /* Info.plist */,
); );
name = SoftU2F;
path = SoftU2FTool; path = SoftU2FTool;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
51F090201E37E8C600F03AD3 /* SoftU2FToolTests */ = { 51F090201E37E8C600F03AD3 /* SoftU2FTests */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
51FE30EE1E40F3DB00BAE824 /* U2FRegistrationTests.swift */, 51FE30EE1E40F3DB00BAE824 /* U2FRegistrationTests.swift */,
@ -391,9 +392,10 @@
51FFC71E1E3FEAA4006275E2 /* SoftU2FTestCase.swift */, 51FFC71E1E3FEAA4006275E2 /* SoftU2FTestCase.swift */,
51EF60B11E427EE200D429F2 /* UtilsTests.swift */, 51EF60B11E427EE200D429F2 /* UtilsTests.swift */,
51213EC11E3834F8005454E0 /* TestUtil.swift */, 51213EC11E3834F8005454E0 /* TestUtil.swift */,
51E214531E3822B8005B2864 /* SoftU2FToolTests-Bridging-Header.h */, 51E214531E3822B8005B2864 /* SoftU2FTests-Bridging-Header.h */,
51F090231E37E8C600F03AD3 /* Info.plist */, 51F090231E37E8C600F03AD3 /* Info.plist */,
); );
name = SoftU2FTests;
path = SoftU2FToolTests; path = SoftU2FToolTests;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
@ -546,9 +548,9 @@
/* End PBXHeadersBuildPhase section */ /* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */ /* Begin PBXNativeTarget section */
51F0900B1E37E8C600F03AD3 /* SoftU2FTool */ = { 51F0900B1E37E8C600F03AD3 /* SoftU2F */ = {
isa = PBXNativeTarget; isa = PBXNativeTarget;
buildConfigurationList = 51F090261E37E8C600F03AD3 /* Build configuration list for PBXNativeTarget "SoftU2FTool" */; buildConfigurationList = 51F090261E37E8C600F03AD3 /* Build configuration list for PBXNativeTarget "SoftU2F" */;
buildPhases = ( buildPhases = (
51F090081E37E8C600F03AD3 /* Sources */, 51F090081E37E8C600F03AD3 /* Sources */,
51F090091E37E8C600F03AD3 /* Frameworks */, 51F090091E37E8C600F03AD3 /* Frameworks */,
@ -562,14 +564,14 @@
F738F4F71E4A2CCC005680A2 /* PBXTargetDependency */, F738F4F71E4A2CCC005680A2 /* PBXTargetDependency */,
F738F5601E4A31DE005680A2 /* PBXTargetDependency */, F738F5601E4A31DE005680A2 /* PBXTargetDependency */,
); );
name = SoftU2FTool; name = SoftU2F;
productName = SoftU2FTool; productName = SoftU2FTool;
productReference = 51F0900C1E37E8C600F03AD3 /* SoftU2FTool.app */; productReference = 51F0900C1E37E8C600F03AD3 /* SoftU2F.app */;
productType = "com.apple.product-type.application"; productType = "com.apple.product-type.application";
}; };
51F0901C1E37E8C600F03AD3 /* SoftU2FToolTests */ = { 51F0901C1E37E8C600F03AD3 /* SoftU2FTests */ = {
isa = PBXNativeTarget; isa = PBXNativeTarget;
buildConfigurationList = 51F090291E37E8C600F03AD3 /* Build configuration list for PBXNativeTarget "SoftU2FToolTests" */; buildConfigurationList = 51F090291E37E8C600F03AD3 /* Build configuration list for PBXNativeTarget "SoftU2FTests" */;
buildPhases = ( buildPhases = (
51F090191E37E8C600F03AD3 /* Sources */, 51F090191E37E8C600F03AD3 /* Sources */,
51F0901A1E37E8C600F03AD3 /* Frameworks */, 51F0901A1E37E8C600F03AD3 /* Frameworks */,
@ -580,9 +582,9 @@
dependencies = ( dependencies = (
51F0901F1E37E8C600F03AD3 /* PBXTargetDependency */, 51F0901F1E37E8C600F03AD3 /* PBXTargetDependency */,
); );
name = SoftU2FToolTests; name = SoftU2FTests;
productName = SoftU2FToolTests; productName = SoftU2FToolTests;
productReference = 51F0901D1E37E8C600F03AD3 /* SoftU2FToolTests.xctest */; productReference = 51F0901D1E37E8C600F03AD3 /* SoftU2FTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test"; productType = "com.apple.product-type.bundle.unit-test";
}; };
F725EBC31F1FAD3C000A003C /* SoftU2FDriver */ = { F725EBC31F1FAD3C000A003C /* SoftU2FDriver */ = {
@ -754,7 +756,7 @@
}; };
}; };
}; };
buildConfigurationList = 51F090071E37E8C500F03AD3 /* Build configuration list for PBXProject "SoftU2FTool" */; buildConfigurationList = 51F090071E37E8C500F03AD3 /* Build configuration list for PBXProject "SoftU2F" */;
compatibilityVersion = "Xcode 3.2"; compatibilityVersion = "Xcode 3.2";
developmentRegion = English; developmentRegion = English;
hasScannedForEncodings = 0; hasScannedForEncodings = 0;
@ -767,8 +769,8 @@
projectDirPath = ""; projectDirPath = "";
projectRoot = ""; projectRoot = "";
targets = ( targets = (
51F0900B1E37E8C600F03AD3 /* SoftU2FTool */, 51F0900B1E37E8C600F03AD3 /* SoftU2F */,
51F0901C1E37E8C600F03AD3 /* SoftU2FToolTests */, 51F0901C1E37E8C600F03AD3 /* SoftU2FTests */,
F738F4F01E4A2CCB005680A2 /* APDU */, F738F4F01E4A2CCB005680A2 /* APDU */,
F738F52E1E4A2E8A005680A2 /* APDUTests */, F738F52E1E4A2E8A005680A2 /* APDUTests */,
F738F5591E4A31DE005680A2 /* SelfSignedCertificate */, F738F5591E4A31DE005680A2 /* SelfSignedCertificate */,
@ -964,7 +966,7 @@
/* Begin PBXTargetDependency section */ /* Begin PBXTargetDependency section */
51F0901F1E37E8C600F03AD3 /* PBXTargetDependency */ = { 51F0901F1E37E8C600F03AD3 /* PBXTargetDependency */ = {
isa = PBXTargetDependency; isa = PBXTargetDependency;
target = 51F0900B1E37E8C600F03AD3 /* SoftU2FTool */; target = 51F0900B1E37E8C600F03AD3 /* SoftU2F */;
targetProxy = 51F0901E1E37E8C600F03AD3 /* PBXContainerItemProxy */; targetProxy = 51F0901E1E37E8C600F03AD3 /* PBXContainerItemProxy */;
}; };
F725EBF41F1FB15E000A003C /* PBXTargetDependency */ = { F725EBF41F1FB15E000A003C /* PBXTargetDependency */ = {
@ -1108,7 +1110,7 @@
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "0d639ce7-4261-41e5-8e5d-8a39cdfc8c41"; PROVISIONING_PROFILE = "0d639ce7-4261-41e5-8e5d-8a39cdfc8c41";
PROVISIONING_PROFILE_SPECIFIER = SoftU2FTool; PROVISIONING_PROFILE_SPECIFIER = SoftU2FTool;
SWIFT_OBJC_BRIDGING_HEADER = "SoftU2FTool/SoftU2FTool-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "SoftU2FTool/SoftU2F-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 3.0; SWIFT_VERSION = 3.0;
}; };
@ -1132,7 +1134,7 @@
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "0d639ce7-4261-41e5-8e5d-8a39cdfc8c41"; PROVISIONING_PROFILE = "0d639ce7-4261-41e5-8e5d-8a39cdfc8c41";
PROVISIONING_PROFILE_SPECIFIER = SoftU2FTool; PROVISIONING_PROFILE_SPECIFIER = SoftU2FTool;
SWIFT_OBJC_BRIDGING_HEADER = "SoftU2FTool/SoftU2FTool-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "SoftU2FTool/SoftU2F-Bridging-Header.h";
SWIFT_VERSION = 3.0; SWIFT_VERSION = 3.0;
}; };
name = Release; name = Release;
@ -1153,10 +1155,10 @@
PRODUCT_BUNDLE_IDENTIFIER = com.github.SoftU2FToolTests; PRODUCT_BUNDLE_IDENTIFIER = com.github.SoftU2FToolTests;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "SoftU2FToolTests/SoftU2FToolTests-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "SoftU2FToolTests/SoftU2FTests-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 3.0; SWIFT_VERSION = 3.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SoftU2FTool.app/Contents/MacOS/SoftU2FTool"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SoftU2F.app/Contents/MacOS/SoftU2F";
}; };
name = Debug; name = Debug;
}; };
@ -1176,9 +1178,9 @@
PRODUCT_BUNDLE_IDENTIFIER = com.github.SoftU2FToolTests; PRODUCT_BUNDLE_IDENTIFIER = com.github.SoftU2FToolTests;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "SoftU2FToolTests/SoftU2FToolTests-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "SoftU2FToolTests/SoftU2FTests-Bridging-Header.h";
SWIFT_VERSION = 3.0; SWIFT_VERSION = 3.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SoftU2FTool.app/Contents/MacOS/SoftU2FTool"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SoftU2F.app/Contents/MacOS/SoftU2F";
}; };
name = Release; name = Release;
}; };
@ -1424,7 +1426,7 @@
/* End XCBuildConfiguration section */ /* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */ /* Begin XCConfigurationList section */
51F090071E37E8C500F03AD3 /* Build configuration list for PBXProject "SoftU2FTool" */ = { 51F090071E37E8C500F03AD3 /* Build configuration list for PBXProject "SoftU2F" */ = {
isa = XCConfigurationList; isa = XCConfigurationList;
buildConfigurations = ( buildConfigurations = (
51F090241E37E8C600F03AD3 /* Debug */, 51F090241E37E8C600F03AD3 /* Debug */,
@ -1433,7 +1435,7 @@
defaultConfigurationIsVisible = 0; defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release; defaultConfigurationName = Release;
}; };
51F090261E37E8C600F03AD3 /* Build configuration list for PBXNativeTarget "SoftU2FTool" */ = { 51F090261E37E8C600F03AD3 /* Build configuration list for PBXNativeTarget "SoftU2F" */ = {
isa = XCConfigurationList; isa = XCConfigurationList;
buildConfigurations = ( buildConfigurations = (
51F090271E37E8C600F03AD3 /* Debug */, 51F090271E37E8C600F03AD3 /* Debug */,
@ -1442,7 +1444,7 @@
defaultConfigurationIsVisible = 0; defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release; defaultConfigurationName = Release;
}; };
51F090291E37E8C600F03AD3 /* Build configuration list for PBXNativeTarget "SoftU2FToolTests" */ = { 51F090291E37E8C600F03AD3 /* Build configuration list for PBXNativeTarget "SoftU2FTests" */ = {
isa = XCConfigurationList; isa = XCConfigurationList;
buildConfigurations = ( buildConfigurations = (
51F0902A1E37E8C600F03AD3 /* Debug */, 51F0902A1E37E8C600F03AD3 /* Debug */,

Просмотреть файл

@ -2,6 +2,6 @@
<Workspace <Workspace
version = "1.0"> version = "1.0">
<FileRef <FileRef
location = "self:SoftU2FTool.xcodeproj"> location = "self:/Users/mastahyeti/Projects/SoftU2FTool/SoftU2F.xcodeproj">
</FileRef> </FileRef>
</Workspace> </Workspace>

Просмотреть файл

@ -17,7 +17,7 @@
BlueprintIdentifier = "F738F4F01E4A2CCB005680A2" BlueprintIdentifier = "F738F4F01E4A2CCB005680A2"
BuildableName = "APDU.framework" BuildableName = "APDU.framework"
BlueprintName = "APDU" BlueprintName = "APDU"
ReferencedContainer = "container:SoftU2FTool.xcodeproj"> ReferencedContainer = "container:SoftU2F.xcodeproj">
</BuildableReference> </BuildableReference>
</BuildActionEntry> </BuildActionEntry>
</BuildActionEntries> </BuildActionEntries>
@ -35,7 +35,7 @@
BlueprintIdentifier = "F738F52E1E4A2E8A005680A2" BlueprintIdentifier = "F738F52E1E4A2E8A005680A2"
BuildableName = "APDUTests.xctest" BuildableName = "APDUTests.xctest"
BlueprintName = "APDUTests" BlueprintName = "APDUTests"
ReferencedContainer = "container:SoftU2FTool.xcodeproj"> ReferencedContainer = "container:SoftU2F.xcodeproj">
</BuildableReference> </BuildableReference>
</TestableReference> </TestableReference>
</Testables> </Testables>
@ -45,7 +45,7 @@
BlueprintIdentifier = "F738F4F01E4A2CCB005680A2" BlueprintIdentifier = "F738F4F01E4A2CCB005680A2"
BuildableName = "APDU.framework" BuildableName = "APDU.framework"
BlueprintName = "APDU" BlueprintName = "APDU"
ReferencedContainer = "container:SoftU2FTool.xcodeproj"> ReferencedContainer = "container:SoftU2F.xcodeproj">
</BuildableReference> </BuildableReference>
</MacroExpansion> </MacroExpansion>
<AdditionalOptions> <AdditionalOptions>
@ -67,7 +67,7 @@
BlueprintIdentifier = "F738F4F01E4A2CCB005680A2" BlueprintIdentifier = "F738F4F01E4A2CCB005680A2"
BuildableName = "APDU.framework" BuildableName = "APDU.framework"
BlueprintName = "APDU" BlueprintName = "APDU"
ReferencedContainer = "container:SoftU2FTool.xcodeproj"> ReferencedContainer = "container:SoftU2F.xcodeproj">
</BuildableReference> </BuildableReference>
</MacroExpansion> </MacroExpansion>
<AdditionalOptions> <AdditionalOptions>
@ -85,7 +85,7 @@
BlueprintIdentifier = "F738F4F01E4A2CCB005680A2" BlueprintIdentifier = "F738F4F01E4A2CCB005680A2"
BuildableName = "APDU.framework" BuildableName = "APDU.framework"
BlueprintName = "APDU" BlueprintName = "APDU"
ReferencedContainer = "container:SoftU2FTool.xcodeproj"> ReferencedContainer = "container:SoftU2F.xcodeproj">
</BuildableReference> </BuildableReference>
</MacroExpansion> </MacroExpansion>
</ProfileAction> </ProfileAction>

Просмотреть файл

@ -17,7 +17,7 @@
BlueprintIdentifier = "F738F5591E4A31DE005680A2" BlueprintIdentifier = "F738F5591E4A31DE005680A2"
BuildableName = "SelfSignedCertificate.framework" BuildableName = "SelfSignedCertificate.framework"
BlueprintName = "SelfSignedCertificate" BlueprintName = "SelfSignedCertificate"
ReferencedContainer = "container:SoftU2FTool.xcodeproj"> ReferencedContainer = "container:SoftU2F.xcodeproj">
</BuildableReference> </BuildableReference>
</BuildActionEntry> </BuildActionEntry>
</BuildActionEntries> </BuildActionEntries>
@ -35,7 +35,7 @@
BlueprintIdentifier = "F738F5701E4A3328005680A2" BlueprintIdentifier = "F738F5701E4A3328005680A2"
BuildableName = "SelfSignedCertificateTests.xctest" BuildableName = "SelfSignedCertificateTests.xctest"
BlueprintName = "SelfSignedCertificateTests" BlueprintName = "SelfSignedCertificateTests"
ReferencedContainer = "container:SoftU2FTool.xcodeproj"> ReferencedContainer = "container:SoftU2F.xcodeproj">
</BuildableReference> </BuildableReference>
</TestableReference> </TestableReference>
</Testables> </Testables>
@ -45,7 +45,7 @@
BlueprintIdentifier = "F738F5591E4A31DE005680A2" BlueprintIdentifier = "F738F5591E4A31DE005680A2"
BuildableName = "SelfSignedCertificate.framework" BuildableName = "SelfSignedCertificate.framework"
BlueprintName = "SelfSignedCertificate" BlueprintName = "SelfSignedCertificate"
ReferencedContainer = "container:SoftU2FTool.xcodeproj"> ReferencedContainer = "container:SoftU2F.xcodeproj">
</BuildableReference> </BuildableReference>
</MacroExpansion> </MacroExpansion>
<AdditionalOptions> <AdditionalOptions>
@ -67,7 +67,7 @@
BlueprintIdentifier = "F738F5591E4A31DE005680A2" BlueprintIdentifier = "F738F5591E4A31DE005680A2"
BuildableName = "SelfSignedCertificate.framework" BuildableName = "SelfSignedCertificate.framework"
BlueprintName = "SelfSignedCertificate" BlueprintName = "SelfSignedCertificate"
ReferencedContainer = "container:SoftU2FTool.xcodeproj"> ReferencedContainer = "container:SoftU2F.xcodeproj">
</BuildableReference> </BuildableReference>
</MacroExpansion> </MacroExpansion>
<AdditionalOptions> <AdditionalOptions>
@ -85,7 +85,7 @@
BlueprintIdentifier = "F738F5591E4A31DE005680A2" BlueprintIdentifier = "F738F5591E4A31DE005680A2"
BuildableName = "SelfSignedCertificate.framework" BuildableName = "SelfSignedCertificate.framework"
BlueprintName = "SelfSignedCertificate" BlueprintName = "SelfSignedCertificate"
ReferencedContainer = "container:SoftU2FTool.xcodeproj"> ReferencedContainer = "container:SoftU2F.xcodeproj">
</BuildableReference> </BuildableReference>
</MacroExpansion> </MacroExpansion>
</ProfileAction> </ProfileAction>

Просмотреть файл

@ -15,9 +15,9 @@
<BuildableReference <BuildableReference
BuildableIdentifier = "primary" BuildableIdentifier = "primary"
BlueprintIdentifier = "51F0900B1E37E8C600F03AD3" BlueprintIdentifier = "51F0900B1E37E8C600F03AD3"
BuildableName = "SoftU2FTool.app" BuildableName = "SoftU2F.app"
BlueprintName = "SoftU2FTool" BlueprintName = "SoftU2F"
ReferencedContainer = "container:SoftU2FTool.xcodeproj"> ReferencedContainer = "container:SoftU2F.xcodeproj">
</BuildableReference> </BuildableReference>
</BuildActionEntry> </BuildActionEntry>
<BuildActionEntry <BuildActionEntry
@ -31,7 +31,7 @@
BlueprintIdentifier = "F725EBC31F1FAD3C000A003C" BlueprintIdentifier = "F725EBC31F1FAD3C000A003C"
BuildableName = "softu2f.kext" BuildableName = "softu2f.kext"
BlueprintName = "SoftU2FDriver" BlueprintName = "SoftU2FDriver"
ReferencedContainer = "container:SoftU2FTool.xcodeproj"> ReferencedContainer = "container:SoftU2F.xcodeproj">
</BuildableReference> </BuildableReference>
</BuildActionEntry> </BuildActionEntry>
</BuildActionEntries> </BuildActionEntries>
@ -47,9 +47,9 @@
<BuildableReference <BuildableReference
BuildableIdentifier = "primary" BuildableIdentifier = "primary"
BlueprintIdentifier = "51F0901C1E37E8C600F03AD3" BlueprintIdentifier = "51F0901C1E37E8C600F03AD3"
BuildableName = "SoftU2FToolTests.xctest" BuildableName = "SoftU2FTests.xctest"
BlueprintName = "SoftU2FToolTests" BlueprintName = "SoftU2FTests"
ReferencedContainer = "container:SoftU2FTool.xcodeproj"> ReferencedContainer = "container:SoftU2F.xcodeproj">
</BuildableReference> </BuildableReference>
<SkippedTests> <SkippedTests>
<Test <Test
@ -62,9 +62,9 @@
<BuildableReference <BuildableReference
BuildableIdentifier = "primary" BuildableIdentifier = "primary"
BlueprintIdentifier = "51F0900B1E37E8C600F03AD3" BlueprintIdentifier = "51F0900B1E37E8C600F03AD3"
BuildableName = "SoftU2FTool.app" BuildableName = "SoftU2F.app"
BlueprintName = "SoftU2FTool" BlueprintName = "SoftU2F"
ReferencedContainer = "container:SoftU2FTool.xcodeproj"> ReferencedContainer = "container:SoftU2F.xcodeproj">
</BuildableReference> </BuildableReference>
</MacroExpansion> </MacroExpansion>
<AdditionalOptions> <AdditionalOptions>
@ -85,9 +85,9 @@
<BuildableReference <BuildableReference
BuildableIdentifier = "primary" BuildableIdentifier = "primary"
BlueprintIdentifier = "51F0900B1E37E8C600F03AD3" BlueprintIdentifier = "51F0900B1E37E8C600F03AD3"
BuildableName = "SoftU2FTool.app" BuildableName = "SoftU2F.app"
BlueprintName = "SoftU2FTool" BlueprintName = "SoftU2F"
ReferencedContainer = "container:SoftU2FTool.xcodeproj"> ReferencedContainer = "container:SoftU2F.xcodeproj">
</BuildableReference> </BuildableReference>
</BuildableProductRunnable> </BuildableProductRunnable>
<AdditionalOptions> <AdditionalOptions>
@ -104,9 +104,9 @@
<BuildableReference <BuildableReference
BuildableIdentifier = "primary" BuildableIdentifier = "primary"
BlueprintIdentifier = "51F0900B1E37E8C600F03AD3" BlueprintIdentifier = "51F0900B1E37E8C600F03AD3"
BuildableName = "SoftU2FTool.app" BuildableName = "SoftU2F.app"
BlueprintName = "SoftU2FTool" BlueprintName = "SoftU2F"
ReferencedContainer = "container:SoftU2FTool.xcodeproj"> ReferencedContainer = "container:SoftU2F.xcodeproj">
</BuildableReference> </BuildableReference>
</BuildableProductRunnable> </BuildableProductRunnable>
</ProfileAction> </ProfileAction>

Просмотреть файл

@ -17,7 +17,7 @@
BlueprintIdentifier = "F725EBC31F1FAD3C000A003C" BlueprintIdentifier = "F725EBC31F1FAD3C000A003C"
BuildableName = "softu2f.kext" BuildableName = "softu2f.kext"
BlueprintName = "SoftU2FDriver" BlueprintName = "SoftU2FDriver"
ReferencedContainer = "container:SoftU2FTool.xcodeproj"> ReferencedContainer = "container:SoftU2F.xcodeproj">
</BuildableReference> </BuildableReference>
</BuildActionEntry> </BuildActionEntry>
</BuildActionEntries> </BuildActionEntries>
@ -48,7 +48,7 @@
BlueprintIdentifier = "F725EBC31F1FAD3C000A003C" BlueprintIdentifier = "F725EBC31F1FAD3C000A003C"
BuildableName = "softu2f.kext" BuildableName = "softu2f.kext"
BlueprintName = "SoftU2FDriver" BlueprintName = "SoftU2FDriver"
ReferencedContainer = "container:SoftU2FTool.xcodeproj"> ReferencedContainer = "container:SoftU2F.xcodeproj">
</BuildableReference> </BuildableReference>
</MacroExpansion> </MacroExpansion>
<AdditionalOptions> <AdditionalOptions>
@ -66,7 +66,7 @@
BlueprintIdentifier = "F725EBC31F1FAD3C000A003C" BlueprintIdentifier = "F725EBC31F1FAD3C000A003C"
BuildableName = "softu2f.kext" BuildableName = "softu2f.kext"
BlueprintName = "SoftU2FDriver" BlueprintName = "SoftU2FDriver"
ReferencedContainer = "container:SoftU2FTool.xcodeproj"> ReferencedContainer = "container:SoftU2F.xcodeproj">
</BuildableReference> </BuildableReference>
</MacroExpansion> </MacroExpansion>
</ProfileAction> </ProfileAction>

Просмотреть файл

@ -17,7 +17,7 @@
BlueprintIdentifier = "F725EBE11F1FB09D000A003C" BlueprintIdentifier = "F725EBE11F1FB09D000A003C"
BuildableName = "libsoftu2f.a" BuildableName = "libsoftu2f.a"
BlueprintName = "SoftU2FDriverLib" BlueprintName = "SoftU2FDriverLib"
ReferencedContainer = "container:SoftU2FTool.xcodeproj"> ReferencedContainer = "container:SoftU2F.xcodeproj">
</BuildableReference> </BuildableReference>
</BuildActionEntry> </BuildActionEntry>
</BuildActionEntries> </BuildActionEntries>
@ -48,7 +48,7 @@
BlueprintIdentifier = "F725EBE11F1FB09D000A003C" BlueprintIdentifier = "F725EBE11F1FB09D000A003C"
BuildableName = "libsoftu2f.a" BuildableName = "libsoftu2f.a"
BlueprintName = "SoftU2FDriverLib" BlueprintName = "SoftU2FDriverLib"
ReferencedContainer = "container:SoftU2FTool.xcodeproj"> ReferencedContainer = "container:SoftU2F.xcodeproj">
</BuildableReference> </BuildableReference>
</MacroExpansion> </MacroExpansion>
<AdditionalOptions> <AdditionalOptions>
@ -66,7 +66,7 @@
BlueprintIdentifier = "F725EBE11F1FB09D000A003C" BlueprintIdentifier = "F725EBE11F1FB09D000A003C"
BuildableName = "libsoftu2f.a" BuildableName = "libsoftu2f.a"
BlueprintName = "SoftU2FDriverLib" BlueprintName = "SoftU2FDriverLib"
ReferencedContainer = "container:SoftU2FTool.xcodeproj"> ReferencedContainer = "container:SoftU2F.xcodeproj">
</BuildableReference> </BuildableReference>
</MacroExpansion> </MacroExpansion>
</ProfileAction> </ProfileAction>

Просмотреть файл

@ -1,30 +0,0 @@
{
"DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "AC56B5A826EFC8C045C4CEFFD93C0FC5723044B9",
"DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : {
},
"DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : {
"AC56B5A826EFC8C045C4CEFFD93C0FC5723044B9" : 9223372036854775807,
"255AD7C5569D0E3618B1ECBAA9C64282DB21D5ED" : 9223372036854775807
},
"DVTSourceControlWorkspaceBlueprintIdentifierKey" : "3853A582-91BA-44CF-83E2-E47CCF59790D",
"DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : {
"AC56B5A826EFC8C045C4CEFFD93C0FC5723044B9" : "SoftU2FTool\/",
"255AD7C5569D0E3618B1ECBAA9C64282DB21D5ED" : "SoftU2FTool\/SoftU2F\/"
},
"DVTSourceControlWorkspaceBlueprintNameKey" : "SoftU2FTool",
"DVTSourceControlWorkspaceBlueprintVersion" : 204,
"DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "SoftU2FTool.xcodeproj",
"DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [
{
"DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/mastahyeti\/SoftU2F",
"DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
"DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "255AD7C5569D0E3618B1ECBAA9C64282DB21D5ED"
},
{
"DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/mastahyeti\/SoftU2FTool",
"DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
"DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "AC56B5A826EFC8C045C4CEFFD93C0FC5723044B9"
}
]
}

Просмотреть файл

@ -1,39 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Bucket
type = "1"
version = "2.0">
<Breakpoints>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SoftU2FTool/KeyInterface/KeyInterface.m"
timestampString = "507573396.338835"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "69"
endingLineNumber = "69"
landmarkName = "+publicKeyExists:"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SoftU2FTool/U2FKey.swift"
timestampString = "507583918.639253"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "208"
endingLineNumber = "208"
landmarkName = "delete()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>
</Bucket>

Просмотреть файл

@ -1,101 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0820"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "51F0900B1E37E8C600F03AD3"
BuildableName = "SoftU2FTool.app"
BlueprintName = "SoftU2FTool"
ReferencedContainer = "container:SoftU2FTool.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "51F0901C1E37E8C600F03AD3"
BuildableName = "SoftU2FToolTests.xctest"
BlueprintName = "SoftU2FToolTests"
ReferencedContainer = "container:SoftU2FTool.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "51F0900B1E37E8C600F03AD3"
BuildableName = "SoftU2FTool.app"
BlueprintName = "SoftU2FTool"
ReferencedContainer = "container:SoftU2FTool.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "51F0900B1E37E8C600F03AD3"
BuildableName = "SoftU2FTool.app"
BlueprintName = "SoftU2FTool"
ReferencedContainer = "container:SoftU2FTool.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "51F0900B1E37E8C600F03AD3"
BuildableName = "SoftU2FTool.app"
BlueprintName = "SoftU2FTool"
ReferencedContainer = "container:SoftU2FTool.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

Просмотреть файл

@ -1,57 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>APDU.xcscheme</key>
<dict>
<key>orderHint</key>
<integer>5</integer>
</dict>
<key>SelfSignedCertificate.xcscheme</key>
<dict>
<key>orderHint</key>
<integer>6</integer>
</dict>
<key>SoftU2FTool.xcscheme</key>
<dict>
<key>orderHint</key>
<integer>2</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict>
<key>51F0900B1E37E8C600F03AD3</key>
<dict>
<key>primary</key>
<true/>
</dict>
<key>51F0901C1E37E8C600F03AD3</key>
<dict>
<key>primary</key>
<true/>
</dict>
<key>F738F4F01E4A2CCB005680A2</key>
<dict>
<key>primary</key>
<true/>
</dict>
<key>F738F52E1E4A2E8A005680A2</key>
<dict>
<key>primary</key>
<true/>
</dict>
<key>F738F5591E4A31DE005680A2</key>
<dict>
<key>primary</key>
<true/>
</dict>
<key>F738F5701E4A3328005680A2</key>
<dict>
<key>primary</key>
<true/>
</dict>
</dict>
</dict>
</plist>

Просмотреть файл

@ -1,6 +1,6 @@
// //
// AppDelegate.swift // AppDelegate.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 1/24/17. // Created by Benjamin P Toews on 1/24/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// KeyPair.swift // KeyPair.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 2/2/17. // Created by Benjamin P Toews on 2/2/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// Keychain.swift // Keychain.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 2/2/17. // Created by Benjamin P Toews on 2/2/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// KnownFacets.swift // KnownFacets.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 1/27/17. // Created by Benjamin P Toews on 1/27/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// SHA256.swift // SHA256.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 9/10/16. // Created by Benjamin P Toews on 9/10/16.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -4,7 +4,7 @@
<dict> <dict>
<key>keychain-access-groups</key> <key>keychain-access-groups</key>
<array> <array>
<string>$(AppIdentifierPrefix)com.github.SoftU2FTool</string> <string>$(AppIdentifierPrefix)com.github.SoftU2F</string>
</array> </array>
</dict> </dict>
</plist> </plist>

Просмотреть файл

@ -1,6 +1,6 @@
// //
// U2FAuthenticator.swift // U2FAuthenticator.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 1/25/17. // Created by Benjamin P Toews on 1/25/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// HIDU2F.swift // HIDU2F.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 1/25/17. // Created by Benjamin P Toews on 1/25/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// U2FRegistration.swift // U2FRegistration.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 1/30/17. // Created by Benjamin P Toews on 1/30/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// UserPresence.swift // UserPresence.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 1/27/17. // Created by Benjamin P Toews on 1/27/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// Utils.swift // Utils.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 1/31/17. // Created by Benjamin P Toews on 1/31/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// WebSafeBase64.swift // WebSafeBase64.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 9/13/16. // Created by Benjamin P Toews on 9/13/16.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.

Просмотреть файл

@ -1,6 +1,6 @@
// //
// IntegrationTests.swift // IntegrationTests.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 1/27/17. // Created by Benjamin P Toews on 1/27/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.
@ -9,7 +9,7 @@
import XCTest import XCTest
import APDU import APDU
@testable import SoftU2FTool @testable import SoftU2F
class IntegrationTests: SoftU2FTestCase { class IntegrationTests: SoftU2FTestCase {
override func tearDown() { override func tearDown() {
let _ = U2FRegistration.deleteAll() let _ = U2FRegistration.deleteAll()

Просмотреть файл

@ -1,6 +1,6 @@
// //
// SHA256Tests.swift // SHA256Tests.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 9/10/16. // Created by Benjamin P Toews on 9/10/16.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.
@ -8,7 +8,7 @@
import XCTest import XCTest
@testable import SoftU2FTool @testable import SoftU2F
class SHA256Tests: XCTestCase { class SHA256Tests: XCTestCase {
func testDigestFormats() throws { func testDigestFormats() throws {
let hash = SHA256(data: "hello world".data(using: .utf8)!) let hash = SHA256(data: "hello world".data(using: .utf8)!)

Просмотреть файл

@ -1,13 +1,13 @@
// //
// SoftU2FTestCase.swift // SoftU2FTestCase.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 1/30/17. // Created by Benjamin P Toews on 1/30/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.
// //
import XCTest import XCTest
@testable import SoftU2FTool @testable import SoftU2F
class SoftU2FTestCase: XCTestCase { class SoftU2FTestCase: XCTestCase {
static var nameSpaceWas = U2FRegistration.namespace static var nameSpaceWas = U2FRegistration.namespace

Просмотреть файл

@ -0,0 +1,2 @@
#import "u2f-host.h"
#import "SoftU2F-Bridging-Header.h"

Просмотреть файл

@ -1 +0,0 @@
#import "u2f-host.h"

Просмотреть файл

@ -1,13 +1,13 @@
// //
// Util.swift // Util.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 9/10/16. // Created by Benjamin P Toews on 9/10/16.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.
// //
import XCTest import XCTest
@testable import SoftU2FTool @testable import SoftU2F
func tupleDigestEqual(_ a: SHA256.TupleDigest, _ b: SHA256.TupleDigest) -> Bool { func tupleDigestEqual(_ a: SHA256.TupleDigest, _ b: SHA256.TupleDigest) -> Bool {
return a.0 == b.0 && return a.0 == b.0 &&

Просмотреть файл

@ -1,6 +1,6 @@
// //
// U2FHIDTests.swift // U2FHIDTests.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 1/25/17. // Created by Benjamin P Toews on 1/25/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.
@ -8,7 +8,7 @@
import XCTest import XCTest
@testable import SoftU2FTool @testable import SoftU2F
class U2FHIDTests: XCTestCase { class U2FHIDTests: XCTestCase {
func testInit() { func testInit() {
XCTAssertNotNil(U2FHID.shared) XCTAssertNotNil(U2FHID.shared)

Просмотреть файл

@ -1,13 +1,13 @@
// //
// U2FRegistrationTests.swift // U2FRegistrationTests.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 1/31/17. // Created by Benjamin P Toews on 1/31/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.
// //
import XCTest import XCTest
@testable import SoftU2FTool @testable import SoftU2F
class U2FRegistrationTests: SoftU2FTestCase { class U2FRegistrationTests: SoftU2FTestCase {
var makeKey: U2FRegistration? { return U2FRegistration(applicationParameter: randData(length: 32)) } var makeKey: U2FRegistration? { return U2FRegistration(applicationParameter: randData(length: 32)) }

Просмотреть файл

@ -1,13 +1,13 @@
// //
// UtilsTests.swift // UtilsTests.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 2/1/17. // Created by Benjamin P Toews on 2/1/17.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.
// //
import XCTest import XCTest
@testable import SoftU2FTool @testable import SoftU2F
class UtilsTests: XCTestCase { class UtilsTests: XCTestCase {
func testPadUnpadKeyHandle() { func testPadUnpadKeyHandle() {

Просмотреть файл

@ -1,6 +1,6 @@
// //
// WebSafeBase64Tests.swift // WebSafeBase64Tests.swift
// SoftU2FTool // SoftU2F
// //
// Created by Benjamin P Toews on 9/13/16. // Created by Benjamin P Toews on 9/13/16.
// Copyright © 2017 GitHub. All rights reserved. // Copyright © 2017 GitHub. All rights reserved.
@ -8,7 +8,7 @@
import XCTest import XCTest
@testable import SoftU2FTool @testable import SoftU2F
class WebSafeBase64Tests: XCTestCase { class WebSafeBase64Tests: XCTestCase {
func testRoundTrip() { func testRoundTrip() {
for length in 0...10 { for length in 0...10 {

Просмотреть файл

@ -2,7 +2,7 @@
set -e set -e
KEXT="/Library/Extensions/softu2f.kext" KEXT="/Library/Extensions/softu2f.kext"
LAUNCH_AGENT_PLIST="$HOME/Library/LaunchAgents/com.github.SoftU2FTool.plist" LAUNCH_AGENT_PLIST="$HOME/Library/LaunchAgents/com.github.SoftU2F.plist"
# Make sure the kext is loaded # Make sure the kext is loaded
kextutil $KEXT kextutil $KEXT
@ -14,12 +14,12 @@ cat > $LAUNCH_AGENT_PLIST << EOT
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>Label</key> <key>Label</key>
<string>com.github.SoftU2FTool</string> <string>com.github.SoftU2F</string>
<key>Program</key> <key>Program</key>
<string>/Applications/SoftU2FTool.app/Contents/MacOS/SoftU2FTool</string> <string>/Applications/SoftU2F.app/Contents/MacOS/SoftU2F</string>
<key>ProgramArguments</key> <key>ProgramArguments</key>
<array> <array>
<string>/Applications/SoftU2FTool.app/Contents/MacOS/SoftU2FTool</string> <string>/Applications/SoftU2F.app/Contents/MacOS/SoftU2F</string>
</array> </array>
<key>RunAtLoad</key> <key>RunAtLoad</key>
<true/> <true/>

Просмотреть файл

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
KEXT="/Library/Extensions/softu2f.kext" KEXT="/Library/Extensions/softu2f.kext"
LAUNCH_AGENT_PLIST="$HOME/Library/LaunchAgents/com.github.SoftU2FTool.plist" LAUNCH_AGENT_PLIST="$HOME/Library/LaunchAgents/com.github.SoftU2F.plist"
kextunload $KEXT || true kextunload $KEXT || true
launchctl unload $LAUNCH_AGENT_PLIST || true launchctl unload $LAUNCH_AGENT_PLIST || true

Просмотреть файл

@ -18,9 +18,9 @@ if ! xcodebuild -scheme SoftU2FDriver SYMROOT=$BUILD_DIR &> /dev/null; then
fi fi
echo "Built softu2f.kext" echo "Built softu2f.kext"
echo "Building SoftU2FTool.app" echo "Building SoftU2F.app"
if ! xcodebuild -scheme SoftU2FTool -project SoftU2FTool.xcodeproj SYMROOT=$BUILD_DIR &> /dev/null; then if ! xcodebuild -scheme SoftU2F -project SoftU2F.xcodeproj SYMROOT=$BUILD_DIR &> /dev/null; then
echo "Error building SoftU2FTool.app" echo "Error building SoftU2F.app"
exit 1 exit 1
fi fi
echo "Built SoftU2FTool.app" echo "Built SoftU2F.app"

Просмотреть файл

@ -8,7 +8,7 @@ BUILD_DIR=$REPO_DIR/build
sudo rm -rf $BUILD_DIR sudo rm -rf $BUILD_DIR
mkdir $BUILD_DIR mkdir $BUILD_DIR
xcodebuild -scheme SoftU2FTool install DSTROOT=$BUILD_DIR/bundles xcodebuild -scheme SoftU2F install DSTROOT=$BUILD_DIR/bundles
cd $BUILD_DIR cd $BUILD_DIR
@ -18,5 +18,5 @@ cd $BUILD_DIR
rm -rf ./bundles/System rm -rf ./bundles/System
rm -rf ./bundles/usr rm -rf ./bundles/usr
pkgbuild --analyze --root ./bundles/ SoftU2FTool.plist pkgbuild --analyze --root ./bundles/ SoftU2F.plist
pkgbuild --sign "Developer ID Installer: GitHub" --identifier com.GitHub.SoftU2FTool --root ./bundles/ --scripts ../install-scripts --component-plist ./SoftU2FTool.plist ./SoftU2FTool.pkg pkgbuild --sign "Developer ID Installer: GitHub" --identifier com.GitHub.SoftU2F --root ./bundles/ --scripts ../install-scripts --component-plist ./SoftU2F.plist ./SoftU2F.pkg

Просмотреть файл

@ -7,12 +7,16 @@ BUILD_DIR=$REPO_DIR/build
KEXT_PATH=$BUILD_DIR/Debug/softu2f.kext KEXT_PATH=$BUILD_DIR/Debug/softu2f.kext
BUNDLE_ID=com.github.SoftU2FDriver BUNDLE_ID=com.github.SoftU2FDriver
if kextstat -b $BUNDLE_ID | grep $BUNDLE_ID &> /dev/null; then function unload_kext {
echo "Unloading softu2f.kext" echo "Unloading softu2f.kext"
if ! sudo kextunload -b $BUNDLE_ID &> /dev/null; then if ! sudo kextunload -b $BUNDLE_ID &> /dev/null; then
echo "Error unloading softu2f.kext. Kill any applications using it and try again." echo "Error unloading softu2f.kext. Kill any applications using it and try again."
exit 1 exit 1
fi fi
}
if kextstat -b $BUNDLE_ID | grep $BUNDLE_ID &> /dev/null; then
unload_kext
fi fi
# Ensure kext is owned by root. # Ensure kext is owned by root.
@ -24,5 +28,7 @@ if ! sudo kextutil $KEXT_PATH; then
exit 1 exit 1
fi fi
trap unload_kext EXIT
# Run it # Run it
$BUILD_DIR/Debug/SoftU2FTool.app/Contents/MacOS/SoftU2FTool $BUILD_DIR/Debug/SoftU2F.app/Contents/MacOS/SoftU2F