public void MoveTo(X509Certificate2Collection collection) { foreach (UnixPkcs12Reader.CertAndKey certAndKey in _pkcs12.EnumerateAll()) { AppleCertificatePal pal = (AppleCertificatePal)certAndKey.Cert !; SafeSecKeyRefHandle?safeSecKeyRefHandle = ApplePkcs12Reader.GetPrivateKey(certAndKey.Key); using (safeSecKeyRefHandle) { ICertificatePal newPal; // SecItemImport doesn't seem to respect non-exportable import for PKCS#8, // only PKCS#12. // // So, as part of reading this PKCS#12 we now need to write the minimum // PKCS#12 in a normalized form, and ask the OS to import it. if (!_exportable && safeSecKeyRefHandle != null) { newPal = AppleCertificatePal.ImportPkcs12NonExportable( pal, safeSecKeyRefHandle, _password, _keychain); } else { newPal = pal.MoveToKeychain(_keychain, safeSecKeyRefHandle) ?? pal; } X509Certificate2 cert = new X509Certificate2(newPal); collection.Add(cert); } } }
public void MoveTo(X509Certificate2Collection collection) { foreach (UnixPkcs12Reader.CertAndKey certAndKey in _pkcs12.EnumerateAll()) { collection.Add(new X509Certificate2(AppleCertificatePal.ImportPkcs12(certAndKey))); } }