mirror of
https://github.com/laosb/swift-minisign.git
synced 2025-04-30 18:01:08 +00:00
Compare commits
5 commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
94a251ed0c | ||
![]() |
c600a12016 | ||
![]() |
d2657b54f3 | ||
![]() |
e10a2449c8 | ||
![]() |
1a762651b6 |
4 changed files with 14 additions and 13 deletions
|
@ -8,9 +8,8 @@ let package = Package(
|
|||
platforms: [
|
||||
.macOS(.v10_15),
|
||||
.iOS(.v13),
|
||||
.visionOS(.v1),
|
||||
.watchOS(.v6),
|
||||
.tvOS(.v13),
|
||||
.watchOS(.v6)
|
||||
],
|
||||
products: [
|
||||
// Products define the executables and libraries a package produces, making them visible to other packages.
|
||||
|
@ -28,7 +27,7 @@ let package = Package(
|
|||
.default(enabledTraits: ["UseSwiftCrypto"]),
|
||||
],
|
||||
dependencies: [
|
||||
.package(url: "https://github.com/apple/swift-crypto", from: "2.0.0"),
|
||||
.package(url: "https://github.com/apple/swift-crypto", "1.0.0" ..< "4.0.0"),
|
||||
.package(url: "https://github.com/lovetodream/swift-blake2", from: "0.1.0")
|
||||
],
|
||||
targets: [
|
||||
|
@ -45,5 +44,6 @@ let package = Package(
|
|||
name: "MinisignTests",
|
||||
dependencies: ["Minisign"]
|
||||
),
|
||||
]
|
||||
],
|
||||
swiftLanguageModes: [.v6]
|
||||
)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// swift-tools-version: 5.8
|
||||
// swift-tools-version: 5.9
|
||||
|
||||
import PackageDescription
|
||||
|
||||
|
@ -7,9 +7,8 @@ let package = Package(
|
|||
platforms: [
|
||||
.macOS(.v10_15),
|
||||
.iOS(.v13),
|
||||
.visionOS(.v1),
|
||||
.tvOS(.v13),
|
||||
.watchOS(.v6),
|
||||
.tvOS(.v13),
|
||||
],
|
||||
products: [
|
||||
// Products define the executables and libraries a package produces, making them visible to other packages.
|
||||
|
@ -19,7 +18,7 @@ let package = Package(
|
|||
)
|
||||
],
|
||||
dependencies: [
|
||||
.package(url: "https://github.com/apple/swift-crypto", from: "2.0.0"),
|
||||
.package(url: "https://github.com/apple/swift-crypto", "1.0.0" ..< "4.0.0"),
|
||||
.package(url: "https://github.com/lovetodream/swift-blake2", from: "0.1.0"),
|
||||
],
|
||||
targets: [
|
||||
|
@ -40,5 +39,5 @@ let package = Package(
|
|||
dependencies: ["Minisign"]
|
||||
),
|
||||
],
|
||||
swiftLanguageModes: [.version("6"), .v5],
|
||||
swiftLanguageVersions: [.version("6"), .v5]
|
||||
)
|
|
@ -1,5 +1,8 @@
|
|||
# Swift Minisign
|
||||
|
||||
[](https://swiftpackageindex.com/laosb/swift-minisign)
|
||||
[](https://swiftpackageindex.com/laosb/swift-minisign)
|
||||
|
||||
Swift implementation of Minisign, a simple and secure tool for signing and verifying files.
|
||||
|
||||
This is a fork of [slarew/swift-minisign](https://github.com/slarew/swift-minisign), with these improvements:
|
||||
|
|
|
@ -6,9 +6,9 @@ import BLAKE2
|
|||
import Foundation
|
||||
|
||||
#if UseSwiftCrypto
|
||||
import Crypto
|
||||
@preconcurrency import Crypto
|
||||
#else
|
||||
import CryptoKit
|
||||
@preconcurrency import CryptoKit
|
||||
#endif
|
||||
|
||||
public enum SignatureAlgorithm: Sendable, RawRepresentable {
|
||||
|
@ -87,13 +87,12 @@ public struct PublicKey: Sendable {
|
|||
///
|
||||
/// This method reads the file in chunks to avoid loading the entire file into memory, but does so in a blocking manner.
|
||||
/// It's recommended to use this method in a background thread or task.
|
||||
public func isValidSignature(_ signature: Signature, forFileAt url: URL) throws -> Bool {
|
||||
public func isValidSignature(_ signature: Signature, forFileAt url: URL, bufferSize: Int = 8192) throws -> Bool {
|
||||
guard signature.signatureAlgorithm == .hashedEdDSA else { throw SignatureVerifyError.algorithmNotSupportedForFile }
|
||||
var blake2b = try! BLAKE2b()
|
||||
|
||||
let fileHandle = try FileHandle(forReadingFrom: url)
|
||||
|
||||
let bufferSize = 4096
|
||||
while true {
|
||||
let data = fileHandle.readData(ofLength: bufferSize)
|
||||
if data.isEmpty { break }
|
||||
|
|
Loading…
Add table
Reference in a new issue