spb/os-vault Public
Self-custody, multi-chain crypto wallet for macOS. One recovery phrase, six chain families, zero API keys — nothing leaves your Mac.
Swift 96%
Shell 3.4%
Makefile 0.6%
1import WalletCoreC2import Foundation3// SPDX-License-Identifier: Apache-2.04//5// Copyright © 2017 Trust Wallet.6//7// This is a GENERATED FILE, changes made here WILL BE LOST.8//910import Foundation1112/// Base32 encode / decode functions13public struct Base32 {1415 /// Decode a Base32 input with the given alphabet16 ///17 /// - Parameter string: Encoded base32 input to be decoded18 /// - Parameter alphabet: Decode with the given alphabet, if nullptr ALPHABET_RFC4648 is used by default19 /// - Returns: The decoded data, can be null.20 /// - Note: ALPHABET_RFC4648 doesn't support padding in the default alphabet21 public static func decodeWithAlphabet(string: String, alphabet: String?) -> Data? {22 let stringString = TWStringCreateWithNSString(string)23 defer {24 TWStringDelete(stringString)25 }26 let alphabetString: UnsafeRawPointer?27 if let s = alphabet {28 alphabetString = TWStringCreateWithNSString(s)29 } else {30 alphabetString = nil31 }32 defer {33 if let s = alphabetString {34 TWStringDelete(s)35 }36 }37 guard let result = TWBase32DecodeWithAlphabet(stringString, alphabetString) else {38 return nil39 }40 return TWDataNSData(result)41 }4243 /// Decode a Base32 input with the default alphabet (ALPHABET_RFC4648)44 ///45 /// - Parameter string: Encoded input to be decoded46 /// - Returns: The decoded data47 /// - Note: Call TWBase32DecodeWithAlphabet with nullptr.48 public static func decode(string: String) -> Data? {49 let stringString = TWStringCreateWithNSString(string)50 defer {51 TWStringDelete(stringString)52 }53 guard let result = TWBase32Decode(stringString) else {54 return nil55 }56 return TWDataNSData(result)57 }5859 /// Encode an input to Base32 with the given alphabet60 ///61 /// - Parameter data: Data to be encoded (raw bytes)62 /// - Parameter alphabet: Encode with the given alphabet, if nullptr ALPHABET_RFC4648 is used by default63 /// - Returns: The encoded data64 /// - Note: ALPHABET_RFC4648 doesn't support padding in the default alphabet65 public static func encodeWithAlphabet(data: Data, alphabet: String?) -> String {66 let dataData = TWDataCreateWithNSData(data)67 defer {68 TWDataDelete(dataData)69 }70 let alphabetString: UnsafeRawPointer?71 if let s = alphabet {72 alphabetString = TWStringCreateWithNSString(s)73 } else {74 alphabetString = nil75 }76 defer {77 if let s = alphabetString {78 TWStringDelete(s)79 }80 }81 return TWStringNSString(TWBase32EncodeWithAlphabet(dataData, alphabetString))82 }8384 /// Encode an input to Base32 with the default alphabet (ALPHABET_RFC4648)85 ///86 /// - Parameter data: Data to be encoded (raw bytes)87 /// - Returns: The encoded data88 /// - Note: Call TWBase32EncodeWithAlphabet with nullptr.89 public static func encode(data: Data) -> String {90 let dataData = TWDataCreateWithNSData(data)91 defer {92 TWDataDelete(dataData)93 }94 return TWStringNSString(TWBase32Encode(dataData))95 }969798 init() {99 }100101102}103