aboutsummaryrefslogtreecommitdiff
path: root/Hotline/Utility
diff options
context:
space:
mode:
Diffstat (limited to 'Hotline/Utility')
-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 {