This commit is contained in:
Niels Andriesse 2019-10-02 14:23:00 +10:00
parent deb8ad002e
commit e9bbbe4c87

View file

@ -63,7 +63,7 @@ public final class LokiGroupMessage : NSObject {
// MARK: Crypto
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.")
return nil
}
@ -78,7 +78,7 @@ public final class LokiGroupMessage : NSObject {
internal func hasValidSignature() -> Bool {
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
}
@ -101,7 +101,7 @@ public final class LokiGroupMessage : NSObject {
}
// MARK: Convenience
private func getValidationData() -> Data? {
private func getValidationData(for signatureVersion: UInt64) -> Data? {
var string = "\(body.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines))\(timestamp)"
if let quote = quote {
string += "\(quote.quotedMessageTimestamp)\(quote.quoteeHexEncodedPublicKey)\(quote.quotedMessageBody.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines))"