aboutsummaryrefslogtreecommitdiff
path: root/Hotline/Utility/FoundationExtensions.swift
diff options
context:
space:
mode:
authorDustin Mierau <dustin@mierau.me>2024-05-22 17:35:01 -0700
committerDustin Mierau <dustin@mierau.me>2024-05-22 17:35:01 -0700
commit842611754debec7d1814e44e6a2cf302e84c0d66 (patch)
treee5c92e2abde5038df695faf4371bbaf9a477ff7a /Hotline/Utility/FoundationExtensions.swift
parentc7a2970c7f17a1b19a76d9cb6addda8fb877a63a (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.swift30
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 {