An experimental share extension to send files and too much refactoring

closes #4
This commit is contained in:
Grishka
2023-09-26 03:22:23 +03:00
parent 22a2fff54b
commit 8f0eccd7b6
39 changed files with 2158 additions and 235 deletions

View File

@@ -0,0 +1,47 @@
//
// Data+URLSafeBase64.swift
// NearDrop
//
// Created by Grishka on 08.04.2023.
//
import Foundation
import CoreFoundation
extension Data{
func urlSafeBase64EncodedString() -> String {
return String(base64EncodedString().replacingOccurrences(of: "=", with: "").map {
if $0=="/"{
return "_"
} else if $0=="+" {
return "-"
} else {
return $0
}
})
}
static func randomData(length: Int) -> Data{
var data=Data(count: length)
data.withUnsafeMutableBytes {
guard 0 == SecRandomCopyBytes(kSecRandomDefault, length, $0.baseAddress!) else { fatalError() }
}
return data
}
static func dataFromUrlSafeBase64(_ str:String)->Data?{
var regularB64=String(str.map{
if $0=="_"{
return "/"
}else if $0=="-"{
return "+"
}else{
return $0
}
})
while (regularB64.count%4) != 0{
regularB64=regularB64+"="
}
return Data(base64Encoded: regularB64, options: .ignoreUnknownCharacters)
}
}