I'm currently working on a XF app, where we on iOS would like to utilize the Secure Enclave if available on the device. As fare as I have been able to determine so fare this is not possible through the current iOS-library as the constants needed to manipulate the underlying operation have been made internal to the iOS-library, see
Furthermore have been able to determine that the constants kSecPrivateKeyAttrs and kSecPublicKeyAttrs haven't even been mapped into the iOS-library cf. this bugreport:
and that in the tests of the library the following line
!missing-field! kSecPrivateKeyAttrs not bound states that field is not covered by the library, see
tests/xtro-sharpie/common-Security.ignore:2 in the xamarin-macios repository.
My question is therefore as follows, why have platform constants which were originally public made internal? I guess this question is primarily aimed at the developers of iOS-library.
My personal opinion is that a library should provide adequate abstraction for general use cases, but not restrict the access to the underlying basis primitives, which seems to be the case here.
PS. In my efforts to understand where changes to the xamarin-macios library that would be needed I tried checking out the repo and building it. During this I encountered the error described at
namely that the PATH-variable may not contain spaces. A fix where the
make-script can handle spaces in the PATH-variable would be appreciated.
PPS. Links wouldn't work, because "new users" aren't allowed to link - come on... So to follow the links you manually have to copy and paste the links.