相关疑难解决方法(0)

我可以从Swift中的SecKeyRef对象获得模数或指数吗?

在Swift中,我SecKeyRef通过调用SecTrustCopyPublicKey一些原始的X509证书数据来创建一个对象.这就是这个SecKeyRef对象的样子.

Optional(<SecKeyRef algorithm id: 1,
key type: RSAPublicKey,
version: 3, block size: 2048 bits,
exponent: {hex: 10001, decimal: 65537},
modulus: <omitted a bunch of hex data>,
addr: 0xsomeaddresshere>)
Run Code Online (Sandbox Code Playgroud)

基本上,这个SecKeyRef对象包含大量关于公钥的信息,但似乎没有办法将它实际转换SecKeyRef为字符串NSData,或其他任何东西(这是我的目标,只是为了得到一个base64公钥).

但是,我有一个函数,我可以给一个modulus和一个exponent,它只会计算公钥是什么.我通过传递从上面记录的数据来测试它SecKeyRef.

但不知怎的,我无法从SecKeyRef对象访问这些属性(我只能在控制台中看到整个对象;例如,我SecKeyRef.modulus似乎无法做或任何类型的东西,似乎).

我的问题:我如何访问SecKeyRef.modulus,或者将其转换SecKeyRefNSData类似的东西?谢谢

编辑

(欲获得更多信息)

我正在创建我的SecKeyRef动态,通过这个函数,我有:

func bytesToPublicKey(certData: NSData) -> SecKeyRef? {
    guard let certRef = SecCertificateCreateWithData(nil, …
Run Code Online (Sandbox Code Playgroud)

encryption cryptography public-key-encryption ios swift

25
推荐指数
3
解决办法
6199
查看次数

将公钥(在iPhone中生成为seckeyref)发送到服务器(在Java中)

我需要将SecKeyGeneratePair生成的公钥作为SecKeyRef对象发送.现在,为了发送它,我需要这个KeyRef对象是一个字符串格式.

如何将SecKeyRef对象转换为nsstring对象?

security iphone

11
推荐指数
2
解决办法
5739
查看次数

比较ios Swift中的两个secKey(公钥)

我想在swift中使用ssl公钥固定,我读了很多例子怎么做,最后想想我找不到的是如何比较SecKey对象格式的两个公钥.例:

let serverPublicKey = SecTrustCopyPublicKey(secTrust) /*return SecKey object from actual SecTrust*/
let clientPublicKey = getLocalPublicKeyFromDer() /*return SecKey from .der local*/
Run Code Online (Sandbox Code Playgroud)

如何比较它们?现在我这样做,它的工作原理:

if(serverPublicKey! as AnyObject).isEqual(clientPublicKey){
  /*Key is the same, pinning OK!*/
}
Run Code Online (Sandbox Code Playgroud)

在gitHub上找到它的方式:https://github.com/teamcarma/IOS-AlamofireDomain/blob/master/Source/ServerTrustPolicy.swift

但是转向AnyObject是一个好主意吗?如何工作isEqual在铸造的SecKey?可以解释一下吗?

PS.另一个想法是从SecKey获取base64 - 我尝试它也可以工作,但它需要一个KeyChain临时操作,看起来没有专业.

security ios swift

6
推荐指数
1
解决办法
1464
查看次数

Swift 3将SecKey导出为String

我正在使用swift 3开发iOS应用程序.

我需要将一个SecKey(用户RSA公钥引用)导出到一个字符串(例如base64),以便通过生成的QRCode共享它.

它还必须以另一种方式工作,因为扫描的其他用户QRCode将能够SecKey从QRCode中提取的字符串重建引用.

我发现很少有教程,但我不明白我需要从SecKey引用中提取什么,我不知道如何将它转换为String.

public-key-encryption ios swift seckeyref swift3

5
推荐指数
1
解决办法
6225
查看次数