SignatureBiometricSwift
使用 iOS 本地认证生成密钥对和签名(使用 ECDSA 的 NIST P-256 EC 密钥对)。
密钥链
SecKeyAlgorithm
https://developer.apple.com/documentation/security/seckeyalgorithm/
Android
https://github.com/prongbang/SignatureBiometricSwift
CocoaPods
pod 'SignatureBiometricSwift'
Swift Package 管理器
在您的 Package.swift
文件中,将 SignatureBiometricSwift
依赖项添加到相应的目标中。
let package = Package(
dependencies: [
.package(url: "https://github.com/prongbang/SignatureBiometricSwift.git", from: "1.0.7"),
],
)
如何使用
隐私 info.plist
<dict>
<key>NSFaceIDUsageDescription</key>
<string>This application wants to access your TouchID or FaceID</string>
</dict>
初始化
import SignatureBiometricSwift
let keyConfig = KeyConfig(name: "com.prongbang.signx.kSecAccKey")
let signatureBiometricManager = LocalSignatureBiometricManager.newInstance(
keyConfig: keyConfig
)
生成密钥对
import SignatureBiometricSwift
let reason = "Please scan your fingerprint (or face) to authenticate"
signatureBiometricManager.createKeyPair(reason: reason) { result in
if result.status == SignatureBiometricStatus.success {
let publicKey = result.publicKey ?? ""
print("publicKey: \(publicKey)")
} else {
print("Error: \(result.status)")
}
}
签名
import SignatureBiometricSwift
let clearText = "Hello"
signatureBiometricManager.sign(payload: clearText) { result in
if result.status == SignatureBiometricStatus.success {
print("signature: \(result.signature)")
} else {
print("Error: \(result.status)")
}
}
验证
import SignatureBiometricSwift
let clearText = "Hello"
let reason = "Please scan your fingerprint (or face) to authenticate"
signatureBiometricManager.verify(reason: reason, payload: clearText, signature: signed) { result in
if result.status == SignatureBiometricStatus.success {
print("verified: \(result.verified)")
} else {
print("Error: \(result.status)")
}
}