Virgil Security Objective-C/Swift 加密库
简介 | 库用途 | 用法示例 | 安装 | 文档 | 许可证 | 联系方式
简介
VirgilCrypto 是一套安全库(ECIES 与 Crypto Agility 一起封装在 Virgil Cryptogram 中)和一个开源的、高级的 加密库,它允许您在数字解决方案中执行存储和传输数据的所有必要操作。加密库是用 C++ 编写的,适用于移动和服务器平台。
Virgil Security,Inc. 引导软件开发者进入一个即将到来的加密世界,在这个世界中,一切都将被加密(密码将会消失)。在这个世界里,开发者无需筹集数百万美元来构建安全的聊天、安全的电子邮件、安全的文件共享或任何其他安全应用的时代已经结束。现在开发者可以专注于构建让他们在市场竞争中获得优势的功能,而最终用户则可以享受到他们日益需求的隐私和安全性。
图书馆用途
- 非对称密钥生成
- 数据流加密/解密
- 数字签名的生成/验证
- 完美前向安全性(PFS)
使用示例
生成密钥对
使用默认算法(EC_X25519)生成私钥
import VirgilCryptoApiImpl
let crypto = VirgilCrypto()
let keyPair = try! crypto.generateKeyPair()
生成并验证签名
使用私钥生成签名并签署数据
import VirgilCryptoApiImpl
let crypto = VirgilCrypto()
// prepare a message
let messageToSign = "Hello, Bob!"
let dataToSign = messageToSign.data(using: .utf8)!
// generate a signature
let signature = try! crypto.generateSignature(of: dataToSign, using: senderPrivateKey)
使用公钥验证签名
import VirgilCryptoApiImpl
let crypto = VirgilCrypto()
// verify a signature
let verified = crypto.verifySignature(signature, of: dataToSign, with: senderPublicKey)
加密和解密数据
在公钥上加密数据
import VirgilCryptoApiImpl
let crypto = VirgilCrypto()
// prepare a message
let messageToEncrypt = "Hello, Bob!"
let dataToEncrypt = messageToEncrypt.data(using: .utf8)!
// encrypt the message
let encryptedData = try! crypto.encrypt(dataToEncrypt, for: [receiverPublicKey])
使用私钥解密加密数据
import VirgilCryptoApiImpl
let crypto = VirgilCrypto()
// prepare data to be decrypted
let decryptedData = try! crypto.decrypt(encryptedData, with: receiverPrivateKey)
// decrypt the encrypted data using a private key
let decryptedMessage = String(data: decryptedData, encoding: .utf8)!
需要更多示例?请访问我们的开发者文档。
安装
VirgilCrypto提供一系列框架。这些框架通过Carthage和CocoaPods分发。
所有框架都适用于
- iOS 9.0+
- macOS 10.10+
- tvOS 9.0+
- watchOS 2.0+
COCOAPODS
CocoaPods 是 Cocoa 项目的依赖管理器。您可以使用以下命令来安装它:
$ gem install cocoapods
使用 CocoaPods 将 VirgilCrypto 集成到您的 Xcode 项目中,请在您的 Podfile 中指定它
target '<Your Target Name>' do
use_frameworks!
pod 'VirgilCryptoApiImpl', '~> 3.2'
end
然后,运行以下命令:
$ pod install
Carthage
Carthage 是一个集中式依赖管理器,它会构建您的依赖项并向您提供二进制框架。
您可以使用以下命令使用 Homebrew 来安装 Carthage:
$ brew update
$ brew install carthage
要使用 Carthage 将 VirgilSDK 集成到您的 Xcode 项目中,在您的项目根目录中创建一个名为 Cartfile 的空文件,并在您的 Cartfile 中添加以下行:
github "VirgilSecurity/virgil-crypto-x" ~> 3.2
针对预构建的二进制文件链接
要链接预构建框架到您的应用程序中,请运行以下命令:
$ carthage update --no-use-binaries
这将构建每个依赖项或从 GitHub 发布版中下载预编译的框架。
针对 iOS/tvOS/watchOS 进行编译
在您的应用程序目标“常规”设置选项卡的“链接框架和库”部分,从您的项目文件夹的 Carthage/Build 文件夹中添加以下框架:
- VirgilCryptoAPI
- VirgilCryptoApiImpl
- VirgilCrypto
- VSCCrypto
在您的应用程序目标“构建阶段”设置选项卡的“+”图标上点击,然后选择“新建运行脚本阶段”。创建一个运行脚本,在下面的脚本区域指定您的 shell(例如: /bin/sh),然后在 shell 下方添加以下内容
/usr/local/bin/carthage copy-frameworks
并在“输入文件”下添加您想要使用的框架的路径,例如
$(SRCROOT)/Carthage/Build/iOS/VirgilCryptoAPI.framework
$(SRCROOT)/Carthage/Build/iOS/VirgilCryptoAPIImpl.framework
$(SRCROOT)/Carthage/Build/iOS/VirgilCrypto.framework
$(SRCROOT)/Carthage/Build/iOS/VSCCrypto.framework
针对 macOS 的构建
在你的应用程序目标的“常规”设置选项卡中,在“嵌入的二进制文件”部分,从磁盘上的 Carthage/Build 文件夹拖放以下框架
- VirgilCryptoAPI
- VirgilCryptoApiImpl
- VirgilCrypto
- VSCCrypto
此外,你还需要将 macOS 的调试符号复制到 macOS 上进行调试和崩溃报告。
在你的应用程序目标的“构建阶段”设置选项卡中,单击“+”图标并选择“新复制文件阶段”。单击“目标”下拉菜单并选择“产品目录”。对于每个框架,将相应的 dSYM 文件拖放到目标中。
作为子项目整合
可以使用 Carthage 仅用于获取正确源码以便进一步集成到项目中。运行以下命令
$ carthage update --no-build
这将在项目文件夹内的 Carthage/Checkouts 文件夹中获取依赖项。然后,将 Carthage/Checkouts 文件夹内的 VirgilCrypto.xcodeproj 和 VirgilCryptoAPI.xcodeproj 从对应的文件夹拖放到 Xcode 项目的导航侧边栏
接下来,在应用程序目标的“常规”设置选项卡中,在“嵌入的二进制文件”部分添加以下子项目框架
- VirgilCryptoAPI
- VirgilCryptoApiImpl
- VirgilCrypto
- VSCCrypto
文档
许可协议
此库根据3-clause BSD 许可协议授权。
支持
我们的开发者支持团队为您提供帮助。
您可以在Twitter上找到我们或给我们发送电子邮件:[email protected]
此外,您还可以在我们的支持团队的帮助下在 Slack 获得额外帮助。