HKDF
基于HMAC的提取和扩展密钥派生函数(HKDF),如RFC 5869中定义。HMAC由libsodium提供,使用HMAC-SHA-512/256算法。
安装
SPM
.package(url: "https://github.com/TICESoftware/HKDF.git", .upToNextMajor(from: "1.0.0"))
为了构建库,需要链接libsodium。官方仓库包含了为特定平台构建二进制文件的脚本。
swift build -Xcc -I[header search path] -Xlinker -L[binary path]
当使用Xcode时,您可以手动设置头文件搜索路径,包括libsodium的头文件,并链接静态libsodium库。
CodoaPods
pod 'HKDF'
这使用Sodium
作为依赖,它包含预编译的libsodium库。无需其他设置。
用法
从某些密钥材料 ikm
中派生一个新的 32 字节长密钥
import HKDF
let ikm = "Input key".bytes
let hkdfKey = try! deriveHKDFKey(ikm: ikm, L: 32)
还可以提供 盐
和一些特定于应用的信息字符串(该字符串被哈希成 HMAC)
尝试调用 deriveHKDFKey(ikm: ikm, salt: salt, info: "Info", L: 32)