ti_dh 1.0

ti_dh 1.0

Zhao Yiqi 维护。



ti_dh 1.0

  • heroims

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