2019-06-04 18:29:50 -07:00
|
|
|
//
|
|
|
|
|
// Keychain.swift
|
|
|
|
|
// AltStore
|
|
|
|
|
//
|
|
|
|
|
// Created by Riley Testut on 6/4/19.
|
|
|
|
|
// Copyright © 2019 Riley Testut. All rights reserved.
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
import Foundation
|
|
|
|
|
import KeychainAccess
|
|
|
|
|
|
|
|
|
|
import AltSign
|
|
|
|
|
|
|
|
|
|
class Keychain
|
|
|
|
|
{
|
|
|
|
|
static let shared = Keychain()
|
|
|
|
|
|
|
|
|
|
private let keychain = KeychainAccess.Keychain(service: "com.rileytestut.AltStore").accessibility(.afterFirstUnlock).synchronizable(true)
|
|
|
|
|
|
|
|
|
|
private init()
|
|
|
|
|
{
|
|
|
|
|
}
|
2019-06-06 14:46:23 -07:00
|
|
|
|
|
|
|
|
func reset()
|
|
|
|
|
{
|
|
|
|
|
self.appleIDEmailAddress = nil
|
|
|
|
|
self.appleIDPassword = nil
|
|
|
|
|
self.signingCertificatePrivateKey = nil
|
2019-06-18 17:40:30 -07:00
|
|
|
self.signingCertificateSerialNumber = nil
|
2019-06-06 14:46:23 -07:00
|
|
|
}
|
2019-06-04 18:29:50 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
extension Keychain
|
|
|
|
|
{
|
|
|
|
|
var appleIDEmailAddress: String? {
|
|
|
|
|
get {
|
|
|
|
|
let emailAddress = try? self.keychain.get("appleIDEmailAddress")
|
|
|
|
|
return emailAddress
|
|
|
|
|
}
|
|
|
|
|
set {
|
|
|
|
|
self.keychain["appleIDEmailAddress"] = newValue
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var appleIDPassword: String? {
|
|
|
|
|
get {
|
|
|
|
|
let password = try? self.keychain.get("appleIDPassword")
|
|
|
|
|
return password
|
|
|
|
|
}
|
|
|
|
|
set {
|
|
|
|
|
self.keychain["appleIDPassword"] = newValue
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var signingCertificatePrivateKey: Data? {
|
|
|
|
|
get {
|
|
|
|
|
let privateKey = try? self.keychain.getData("signingCertificatePrivateKey")
|
|
|
|
|
return privateKey
|
|
|
|
|
}
|
|
|
|
|
set {
|
|
|
|
|
self.keychain[data: "signingCertificatePrivateKey"] = newValue
|
|
|
|
|
}
|
|
|
|
|
}
|
2019-06-05 18:05:21 -07:00
|
|
|
|
2019-06-18 17:40:30 -07:00
|
|
|
var signingCertificateSerialNumber: String? {
|
2019-06-05 18:05:21 -07:00
|
|
|
get {
|
2019-06-18 17:40:30 -07:00
|
|
|
let serialNumber = try? self.keychain.get("signingCertificateSerialNumber")
|
|
|
|
|
return serialNumber
|
2019-06-05 18:05:21 -07:00
|
|
|
}
|
|
|
|
|
set {
|
2019-06-18 17:40:30 -07:00
|
|
|
self.keychain["signingCertificateSerialNumber"] = newValue
|
2019-06-05 18:05:21 -07:00
|
|
|
}
|
|
|
|
|
}
|
2019-08-28 11:13:22 -07:00
|
|
|
|
|
|
|
|
var patreonAccessToken: String? {
|
|
|
|
|
get {
|
|
|
|
|
let accessToken = try? self.keychain.get("patreonAccessToken")
|
|
|
|
|
return accessToken
|
|
|
|
|
}
|
|
|
|
|
set {
|
|
|
|
|
self.keychain["patreonAccessToken"] = newValue
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var patreonRefreshToken: String? {
|
|
|
|
|
get {
|
|
|
|
|
let refreshToken = try? self.keychain.get("patreonRefreshToken")
|
|
|
|
|
return refreshToken
|
|
|
|
|
}
|
|
|
|
|
set {
|
|
|
|
|
self.keychain["patreonRefreshToken"] = newValue
|
|
|
|
|
}
|
|
|
|
|
}
|
2019-06-04 18:29:50 -07:00
|
|
|
}
|