我在iOS上的Swift中使用SecKeyCreateSignature用128字节私钥对我的数据进行签名,但结果签名的大小为256字节。
以下是我用于签名的功能:
let algorithm: SecKeyAlgorithm = .rsaSignatureDigestPKCS1v15Raw
guard SecKeyIsAlgorithmSupported(privateKey, .sign, algorithm) else {
return nil
}
var error: Unmanaged<CFError>?
guard let signature = SecKeyCreateSignature(privateKey,
algorithm,
data as CFData,
&error) as Data? else {
return nil
}
为什么签名大小与密钥大小不同?不应该是相同的大小?
提前致谢!
编辑:这是一个由bas64编码的签名,由密钥对生成,密钥大小为512位:
kMgncWoSSGY0je/b4WhW3WupFo4N83skfvT4kDm2uZigSlSzCfh0NT3tgRR2n5VAEhxxfJxQEhv/LA9VmwOirw6lzwYR7Ori4lr2+dj4Ox3L2aj8VytF13OvuY7dTonQknqRkiZLigyvHZLn9bMYMmAgkC35zvqp3NFJ4BkzLLE=
使用SecKeyCopyExternalRepresentation检索pkcs#1格式的相应公钥:
3048024100e3a94a8119c5d3e3b36e83a4b30055dea0c23b9cfa2a44228f5ac3ee4d8e5b4d2a26060bd9a09bf6e5bb1b9cbb58e36171584dccbc008d55081ef461e1488be10203010001