【发布时间】:2015-05-02 16:55:23
【问题描述】:
我想使用 RSA 加密数据,我试图在我的代码中生成密钥并且它正在工作,但我真正需要的是从服务器获取公钥作为字符串,然后将其用作 Seckey,以便我可以使用它使用 RSA 加密数据, 我试过这段代码:
//KeyString is the string of the key from server
let KeyData = (keyString as NSString).dataUsingEncoding(NSUTF8StringEncoding) as NSData!
var cert : Unmanaged<SecCertificateRef>!;
var policy : Unmanaged<SecPolicy>!;
cert = SecCertificateCreateWithData(kCFAllocatorDefault, KeyData);
policy = SecPolicyCreateBasicX509();
var status : OSStatus = noErr
var trust: SecTrust?
var certArray : [Unmanaged<SecCertificateRef>!] = [cert];
var certArrayPointer = UnsafeMutablePointer<UnsafePointer<Void>>(certArray)
status = SecTrustCreateWithCertificates(cert, policy, trust);
let publicKey: SecKeyRef = SecTrustCopyPublicKey(trust!).takeUnretainedValue()
我无法运行此代码,因为 SecTrustCreateWithCertificates 方法期望证书为 anyObject! ,我不知道如何解决这个问题,如果解决这个问题会让我得到 SecKey。
我从this answer in objective-c 得到了上面的代码
所以如果有人可以帮助我获得正确的代码来解决这个问题,我将非常感激:)
【问题讨论】:
标签: ios swift public-key-encryption encryption-asymmetric seckeyref