4 Commits
1.0.0 ... main

Author SHA1 Message Date
Daniel Arantes Loverde
4f84dfb108 Update README.md 2025-09-02 17:28:28 -03:00
08519d1aca Merge branch 'feature/LCECryptoKit' into main 2025-08-25 19:54:11 +00:00
Daniel Arantes Loverde
7ac2ccb21f v1.0.1
new repo access updated
2025-08-25 16:52:42 -03:00
Daniel Arantes Loverde
d2ca6e54d2 Improvements 2025-08-15 10:57:14 -03:00
5 changed files with 64 additions and 12 deletions

View File

@@ -1,13 +1,13 @@
{ {
"originHash" : "ef48d023f19d8a2c259992041cec23f906eb03f03bebe9fca0d61ede6bf8de57", "originHash" : "c64eb123858a637db7dce26475a35db7adb60ead911617c384beba36afa95bc5",
"pins" : [ "pins" : [
{ {
"identity" : "lcecryptokitbinary", "identity" : "lcecryptokitbinary",
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
"location" : "http://7b47f7b439df1048cbf2fae1c46113df178e0349@git.loverde.com.br:3000/git/LCECryptoKitBinary.git", "location" : "https://60c260c85d3a2fe840411b0ff98f521b5eca3c56@git.loverde.com.br/Loverde-Company-LTDA/LCECryptoKitBinary.git",
"state" : { "state" : {
"revision" : "2e7850fdb14cacf6bf2eb160f64c3df84cf5b1c4", "revision" : "2e7850fdb14cacf6bf2eb160f64c3df84cf5b1c4",
"version" : "1.1.0" "version" : "1.0.0"
} }
} }
], ],

View File

@@ -21,8 +21,8 @@ let package = Package(
.package( .package(
url: isLocalDevelopment ? url: isLocalDevelopment ?
"../LCECryptoKit/PrivateLib/LCECryptoKitBinary" : "../LCECryptoKit/PrivateLib/LCECryptoKitBinary" :
"http://7b47f7b439df1048cbf2fae1c46113df178e0349@git.loverde.com.br:3000/git/LCECryptoKitBinary.git", "https://60c260c85d3a2fe840411b0ff98f521b5eca3c56@git.loverde.com.br/Loverde-Company-LTDA/LCECryptoKitBinary.git",
exact: "1.1.0" exact: "1.0.0"
) )
], ],
targets: [ targets: [

View File

@@ -17,14 +17,14 @@ Installation
#### Swift Package Manager (SPM) #### Swift Package Manager (SPM)
``` swift ``` swift
dependencies: [ dependencies: [
.package(url: "http://git.loverde.com.br:3000/git/LCEssentials.git", .upToNextMajor(from: "1.0.0")) .package(url: "https://git.loverde.com.br/Loverde-Company-LTDA/LCEssentials", .upToNextMajor(from: "1.0.0"))
] ]
``` ```
You can also add it via XCode SPM editor with URL: You can also add it via XCode SPM editor with URL:
``` swift ``` swift
http://git.loverde.com.br:3000/git/LCEssentials.git https://git.loverde.com.br/Loverde-Company-LTDA/LCEssentials
``` ```
## Usage example ## Usage example

View File

@@ -0,0 +1,41 @@
//
// Copyright (c) 2025 Loverde Co.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
import Foundation
import LCECryptoKit
public final class LCECrypto {
private let hashKey: String
init(privateKey: String){
self.hashKey = privateKey
}
func encodeOTP(email: String, password: String) -> String? {
return LCECryptoKit.encodeSeed(email: email, password: password, hashKey: self.hashKey)
}
func decodeOTP(_ otpHash: String) -> Bool {
LCECryptoKit.decodeSeed(otpKey: otpHash, hashKey: self.hashKey)
}
}

View File

@@ -129,15 +129,26 @@ public struct API {
// Add the file // Add the file
let fileName = fileURL.lastPathComponent let fileName = fileURL.lastPathComponent
let mimeType = mimeTypeForPath(path: fileName) let mimeType = mimeTypeForPath(path: fileName)
printInfo(title: "Body size before", msg: "\(body.count) bytes")
let fileData: Data
do {
fileData = try Data(contentsOf: fileURL)
printInfo(title: "Body size after", msg: "\(body.count) bytes")
} catch {
printError(title: "Upload File", msg: error.localizedDescription)
throw error
}
do { do {
let fileData = try Data(contentsOf: fileURL)
body.append("--\(boundary)\r\n".data(using: .utf8)!) body.append("--\(boundary)\r\n".data(using: .utf8)!)
body.append("Content-Disposition: form-data; name=\"file\"; filename=\"\(fileName)\"\r\n".data(using: .utf8)!) body.append("Content-Disposition: form-data; name=\"file\"; filename=\"\(fileName)\"\r\n".data(using: .utf8)!)
body.append("Content-Type: \(mimeType)\r\n\r\n".data(using: .utf8)!) body.append("Content-Type: \(mimeType)\r\n\r\n".data(using: .utf8)!)
body.append(fileData) let fileDataCopy = Data(fileData)
body.append("\r\n".data(using: .utf8)!) body.append(fileDataCopy)
} catch { let dataUTF8 = "\r\n".data(using: .utf8)!
printError(title: "Upload File", msg: error.localizedDescription) body.append(dataUTF8)
printInfo(title: "Body size after", msg: "\(body.count) bytes")
} }
// Finalize the request body // Finalize the request body