Skip to content

Annotate APIs throwing PNSE on iOS/tvOS/MacCatalyst #47910

Closed
@marek-safar

Description

@marek-safar

Following assemblies/types/methods need to be changed to throw PNSE and annotated with System.Runtime.Versioning.UnsupportedOSPlatformAttribute because they are not supported on iOS/tvOS/MacCatalyst

  • System.Diagnostics.Process
    • Process.Start + friends (still supported on macCatalyst)
  • System.Security.Cryptography.Algorithms (re-implemented in [macOS] Implement RSA, ECC through new macOS 10.12 APIs #51620 and Make DSA.Create, AesCcm, AesGcm, ChaCha20Poly1305 throw PNSE on iOS #52978)
    • All methods referencing libSystem.Security.Cryptography.Native.OpenSsl.dylib
    • AppleCryptoNative_EccGenerateKey
    • AppleCryptoNative_SecKeychainItemCopyKeychain
    • AppleCryptoNative_SecKeychainCreate
    • AppleCryptoNative_SecKeychainDelete
    • AppleCryptoNative_SetKeychainNeverLock
    • AppleCryptoNative_RsaGenerateKey
    • AppleCryptoNative_RsaEncryptOaep
    • AppleCryptoNative_RsaEncryptPkcs
    • AppleCryptoNative_RsaDecryptOaep
    • AppleCryptoNative_RsaDecryptPkcs
    • AppleCryptoNative_SecKeyImportEphemeral
    • AppleCryptoNative_GenerateSignature
    • AppleCryptoNative_GenerateSignatureWithHashAlgorithm
    • AppleCryptoNative_VerifySignature
    • AppleCryptoNative_VerifySignatureWithHashAlgorithm
    • AppleCryptoNative_SecKeyExport
  • System.Security.Cryptography.X509Certificates (iOS PAL implemented in [iOS] Implement iOS PAL for S.S.C.X509Certificates #52191)
    • All AppleCryptoNative_* methods as in SSCA
    • AppleCryptoNative_X509ImportCertificate
    • AppleCryptoNative_X509ImportCollection
    • AppleCryptoNative_X509GetRawData
    • AppleCryptoNative_X509ExportData
    • AppleCryptoNative_X509CopyWithPrivateKey
    • AppleCryptoNative_X509MoveToKeychain
    • AppleCryptoNative_X509StoreAddCertificate
    • AppleCryptoNative_X509StoreRemoveCertificate

The fixes should be made in the way that code that depends on native API is never compiled into managed assembly to resolve issues like #47533

Upd. 05/04/21 The latest list of PNSE-throwing APIs - #47910 (comment)

Upd. 06/15/21 The issue has been addressed by re-implementing/re-enabling some previously unsupported API or annotating ones which are still unsupported.

Metadata

Metadata

Assignees

Labels

area-Metaos-iosApple iOSos-tvosApple tvOStrackingThis issue is tracking the completion of other related issues.

Type

No type

Projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions