Skip to content

Commit

Permalink
Merge pull request #77 from VirgilSecurity/release/4.0.1
Browse files Browse the repository at this point in the history
Release 4.0.1

- Update underlying crypto with restored `Pythia` backward compatibility!
  - VirgilSDK -> 9.0.1
  - VirgilCrypto -> 7.0.1
  - VSCCrypto -> 0.17.1
  - VirgilSDKPythia -> 0.12.1
  - VirgilSDKRatchet -> 0.10.1
  • Loading branch information
SergeySeroshtan authored Aug 14, 2023
2 parents 3a4bed1 + 30fcf86 commit 60fecbc
Show file tree
Hide file tree
Showing 13 changed files with 177 additions and 166 deletions.
2 changes: 1 addition & 1 deletion CI/publish-docs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ git clone -b gh-pages "${REPO_PATH}" --single-branch ${DOCS_DIR}
INFOPLIST_FILE_PATH="${GITHUB_WORKSPACE}/VirgilE3Kit/Info.plist"

# Define SDK versions
VIRGIL_SDK_VERSION="v4.0.0"
VIRGIL_SDK_VERSION="v4.0.1"
CURRENT_VERSION_DIR="${DOCS_DIR}/${VIRGIL_SDK_VERSION}"

# Generate the HTML documentation.
Expand Down
25 changes: 17 additions & 8 deletions Package.resolved
Original file line number Diff line number Diff line change
Expand Up @@ -5,35 +5,44 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/VirgilSecurity/virgil-crypto-c.git",
"state" : {
"revision" : "591c32a4c54378e750c80052d7588df8056525b0",
"version" : "0.17.0"
"revision" : "40ae5231264c8f2d79354922fac15d96021aa8b5",
"version" : "0.17.1"
}
},
{
"identity" : "virgil-crypto-x",
"kind" : "remoteSourceControl",
"location" : "https://github.com/VirgilSecurity/virgil-crypto-x.git",
"state" : {
"revision" : "96fef3abb3c96eec0c14cdf3f406658776071dbd",
"version" : "7.0.0"
"revision" : "6334a21c49dafb305666aafc34819314960412de",
"version" : "7.0.1"
}
},
{
"identity" : "virgil-pythia-x",
"kind" : "remoteSourceControl",
"location" : "https://github.com/VirgilSecurity/virgil-pythia-x.git",
"state" : {
"revision" : "6b85da7b8c3bf523df498e66c5bdb63c117be351",
"version" : "0.12.1"
}
},
{
"identity" : "virgil-ratchet-x",
"kind" : "remoteSourceControl",
"location" : "https://github.com/VirgilSecurity/virgil-ratchet-x.git",
"state" : {
"revision" : "19e28149a973aba2f70ba1c0cf176fa15e84e278",
"version" : "0.10.0"
"revision" : "f5be34003eb9a78743e24479fc85b407a665d9c0",
"version" : "0.10.1"
}
},
{
"identity" : "virgil-sdk-x",
"kind" : "remoteSourceControl",
"location" : "https://github.com/VirgilSecurity/virgil-sdk-x.git",
"state" : {
"revision" : "7165aafa08be93a874097033ec903bac447e4b9b",
"version" : "9.0.0"
"revision" : "53e32c076211a7623f113df49e6f48c8974c9024",
"version" : "9.0.1"
}
}
],
Expand Down
8 changes: 5 additions & 3 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import PackageDescription
let package = Package(
name: "VirgilE3Kit",
platforms: [
.macOS(.v10_12), .iOS(.v11), .tvOS(.v11), .watchOS(.v4),
.macOS(.v10_13), .iOS(.v11), .tvOS(.v11), .watchOS(.v4),
],
products: [
.library(
Expand All @@ -16,14 +16,16 @@ let package = Package(
],

dependencies: [
.package(url: "https://github.com/VirgilSecurity/virgil-ratchet-x.git", exact: .init(0, 10, 0))
.package(url: "https://github.com/VirgilSecurity/virgil-pythia-x.git", exact: .init(0, 12, 1)),
.package(url: "https://github.com/VirgilSecurity/virgil-ratchet-x.git", exact: .init(0, 10, 1)),
],

targets: [
.target(
name: "VirgilE3Kit",
dependencies: [
.product(name: "VirgilSDKRatchet", package: "virgil-ratchet-x")
.product(name: "VirgilSDKRatchet", package: "virgil-ratchet-x"),
.product(name: "VirgilSDKPythia", package: "virgil-pythia-x"),
],
path: "Source"
),
Expand Down
3 changes: 2 additions & 1 deletion Source/EThree.swift
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,8 @@ import VirgilSDKRatchet
identity: params.identity,
crypto: crypto,
accessTokenProvider: accessTokenProvider,
keyknoxServiceUrl: params.serviceUrls.keyknoxServiceUrl
keyknoxServiceUrl: params.serviceUrls.keyknoxServiceUrl,
pythiaServiceUrl: params.serviceUrls.pythiaServiceUrl
)

let sqliteCardStorage = try SQLiteCardStorage(
Expand Down
8 changes: 8 additions & 0 deletions Source/Models/EThreeParams.swift
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
import Foundation
import VirgilCrypto
import VirgilSDK
import VirgilSDKPythia
import VirgilSDKRatchet

/// Contains parameters for initializing EThree
Expand Down Expand Up @@ -72,6 +73,9 @@ import VirgilSDKRatchet
/// Card service URL
@objc public var cardServiceUrl: URL

/// Pythia service URL
@objc public var pythiaServiceUrl: URL

/// Keyknox service URL
@objc public var keyknoxServiceUrl: URL

Expand All @@ -81,14 +85,17 @@ import VirgilSDKRatchet
/// Init
/// - Parameters:
/// - cardServiceUrl: Card service URL
/// - pythiaServiceUrl: Pythia service URL
/// - keyknoxServiceUrl: Keyknox service URL
/// - ratchetServiceUrl: Ratchet service URL
@objc public init(
cardServiceUrl: URL,
pythiaServiceUrl: URL,
keyknoxServiceUrl: URL,
ratchetServiceUrl: URL
) {
self.cardServiceUrl = cardServiceUrl
self.pythiaServiceUrl = pythiaServiceUrl
self.keyknoxServiceUrl = keyknoxServiceUrl
self.ratchetServiceUrl = ratchetServiceUrl
}
Expand Down Expand Up @@ -215,6 +222,7 @@ import VirgilSDKRatchet
self.tokenCallback = tokenCallback
self.serviceUrls = ServiceUrls(
cardServiceUrl: CardClient.defaultURL,
pythiaServiceUrl: PythiaClient.defaultURL,
keyknoxServiceUrl: KeyknoxClient.defaultURL,
ratchetServiceUrl: RatchetClient.defaultURL
)
Expand Down
73 changes: 0 additions & 73 deletions Source/Models/Mixtec/BrainKey.swift

This file was deleted.

15 changes: 13 additions & 2 deletions Source/Storages/Cloud/CloudKeyManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
import Foundation
import VirgilCrypto
import VirgilSDK
import VirgilSDKPythia

internal class CloudKeyManager {
private let identity: String
Expand All @@ -53,7 +54,8 @@ internal class CloudKeyManager {
identity: String,
crypto: VirgilCrypto,
accessTokenProvider: AccessTokenProvider,
keyknoxServiceUrl: URL
keyknoxServiceUrl: URL,
pythiaServiceUrl: URL
) throws {
self.identity = identity
self.crypto = crypto
Expand All @@ -70,7 +72,16 @@ internal class CloudKeyManager {

self.keyknoxManager = try KeyknoxManager(keyknoxClient: keyknoxClient)

self.brainKey = BrainKey(crypto: self.crypto)
let pythiaClient = PythiaClient(
accessTokenProvider: self.accessTokenProvider,
serviceUrl: pythiaServiceUrl,
connection: connection,
retryConfig: ExpBackoffRetry.Config()
)

let brainKeyContext = try BrainKeyContext(client: pythiaClient)

self.brainKey = BrainKey(context: brainKeyContext)
}

internal func setUpCloudKeyStorage(password: String) throws -> CloudKeyStorage {
Expand Down
2 changes: 1 addition & 1 deletion Source/Utils/ProductInfo.swift
Original file line number Diff line number Diff line change
Expand Up @@ -38,5 +38,5 @@ import Foundation

internal enum ProductInfo {
internal static let name: String = "e3kit"
internal static let version: String = "4.0.0"
internal static let version: String = "4.0.1"
}
3 changes: 3 additions & 0 deletions Tests/Swift/Utils/TestConfig.swift
Original file line number Diff line number Diff line change
Expand Up @@ -67,16 +67,19 @@ import VirgilE3Kit

@objc public class ServiceUrls: NSObject, Decodable {
public let Card: String
public let Pythia: String
public let Keyknox: String
public let Ratchet: String

@objc public func get() -> EThreeParams.ServiceUrls {
let cardServiceUrl = URL(string: self.Card)!
let pythiaServiceUrl = URL(string: self.Pythia)!
let keyknoxServiceUrl = URL(string: self.Keyknox)!
let ratchetServiceUrl = URL(string: self.Ratchet)!

return EThreeParams.ServiceUrls(
cardServiceUrl: cardServiceUrl,
pythiaServiceUrl: pythiaServiceUrl,
keyknoxServiceUrl: keyknoxServiceUrl,
ratchetServiceUrl: ratchetServiceUrl
)
Expand Down
49 changes: 29 additions & 20 deletions Tests/Swift/Utils/TestUtils.swift
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ import Foundation
import VirgilCrypto
import VirgilE3Kit
import VirgilSDK
import VirgilSDKPythia

@objc(VTETestUtils) public class TestUtils: NSObject {
@objc public let crypto: VirgilCrypto
Expand Down Expand Up @@ -248,31 +249,39 @@ import VirgilSDK
let serviceUrls = self.config.ServiceUrls.get()
let connection = HttpConnection()
let retryConfig = ExpBackoffRetry.Config()
let brainKey = BrainKey(crypto: self.crypto)
let keyPair = try! brainKey.generateKeyPair(password: password, brainKeyId: nil).startSync().get()

let keyknoxClient = KeyknoxClient(
let pythiaClient = PythiaClient(
accessTokenProvider: provider,
serviceUrl: serviceUrls.keyknoxServiceUrl,
serviceUrl: serviceUrls.pythiaServiceUrl,
connection: connection,
retryConfig: retryConfig
)

let keyknoxManager = try! KeyknoxManager(keyknoxClient: keyknoxClient)

let cloudKeyStorage = CloudKeyStorage(
keyknoxManager: keyknoxManager,
publicKeys: [keyPair.publicKey],
privateKey: keyPair.privateKey
)

let syncKeyStorage = SyncKeyStorage(
identity: identity,
keychainStorage: keychainStorage,
cloudKeyStorage: cloudKeyStorage
)

syncKeyStorage.sync { completion(syncKeyStorage, $0) }
let brainKeyContext = try! BrainKeyContext(client: pythiaClient)
let brainKey = BrainKey(context: brainKeyContext)

brainKey.generateKeyPair(password: password, brainKeyId: nil) { keyPair, error in
let keyknoxClient = KeyknoxClient(
accessTokenProvider: provider,
serviceUrl: serviceUrls.keyknoxServiceUrl,
connection: connection,
retryConfig: retryConfig
)

let keyknoxManager = try! KeyknoxManager(keyknoxClient: keyknoxClient)

let cloudKeyStorage = CloudKeyStorage(
keyknoxManager: keyknoxManager,
publicKeys: [keyPair!.publicKey],
privateKey: keyPair!.privateKey
)
let syncKeyStorage = SyncKeyStorage(
identity: identity,
keychainStorage: keychainStorage,
cloudKeyStorage: cloudKeyStorage
)

syncKeyStorage.sync { completion(syncKeyStorage, $0) }
}
}
}

Expand Down
5 changes: 3 additions & 2 deletions VirgilE3Kit.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "VirgilE3Kit"
s.version = "4.0.0"
s.version = "4.0.1"
s.swift_version = "5.0"
s.license = { :type => "BSD", :file => "LICENSE" }
s.summary = "Vigil E3Kit for Apple devices and languages"
Expand All @@ -12,5 +12,6 @@ Pod::Spec.new do |s|
s.watchos.deployment_target = "4.0"
s.source = { :git => "https://github.com/VirgilSecurity/virgil-e3kit-x.git", :tag => s.version }
s.source_files = 'Source/**/*.{swift}'
s.dependency "VirgilSDKRatchet", '= 0.10.0'
s.dependency "VirgilSDKPythia", '= 0.12.1'
s.dependency "VirgilSDKRatchet", '= 0.10.1'
end
Loading

0 comments on commit 60fecbc

Please sign in to comment.