diff options
| author | Dustin Mierau <dustin@mierau.me> | 2024-05-22 17:35:01 -0700 |
|---|---|---|
| committer | Dustin Mierau <dustin@mierau.me> | 2024-05-22 17:35:01 -0700 |
| commit | 842611754debec7d1814e44e6a2cf302e84c0d66 (patch) | |
| tree | e5c92e2abde5038df695faf4371bbaf9a477ff7a /Hotline/Utility/FoundationExtensions.swift | |
| parent | c7a2970c7f17a1b19a76d9cb6addda8fb877a63a (diff) | |
Support for drag and drop of old Hotline Bookmark files onto the Servers window.
Diffstat (limited to 'Hotline/Utility/FoundationExtensions.swift')
| -rw-r--r-- | Hotline/Utility/FoundationExtensions.swift | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Hotline/Utility/FoundationExtensions.swift b/Hotline/Utility/FoundationExtensions.swift index 14e76d5..0c8966a 100644 --- a/Hotline/Utility/FoundationExtensions.swift +++ b/Hotline/Utility/FoundationExtensions.swift @@ -202,6 +202,19 @@ extension Array where Element == UInt8 { return str } + mutating func consumeLongPString() -> String? { + let (str, len) = self.readLongPString(at: 0) + guard let str = str else { + return nil + } + if len == 0 { + return "" + } + + self.removeFirst(len) + return str + } + mutating func consumeString(_ length: Int) -> String? { guard let val = self.readString(at: 0, length: length) else { return nil @@ -388,6 +401,23 @@ extension Array where Element == UInt8 { mutating func appendData(_ data: [UInt8]) { self.append(contentsOf: data) } + + mutating func hotlineEncrypt() { + for i in (0..<self.count).reversed() { + self[i] = 0xFF - self[i] + } + } + + func hotlineEncrypted() -> [UInt8] { + var cpy = [UInt8](self) + + + + for i in (0..<cpy.count).reversed() { + cpy[i] = 0xFF - cpy[i] + } + return cpy + } } extension Data { |