ti-dh-swift
Diffie-Hellman 密钥交换可以与客户端和服务端一起使用,支持iOS和macOS
ti-dh (服务端API)说明:
genereate_server_number()函数
参数:无需任何参数
返回:随机10000-99999的数字字符串
genereate_info()函数
参数:
字段 | 含义 |
---|---|
width | 随机质数长度 |
server_number | 随机私钥字符串 |
返回:Swift元组
字段 | 含义 |
---|---|
p | 服务端计算出来的p,返回给客户端 |
g | 服务端计算出来的g,返回给客户端 |
server_number | 服务端【私钥】,请保密,不可以外泄 |
processed_server_number | 处理过的服务端【私钥】,返回给客户端 |
compute_share_key()函数
原型:string compute_share_key( string client_number, string server_number, string p )
参数:
字段 | 含义 |
---|---|
client_number | 客户端提交过来的client_number |
server_number | 服务端server_number,未经处理的那个需要保密 |
p | 服务端计算出来的p |
输出:String,最终结果就是协商完成的用于对称加解密的密钥
ti-dh-lite (客户端API)说明:
genereate_client_number()函数
参数:无需任何参数
返回:随机10000-99999的数字字符串
process_client_number()函数
原型:string process_client_number(string g,string client_number,string p) 参数:
字段 | 含义 |
---|---|
g | 服务端计算出来的g |
client_number | genereate_client_number()生成的client_number |
p | 服务端计算出来的p |
输出:处理过的客户端【私钥】
process_client_key()函数
原型:string process_client_key(string server_number,string client_number,string p) 参数:
字段 | 含义 |
---|---|
server_number | 服务器给的processed_server_number |
client_number | genereate_client_number()生成的client_number |
p | 服务端计算出来的p |
输出:客户端公钥 与服务器的compute_share_key比较
安装
-
Swift包管理器: 虽然包管理器仍处于初级阶段,BigInt 提供了对它的实验性支持。将此添加到您的
Package.swift
清单的依赖部分.package(url: "https://github.com/ti-dh/ti-dh-swift.git", from: "1.0.0")
-
CocoaPods: 将此放入您的
Podfile
pod 'ti-dh-swift', '~> 1.0'
-
Carthage: 将此放入您的
Cartfile
github "ti-dh/ti-dh-swift" ~> 1.0