Как получить SecIdentity после SecCertificateCreateWithData и SecItemAdd? - PullRequest
0 голосов
/ 22 декабря 2018

Мне дали файл .cer, который необходимо использовать для правильного подключения к серверу.Сначала произошел сбой SecCertificateCreateWithData, поэтому после исследования мне пришлось конвертировать файл .cer в формат der (openssl x509 -in cert.cer -outform der -out certder.der), а затем iOS, похоже, приняла его.

Мне нужно получить объект SecIdentity, однако, похоже, проблема:

let cerPath = Bundle.main.path(forResource: "certder", ofType: "der")

    let data: NSData = try! Data(contentsOf: URL(fileURLWithPath: cerPath!)) as! NSData
    let cert: SecCertificate = SecCertificateCreateWithData(nil, data)!


    let params : [String: Any] = [
        kSecClass as String : kSecClassCertificate,
        kSecValueRef as String : cert,
        kSecAttrLabel as String: "label1",
    ]
    SecItemDelete(params as CFDictionary)
    let status = SecItemAdd(params as CFDictionary, nil)
    print("status1: \(status)")


    let query: [String: Any] = [
        kSecClass as String : kSecClassIdentity,
        kSecReturnRef as String: true,
        kSecAttrLabel as String: "label1"
    ]

    var secIdentity: SecIdentity?
    var extractedData: AnyObject?
    let status2 = SecItemCopyMatching(query as NSDictionary, &extractedData)
    print("status2: \(status2)")

    if (status2 == errSecSuccess) {
        print("success")
        secIdentity = extractedData as! SecIdentity?
    }

Журнал: status1: 0 status2: -25300.Ошибка -25300 равна errSecItemNotFound

Вот как выглядит информация о данном сертификате:

openssl x509 -in cert.cer -text Certificate: Data: Version: 3 (0x2) Serial Number: 1465898828 (0x575fd74c) Signature Algorithm: sha256WithRSAEncryption Issuer: C=LT, L=NamePurposelyHidden, O=NamePurposelyHidden, OU=NamePurposelyHidden, CN=NamePurposelyHidden Validity Not Before: Aug 9 08:21:03 2014 GMT Not After : Jul 27 08:21:03 2064 GMT Subject: C=LT, L=NamePurposelyHidden, O=NamePurposelyHidden, OU=NamePurposelyHidden, CN=NamePurposelyHidden Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:b6:26:54:85:05:15:bd:2f:af:39:c0:91:41:05: d2:35:74:bf:d2:e5:35:2d:3d:21:60:15:6b:d9:f6: 66:2b:02:29:c9:94:8b:3c:36:af:f8:5a:05:0f:21: 25:7d:90:5b:ab:70:f5:85:e8:ce:8a:60:2b:a4:61: 36:a8:b9:16:f6:79:7b:e1:1f:37:83:5b:fd:18:db: 70:7a:dd:79:3b:74:0d:4b:4f:4d:49:8c:79:0b:8c: c1:2e:7c:4c:62:ae:b3:e4:b5:cf:4b:20:2c:98:20: 4a:4c:dd:49:67:99:7f:c1:dd:39:4d:be:8c:b7:6a: b8:e6:c3:e3:a8:03:21:ec:a3:c8:e4:46:d7:e6:d4: 83:4a:5a:d7:a1:35:6f:54:72:96:b2:52:54:37:d4: b4:62:f8:07:eb:27:d5:f0:42:0f:5a:3a:b8:ae:78: 38:73:e4:b5:7c:d1:6b:e4:61:6e:fd:df:c8:03:a4: 8d:fe:d3:92:98:df:30:fb:e1:03:45:cb:dd:6a:ca: 50:25:b2:a6:4b:4a:64:e0:79:a6:ef:35:53:df:d9: 48:16:f8:39:08:94:9b:8e:f0:74:01:ae:76:46:9c: 9c:a3:ec:70:45:24:44:96:3d:b4:06:51:2e:1e:dd: 4d:72:09:0d:9d:f1:11:08:9d:24:4b:5c:3e:79:0b: b9:c7 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Key Identifier: AE:95:DF:CD:E0:D9:BB:D1:8E:CD:15:86:98:9B:04:35:D7:E6:96:44 Signature Algorithm: sha256WithRSAEncryption 61:d3:98:46:a9:53:db:fc:a9:3b:db:40:40:63:55:7c:66:74: 35:82:83:c8:19:4a:89:ae:bd:1b:5c:26:8e:20:f9:5b:db:aa: 0c:4c:99:4e:28:3b:51:00:33:96:5f:22:40:c1:c1:c8:ed:70: d7:f7:3e:aa:ec:f9:0e:bb:ec:f8:17:12:c1:49:f6:02:0d:73: 57:39:48:5d:ad:8f:e5:e9:3b:b1:f8:1d:d4:7e:cf:58:d5:78: 73:9c:56:3b:bb:3a:25:36:c8:3b:b8:ba:90:97:6e:28:51:5d: 63:23:3e:90:7d:87:61:13:03:c5:27:1b:51:55:c0:17:76:18: 1a:74:6d:f9:2c:c8:f1:7a:89:64:41:fc:3b:7b:82:4f:e3:e8: 5d:02:40:3a:d5:81:f3:38:de:aa:79:53:1a:d2:a3:60:59:94: 8c:bd:62:bb:6d:70:da:0d:22:3e:9d:e0:fa:5d:20:87:ce:16: f0:53:f4:b7:1d:c7:b3:59:64:ba:8a:73:75:bc:7f:61:cb:14: d4:9f:34:3f:bd:b1:06:0c:62:f6:1f:b4:d2:15:38:61:bd:2c: 44:94:1c:e1:88:f4:d2:fc:42:d7:6d:ed:d6:4e:a2:b7:67:20: 01:7a:87:39:3b:4c:2b:3c:ef:3c:15:54:1d:cc:00:30:9c:cc: e2:4f:71:98

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...