DRACOON Swift Crypto SDK
一个实现 DRACOON 客户端加密的库。
简介
有关 DRACOON 客户端加密的详细信息,请参阅此处
https://support.dracoon.com/hc/en-us/articles/360000986345
设置
最低要求
Xcode 12.3
Swift 包管理器
将以下行添加到 Package.swift 的依赖项部分
.package(name: "crypto_sdk", url: "https://github.com/dracoon/dracoon-swift-crypto-sdk", .upToNextMajor(from: "2.2.0"))
Carthage
将 SDK 添加到您的 Cartfile
github "dracoon/dracoon-swift-crypto-sdk.git" ~> 2.2.0
然后运行
carthage update --platform iOS
以创建框架或
carthage update --use-xcframeworks --platform iOS
以创建 xcframework。
CocoaPods
添加到您的 Podfile
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '12.0'
use_frameworks!
target '<Your Target Name>' do
pod 'DRACOON-Crypto-SDK', '~> v2.2.0'
end
然后运行
pod install
示例
示例 playground 可在此处找到: Example/CryptoSDK.playground
该示例展示了完整的加密流程,即生成用户密钥对、验证用户密钥对、生成文件密钥、加密文件密钥,最后加密和解密一个文件。
// --- INITIALIZATION ---
let crypto = Crypto()
// Generate key pair
let userKeyPair = try crypto.generateUserKeyPair(password: USER_PASSWORD)
// Check key pair
if !crypto.checkUserKeyPair(keyPair: userKeyPair, password: USER_PASSWORD) {
...
}
let plainData = plainText.data(using: .utf8)
...
// --- ENCRYPTION ---
// Generate plain file key
let plainFileKey = try crypto.generateFileKey()
// Encrypt blocks
let encryptionCipher = try crypto.createEncryptionCipher(fileKey: fileKey)
let encData = try encryptionCipher.processBlock(fileData: plainData)
try encryptionCipher.doFinal()
// Encrypt file key
let encryptedKey = try crypto.encryptFileKey(fileKey: plainFileKey, publicKey: userKeyPair.publicKeyContainer)
...
// --- DECRYPTION ---
// Decrypt file key
let decryptedKey = try crypto.decryptFileKey(fileKey: encryptedKey, privateKey: userKeyPair.privateKeyContainer,
USER_PASSWORD)
// Decrypt blocks
let decryptionCipher = try crypto.createDecryptionCipher(fileKey: fileKey)
let decData = try decryptionCipher.processBlock(fileData: encData)
try decryptionCipher.doFinal()
...
构建 boringSSL
如需更新加密库,请调整并运行
./build-boringssl.sh
然后从输出目录复制内容到 'OpenSSL' 目录。
版权声明和许可
参见 LICENSE