This commit is contained in:
fmodf 2024-08-31 15:23:21 +02:00
parent c140133141
commit d950c4c907

View file

@ -54,7 +54,13 @@ final class ClientMartinOMEMO {
String(format: "%02x", byte)
}.joined()
guard !OMEMOIdentity.existsFor(account: credentials.bareJid, name: credentials.bareJid, fingerprint: fingerprint) else {
return save(address: address, fingerprint: fingerprint, own: true, data: keyPair.serialized())
}
return true
}
private func save(address: SignalAddress, fingerprint: String, own: Bool, data: Data) -> Bool {
guard !OMEMOIdentity.existsFor(account: credentials.bareJid, name: address.name, fingerprint: fingerprint) else {
return false
}
@ -65,8 +71,8 @@ final class ClientMartinOMEMO {
name: address.name,
deviceId: Int(address.deviceId),
fingerprint: fingerprint,
key: keyPair.serialized(),
own: true,
key: data,
own: own,
status: MartinOMEMO.IdentityStatus.trustedActive.rawValue
)
.insert(db)
@ -77,8 +83,6 @@ final class ClientMartinOMEMO {
return false
}
}
return true
}
}
// MARK: - Session
@ -197,14 +201,26 @@ extension ClientMartinOMEMO: SignalIdentityKeyStoreProtocol {
}
func save(identity: MartinOMEMO.SignalAddress, key: (any MartinOMEMO.SignalIdentityKeyProtocol)?) -> Bool {
print(identity, key)
guard let key = key as SignalIdentityKeyProtocol?, let publicKey = key.publicKey else {
return false
}
let fingerprint = publicKey.map { byte -> String in
String(format: "%02x", byte)
}.joined()
return save(address: identity, fingerprint: fingerprint, own: true, data: key.serialized())
}
func save(identity: MartinOMEMO.SignalAddress, publicKeyData: Data?) -> Bool {
print(identity, publicKeyData)
guard let publicKeyData = publicKeyData else {
return false
}
let fingerprint = publicKeyData.map { byte -> String in
String(format: "%02x", byte)
}.joined()
return save(address: identity, fingerprint: fingerprint, own: false, data: publicKeyData)
}
func isTrusted(identity _: MartinOMEMO.SignalAddress, key _: (any MartinOMEMO.SignalIdentityKeyProtocol)?) -> Bool {
true