RSA使用128字节密钥对数据进行签名,但获得256字节签名

时间:2017-07-13 22:27:29

标签: ios swift rsa digital-signature

我在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

0 个答案:

没有答案