pull/56/head
Niels Andriesse 6 years ago
parent deb8ad002e
commit e9bbbe4c87

@ -63,7 +63,7 @@ public final class LokiGroupMessage : NSObject {
// MARK: Crypto // MARK: Crypto
internal func sign(with privateKey: Data) -> LokiGroupMessage? { internal func sign(with privateKey: Data) -> LokiGroupMessage? {
guard let data = getValidationData() else { guard let data = getValidationData(for: signatureVersion) else {
print("[Loki] Failed to sign group chat message.") print("[Loki] Failed to sign group chat message.")
return nil return nil
} }
@ -78,7 +78,7 @@ public final class LokiGroupMessage : NSObject {
internal func hasValidSignature() -> Bool { internal func hasValidSignature() -> Bool {
guard let signature = signature else { return false } guard let signature = signature else { return false }
guard let data = getValidationData() else { return false } guard let data = getValidationData(for: signature.version) else { return false }
return (try? Ed25519.verifySignature(signature.data, publicKey: Data(hex: hexEncodedPublicKey), data: data)) ?? false return (try? Ed25519.verifySignature(signature.data, publicKey: Data(hex: hexEncodedPublicKey), data: data)) ?? false
} }
@ -101,7 +101,7 @@ public final class LokiGroupMessage : NSObject {
} }
// MARK: Convenience // MARK: Convenience
private func getValidationData() -> Data? { private func getValidationData(for signatureVersion: UInt64) -> Data? {
var string = "\(body.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines))\(timestamp)" var string = "\(body.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines))\(timestamp)"
if let quote = quote { if let quote = quote {
string += "\(quote.quotedMessageTimestamp)\(quote.quoteeHexEncodedPublicKey)\(quote.quotedMessageBody.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines))" string += "\(quote.quotedMessageTimestamp)\(quote.quoteeHexEncodedPublicKey)\(quote.quotedMessageBody.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines))"

Loading…
Cancel
Save