SecCertificateCreateWithData always returns nil. how can i resolve it?

In the below code dotP7b is a base64 encoded string of certificate. We want to create certificate using SecCertificateCreateWithData function. But it always returns nil. One issue i have found out that conversion of base64 string to DER. I have converted it already. I am deleting public key in each call. guard let cert = SecCertificateCreateWithData(kCFAllocatorDefault, dotP7b.data(using: .utf8)! as CFData) else { return }

my dotP7b String is given below MIIEoDCCA4igAwIBAgIUEMYX7c9TTvsXIKxBls0XOKsYEi0wDQYJKoZIhvcNAQEL%0ABQAwgYMxCzAJBgNVBAYTAkJEMSQwIgYDVQQKExtCYW5nbGFkZXNoIENvbXB1dGVy%0AIENvdW5jaWwxHTAbBgNVBAsTFENlcnRpZnlpbmcgQXV0aG9yaXR5MS8wLQYDVQQD%0AEyZCQ0MgU3ViLUNBIGZvciBDbGFzcyAwIENlcnRpZmljYXRlcy1HMzAeFw0yMzA1%0AMTAwODIzNDhaFw0yNDA1MTAwODIzNDhaMHExCzAJBgNVBAYTAkJEMQwwCgYDVQQK%0AEwNCQ0MxCzAJBgNVBAsTAkNBMQ0wCwYDVQQREwQxMjA3MQ4wDAYDVQQHEwVEaGFr%0AYTEOMAwGA1UEBRMFNjMxNzExGDAWBgNVBAMTD1NpZGRpcXVyIFJhaG1hbjCCASIw%0ADQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALLUtSUV09QvVH%2BHwfKF4OeSfqm1%0AiHLwSzT4WBGlxAXq%2BWDsUz8OwUfsHF8Em0C%2Fio%2BBbt3d6TKkHpB1M6UcZMFsejqk%0AwkdLDcCo5ByWPxCaZcZcaeSqvzdN17jjdYFLETxLHPelQ2TKSTAo1XGoPRb9iAcF%0AUxm1umK3gw42DIYickz4ConFuNY5UgdozVZYhOpb5d1tzg0UZYsCoWD4cEvM18KY%0A1T93aQngOeXSCm4WMAp8ilTs%2Bv8437g1gO18J3o7kSlrjPxvWSC4I94ZZgI4bTer%0A7%2BAo4x%2FrUxsAjpP384FneJaxdNAuXVL857OMBA9PRQn7T25TDZ1Jh858D%2BUCAwEA%0AAaOCARswggEXMA4GA1UdDwEB%2FwQEAwIGwDAMBgNVHRMBAf8EAjAAMHwGCCsGAQUF%0ABwEBBHAwbjAlBggrBgEFBQcwAYYZaHR0cDovL29jc3AuYmNjLWNhLmdvdi5iZDBF%0ABggrBgEFBQcwAoY5aHR0cHM6Ly9yZXBvLmJjYy1jYS5nb3YuYmQvY2VydHMvQkND%0ALVN1Yi1DQS1DbGFzczAtRzMuY2VyMB8GA1UdIwQYMBaAFIRvdFq0TzkwH%2FpFlDjr%0AMzf4yQ8WMDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwuYmNjLWNhLmdvdi5i%0AZC9CQ0NDQTIwMjJHMy5jcmwwHQYDVR0OBBYEFIaHga8kHUVnv%2FnaOocB2dHB1mwj%0AMA0GCSqGSIb3DQEBCwUAA4IBAQDEQU0ByMWDKXyWaEx6dMaLtRdZk0iidZJmgPCf%0AH8fJoOeu9xCEYMSloJMsgkimikEeOktticjRYxu98J3xG7p4xX6%2FuR194asgOpPh%0ABjijaW536NM43oeHFrpcor2lp8lZnJEBq8eoqtdq6Zhl8%2B1jSBgaOLm5%2Fz%2BDjwlM%0APNXEQ5DTeZ6SY8b3bCXtsXD2gwrZMLR8Ea9ZebvJXff1xNkNln4azGFvba4jsLnd%0AO7bOnGcjW5vQmC6llOWrhDCZft9MzKVkQa9v3tFpN1i9DK0XiVqum3rb8U%2BJzO5E%0AMFrVaKiEH%2FCt%2FfsQqymEpE8YhwnLqWC%2Fz1tuo7kMXv5uV%2Br0 and it's url encoded.

SecCertificateCreateWithData expect a binary certificate in DER format. If you’re starting with Base64 data, you can use init(base64Encoded:options:) to create a Data value from that. However, that’s expecting real Base64 data. Looking at your data it’s clearly been munged in some way. You’ll have to work out how to unmunge it.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

SecCertificateCreateWithData always returns nil. how can i resolve it?
 
 
Q