mirror of
https://github.com/grishka/NearDrop.git
synced 2026-04-03 01:36:15 +02:00
An experimental share extension to send files and too much refactoring
closes #4
This commit is contained in:
47
NearbyShare/Data+Extensions.swift
Normal file
47
NearbyShare/Data+Extensions.swift
Normal 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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user